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

QQ登錄

只需一步,快速開始

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

簡(jiǎn)單的51單片機(jī)基于1602液晶的顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:228520 發(fā)表于 2017-8-22 08:49 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  • #include<reg52.h>  
  • #define uint unsigned int  
  • #define uchar unsigned char  
  • sbit en=P3^4;  
  • sbit rs=P3^5;  
  • sbit rw=P3^6;  
  • sbit s2=P3^0;  
  • sbit s3=P3^1;  
  • sbit s4=P3^2;  
  • sbit s5=P3^3;  
  • uchar shi,fen,miao,num,num1=0,num2=0,num3=0,flag;  
  • void delay(uint z)  
  • {  
  •     uint x,y;  
  •     for(x=z;x>0;x--)  
  •         for(y=110;y>0;y--);  
  • }  
  • void busy()  
  • {  
  •     uchar busy;  
  •     P0=0xff;  
  •     rs=0;  
  •     rw=1;  
  •     do  
  •     {  
  •         en=1;  
  •         busy=P0;  
  •         en=0;  
  •   
  •     }while(busy & 0x80);//取最高位  
  •   
  • }  
  • void write_com(uchar com)  
  • {  
  •     busy();  
  •     rs=0;  
  •     rw=0;  
  •     P0=com;  
  •     en=1;  
  •     en=0;  
  • }  
  • void write_date(uchar date)  
  • {  
  •     busy();  
  •     rs=1;  
  •     rw=0;  
  •     P0=date;  
  •     en=1;  
  •     en=0;  
  • }  
  • void display(uchar num,weizhi)  
  • {  
  •     uchar shi,ge;  
  •     shi=num/10;  
  •     ge=num%10;  
  •     write_com(0x80+0x03+weizhi);  
  •     write_date(0x30+shi);  
  •     write_date(0x30+ge);  
  • }  
  • void init()  
  • {  
  •     write_com(0x38);  
  •     write_com(0x0c);  
  •     write_com(0x06);  
  •     write_com(0x01);//清屏  
  •     write_com(0x80|0x07);  
  •     write_date(':');  
  •     write_com(0x80|0x0a);  
  •     write_date(':');  
  •     display(0,2);  
  •     display(0,5);  
  •     display(0,8);  
  •     TMOD=0x01;  
  •     TH0=(65536-45872)/256;  
  •     TL0=(65536-45872)%256;  
  •     EA=1;  
  •     ET0=1;  
  •     TR0=0;   
  • }  
  • void keyscan()  
  • {  
  •     if(s5==0)  
  •     {  
  •         delay(10);  
  •         if(s5==0)  
  •         {  
  •             while(!s5);  
  •             TR0=~TR0;  
  •         }  
  •     }  
  •     if(s3==0)  
  •     {  
  •         delay(10);  
  •         if(s3==0)  
  •         {  
  •             num2++;  
  •             if(num2==60)  
  •                 num2=0;  
  •                 display(num2,5);  
  •                 while(!s3);   
  •         }               
  •     }  
  •     if(s2==0)  
  •     {  
  •         delay(10);  
  •         if(s2==0)  
  •         {  
  •         num3++;  
  •         if(num3==24)  
  •             num3=0;  
  •             display(num3,2);  
  •             while(!s2);  
  •         }  
  •     }  
  • }   
  • void main()  
  • {  
  •     init();  
  •     while(1)  
  •     {  
  •         keyscan();  
  •     }  
  • }  
  • void time0() interrupt 1  
  • {  
  •     TH0=(65536-45872)/256;  
  •     TL0=(65536-45872)%256;  
  •     num++;  
  •     if(num==20)  
  •     {  
  •         num=0;  
  •         num1++;  
  •     }  
  •     display(num1,8);  
  •     if(num1==60)  
  •         {  
  •             num1=0;  
  •             num2++;  
  •             if(num2==60)  
  •             {  
  •                 num2=0;  
  •                 num3++;  
  •                 if(num3==24)  
  •                 {  
  •                     num3=0;  
  •                 }  
  •                     display(num3,2);  
  •             }  
  •                 display(num2,5);  
  •         }  
  • }  

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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