309946641 发表于 2011-12-21 18:19:10

请教大侠!这是什么意思

51单片机工作在定时器模式1下,假设已经计数完毕令这时有以下操作
outcomeH=TH0;
outcomeL=TL0;
count=outcomeH;
count<<=8;
count=count|outcomeL;
有什么效果呀

huayuliang 发表于 2011-12-21 18:21:37

回复【楼主位】309946641
-----------------------------------------------------------------------

两个8位合成一个16位的变量。

309946641 发表于 2011-12-22 20:17:23

回复【1楼】huayuliang 花生
-----------------------------------------------------------------------

谢谢啦

309946641 发表于 2011-12-22 20:22:47

回复【2楼】309946641
再请教一下我写的这个程序为什么检查不到TI=1呀总是停在while(TI==0);处呀,嘿不明白

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED1=P1^0;
sbit LED2=P1^3;
sbit k1=P3^3;
void Delay(uint x)
{
uchar t;
while(x--)for(t=0;t<120;t++);
}

void xiang(uchar c)
{
SBUF=c;
while(TI==0);
TI=0;
}
void main()
{
uchar i=0;
        SCON=0x40; //模式1
        TMOD=0x20;
        PCON=0x00;//波特率不备曾
        TH1=0xfd; //9600
        TL1=0xfd;
       TI=0;
       TR1=0;
       while(1)
       {
if(k1==0)
{
while(k1==0);
i=(i+1)%4;
}
switch(i)
{
case 0:
        LED1=LED2=1;
        break;
case 1:
       xiang('A');
        LED1=~LED1;LED2=1;
        break;
case 2:
                xiang('B');
                LED2=~LED2;LED1=1;
                break;
case 3:
   xiang('C');
        LED1=~LED1;LED2=LED1;
        break;
}       
Delay(100);
       }
}
页: [1]
查看完整版本: 请教大侠!这是什么意思