有没有大神帮忙看一下为什么我这一个显示的时候年的递增总是有错误

#include #define uint unsigned int #define uchar unsigned char sbit E=P2^7; sbit RS=P2^6; sbit RW=P2^5; int num,num1=55,num2=59,num3=23,num4=1999,num5=12,num6=31,tianshu,add,date; uchar code table[]="23:59:55"; uchar code table1[]="1999/12/31"; void delay(uint q) { uint h,i; for(h=q;h>0;h--) for(i=110;i>0;i--); } void write_com(uchar com) { RS=0; delay(5); RW=0; delay(5); P0=com; E=1; delay(5); E=0; } void write_data(uchar date) { RS=1; delay(5); RW=0; delay(5); P0=date; E=1; delay(5); E=0; } void daymax() { switch(num5) { case 1: tianshu=32; break; case 2: if((num4%4==0&&num4%100==0)||(num4%400==0)) { tianshu=30; } else tianshu=29; break; case 3: tianshu=32; break; case 4: tianshu=31; break; case 5: tianshu=32; break; case 6: tianshu=31; break; case 7: tianshu=32; break; case 8: tianshu=31; break; case 9: tianshu=31; break; case 10: tianshu=32; break; case 11: tianshu=31; break; case 12: tianshu=32; break; } } void write_sfm(int add,int date) { int shi,ge; shi=date/10; ge=date%10; write_com(0x80+add); write_data(0x30+shi); write_data(0x30+ge); } void write_nyr(int add,int date) { int shi,ge; shi=date/10; ge=date%10; write_com(0x80+0x40+add); write_data(0x30+shi); write_data(0x30+ge); } void dispiay() { { uchar n1=num4/10,n2=num4%10; write_sfm(6,num1); write_sfm(3,num2); write_sfm(0,num3); write_nyr(7,num6); write_nyr(5,num5); write_nyr(2,n2); write_nyr(0,n1); } } void zhongduan_time()interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; num++; daymax(); } void init() { if(num==20) { num=0; num1++; if(num1==60) { num1=0; num2++; if(num2==60) { num2=0; num3++; if(num3==24) { num3=0; num6++; if(num6==tianshu) { num6=1; num5++; if(num5==13) { num5=1; num4++; write_nyr(0,num4); } write_nyr(5,num5); } write_nyr(8,num6); } write_sfm(0,num3); } write_sfm(3,num2); } write_sfm(6,num1); } } void main() { int j,k; E=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); TMOD=0x01; TH0=(65536-50000)/256; TR0=(65536-50000)%256; EA=1; ET0=1; TR0=1; write_com(0x80+2); write_data(':'); write_com(0x80+5); write_data(':'); write_com(0x80+0x40+4); write_data('/'); write_com(0x80+0x40+7); write_data('/'); daymax(); write_com(0x80); for(j=0;j<8;j++) { write_data(table[j]); delay(5); } write_com(0x80+0x40); for(k=0;k<10;k++) { write_data(table1[k]); delay(5); } while(1) { init (); } } 有没有大神帮忙看一下为什么我这一个显示的时候年的递增总是有错误

你这代码没有格式化,看不懂代码

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y