如图 我想把这三个数取过来 231 是定义三个数组呢 还是直接使用变量赋值 这下面是我写的 但是取不出来
- #include<stc12.h>//头文件
- sbit DU=P2^6;
- sbit WE=P2^7;
- unsigned int date[6],value,one,two,three;
- unsigned char num=0;
- unsigned int code sz[4]={0x3f,0x06,0x5b ,0x4f};
- void delay(unsigned char xms) //xms等于几就延迟几毫秒
- {
- unsigned int i,j;
- for(i=xms;i>0;i--)
- for(j=112;j>0;j--);
- }
- void UartConfiguration()
- {
-
- TMOD=0x20; //定时器工作方式,选择了定时器1,工作方式2 八位初值自动重装的8位定时器。
- TH1=0xfd; //定时器1初值 ,设置波特率为9600 晶振11.0529MHZ?
- TL1=0xfd;
- AUXR |= 0x40; //定时器1时钟为Fosc,即1T
- AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
- TR1=1; //开启定时器1
- SCON=0X50;
- PCON=0X00;
-
- ES=1; //允许串口中断
- EA=1; //允许中断(总闸)
- }
- void main()
- {
- UartConfiguration();
- while(1)
- {
- // one=date[0]%10;
- // two=date[2]%10;
- // three=date[4]%10;
-
- one=value%10;
- two=(value%100)/10;
- three=value/100;
- P0=sz[one];
- DU=1;
- DU=0;
- P0=0x7f;
- WE=1;
- WE=0;
- delay(2);
- P0=sz[two];
- DU=1;
- DU=0;
- P0=0xbf;
- WE=1;
- WE=0;
- delay(2);
- P0=sz[three];
- DU=1;
- DU=0;
- P0=0xdf;
- WE=1;
- WE=0;
- delay(2);
-
- }
- }
- void Uart() interrupt 4
- {
- if(RI==1)
- {
- RI=0;
- // date[num]=SBUF;
- // num++;
- // if(num==7)
- // {
- // num=0;
- // }
- value=SBUF;
-
- }
- }
复制代码 |