久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2664|回復: 3
打印 上一主題 下一主題
收起左側

51單片機定時器時鐘及Proteus仿真圖

[復制鏈接]
跳轉到指定樓層
樓主
51定時器時鐘及protues仿真


單片機源程序如下:
  1. /**************************************************************************************       
  2. 實驗現象:下載程序后,數碼管右3位顯示0,按K1鍵將數據寫入到EEPROM內保存,
  3.                   按K2鍵讀取EEPROM內保存的數據,按K3鍵顯示數據加1,按K4鍵顯示數據清零,
  4.                   最大能寫入的數據是255。
  5. 注意事項:                                                                                                                                                                  
  6. ***************************************************************************************/
  7. #include "public.h"
  8. #include "24c02.h"
  9. #include "lcd1602.h"
  10. #include "stdio.h"


  11. #define EEPROM_ADDRESS        0        //定義數據存入EEPROM的起始地址
  12. sbit s1=P3^0;
  13. sbit s2=P3^1;
  14. sbit s3=P3^2;
  15. sbit beep=P2^3;
  16. u8 count,s1num;
  17. char miao,shi,fen;
  18. char code table[]=" 2008-9-30 MON";
  19. void di()
  20. {
  21.         beep=0;
  22.         delay_ms(100);
  23.         beep=1;
  24. }
  25. void write_sfm(u8 add,u8 date)
  26. {
  27.         u8 shi,ge;
  28.         shi=date/10;
  29.         ge=date%10;
  30.         lcd1602_write_cmd(0x80+0x40+add);
  31.         lcd1602_write_data(0x30+shi);
  32.         lcd1602_write_data(0x30+ge);
  33. }
  34. void keyscan()
  35. {
  36.         if(s1==0)
  37.         {
  38.                 delay_ms(5);
  39.                 if(s1==0)
  40.                 {
  41.                         s1num++;
  42.                         while(!s1);
  43.                         di();
  44.                         if(s1num==1)
  45.                         {
  46.                                 TR0=0;
  47.                                 lcd1602_write_cmd(0x80+0x40+10);
  48.                                 lcd1602_write_cmd(0x0f);
  49.                         }
  50.                         if(s1num==2)
  51.                         {
  52.                                 lcd1602_write_cmd(0x80+0x40+7);
  53.                         }
  54.                         if(s1num==3)
  55.                         {
  56.                                 lcd1602_write_cmd(0x80+0x40+4);
  57.                         }
  58.                         if(s1num==4)
  59.                         {
  60.                                 s1num=0;
  61.                                 lcd1602_write_cmd(0x0c);
  62.                                 TR0=1;
  63.                         }
  64.                 }
  65.         }
  66.         if(s1num!=0)
  67.         {
  68.                 if(s2==0)
  69.                 {
  70.                         delay_ms(5);
  71.                         if(s2==0)
  72.                         {
  73.                                 while(!s2);
  74.                                 di();
  75.                                 if(s1num==1)
  76.                                 {
  77.                                         miao++;
  78.                                         if(miao==60)
  79.                                                 miao=0;
  80.                                         write_sfm(10,miao);
  81.                                         lcd1602_write_cmd(0x80+0x40+10);
  82.                                         at24c02_write_one_byte(1,miao);
  83.                                 }
  84.                                 if(s1num==2)
  85.                                 {
  86.                                         fen++;
  87.                                         if(fen==60)
  88.                                                 fen=0;
  89.                                         write_sfm(7,fen);
  90.                                         lcd1602_write_cmd(0x80+0x40+7);
  91.                                         at24c02_write_one_byte(2,fen);
  92.                                 }
  93.                                 if(s1num==3)
  94.                                 {
  95.                                         shi++;
  96.                                         if(shi==24)
  97.                                                 shi=0;
  98.                                         write_sfm(4,shi);
  99.                                         lcd1602_write_cmd(0x80+0x40+4);
  100.                                         at24c02_write_one_byte(3,shi);
  101.                                 }
  102.                         }       
  103.                 }
  104.                 if(s3==0)
  105.                 {
  106.                         delay_ms(5);
  107.                         if(s3==0)
  108.                         {
  109.                                 while(!s3);
  110.                                 di();
  111.                                 if(s1num==1)
  112.                                 {
  113.                                         miao--;
  114.                                         if(miao==-1)
  115.                                                 miao=59;
  116.                                         write_sfm(10,miao);
  117.                                         lcd1602_write_cmd(0x80+0x40+10);
  118.                                         at24c02_write_one_byte(1,shi);
  119.                                 }
  120.                                 if(s1num==2)
  121.                                 {
  122.                                         fen--;
  123.                                         if(fen==-1)
  124.                                                 fen=59;
  125.                                         write_sfm(7,fen);
  126.                                         lcd1602_write_cmd(0x80+0x40+7);
  127.                                         at24c02_write_one_byte(2,fen);
  128.                                 }
  129.                                 if(s1num==3)
  130.                                 {
  131.                                         shi--;
  132.                                         if(shi==-1)
  133.                                                 fen=23;
  134.                                         write_sfm(7,shi);
  135.                                         lcd1602_write_cmd(0x80+0x40+4);
  136.                                         at24c02_write_one_byte(3,shi);
  137.                                 }
  138.                         }
  139.                                
  140.                 }
  141.         }
  142. }
  143. /*******************************************************************************
  144. * 函 數 名       : main
  145. * 函數功能                 : 主函數
  146. * 輸    入       : 無
  147. * 輸    出             : 無
  148. *******************************************************************************/
  149. void main()
  150. {       
  151.         u8 num;
  152.         lcd1602_init();//LCD1602初始化
  153.        
  154.         fen=0;
  155.         miao=0;
  156.         shi=0;
  157.         count=0;
  158.         s1num=0;
  159.         for(num=0;num<15;num++)
  160.         {
  161.                 lcd1602_write_data(table[num]);       
  162.                 delay_ms(5);
  163.         }
  164.         lcd1602_write_cmd(0x80+0x40+6);
  165.         lcd1602_write_data(':');
  166.         delay_ms(5);
  167.         lcd1602_write_cmd(0x80+0x40+9);
  168.         lcd1602_write_data(':');
  169.         delay_ms(5);
  170.         miao=at24c02_read_one_byte(1);
  171.         fen=at24c02_read_one_byte(2);
  172.         shi=at24c02_read_one_byte(3);
  173.         write_sfm(10,miao);
  174.         write_sfm(7,fen);
  175.         write_sfm(4,shi);
  176.         TMOD=0x01;
  177.         TH0=(65536-50000)/256;
  178.         TL0=(65536-50000)%256;
  179.         EA=1;
  180.         ET0=1;
  181.         TR0=1;
  182.         //lcd1602_show_string(0,0,"24c02save");//第二行顯示
  183.         while(1)
  184.         {       
  185.                 keyscan();               
  186.                 //sprintf(buffer,"%d%d%d",save_buf[0],save_buf[1],save_buf[2]);
  187.                 //lcd1602_show_string(0,1,buffer);//第二行顯示
  188.         }
  189.                
  190. }
  191. void timer0() interrupt 1
  192. {
  193.         TH0=(65536-50000)/256;
  194.         TL0=(65536-50000)%256;
  195.         count++;
  196.         if(count==20)
  197.         {
  198.                 count=0;
  199.                 miao++;
  200.                 if(miao==60)
  201.                 {
  202.                         miao=0;
  203.                         fen++;
  204.                         if(fen==60)
  205.                         {
  206.                                 fen=0;
  207.                                 shi++;
  208.                                 if(shi==24)
  209.                                 {
  210.                                         shi=0;
  211.                                 }
  212.                                 write_sfm(4,shi);
  213.                                 at24c02_write_one_byte(3,shi);
  214.                         }
  215.                         write_sfm(7,fen);
  216.                         at24c02_write_one_byte(2,fen);
  217.                 }
  218.                 write_sfm(10,miao);
  219.                 at24c02_write_one_byte(1,miao);
  220.         }       
  221. }
復制代碼

Keil代碼與Proteus8.13仿真下載:
定時器時鐘LCD顯示protues仿真.7z (75.91 KB, 下載次數: 36)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:66461 發表于 2023-8-7 22:04 | 只看該作者
版本8.6 的 我打不開。。。
回復

使用道具 舉報

板凳
ID:66461 發表于 2023-8-7 22:05 | 只看該作者
版本8.6的我打不開。。。
回復

使用道具 舉報

地板
ID:57095 發表于 2024-4-18 13:43 來自手機 | 只看該作者
17951 發表于 2023-8-7 22:04
版本8.6 的 我打不開。。。

用816版本
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品久久久久 | 国产婷婷色一区二区三区 | 久久精品亚洲成在人线av网址 | www视频在线观看 | 激情网五月天 | 99re在线播放| 色综网| 毛片免费视频 | 欧美在线一区二区三区 | 国产成人网 | 91福利在线观看视频 | 91 在线| 久久综合色综合 | 中文字幕亚洲一区二区三区 | 国产欧美精品一区二区色综合朱莉 | 岛国毛片在线观看 | 日韩久久久久 | 在线视频日韩 | 韩日一区 | 亚洲国产精品一区二区第一页 | 色又黄又爽网站www久久 | 欧美色综合天天久久综合精品 | 秋霞在线一区 | 依人成人 | 国产精品成人在线 | 免费精品视频 | 成人精品国产一区二区4080 | 影音先锋久久 | 久久精品一级 | 欧美国产精品一区二区三区 | 精品免费国产一区二区三区 | 人人干人人干人人干 | 青青久视频| 成人影院网站ww555久久精品 | 91福利在线观看 | 在线观看免费国产 | 中文字幕97 | 四虎成人免费视频 | 欧美三级视频 | 91福利在线导航 | 91精品国产综合久久婷婷香蕉 |