欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 51單片機LCD1602顯示時、分、秒 含源碼 proteus仿真 [打印本頁]

作者: rwf11    時間: 2021-2-6 10:23
標題: 51單片機LCD1602顯示時、分、秒 含源碼 proteus仿真
自己寫的 ,已測試運行,請大家指教。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. //LCD1602顯示時分秒
  2. #include <reg52.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. sbit rs=P3^7;
  6. sbit rw=P3^6;
  7. sbit en=P3^5;
  8. uchar code table[]="m.raoushi.com";  //1602第一行顯示內容
  9. void write_command(uchar);        //聲明寫指令
  10. void write_date(uchar);          //聲明寫數據
  11. uint a,b,num,shi,fen,miao;
  12. void delay(uint x)              //延時函數
  13. {
  14.         uint i,j;
  15.         for(i=x;i>0;i--)
  16.           for(j=110;j>0;j--);
  17. }
  18. void init()
  19. {
  20.         en=0;
  21.         rs=1;
  22.         rw=1;
  23.         P0=0xff;
  24.         TMOD=0X01;
  25.         TH0=(65536-1000)/256;
  26.         TL0=(65536-1000)%256;
  27.         TR0=1;
  28.         ET0=1;
  29.         EA=1;
  30. }
  31. /*----------------------------------------------------------------------------------------*/
  32. void main()
  33. {
  34.         init();    //初始化
  35.         
  36.         while(1)     // 循環內 不斷掃描
  37.         {write_command(0x38);//設置16*2顯示  7*5點陣 8位數據口
  38.   //write_command(0x06);//地址加1  光標右移
  39.         //write_command(0x08);//只開顯示
  40.   //write_command(0x01);//清屏
  41.     write_command(0x0c);//開顯示 不開光標
  42.                 write_command(0x80);//第一行第一位地址
  43.             for(a=0;a<13;a++)
  44.             write_date(table[a]);
  45.                
  46.                   write_command(0x80+0x40);//第二行第一位地址
  47.                   write_date(0x30+shi/10);
  48.                         write_date(0x30+shi%10);//下面這幾行 顯示時分秒,ASCII表中十六進制與字符阿拉伯數字相差30
  49.                         write_date(':');
  50.                         write_date(0x30+fen/10);
  51.                         write_date(0x30+fen%10);
  52.                         write_date(':');
  53.                         write_date(0x30+miao/10);
  54.                         write_date(0x30+miao%10);
  55.                
  56.    }
  57. }
  58. void write_command(uchar com)   //1602 寫指令
  59. {
  60.         en=0;
  61.   rs=0;
  62.         rw=0;
  63.         P1=com;
  64.         delay(5);
  65.         en=1;
  66.         delay(5);
  67.         en=0;

  68. }
  69. void write_date(uchar date)//1602 寫數據
  70. {
  71.                         en=0;
  72.             rs=1;
  73.             rw=0;
  74.                         P1=date;
  75.                         delay(5);
  76.                         en=1;
  77.                         delay(5);
  78.                         en=0;
  79. }
  80. void timer0() interrupt 1    //定時器0 中斷計時
  81. {
  82.          
  83.   TH0=(65536-1000)/256;
  84.         TL0=(65536-1000)%256;
  85.         num++;
  86.         if(num==1000)
  87.         {
  88.                 num=0;
  89.                 miao++;
  90.                         if(miao==60)
  91.                         {
  92.                                 miao=0;
  93.                           fen++;
  94.                                                         if(fen==60)
  95.                                                         {
  96.                                                                  fen=0;
  97.                                                                  shi++;
  98.                                                                 if(shi==24)
  99.                                                                         shi=0;
  100.                                                         }
  101.                         }
  102.                 }
  103. }
復制代碼
全部資料51hei下載地址:
1602顯示時分秒---含源碼 proteus仿真.rar (50.32 KB, 下載次數: 45)






歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1