给你改了,对比一下就知道哪里错了。
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit dula=P2^6;
- sbit wela=P2^7;
- sbit lcdrs=P3^5;
- sbit lcdwr=P3^6;
- sbit lcden=P3^4;
- uchar code table[]=" 2020-8-27 Thu";
- uchar code table1[]=" 00:00:00";
- void write_com(uchar com);
- void write_data(uchar dat);
- void write_sfm(uchar add,uchar date);
- uchar n,shi=11,fen=50,miao=50;
- void delay(uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- {
- for(y=110;y>0;y--)
- {
- }
- }
- }
- void init()
- {
- uchar a;
- miao=0;
- dula=0;
- wela=0;
- lcdrs=0;
- lcdwr=0;
- lcden=0;
- write_com(0x38);
- write_com(0x0c);
- write_com(0x06);
- write_com(0x01);
- write_com(0x80);
- for(a=0;a<15;a++)
- {
- write_data(table[a]);
- delay(5);
- }
- write_com(0x80+0x40);
- for(a=0;a<11;a++)
- {
- write_data(table1[a]);
- delay(5);
- }
- TMOD=0x01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- }
- void write_com(uchar com)
- {
- lcdrs=0;
- lcdwr=0;
- lcden=0;
- P0=com;
- delay(5);
- lcden=1;
- delay(15);
- lcden=0;
- }
- void write_data(uchar dat)
- {
- lcdrs=1;
- lcdwr=0;
- lcden=0;
- P0=dat;
- delay(5);
- lcden=1;
- delay(15);
- lcden=0;
- }
- void main()
- {
- init();
- while(1) //; 多写分号
- {
- if(n==20)
- {
- n=0;
- miao++;
- if(miao==60)
- {
- miao=0;
- fen++;
- if(fen==60)
- {
- fen=0;
- shi++;
- if(shi==24)
- {
- shi=0;
- }
- }
- }
- write_sfm(9,miao);
- write_sfm(6,fen);
- write_sfm(3,shi);
-
- }
- }
- }
- void write_sfm(uchar add,uchar date)
- {
- uchar shi,ge;
- shi=date/10;
- ge=date%10;
- write_com(0x80+0x40+add);
- write_data(0x30+shi);
- write_data(0x30+ge);
- }
- void timer0() interrupt 1
- {
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- n++;
- }
复制代码 |