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

QQ登錄

只需一步,快速開始

搜索
查看: 21068|回復(fù): 26
收起左側(cè)

使用C語(yǔ)言進(jìn)行單片機(jī)電子時(shí)鐘設(shè)計(jì)(仿真+源碼+文檔全套資料下載)

  [復(fù)制鏈接]
ID:437721 發(fā)表于 2018-12-2 15:57 | 顯示全部樓層 |閱讀模式
0.png

單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),又稱為微控制器,是將CPU、RAM、ROM、定時(shí)/計(jì)數(shù)器、I/O接口電路集成到一塊電路芯片上構(gòu)成的微型計(jì)算機(jī)。本次設(shè)計(jì)的系統(tǒng)由單片機(jī)系統(tǒng)、數(shù)碼管顯示系統(tǒng)、鍵盤、蜂鳴器等組成,通過(guò)按鍵來(lái)控制單片機(jī)實(shí)現(xiàn)數(shù)字時(shí)鐘的時(shí)、分、秒顯示,12、24制轉(zhuǎn)換,設(shè)定時(shí)間、鬧鐘等不同功能,并通過(guò)P0口的輸出在LED上顯示。該設(shè)計(jì)具有結(jié)構(gòu)簡(jiǎn)單、使用方便等特點(diǎn)。

目錄
第一章 設(shè)計(jì)目的及要求
1.目的
2.題目與要求
第二章 理論基礎(chǔ)
1.AT89C52芯片
2.Keil的簡(jiǎn)單介紹
3.Protues的簡(jiǎn)單介紹
第三章 設(shè)計(jì)原理以及方案
1.系統(tǒng)總體框圖
2.硬件電路
2.1晶振電路
2.2復(fù)位電路
2.3蜂鳴器電路
2.4數(shù)碼管顯示電路
2.5鍵盤電路
2.6總體電路
3.軟件系統(tǒng)設(shè)計(jì)
3.1單片機(jī)的使用情況
3.2軟件系統(tǒng)的各個(gè)模塊
3.3軟件系統(tǒng)程序流圖
第四章 仿真結(jié)果與分析
1.仿真結(jié)果
2.仿真結(jié)果分析
第五章 總結(jié)
參考文獻(xiàn)
附錄:
程序清單
PCB原理圖

第一章 設(shè)計(jì)目的及要求

1.目的

通過(guò)對(duì)電子時(shí)鐘系統(tǒng)進(jìn)行編程與Protues仿真,進(jìn)一步掌握單片機(jī)的組成,P1、P0、P2、P3口的應(yīng)用,蜂鳴器的應(yīng)用,定時(shí)中斷程序的編寫及應(yīng)用,對(duì)之前學(xué)習(xí)的單片機(jī)課程進(jìn)行回顧與應(yīng)用;初步掌握Protues仿真方法以及用keil軟件編寫程序的方法。
2.題目與要求

本次課程設(shè)計(jì)的題目為:電子時(shí)鐘的設(shè)計(jì),其具體要求為:
(1)能實(shí)現(xiàn)時(shí)、分、秒的顯示;
(2)能實(shí)現(xiàn)12、24小時(shí)制的切換;
(3)能設(shè)定時(shí)間;
(4)能設(shè)定鬧鐘;
整個(gè)系統(tǒng)要設(shè)計(jì)鍵盤和顯示器,利用單片機(jī)內(nèi)部時(shí)鐘完成定時(shí)器的定時(shí)設(shè)計(jì)。

第二章 理論基礎(chǔ)
1.AT89C52芯片
AT89C52芯片的引腳圖如圖1所示。
圖1 AT89C52芯片引腳
其中主要應(yīng)用到的引腳口介紹:
(1)P0口的第一功能是作為一般I/O口使用,第二功能是在CPU訪問(wèn)外部存儲(chǔ)器時(shí),分時(shí)提供低8位地址和8位雙向數(shù)據(jù)。
(2)P1口是8位準(zhǔn)雙向I/O口,51子系列中P1只能用作一般I/O口,52子系列中P1.0和P1.1引腳還具有第二功能。
(3)P2口是8位準(zhǔn)雙向I/O口,第二功能是在CPU訪問(wèn)外部存儲(chǔ)器時(shí),作為高8位地址總線,輸出高8位地址。
(4)P3口是8位準(zhǔn)雙向I/O口,其第一功能是用作一般I/O口,第二功能是作為中斷信號(hào)和外部數(shù)據(jù)存儲(chǔ)器的讀寫控制信號(hào)。
(5)RES,復(fù)位信號(hào)高電平有效。
2.Keil的簡(jiǎn)單介紹
Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開發(fā)系統(tǒng)。Keil提供了包括C編譯器、宏匯編、鏈接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過(guò)一個(gè)集成開發(fā)環(huán)境(μVision)將這些部分組合在一起。此處簡(jiǎn)單介紹一下Keil 工程的建立等,以Keil μVision2界面為例。
(1)建立一個(gè)工程,選擇菜單欄中的【Project】下的【New Project】,菜單欄如圖2所示。
圖2 菜單欄
(2)選擇工程要保存的路徑并且輸入工程名,以電子時(shí)鐘工程的建立為例,如圖3所示。
圖3 “保存新工程”對(duì)話框
(3)選擇系統(tǒng)要用的單片機(jī)如圖4(a)所示,選擇添加啟動(dòng)文件如圖4(b)所示。
圖4(a)“選擇單片機(jī)”對(duì)話框
圖4(b)“添加啟動(dòng)文件”對(duì)話框
(4)建立文件,選擇菜單【File】下的【New】,出現(xiàn)界面如圖5所示。
圖5 新建文件界面
(5)保存文件為“*.c”文件,并且添加文件到所建的工程下,保存文件截面圖如圖6所示,添加文件顯示界面如圖7所示,右鍵點(diǎn)擊SourceGroup添加。
圖6 保存文件界面
圖7 添加文件界面
3.Protues的簡(jiǎn)單介紹
Proteus軟件是英國(guó)Lab Center Electronics公司出版的EDA工具軟件,它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前比較好的仿真單片機(jī)及外圍器件的工具,可以仿真51系列、AVR、PIC、ARM、等常用主流單片機(jī)。在PROTEUS繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以在PROTEUS的原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過(guò)程。
(1)Keil中生成*.HEX的界面如圖8所示。
圖8 生成HEX文件界面
(2)Protues中加載HEX文件,在Protues界面中雙擊AT89C51芯片,所示界面如圖9所示。
              圖9 加載HEX文件界面
第三章 設(shè)計(jì)原理以及方案
1.系統(tǒng)總體框圖
本電子時(shí)鐘主要由單片機(jī)、鍵盤、數(shù)碼管顯示接口電路、蜂鳴器電路和復(fù)位電路構(gòu)成,設(shè)計(jì)的總體方案如圖10所示:
圖10 總體方案
2.硬件電路
2.1晶振電路
晶振電路如圖11所示。
圖11 晶振電路
2.2復(fù)位電路
復(fù)位電路如圖12所示。
圖12 復(fù)位電路
2.3蜂鳴器電路
蜂鳴器電路如圖13所示。
圖13 蜂鳴器電路
2.4數(shù)碼管顯示電路
數(shù)碼管顯示電路如圖14所示。
圖14 數(shù)碼管顯示電路
2.5鍵盤電路
鍵盤電路如圖15所示。
圖15 鍵盤電路
2.6總體電路
在Protues中仿真的總體電路圖如圖16所示。
圖16 總體電路
3.軟件系統(tǒng)設(shè)計(jì)
3.1單片機(jī)的使用情況
設(shè)計(jì)電子時(shí)鐘使用單片機(jī)資源的情況如下:
P0口輸出數(shù)碼管段選信號(hào),P2口輸出數(shù)碼管位選信號(hào);調(diào)整功能選擇鍵kgnxz:P3.0口,通過(guò)其選擇調(diào)整時(shí)鐘還是調(diào)整鬧鐘;調(diào)整秒 ksec:P3.1口,按一次使秒加1;調(diào)整分kmin:P3.2;按一次使分加1;調(diào)整小時(shí)khour:P3.3口,按一次使時(shí)加1;12與24小時(shí)制的轉(zhuǎn)換鍵kzh:P3.4,默認(rèn)24小時(shí)制,按一次鍵之后轉(zhuǎn)換為12小時(shí)制。具體如下:
(1)實(shí)現(xiàn)基本的走時(shí)間和顯示時(shí)間的時(shí)、分、秒,上電自動(dòng)顯示初始時(shí)間00-00-00。
(2)當(dāng)?shù)谝淮伟聪碌谝粋(gè)彈性按鍵時(shí)進(jìn)入時(shí)間的調(diào)節(jié)狀態(tài),按下第二個(gè)按鍵時(shí)實(shí)現(xiàn)秒的加一調(diào)節(jié),按下第三個(gè)按鍵時(shí)實(shí)現(xiàn)分的加一調(diào)節(jié),按下第四個(gè)按鍵時(shí)實(shí)現(xiàn)小時(shí)的加一調(diào)節(jié)。
(3)當(dāng)?shù)诙伟聪碌谝粋(gè)彈性按鍵時(shí)進(jìn)入鬧鐘的調(diào)節(jié)狀態(tài)(鬧鐘初始值設(shè)定為01-00-30),按下第二個(gè)按鍵時(shí)實(shí)現(xiàn)秒的加一調(diào)節(jié),按下第三個(gè)按鍵時(shí)實(shí)現(xiàn)分的加一調(diào)節(jié),按下第四個(gè)按鍵時(shí)實(shí)現(xiàn)小時(shí)的加一調(diào)節(jié)。
(4)當(dāng)?shù)谌伟聪碌谝粋(gè)彈性按鍵時(shí)進(jìn)入原顯示時(shí)間的狀態(tài)。
(5)按下第五個(gè)按鍵時(shí)實(shí)現(xiàn)24到12小時(shí)制的轉(zhuǎn)換。
(6)當(dāng)?shù)谖宕伟聪碌谝粋(gè)彈性按鍵時(shí)返回正常的顯示時(shí)間走時(shí)狀態(tài)。
3.2軟件系統(tǒng)的各個(gè)模塊
時(shí)鐘系統(tǒng)的軟件設(shè)計(jì)主要采用以下基本模塊來(lái)實(shí)現(xiàn),主程序、定時(shí)中斷服務(wù)程序、鍵盤掃描程序模塊、時(shí)鐘顯示模塊、鬧鐘顯示模塊、轉(zhuǎn)換模塊、延時(shí)模塊和蜂鳴器模塊。
主程序:對(duì)中斷程序初值進(jìn)行設(shè)定,在各種情況下對(duì)子函數(shù)的調(diào)用,保證整個(gè)程序的順序執(zhí)行。
定時(shí)中斷服務(wù)程序:用于電子時(shí)鐘的準(zhǔn)確運(yùn)行。
鍵盤掃描程序模塊:用于確定按鍵并在按鍵按下時(shí)調(diào)用相應(yīng)的程序進(jìn)行顯示。
時(shí)鐘顯示模塊:用于顯示正常走表的時(shí)間。
鬧鐘顯示模塊:用于顯示設(shè)定鬧鐘的時(shí)間。
轉(zhuǎn)換模塊:用于將默認(rèn)的24小時(shí)制轉(zhuǎn)換為12小時(shí)制。
延時(shí)模塊:程序中調(diào)用延時(shí)子程序,用于按鍵消抖動(dòng),數(shù)碼管消影等。
蜂鳴器模塊:用于在設(shè)定的鬧鐘時(shí)間與走表的時(shí)間相等時(shí),鬧鐘響起。
3.3軟件系統(tǒng)程序流圖
主程序的順序流圖如圖17所示。
圖17 主程序順序流圖
顯示程序的順序流圖如圖18所示。
圖18 顯示程序順序流圖
中斷程序的順序流圖如圖19所示。
圖19 中斷程序順序流
第四章 仿真結(jié)果與分析
1.仿真結(jié)果
上電走表仿真結(jié)果圖如圖20所示。
圖20 上電之后走表仿真結(jié)果圖
按下一次kgnxz鍵,再分別調(diào)整時(shí)、分、秒各按鍵,使得顯示時(shí)間為15-15-15仿真結(jié)果圖如圖21所示。
圖21 調(diào)整時(shí)分秒仿真結(jié)果圖
按下kzh鍵,使得顯示時(shí)間為03-15-19仿真結(jié)果圖如圖22所示。
圖22 24小時(shí)制轉(zhuǎn)換為12小時(shí)制仿真結(jié)果圖
按下第二次kgnxz鍵,再分別調(diào)整時(shí)、分、秒各按鍵,即調(diào)整的便是鬧鐘的設(shè)定時(shí)間(初始設(shè)定為01-00-30),仿真結(jié)果圖如圖23所示。
圖23 鬧鐘顯示仿真結(jié)果圖
調(diào)整鬧鐘的設(shè)定時(shí)間為03-20-30,仿真結(jié)果圖如圖24所示。
圖24 鬧鐘調(diào)整顯示仿真結(jié)果圖
按下第三次kgnxz鍵時(shí),顯示走表的時(shí)間,并且在到達(dá)設(shè)定的鬧鐘時(shí)間時(shí)蜂鳴器發(fā)出聲音,即在蜂鳴器發(fā)聲過(guò)程中P1.0口會(huì)由原高電平變?yōu)榈碗娖,仿真結(jié)果圖如圖25所示。
圖25 蜂鳴器發(fā)聲仿真圖
2.仿真結(jié)果分析
讓手機(jī)中的秒表與Protues仿真中的秒同時(shí)開始,可以發(fā)現(xiàn)他們幾乎是同步的(由于個(gè)人反應(yīng)導(dǎo)致按下手機(jī)秒表瞬間有微小誤差)。而鬧鐘設(shè)定值是完全沒(méi)有誤差的,當(dāng)時(shí)間與設(shè)定鬧鐘時(shí)間完全相等時(shí)蜂鳴器就會(huì)發(fā)聲。
第五章 總結(jié)
本次課程設(shè)計(jì)利用Keil以及Protues軟件,完成了電子時(shí)鐘系統(tǒng)的程序編寫與電路圖搭建,并對(duì)所設(shè)計(jì)的電子時(shí)鐘系統(tǒng)進(jìn)行了仿真測(cè)試。
完成本次課程設(shè)計(jì)的過(guò)程,經(jīng)歷了興奮、自信、失落、奮發(fā)、所悟、完成幾個(gè)過(guò)程。剛開始做課程設(shè)計(jì)時(shí),仔細(xì)閱讀設(shè)計(jì)的題目和要求,想到理論課學(xué)得也還差不多,以為沒(méi)什么太大困難,所用的知識(shí)書上都有,各部分程序大都可以參考課本例題完成。開始前兩天我就熟悉課本,參考課本內(nèi)容在稿紙上把自己的思路和各部分程序?qū)懥讼聛?lái),然后就是銜接起來(lái)在Keil中編寫。經(jīng)過(guò)三天的努力,毫無(wú)結(jié)果。埋頭苦干的過(guò)程是痛苦的,尤其是在按自己覺(jué)得理論上合理的算法和程序做完,發(fā)現(xiàn)根本顯示不了的時(shí)候,是迷茫,煩躁的。在第三天下午參考別人只是顯示出來(lái)走表就可以的程序,并且接受別人建議按一步一步調(diào)試去編寫的情況下,編寫運(yùn)行找錯(cuò)地不斷循環(huán)中,終于在第五天完善了程序。
通過(guò)這次課程設(shè)計(jì),我感覺(jué)到自己從課本上學(xué)到的理論知識(shí)和實(shí)踐仍有很大的差距。學(xué)習(xí)理論課時(shí)也是有實(shí)踐課的,但當(dāng)時(shí)自己只是追求明白課本例題的程序,幾乎很少在Protues上去畫例題中的仿真圖,導(dǎo)致自己對(duì)Protues的應(yīng)用不熟悉,而且也沒(méi)深入想過(guò)課本上那些小的程序之間的聯(lián)系應(yīng)用。所以學(xué)習(xí)知識(shí)不能太局限于理論,要與實(shí)踐結(jié)合。學(xué)會(huì)了單片機(jī)的一般設(shè)計(jì)過(guò)程,通常都要進(jìn)行系統(tǒng)擴(kuò)展與配置,因此,要完成一個(gè)單片機(jī)的設(shè)計(jì)工作,必須依次做到下述工作:
  • 硬件電路的設(shè)計(jì)、組裝與調(diào)試;
  • 應(yīng)用軟件的編寫、調(diào)試;
  • 完整應(yīng)用軟件的調(diào)試、固化和脫機(jī)運(yùn)行。
而在進(jìn)行硬件系統(tǒng)設(shè)計(jì)時(shí)我們應(yīng)當(dāng)盡量做到:
  • 盡可能的選擇典型電路,并符合單片機(jī)的常規(guī)使用方法;
  • 在充分滿足系統(tǒng)功能要求前提下,留余地以便于二次開發(fā);
  • 硬件結(jié)構(gòu)設(shè)計(jì)應(yīng)與軟件設(shè)計(jì)方案一并考慮;
  • 整個(gè)系統(tǒng)相關(guān)器件要力求性能的匹配;
  • 硬件上要有可靠性與抗干擾設(shè)計(jì);
  • 充分考慮單片機(jī)的帶載驅(qū)動(dòng)能力。
所以我用單片機(jī)編寫了上面的程序,因?yàn)榛A(chǔ)知識(shí)學(xué)的不怎么好,如有錯(cuò)誤之處,還望老師理解,并加以批改。通過(guò)這次設(shè)計(jì)使我對(duì)單片機(jī)有了更深入的了解。培養(yǎng)了我的動(dòng)手實(shí)踐能力。


PCB原理圖

單片機(jī)源程序如下:


  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #include<absacc.h>
  4. sbit kgnxz=P3^0; //功能選擇鍵,按一次設(shè)定時(shí)間,按兩次設(shè)定鬧鐘時(shí)間,按三次又顯示時(shí)間表  
  5. sbit ksec=P3^1;//調(diào)整秒
  6. sbit kmin=P3^2;//調(diào)整分
  7. sbit khour=P3^3;//調(diào)整時(shí)
  8. sbit kzh=P3^4;//24與12小時(shí)制轉(zhuǎn)換
  9. sbit bear=P1^0;//蜂鳴器控制口
  10. unsigned char secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0,flag=0,//flag是按鍵的計(jì)數(shù)
  11.                secshi1=0,secge1=0,minshi1=0,minge1=0,hourshi1=0,hourge1=0;//定義存儲(chǔ)時(shí)間和鬧鐘時(shí)分秒的個(gè)位和十位
  12. unsigned int num=0,sec=0,min=0,hour=0,sec1=30,min1=0,hour1=1, num1=0;//定義時(shí)間和鬧鐘的時(shí)分秒
  13. unsigned char code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//數(shù)碼管段控口
  14. void keyscan();//鍵盤掃描函數(shù)
  15. void display();//時(shí)鐘顯示函數(shù)
  16. void display1();//鬧鐘顯示函數(shù)
  17. void clock();//鬧鐘函數(shù)即蜂鳴器函數(shù)
  18. /***延時(shí)函數(shù)****/
  19. void delay(unsigned char z)
  20. {unsigned char x,y;
  21.   for(x=z;x>0;x--)
  22.    for(y=255;y>0;y--);
  23. }
  24. /***中斷函數(shù)****/
  25. void time0() interrupt 1
  26. {num++;
  27. TH0=(65536-50000)/256;
  28. TL0=(65536-50000)%256;
  29. if(num==20)
  30.    {num=0;
  31.     sec++;
  32.     if(sec==60)
  33.      {sec=0;
  34.       min++;
  35.       if(min==60)
  36.         {min=0;
  37.          hour++;
  38.          if(hour==24)
  39.            {hour=0;
  40.             }
  41.          }
  42.       }
  43.   display(); }
  44. }
  45. /******時(shí)鐘顯示函數(shù)******/
  46. void display()
  47. {
  48. secge=sec%10;
  49. secshi=sec/10;
  50. minge=min%10;
  51. minshi=min/10;
  52. hourge=hour%10;
  53. hourshi=hour/10;
  54. P2=0xfe;
  55. P0=table[secge];
  56. delay(5);
  57. P2=0xfd;
  58. P0=table[secshi];
  59. delay(5);
  60. P2=0xfb;
  61. P0=0x40;
  62. delay(5);
  63. P2=0xf7;
  64. P0=table[minge];
  65. delay(5);
  66. P2=0xef;
  67. P0=table[minshi];
  68. delay(5);
  69. P2=0xdf;
  70. P0=0x40;
  71. delay(5);
  72. P2=0xbf;
  73. P0=table[hourge];
  74. delay(5);
  75. P2=0x7f;
  76. P0=table[hourshi];
  77. delay(5);
  78. }
  79. /*****鬧鐘顯示函數(shù)****/
  80. void display1()
  81. {
  82. secge1=sec1%10;
  83. secshi1=sec1/10;
  84. minge1=min1%10;
  85. minshi1=min1/10;
  86. hourge1=hour1%10;
  87. hourshi1=hour1/10;
  88. P2=0xfe;
  89. P0=table[secge1];
  90. delay(10);
  91. P2=0xfd;
  92. P0=table[secshi1];
  93. delay(15);
  94. P2=0xfb;
  95. P0=0x40;
  96. delay(15);
  97. P2=0xf7;
  98. P0=table[minge1];
  99. delay(15);
  100. P2=0xef;
  101. P0=table[minshi1];
  102. delay(15);
  103. P2=0xdf;
  104. P0=0x40;
  105. delay(15);
  106. P2=0xbf;
  107. P0=table[hourge1];
  108. delay(15);
  109. P2=0x7f;
  110. P0=table[hourshi1];
  111. delay(15);
  112. }
  113. /*****鍵盤掃描*********/
  114. void keyscan()
  115. {if(kgnxz==0)     //功能選擇鍵是否按下
  116.     {  delay(10);//延時(shí)消抖            
  117.         if(kgnxz==0)//再次判斷鍵是否按下              
  118.           {flag++;}        //計(jì)數(shù),功能選擇鍵按鍵次數(shù)加一         
  119.           while(!kgnxz);} //釋放鍵  
  120.    if(flag==1)//功能選擇鍵
  121.    {if(ksec==0)//秒調(diào)整鍵
  122.    {delay(10);//延時(shí)消抖        
  123.     if(ksec==0)//再次判斷鍵是否按下
  124.       {sec++;//秒加加
  125.        if(sec>=60)//如果秒大于60
  126.        sec=0;//秒清零
  127.        }
  128.   while(ksec==0)//釋放鍵
  129.   display();}
  130.   if(kmin==0)
  131.     {delay(10);
  132.      if(kmin==0)
  133.        {min++;
  134.         if(min>=60)
  135.         min=0;
  136.         }
  137.   while(kmin==0)
  138.   display();
  139.      }
  140.   if(khour==0)
  141.     {delay(10);
  142.      if(khour==0)
  143.        {hour++;
  144.         if(hour==24)
  145.         hour=0;
  146.         }
  147.   while(khour==0)
  148.   display();
  149.   }
  150. }
  151. if(flag==2)//鬧鐘調(diào)整
  152.      {if(ksec==0)
  153.         {delay(5);
  154.          if(ksec==0)
  155.           {sec1++;
  156.           if(sec1==60)
  157.            sec1=0;}
  158.            while(!ksec)
  159.            {display1();delay(50);}                  
  160.              }
  161.           if(kmin==0)
  162.          {delay(5);
  163.            if(kmin==0)
  164.              {min1++;
  165.              if(min1==60)
  166.                min1=0;}
  167.            while(!kmin)
  168.                    {display1();}
  169.                  }
  170.        if(khour==0)
  171.          {delay(5);
  172.             if(khour==0)
  173.              {hour1++;
  174.              if(hour1==24)
  175.               hour1=0;}
  176.              while(!khour)
  177.              {display1();} } }}
  178. /*****蜂鳴器*********/
  179. void clock()
  180.    {    unsigned int i;
  181.        for(i=1000;i>0;i--)
  182.         {bear=1;
  183.                 P1=0xfe;
  184.                 delay(10);
  185.                 bear=0;
  186.                 P1=0xff;
  187. ……………………

  188. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載(由于我初學(xué),程序還存在一些bug,歡迎大家指正,一起學(xué)習(xí)研究):
單片機(jī)電子時(shí)鐘.rar (1.47 MB, 下載次數(shù): 627)
大家也可以在51hei搜索"電子時(shí)鐘"4個(gè)字有人很多人上傳,其中不乏也有優(yōu)秀的作品

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:437803 發(fā)表于 2018-12-3 09:15 | 顯示全部樓層
感謝分享 非常喜歡
回復(fù)

使用道具 舉報(bào)

ID:424947 發(fā)表于 2018-12-8 15:54 | 顯示全部樓層
好強(qiáng)啊,向你學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:241454 發(fā)表于 2018-12-9 12:57 | 顯示全部樓層
下載后沒(méi)有原理圖
回復(fù)

使用道具 舉報(bào)

ID:443378 發(fā)表于 2018-12-10 16:58 | 顯示全部樓層
非常棒的帖子 點(diǎn)贊
回復(fù)

使用道具 舉報(bào)

ID:656305 發(fā)表于 2019-12-5 16:46 | 顯示全部樓層
可以,非常好
回復(fù)

使用道具 舉報(bào)

ID:648640 發(fā)表于 2019-12-6 10:15 | 顯示全部樓層
謝謝樓主。
回復(fù)

使用道具 舉報(bào)

ID:658927 發(fā)表于 2019-12-8 20:56 | 顯示全部樓層
請(qǐng)問(wèn)怎么下載啊
回復(fù)

使用道具 舉報(bào)

ID:693628 發(fā)表于 2020-4-4 10:38 來(lái)自觸屏版 | 顯示全部樓層
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:769484 發(fā)表于 2020-6-6 10:44 | 顯示全部樓層
挺好的,謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:765729 發(fā)表于 2020-6-7 09:49 來(lái)自觸屏版 | 顯示全部樓層
謝謝,非常感謝,
回復(fù)

使用道具 舉報(bào)

ID:646877 發(fā)表于 2020-6-11 14:00 | 顯示全部樓層
非常好啊
回復(fù)

使用道具 舉報(bào)

ID:757976 發(fā)表于 2020-6-11 16:06 | 顯示全部樓層
謝謝分享,正好需要下載來(lái)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:780693 發(fā)表于 2020-6-17 08:10 | 顯示全部樓層
東西很棒 很實(shí)用
回復(fù)

使用道具 舉報(bào)

ID:782979 發(fā)表于 2020-6-18 15:49 | 顯示全部樓層
真的很有參考價(jià)值
回復(fù)

使用道具 舉報(bào)

ID:784577 發(fā)表于 2020-6-19 22:22 | 顯示全部樓層
太強(qiáng)了
回復(fù)

使用道具 舉報(bào)

ID:785748 發(fā)表于 2020-6-21 13:41 | 顯示全部樓層
感謝樓主
回復(fù)

使用道具 舉報(bào)

ID:769385 發(fā)表于 2020-6-21 17:05 | 顯示全部樓層
為什么我這個(gè)數(shù)碼管不能亮啊
回復(fù)

使用道具 舉報(bào)

ID:798706 發(fā)表于 2020-7-7 00:12 來(lái)自觸屏版 | 顯示全部樓層
為啥運(yùn)行不出來(lái)
回復(fù)

使用道具 舉報(bào)

ID:328014 發(fā)表于 2020-7-7 00:17 | 顯示全部樓層
fnfn36 發(fā)表于 2020-7-7 00:12
為啥運(yùn)行不出來(lái)

我剛剛用Proteus8.8版本打開后,雙擊單片機(jī)選擇hex,出來(lái)這個(gè)效果:

51hei.png
回復(fù)

使用道具 舉報(bào)

ID:805507 發(fā)表于 2020-7-22 12:12 | 顯示全部樓層
你好 我想問(wèn)下你仿真的圖在哪個(gè)地方
回復(fù)

使用道具 舉報(bào)

ID:864111 發(fā)表于 2020-12-27 00:29 | 顯示全部樓層
程序有問(wèn)題啊,調(diào)鬧鐘的時(shí)候會(huì)和正常走時(shí)有沖突,調(diào)時(shí)間也只能調(diào)一次
回復(fù)

使用道具 舉報(bào)

ID:375637 發(fā)表于 2021-4-24 12:16 | 顯示全部樓層
感覺(jué)是有問(wèn)題的,不能調(diào)整鬧鐘
回復(fù)

使用道具 舉報(bào)

ID:28992 發(fā)表于 2021-4-25 04:22 | 顯示全部樓層
great job, thank you for your sharing.
回復(fù)

使用道具 舉報(bào)

ID:948794 發(fā)表于 2021-7-5 13:20 | 顯示全部樓層
仿真后無(wú)法實(shí)現(xiàn)相應(yīng)功能,收到請(qǐng)回復(fù)
回復(fù)

使用道具 舉報(bào)

ID:997916 發(fā)表于 2022-1-4 14:07 | 顯示全部樓層
斤斤計(jì)較2 發(fā)表于 2021-4-24 12:16
感覺(jué)是有問(wèn)題的,不能調(diào)整鬧鐘

我這邊的問(wèn)題是調(diào)整鬧鐘的時(shí)候,數(shù)碼管一直在快速閃爍,您那邊這些問(wèn)題解決了嗎
回復(fù)

使用道具 舉報(bào)

ID:1140739 發(fā)表于 2024-12-21 16:45 | 顯示全部樓層

非常棒的帖子 點(diǎn)贊,學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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