这是我编的,其中串口的引入是错误的求改正
#include#define uint unsigned int#define uchar unsigned char uchar hour,min,sec,temp;uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delay(uint z);void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f);void time_change();void main(){ hour=00; min=0; sec=0; SCON=0x50; PCON = 0x00; TMOD=0x21; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=0xfd; TL1=0xfd; EA=1; ES=1; ET0=1; ET1=0; TR0=1; TR1=1; delay(50); while(1) { time_change(); display(table[hour/10],table[hour%10],table[min/10],table[min%10],table[sec/10],table[sec%10]); }}void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f){ P1=0x01;P0=a;delay(2); P1=0x02;P0=b;delay(2); P1=0x08;P0=c;delay(2); P1=0x10;P0=d;delay(2); P1=0x40;P0=e;delay(2); P1=0x80;P0=f;delay(2); P1=0x04;P0=0xbf;delay(2); P1=0x20;P0=0xbf;delay(2);}void timer0() interrupt 1{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; temp++; }void revdata(void) interrupt 4{ ES=0; if(RI==1){RI=0;hour=SBUF;}delay(50); if(RI==1){RI=0;min=SBUF;}delay(50); if(RI==1){RI=0;sec=SBUF;}delay(50); ES=1;}void delay(uint z){ uint j,k; for(j=z;j>0;j--) for(k=120;k>0;k--);}void time_change(){ if(temp>=20) { temp=0; sec++; if(sec>=60) { sec=0; min++; if(min>=60) { min=0; hour++; if(hour>=24) { hour=0; } } } }}
我编了一个单片机的时钟程序,想要实现串口改变时间,可是不知道应该怎么编入串口求解答
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-