3.8

    xiaoxiao2021-03-25  192

    #include<reg52.h> extern void InitLcd1602(); extern void LcdShowStr(unsigned char x,unsigned char y,unsigned char *str); void ShowBcdByte(unsigned char x,unsigned char y,unsigned char bcd);   unsigned char sec=58 ; unsigned char min=59; unsigned char hour=19 ; bit flag = 0; void main() { EA = 1;      TMOD = 0x01; TH0 = 0xFC; TL0 = 0x67; ET0 = 1;      TR0 = 1;  InitLcd1602(); LcdShowStr(4,1,"  :  :  "); while(1) {    if(flag == 1) { flag = 0; sec++; if(sec >= 60) {    sec = 0; min++; if(min >= 60) {    min = 0;    hour++; if(hour >= 24) {    hour = 0; } } }    } ShowBcdByte(4,1,hour);    ShowBcdByte(7,1,min);    ShowBcdByte(10,1,sec);  } } void ShowBcdByte(unsigned char x,unsigned char y,unsigned char bcd) {      unsigned char str[3]; str[0] = (bcd/10)+'0'; str[1] = (bcd)+'0'; str[2] = '\0'; LcdShowStr(x,y,str); } void InterruptTimer0() interrupt 1 { static unsigned int cnt = 0;      TH0 = 0xFC; TL0 = 0x67; cnt++; if(cnt >= 1000) {     cnt = 0; flag = 1; }   }
    转载请注明原文地址: https://ju.6miu.com/read-6119.html

    最新回复(0)