shannl 2016-05-24 14:44 采纳率: 0%
浏览 1789

我编了一个单片机的时钟程序,想要实现串口改变时间,可是不知道应该怎么编入串口求解答

这是我编的,其中串口的引入是错误的求改正
#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; } } } }}

  • 写回答

4条回答 默认 最新

  • 小世界追着大梦想 2016-05-24 16:33
    关注

    这代码。。。看得。。。好抓狂

    评论

报告相同问题?

悬赏问题

  • ¥20 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏