串口通信實(shí)驗(yàn)程序(數(shù)據(jù)接收)
#include
#define duan P0//段選
#define wei P2//位選
unsigned char code wei1[8] = {
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位選控制 查表的方法控制
unsigned char code duan1[17] = {
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼
unsigned char ge,shi,bai,temp;
void DigDisplay(); //動(dòng)態(tài)顯示函數(shù)
void init(); //初始化函數(shù)
void main(void)
{
init();
while(1)
{
DigDisplay();
}
}
void DigDisplay()
{
unsigned char i,j;
bai=temp/100;
shi=temp%100/10;
ge=temp%10;
wei = wei1[i];//發(fā)送位選
duan = duan1[bai]; //發(fā)送段碼
j = 10;//掃描間隔時(shí)間設(shè)定
while(j--);
duan = 0x00; //消隱
i++;
wei = wei1[i];//發(fā)送位選
duan = duan1[shi]; //發(fā)送段碼
j = 10;//掃描間隔時(shí)間設(shè)定
while(j--);
duan = 0x00; //消隱
i++;
wei = wei1[i];//發(fā)送位選
duan = duan1[ge]; //發(fā)送段碼
j = 10;//掃描間隔時(shí)間設(shè)定
while(j--);
duan = 0x00; //消隱
i=0;
}
void init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
EA=1;
TR1=1;
SM1=1;
REN=1;
ES=1;
}
void usb() interrupt 4
{
RI=0;
temp=SBUF;
}
評(píng)論