❶ 數字鍾一般有幾部分電路組成
數字鍾電路一般包括以下幾個部分:晶體振盪電路、整形電路、計數器電路、數碼轉換電路、顯示驅動電路。
其中計數器電路、數碼轉換電路、顯示驅動電路都可以由單片機完成。
也有專用的時鍾電路把上述幾部分功能電路都集成在一個晶元上。
❷ 問一下,時鍾電路的原理及應用
實時時鍾電路的原理及應用
[日期:2006-11-16] 來源:互聯網 作者:未知 [字體:大 中 小]
1 引言
現在流行的串列時鍾電路很多,如DS1302、DS1307、PCF8485等。這些電路的介面簡單、價格低廉、使用方便,被廣泛地採用。本文介紹的實時時鍾電路DS1302是DALLAS公司的一種具有涓細電流充電能力的電路,主要特點是採用串列數據傳輸,可為掉電保護電源提供可編程的充電功能,並且可以關閉充電功能。採用普通32.768kHz晶振。
2 DS1302的結構及工作原理
DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鍾電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。採用三線介面與CPU進行同步通信,並可採用突發方式一次傳送多個位元組的時鍾信號或RAM數據。DS1302內部有一個31×8的用於臨時性存放數據的RAM寄存器。DS1302是DS1202的升級產品,與DS1202兼容,但增加了主電源/後背電源雙電源引腳,同時提供了對後背電源進行涓細電流充電的能力。
2.1 引腳功能及結構
圖1示出DS1302的引腳排列,其中Vcc1為後備電源,VCC2為主電源。在主電源關閉的情況下,也能保持時鍾的連續運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大於Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小於Vcc1時,DS1302由Vcc1供電。X1和X2是振盪源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數據傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單位元組或多位元組數據的傳送手段。當RST為高電平時,所有的數據傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數據傳送,I/O引腳變為高阻態。上電運行時,在Vcc≥2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串列數據輸入輸出端(雙向),後面有詳細說明。SCLK始終是輸入端。
2.2 DS1302的控制位元組
DS1302的控制字如圖2所示。控制位元組的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入DS1302中,位6如果為0,則表示存取日歷時鍾數據,為1表示存取RAM數據;位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制位元組總是從最低位開始輸出。
2.3 數據輸入輸出(I/O)
在控制指令字輸入後的下一個SCLK時鍾的上升沿時,數據被寫入DS1302,數據輸入從低位即位0開始。同樣,在緊跟8位的控制指令字後的下一個SCLK脈沖的下降沿讀出DS1302的數據,讀出數據時從低位0位到高位7。
2.4 DS1302的寄存器
DS1302有12個寄存器,其中有7個寄存器與日歷、時鍾相關,存放的數據位為BCD碼形式,其日歷、時間寄存器及其控制字見表1。
此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時鍾突發寄存器及與RAM相關的寄存器等。時鍾突發寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內容。DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態為一個8位的位元組,其命令控制字為C0H~FDH,其中奇數為讀操作,偶數為寫操作;另一類為突發方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個位元組,命令控制字為FEH(寫)、FFH(讀)。
3 DS1302實時顯示時間的軟硬體
DS1302與CPU的連接需要三條線,即SCLK(7)、I/O(6)、RST(5)。圖3示出DS1302與89C2051的連接圖,其中,時鍾的顯示用LCD。
3.1 DS1302與CPU的連接
實際上,在調試程序時可以不加電容器,只加一個32.768kHz的晶振即可。只是選擇晶振時,不同的晶振,誤差也較大。另外,還可以在上面的電路中加入DS18B20,同時顯示實時溫度。只要佔用CPU一個口線即可。LCD還可以換成LED,還可以使用北京衛信傑科技發展有限公司生產的10位多功能8段液晶顯示模塊LCM101,內含看門狗(WDT)/時鍾發生器及兩種頻率的蜂鳴器驅動電路,並有內置顯示RAM,可顯示任意欄位筆劃,具有3-4線串列介面,可與任何單片機、IC介面。功耗低,顯示狀態時電流為2μA(典型值),省電模式時小於1μA,工作電壓為2.4V~3.3V,顯示清晰。
3.2 DS1302實時時間流程
圖4示出DS1302的實時時間流程。根據此流程框圖,不難採集實時時間。下面結合流程圖對DS1302的基本操作進行編程:
根據本人在調試中遇到的問題,特作如下說明:
DS1302與微處理器進行數據交換時,首先由微處理器向電路發送命令位元組,命令位元組最高位MSB(D7)必須為邏輯1,如果D7=0,則禁止寫DS1302,即防寫;D6=0,指定時鍾數據,D6=1,指定RAM數據;D5~D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入),D0=1,指定讀操作(輸出)。
在DS1302的時鍾日歷或RAM進行數據傳送時,DS1302必須首先發送命令位元組。若進行單位元組傳送,8位命令位元組傳送結束之後,在下2個SCLK周期的上升沿輸入數據位元組,或在下8個SCLK周期的下降沿輸出數據位元組。
DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態為一個8位的位元組,其命令控制字為C0H~FDH,其中奇數為讀操作,偶數為寫操作;再一類為突發方式下的RAM寄存器,在此方式下可一次性讀、寫所有的RAM的31個位元組。
要特別說明的是備用電源B1,可以用電池或者超級電容器(0.1F以上)。雖然DS1302在主電源掉電後的耗電很小,但是,如果要長時間保證時鍾正常,最好選用小型充電電池。可以用老式電腦主板上的3.6V充電電池。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容器代替。100 μF就可以保證1小時的正常走時。DS1302在第一次加電後,必須進行初始化操作。初始化後就可以按正常方法調整時間。
4 結論
DS1302存在時鍾精度不高,易受環境影響,出現時鍾混亂等缺點。DS1302可以用於數據記錄,特別是對某些具有特殊意義的數據點的記錄,能實現數據與出現該數據的時間同時記錄。這種記錄對長時間的連續測控系統結果的分析及對異常數據出現的原因的查找具有重要意義。傳統的數據記錄方式是隔時采樣或定時采樣,沒有具體的時間記錄,因此,只能記錄數據而無法准確記錄其出現的時間;若採用單片機計時,一方面需要採用計數器,佔用硬體資源,另一方面需要設置中斷、查詢等,同樣耗費單片機的資源,而且,某些測控系統可能不允許。但是,如果在系統中採用時鍾晶元DS1302,則能很好地解決這個問題
❸ 怎樣用數字電路設計一個數字時鍾
數字鍾電路是一個典型的數字電路系統,其由時,分,秒計數器以及校時和顯示電路組成.下面介紹利用集成十進制遞增計數器(74160)和帶解碼器的七段顯示數碼管組成的數字鍾電路.計數器74160和七段顯示數碼管的功能及使用方法在8.4節已有敘述.
1. 利用兩片74160組成60進制遞增計數器
利用兩片74160組成的同步60進制遞增計數器如圖9.4-1所示,其中個位計數器(C1)接成十進制形式。十位計數器(C2)選擇QC與QB做反饋端,經與非門輸出控制清零端(CLR』),接成六進制計數形式。個位與十位計數器之間採用同步級連方式,將個位計數器的進位輸出控制端(RCO)接至十位計數器容許端(ENT),完成個位對十位計數器的進位控制。將個位計數器的RCO端和十位計數器的QC、QA端經與們由CO端輸出,作進位輸出控制信號。當計數器狀態為59時,CO端輸出高電平,在同步級聯方式下,容許高位計數器計數。選擇信號源庫中的1HZ方波信號作為計數器的測試時鍾源。
因為秒與分計數均由60進制遞增計數器來完成,為在構成數字鍾系統時使電路得到簡化,我們將圖9.4-1虛線框內建立部分用子電路表示。具體操作過程如下:
在EWB主界面內建立圖9.4-1所示60進制計數器,閉合模擬電源,經過功能測試,確保計數器工作正常。選中虛線框內所示部分電路(Circuit)菜單中的創建子電路(Creat Subcircuit……)項,主界面內出現子電路設置對話框,在對話框內添入電路名稱(60C)後,選擇在電路中置換(Replace in Circuit)項,得用子電路表示的60進制遞增計數器如圖9.4-3所示。
2、用兩片74160組成24/12進制遞增計數器
圖9.4-4所示電路是由兩片74160組成的能實現12和24進制轉換的同步遞增計數器。圖中個位與十位計數器均接成十進制計數形式,採用同步級連方式。選擇十位計數器的輸出端QB和個位計數器的輸出端QC通過與非門NAND2控制兩片計數器的清零端(CLR』),利用狀態24反饋清零,可實現24進制遞增計數。若選擇十位計數器的輸出端QA與個位計數器的輸出端QB經過與非門NAND1輸出,控制兩片計數器的清零端(CLR』),利用狀態12反饋清零,可實現12進制遞增計數。敲擊Q鍵,使開關K選擇與非門NAND2輸出或NAND1輸出可實現24和12進制遞增計數器的轉換。該計數器可利用作數字鍾的時計數器。
為簡化數字鍾電路,我們將圖9.4-4所示的24/12進制計數器虛線框內電路轉換為子電路,轉換方法與上述60進制計數器相同。用子電路表的24/12進制同步計數器如圖9.4-5所示。
3. 數字鍾系統的組成
利用60進制和24/12進制遞增計數器子電路構成的數字鍾系統如圖9.4-6所示。在數字鍾電路中,由兩個譽虛60進制同步遞增計數器完成秒、分計數,由24/12進制同步遞增計數器實現小時計數。
秒、分、時計數器之間採用同步級連判悔方式。開關K控制小時的24進制和12進制計數方式選擇。為簡化電路,直接選用信號源庫中的方波秒脈沖作數字鍾的秒脈沖信號,讀者可自行設計獨立的秒脈沖源,例如;可利用555多諧振盪器產生的秒脈沖,或者採用石英晶體振盪器經分頻器產生秒脈沖。還可以在小時顯示的基礎上,增加上、下午或日期顯示以及整點報時等,這里不再贅述。
敲擊S和F鍵,可控制開關S和F 將秒脈沖直接引入時、分計數器,實現校時。
對於圖9.4-6所示數字鍾電路,若要進一步 簡化電路還可以利用子電路嵌套功能將虛線框內電路轉換為更高一級的子電路,我們將子電路命名為CLOCK,用高一級子電路表示的數字鍾電路如圖9.4-7所示。
今後在設計用到數字鍾作單元電路的系統時可直接引用該電路,使系統得到簡化。
圖1、數字電子鍾結構圖
2、秒鍾、分鍾計時電路的設計
利用集成十進制遞增計數器(74160)和帶主解碼器的七段顯示數碼管組成的數字鍾電路。計數器74160的功能真值表如圖2所示。
根據計數器74160的功能表真值表,利用兩片74160組成的同步六十進制遞增計數器如圖3示,其中個位計數器(CL)接成十進制形式。十位計數器(C2)選擇QC與QB做反饋端,經與非門(NEND)輸出控制清零端(CLR),接成六進制計數形式。掘虛正個位與十位計數器之間採用同步級連復位方式,將個位計數器的進位輸出控制端(RCO)接至十位計數器的計數計數器的計數容許端(ENT),完成個位對十位計數器的進位控制QC,QA端經過與門AND1和AND2由CO端輸出,作為六十進制的進位輸出脈沖信號,
圖二、同步十進制計數器74160真值表
當計數器計數狀態為59時,CO端輸出高電平,在同步級聯方式下,容許高位計數器計數。電路創建完成後,進行模擬實驗時,利用信號源庫中的1HZ方波信號作為計數器的時鍾脈沖源。
圖3、秒鍾/分鍾計時電路
因為秒鍾與分鍾技術均由六十進制遞增計數器來完成,為在構成數字鍾系統時使電路得到簡化,圖虛線框內的電路創建為子電路表示。具體操作過程如下:在EWB主界面內建立如示的六十進制計數器,閉合模擬電源開關,經過計數器功能測試,確定計數器工作正常,選中虛線框內所示部分電路後,再選擇電路菜單中創建子電路框內添入子電路名稱(分計時)後,選擇在電路中置換選項,得到用子電路表示的六十進制遞增計數器,即秒鍾/分鍾計時子電路,如圖4
圖4、分鍾計時子電路對話框
圖5、分鍾計時電路
四、24/12進制的能實現遞增計數器
24/12進制的能實現十二四進制的同步遞增計數器。如圖四。所示。圖中個位與十位計數器均接成十進制計數形式,採用同步級聯復位方試。 選擇十位計數器的輸出端Qb和個位計數器 輸出端Qc通過與非門NAND2的控制兩片計數器的清零端CLR,當計數器的輸出狀態為00100100時,立即解碼清零,實現二進制糹遞增計數器:若選擇十位二進制的輸出端Q a與個位計數器的輸出端Qb經與非門NAD1控制兩片計數器的清零端CLR,當計數器的輸出狀態為00100100時,立即解碼反饋為零,實現二十進制遞增計數器,若選擇十位計數器的輸出端Qb經與門NAND1控制兩片計數器的清零端CLR。當計數器的輸出端狀態為00010010時,立即解碼反饋為零,實現十二進制遞增計數,敲Q,開關Q 選擇與非門NAND2輸出和NA民NAND1輸出實現二十四進制遞增計數器的轉換。計數器用作數子鍾的計數器。
圖6、24/12二進制計時電路
為了簡化數子電子鍾的電路,需要將圖765的24/12二進制計數器的線框內電路轉換為子電路,方法與上面六二進制的分計數器一樣,用子電路表示24/12進同步計數器如圖7。
圖7、24/12計時電路
五、數字電子鍾系統的組成
利用六十進制和24/12進制遞增計數器子電路構成的數字電子鍾系統如圖8所示,在數字電子鍾電路中,由兩個六十進制同步遞增計數器分別構成秒鍾計時器和分計時器,級連夠完成秒 ,分計時、由24/12進制同步遞增計實現小時計數。秒、分、時計數器之間採用同步級連方式,開關(Q)控制小時的二十四進制和十二進制計數方式選擇,敲擊S和F鍵,可控制開關S和F將秒脈沖直接引入時,分計數器,實現時計數器和分計數器的校時。
對於圖所示數字電子鍾電路,為了進一步簡化電路,還可以利用子電路嵌套功能,將虛線框內電路轉換為更高一級的子電路,成為子電路數字電子鍾,用嵌套子電路表示的數字電子鍾電路如圖8所示
圖8、24/12進制計數電路
以上創建的各種子電路都已經存入自定義元器件庫中,在其他電子系統設計中需要時,可以直接調用這些子電路,使系統的設計更方便,更快捷。
訪真實驗時,可直接選用信號源庫中的方波秒脈沖作數字鍾的秒脈沖信號,作為一個設計內容,讀者可自行設計獨立的秒脈沖信號源,可利用555定時器組成多諧震盪器產生秒鍾脈沖信號,或者採用石英晶體震盪器經分頻器產生秒脈沖,脈沖頻率更穩定,計時誤差會更小,還可以在小時顯示的基礎上,增加上下午或日期顯示,整點報時電路以及作息時間提示電路等。
❹ 誰知道用74LS161設計數字鍾(可校時),怎麼弄
數字電子技術基礎大作業
一、設計任務
利用所學的數字電子技術基礎知識,查閱相關資料和文獻,試設計一數字鍾電路。
二、設計條件
基於Multisim模擬軟體設計與調試。
三、設計要求
① 時間以24小時為一個周期;
② 顯示時、分、秒;
③ 具有校時功能,可以分別對時及分進行單獨校時,使其校正到標准時間; ④ 要求針對你的設計寫出你的設計實現過程;
⑤ 可以自己在此基礎上增加功能。
四、完成時間:
(1)完成截止時間:2009年6月21日;
(2)需交材料:設計文檔和實現的Multisim模擬文件
(發到教師郵箱,文件名: 學號_姓名 )
1/10
可供參考的設計內容(12小時周期)(設計不局限於以下思想和器件)
1. 設計思想:
數字鍾主要分為數碼顯示器、60進制和12進制計數器、頻率振盪器和校時這幾個部分。數字鍾要完成顯示需要6個數碼管,八段的數碼管需要解碼器械才能顯示,然後要實現時、分、秒的計時需要60進制計數器和12進制計數器,在在模擬軟體中發生信號可以用函數發生器模擬,頻率可以隨意調整。60進制可能由10進制和6進制的計數器串聯而成,而小時的12進制可以採用74LS191的十進制計數器和D觸發器來產生計數和進位。頻率振盪器可以由晶體振盪器分頻來提供,也可以由555定時來產生脈沖並分頻為1HZ。主體思路如下圖所示:
2. 電路結構與原理圖
(1)數碼顯示器
在Multisim8模擬器件中,數碼管分為需要解碼器顯示的和無需解碼直接顯示的兩種,需要解碼器的數碼管有共陽極和共陰極之分,此電路採用的是不需解碼直接顯示的數碼管(如圖1所示),這樣就簡化了電路,增加了調試的正確性。如圖2所示的數碼管需要解碼器才能顯示,74LS47是驅動共陽極數碼管的
2/10
器件,74LS48是驅動共陰極數碼管的器件。
圖1 不需解碼管的數碼管
圖2 需解碼器的雙數碼顯示
圖片載入失敗
點擊圖片重新載入
圖3 解碼器驅動共陰極數碼管電路
如圖3所示電路,從74LS48的A,B,C,D端輸入二進制數便可完成顯示功能,而圖1的數碼管直接輸入二進制數便可顯示。
(2)60進制計數和12進制計數
在設計數字鍾電路中,進制是最主要的一部分,它關系著顯示的正確與否。關鍵在於了解各種器件的作用及功能,而且在調試的過程中容不容易出問題,電路會不會變得復雜,器件的選擇最好要統一,以便調試成功。
① 分和秒的六十進制:
從常理可知,數字鍾需要六十進制和十二進制計數器,而六十進制可通過十進制和六進制串聯而成,從而完成數碼顯示。因為同步加法計數器74LS161可構成16進制以下的計數器,所以此電路中分和秒的計時都採用74LS161來進行設計。而小時是12進制計數,依然用74LS161,但電路作了改進。
3/10
在數字鍾的控制電路中,分和秒的控制都是一樣的,都是由一個十進制計數器和一個六進制計數器串聯而成的,在電路的設計中我採用的是統一的器件74LS161N的反饋置數法來實現十進制功能和六進制功能,十進制的同步加法計數器有74160和74192,而沒有現成的六進制同步加法計數器。圖4是用74LS161構成六進制計數器的結構圖,根據74LS161的結構把輸出端的0101(十進制為
5)用一個與非門74LS00引到Load端便可置0,這樣就實現了六進制計數。圖5是用74LS161構成十進制計數器的結構圖,同樣,在輸出端的1001(十進制為9)用一個與非門74LS00引到Load端便可置0,這樣就實現了十進制計數。在分和秒的進位時,用秒計數器的Load端接分計數器的CLK控制時鍾脈沖,脈沖在上升沿來時計數器開始計數。
圖片載入失敗
點擊圖片重新載入
圖4 74LS161構成六進制計數器
4/10
圖片載入失敗
點擊圖片重新載入
圖5 74LS161構成十進制計數器
② 小時的十二進制:
數字鍾的小時要用到十二進制,要用到十進制,並且在計數到12時要清零,所以不能用單純的十進制計數器,考慮到在12時要清零,還是要用兩個74LS161來實現。具體的電路圖如圖6。個位採用十進制,而且當同時滿足十位為1,各位為2時,兩個計數器同時清零,這自然就要想到用與非門和非門反饋接到清零或置數端來實現,電路也是用反饋置的方法。其他原理與①相同,不再細講。。
(3) 校時
由於Multisim可以模擬,並有函數發生器,最簡單的校時方法就是通過開關用函數發生器對CLK端輸入脈沖以改變顯示的數值。此電路的設計就是採用這種方法校時的,雖可以只用一個函數發生器來實現同步,但調試時結果不能體現出來,所以用另外的函數發生器來實現校時。
❺ 數字電子技術課程設計-------數字顯示電子鍾
《數字鍾設計報告》
指導老師:
姓名:
學號:
電子設計
一、 引言
大屏幕數字鍾套件採用6位數字(二十四小時制)顯示,格式為「時時:分分:秒秒」,電路板尺寸為330MM*70MM,是以前大屏幕數字鍾的改進版,解決了以前大屏幕數字鍾顯示數字「6」和「9」不美觀的現象;解決了發光二極體引腳焊盤間距過大容易插壞LED的現象;解決了用戶如果自己安裝外殼時,電源和外接調時開關不方便安裝的現象。純硬體電路,每個筆畫由三個LED組成,頻差為-200PPM的石英晶體定時,走時精度高。 工作電壓:交流5V—9V,直流6V—10V。
二、電源接線圖
三、板外接線圖
四、 總體設計
採用同步電路,匯流排結構,時鍾信號分別加到各個模塊,各個模塊功能相對獨立,主要功能集中在模塊內部,模塊功能較為獨立,模塊間連線簡單,易於擴展,本次設計採用此方案。
秒計數和分計數為60進制,時計數為24進制,為了簡化設計,秒和分計數採用同一單元。控制模塊有兩部分,一為實現調整切換,二為實現顯示切換。現對本方案中的各個主要功能模塊的介面定義如下:
1. 60進制模塊(電路圖中模塊名稱為60count,下同。)
實現同步60進制計數,可調整
電源 5v
時鍾信號輸入 接1Hz的信號源
進位輸入 接秒的進位信號,實現秒功能時,接低電平。
進位輸出 秒模塊接分模塊,分模塊接時模塊
顯示輸出 接到顯示匯流排,能閃爍
調整使能端 入0有效,有效時,顯示信號輸出,同時屏蔽進位輸入和進位輸出,允許調整信號輸入。
顯示使能端 入0有效
調整信號輸入
2. 24進制模塊(24count)
實現同步24進制計數,可調整
電源,時鍾信號 同上
進位輸入 接分的進位信號
進位輸出 秒模塊接分模塊,分模塊接時模塊
顯示輸出 同上
調整使能端,顯示使能端,調整信號輸入 同上
4. 控制模塊(fun,func)
管理匯流排資源,對各個模塊輸出控制信號
電源 5v VCC
調整切換信號 接各個需要調整的模塊
調整信號 接到各個需要調整的模塊
顯示切換信號 接到各個需要共享顯示匯流排的模塊
控制信號輸出 接到各個模塊,有且只能有1個為0
至此,本階段就結束了。在上面的介面定義中,也可以發現,各個模塊的
立性是很強的,這樣的結構使得以後的擴展很容易。
五、電路圖
六、裝好的成品晚上拍的照片:
七、 心得體會
經過長達兩個星期的設計與思考,最終完成了數字鍾的設計。其間遇到了許多問題,但最後都一一得到解決。現將心得體會總結如下:
1. 設計初期要考慮周到,否則後期改進很困難。應該在初期就多思考幾個方案,進行比較論證,選擇最合適的方案動手設計。總體設計在整個設計過程中非常重要,應該花較多的時間在上面。
2. 方案確定後,才開始設計。設計時多使用已學的方法,如列真值表,化簡邏輯表達式,要整體考慮,不可看一步,做一步。在整體設計都正確後,再尋求簡化的方法。
3. 在設計某些模塊的時候無法把握住整體,這時可以先進行小部分功能的實現,在此基礎上進行改進,雖然可能會多花一些時間,但這比空想要有效的多。
4. 盡可能是電路連線有序,模塊之間關系清楚,既利於自己修改,也利於與別人交流。如果電路亂的連自己都看不懂,那還如何改進和擴展。
5. 很多難點的突破都來自於與同學的交流,交流使自己獲得更多信息,開拓了思路,因此要重視與別人的交流。
6. 應該有較好的理論基礎,整個實驗都是在理論的指導下完成了,設計過程中使用了許多理論課上學的內容,如真值表、卡拉圖等。本次設計把理論應用到了實踐中,同時通過設計,也加深了自己對理論知識的理解和掌握。
❻ AT89S51單片機外部時鍾電路由什麼構成時鍾電路起什麼作用
單片機外部時鍾電路通常由一個晶振配兩個片電容構成,時鍾電路是為單片機提供時鍾脈沖信號,單片機必須有時間信號才能正常工作。
❼ 用單片機設計一個時鍾,可顯示時和分,可以調時間,也要有鬧鍾功能,要有設計的電路圖
其實不用定時中斷也能實現功能:
#include<reg51.h> 主函數
unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};定義0-9數組
unsigned int tmp;定義變數
void delay(unsigned int xms)定義延時函數
{unsigned int j,i;
for(i=0;i<xms;i++)
for(j=0;j<100;j++);
}
void disp()定義子函數
{
P1=tmp;
delay(1);
P2=0xff;
tmp=tmp<<1;
}
void main( )
{
unsigned char z,s=00,m=00,h=00;給時鍾初始值
while(1)
{
for(z=0;z<100;z++)
{
tmp=0x01;
P2=tab[h/10];小時顯示
disp();
P2=tab[h%10];
disp();
P2=tab[m/10];分鍾顯示
disp();
P2=tab[m%10];
disp();
P2=tab[s/10];秒顯示
disp();
P2=tab[s%10];
disp();
}
s++;
while(s==60)秒進一位,到60清0
{
m++;
s=00;
}
while(m==60)分鍾進一位,到60清0
{
h++;
m=00;
}
while(h==24)小時進一位,到24清0
{
h=00;
}
}
}