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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于單片機的電子時鐘程序流程圖等資料

[復制鏈接]
跳轉到指定樓層
樓主
要求:1.秒表最長計時為23:59:59;
                2.秒表精度為1;
               3.設置三個按鍵,分別為啟動,暫停和清零;
               4. 用數碼管(或液晶)進行顯示。

電路模塊介紹2.3.1時鐘電路
圖 3時鐘振蕩電路
在內部方式時鐘電路中,必須在XTAL1和XTAL2引腳兩端跨接石英晶體振蕩器和兩個微調電容構成振蕩電路。
2.3.2按鍵電路
圖 4按鍵電路
按鍵電路分矩陣鍵盤和獨立按鍵兩種。獨立按鍵式直接用I/O口線構成的單個按鍵電路,其特點是每個按鍵單獨占用一根I/O口線,每個按鍵的工作不會影響其他I/O口線的狀態。獨立式按鍵電路配置靈活,軟件結構簡單,但每個按鍵必須占用一個I/O口線,因此,在按鍵較多時,I/O口線浪費較大,不宜采用。
本次設計采用的是獨立按鍵,按鍵處理設置為:
按下K1鍵,啟動;K2鍵,暫停;K3鍵,清零。
2.3.3顯示電路
圖 5顯示電路
顯示電路中使用的是8位共陰極數碼管,其中,由P2口進行位選,P0口進行段選并利用數碼管進行動態顯示。
2.3.4復位電路
圖 6復位電路
51單片機一般要求的是高電平復位。復位電路的目的就是在上電的瞬間提供一個與正常工作狀態下相反的電平。一般利用電容電壓不能突變的原理,將電容與電阻串聯,上電時刻,電容沒有充電,兩端電壓為零,此時,提供復位脈沖,電源不斷的給電容充電,直至電容兩端電壓為電源電壓,電路進入正常工作狀態。

3.軟件設計3.1軟件簡介
Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(μVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統。
C51工具包的整體結構,μVision與Ishell分別是C51 for Windows 和for Dos的集成開發環境(IDE),可以完成編輯、編譯、連接、調試、仿真等整個開發流程。開發人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標文件(.obj)。目標文件可由LIB51創建生成庫文件,也可以與庫文件一起經L51連接定位生成絕對目標文件(.abs)。abs文件由OH51轉換成標準的hex文件,以供調試器dScope51或tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM中。
使用獨立的Keil仿真器時,注意事項:
*仿真器標配11.0592MHz的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。
*仿真器上的復位按鈕只復位仿真芯片,不復位目標系統。
*仿真芯片的31腳(/EA)已接至高電平,所以仿真時只能使用片內ROM,不能使用片外ROM;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該仿真器仍可插入到擴展有外部ROM(其CPU的/EA引腳接至低電平)的目標系統中使用。

3.2流程圖


3.3設計思路
利用單片機16位定時/計數器方式,TMOD為0X01。每1ms計數一次,共計1000次即1s,此時秒單位進一;當秒數值達到60時,秒數值清零,分單位進一;分數值達到60時,時單位進一,分數值清零,以此達到時鐘功能。k1控制中斷總開關,用來控制計數器工作。按下k1鍵啟動中斷,按下k2鍵關閉,k3鍵則用來控制秒、分、時的數值清零。

4.總結
本次設計主題為基于單片機設計的時鐘電路,體現了AT89C51的簡易性、可控性等諸多優良特性。用單片機來設計時鐘電路,其優點十分明顯,即穩定性高、方便維護和操作簡單。但它的缺點也較明顯,即難以滿足較為復雜的功能。
拿到課題后,我們小組每個成員先上網查閱資料以及翻閱單片機課本,復習本次設計內容,比如七段譯碼顯示器、計數器、振蕩器等等。然后根據設計要求畫出整體設計框架。做完準備工作后就正式開始設計與繪圖。
在軟件設計過程中我們遇到了許多困難,其中最主要的困難是設計好按鍵程序后,進行實際開發板測試時按鍵無法工作,我們經過多次檢查和測試后發現是由于P2口控制數碼管位選時連續發送的數據對按鍵造成了干擾,最后我們更換了接口,解決了這個問題。
我們小組從這次的設計中收獲頗多,不僅溫習了一遍大二學過的單片機編程知識,而且還加深了對單片機的理解,感受到了設計的樂趣。

附錄1.總電路
圖 8總電路圖
2.程序代碼
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. void Delayms(uint x);
  6. sbit L=P2^0;
  7. sbit LA=P2^1;
  8. sbit LB=P2^2;
  9. void Display();
  10. sbit key1=P1^5;
  11. sbit key2=P1^6;
  12. sbit key3=P1^7;

  13. /*位碼*/uchar tablew[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
  14. /*位選*/uchar shu[8]={0};
  15. /*共陰極*/
  16. uchar table6[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  17. uint aa,bb,cc,dd;
  18. void main()
  19. {
  20. TMOD=0x01;//設置工作方式
  21. TH0=(65536-1000)/256;//設置定時器高八位
  22. TL0=(65536-1000)%256;//設置定時器低八位
  23. ET0=1;//打開定時器T0的中斷開關
  24. TR0=1;//啟動定時器T0工作
  25. EA=0;//打開總中斷開關

  26. while(1)
  27.               {
  28.      uchar mshi,mge,fshi,fge,sshi,sge;
  29.      if(key1==0)
  30.      {
  31.                             EA=1;
  32.      }
  33.      else if(key2==0)
  34.               {
  35.                 EA=0;
  36.               }
  37.      else if(key3==0)
  38.      {
  39.       bb=0;cc=0;dd=0;
  40.       }
  41.       else;

  42.       mshi=bb/10;
  43.       mge=bb%10;
  44.       if(bb>59)
  45.                  {
  46. bb=0;
  47. cc++;
  48. }
  49. fshi=cc/10;
  50. fge=cc%10;
  51. if(cc>59)
  52. {
  53. cc=0;
  54. dd++;
  55. }
  56. sshi=dd/10;
  57. sge=dd%10;
  58. if(dd>23)
  59. {
  60. dd=0;
  61. }

  62. shu[7]=table6[mge];
  63. shu[6]=table6[mshi];
  64. shu[5]=0x40;
  65. shu[4]=table6[fge];
  66. shu[3]=table6[fshi];
  67. shu[2]=0x40;
  68. shu[1]=table6[sge];
  69. shu[0]=table6[sshi];
  70. Display();
  71. }
  72. }
  73. void int0_0() interrupt 1
  74. {
  75. TH0=(65536-1000)/256;
  76. TL0=(65536-1000)%256;
  77. aa++;//1ms加一次
  78. if(aa>1000)
  79. {
  80. aa=0;
  81. bb++;//1S加一次
  82. }

  83. }
  84. void Display()
  85. {
  86. uint i;
  87. for(i=0;i<8;i++)
  88. {
  89. P2=tablew[i];
  90. P0=shu[i];
  91. Delayms(1);
  92. }
  93. }
  94. void Delayms(uint x)
  95. {
  96. uchar j;
  97. while(x--)
  98.               {
  99.                             for(j=0;j<125;j++);
  100.               }
  101. }
復制代碼

以上圖文的Word格式文檔下載(內容和本網頁上的一模一樣,方便保存):
基于單片機的電子時鐘.docx (272.49 KB, 下載次數: 53)

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

使用道具 舉報

沙發
ID:288353 發表于 2021-1-28 11:23 | 只看該作者
能幫我看看嗎,小白,照著做,但是顯示有問題,上面的屏幕共陽極,下面的共陰極,上面的8后面兩位會走但是顯示不全,下面的屏幕不動
回復

使用道具 舉報

板凳
ID:943668 發表于 2021-6-24 08:41 來自手機 | 只看該作者
剎訤 發表于 2021-1-28 11:23
能幫我看看嗎,小白,照著做,但是顯示有問題,上面的屏幕共陽極,下面的共陰極,上面的8后面兩位會走但是 ...

解決了么?
回復

使用道具 舉報

地板
ID:977208 發表于 2021-11-3 00:54 | 只看該作者
按照你的做了數碼管顯示不出來,想向你請教一下
回復

使用道具 舉報

5#
ID:1054389 發表于 2022-11-28 14:44 | 只看該作者
剎訤 發表于 2021-1-28 11:23
能幫我看看嗎,小白,照著做,但是顯示有問題,上面的屏幕共陽極,下面的共陰極,上面的8后面兩位會走但是 ...

你好 我也出現這個問題了 請問你解決了嗎 怎么解決的呢
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费看国产片在线观看 | 成人1区| 亚洲区中文字幕 | 色欧美日韩 | 欧美成人第一页 | 欧美久久一区二区 | 国产一区二区在线免费观看 | 97国产精品 | 亚洲一区在线日韩在线深爱 | 久久99久久99久久 | 亚洲欧美少妇 | 日韩免费福利视频 | 亚洲国产成人精品女人 | 性高湖久久久久久久久3小时 | a国产视频| 亚洲一区中文字幕 | 国产亚洲精品久久久久久牛牛 | 色视频免费| 成人不卡视频 | 在线播放中文 | 国产2区| 国产日韩精品一区二区 | 亚洲电影第1页 | 日韩欧美三区 | 玩丰满女领导对白露脸hd | 国产情侣啪啪 | 中文字幕一区在线观看视频 | 欧美1区2区 | 欧美精品在线一区二区三区 | 国产视频一区在线 | 中文字幕1区| 国产一区二区在线观看视频 | 日日操视频| 欧美一区二区大片 | 国产一级黄色网 | 成人免费视频 | 97碰碰碰 | 久久久久高清 | 午夜天堂精品久久久久 | 欧美日韩一区二区三区视频 | 日韩久久久久 |