找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1575|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

用1602顯示電子鐘不會(huì)跳動(dòng),程序出了什么問題?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:322055 發(fā)表于 2018-5-4 14:18 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar hour,min,sec,t,c[8];
uchar disp_buf[]="0123456789";
sbit RS=P2^6;
sbit RW=P2^5;
sbit E=P2^7;
void delay(uint z)
{
        int i,j;
        for (i=z;i>0;i--)
            for(j=110;j>0;j--);
}

void write_w(uchar w)
{
        delay(500);
        RS=0;
        RW=0;
        E=0;
        P0=w;
        delay(10);
        E=1;
        delay(10);
        E=0;
}
void write_data(uint date)
{
        delay(500);
        RS=1;
        RW=0;
        E=0;
        P0=date;
        delay(10);
        E=1;
        delay(10);
        E=0;
        RS=0;
}
void init()
{
        E=0;
  write_w(0x38);
        write_w(0x0c);
        write_w(0x06);
        write_w(0x01);
//        write_w(0x80);
}
void time0init()
{
        TMOD=0X01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        TR0=1;
        ET0=1;
        EA=1;
}
  void display()
{
        //unsigned char dis_buf[8];
c[1]=disp_buf[hour/10];
c[2]=disp_buf[hour%10];
c[3]=0x3a;
c[4]=disp_buf[min/10];
c[5]=disp_buf[min%10];
c[6]=0x3a;
c[7]=disp_buf[sec/10];
c[8]=disp_buf[sec%10];
}
void show()
{
        display();
        write_w(0x04+0x80);
        write_data(c[1]);
        write_data(c[2]);
        write_data(c[3]);
        write_data(c[4]);
        write_data(c[5]);
        write_data(c[6]);
        write_data(c[7]);
        write_data(c[8]);
       
}

void main()
{
        init();
        time0init();
        while (1)
{
        show();
}
}
void time0() interrupt 1
{
             TH0=(65536-50000)/256;
                 TL0=(65536-50000)%256;
              t++;
                  if(t==20)
                  {
                         t=0;
                         sec++;
                         if(sec==60)
                         {
                          sec=0;
                           min++;
                                              if(min==60)
                                   {
                                    min=0;
                                    hour++;
                                   if(hour==24)
                                            {
                                              hour=0;
                                                                                                                                        min=0;
                                                                                                                                        sec=0;
                                            }
                                               }
                              }
                            }
                                                                show();
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表