第一篇:數字鐘課程設計心得
一、設計目的
數字鐘是一種用數字電路技術實現時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。
數字鐘從原理上講是一種典型的數字電路,其中包括了組合邏輯電路和時序電路。
因此,我們此次設計與制做數字鐘就是為了了解數字鐘的原理,從而學會制作數字鐘.而且通過數字鐘的制作進一步的了解各種在制作中用到的中小規模集成電路的作用及實用方法.且由于數字鐘包括組合邏輯電路和時敘電路.通過它可以進一步學習與掌握各種組合邏輯電路與時序電路的原理與使用方法.二、設計要求
(1)設計指標
①時間以12小時為一個周期;
②顯示時、分、秒;
③具有校時功能,可以分別對時及分進行單獨校時,使其校正到標準時間;
④計時過程具有報時功能,當時間到達整點前10秒進行蜂鳴報時;
⑤為了保證計時的穩定及準確須由晶體振蕩器提供表針時間基準信號。
(2)設計要求
①畫出電路原理圖(或仿真電路圖);
②元器件及參數選擇;
③電路仿真與調試;
④pcb文件生成與打印輸出。
(3)制作要求自行裝配和調試,并能發現問題和解決問題。
(4)編寫設計報告寫出設計與制作的全過程,附上有關資料和圖紙,有心得體會。
三、原理框圖
1.數字鐘的構成
數字鐘實際上是一個對標準頻率(1hz)進行計數的計數電路。由于計數的起始時間不可能與標準時間(如北京時間)一致,故需要在電路上加一個校時電路,同時標準的1hz時間信號必須做到準確穩定。通常使用石英晶體振蕩器電路構成數字鐘。
(a)數字鐘組成框圖
2.晶體振蕩器電路
晶體振蕩器電路給數字鐘提供一個頻率穩定準確的32768hz的方波信號,可保證數字鐘的走時準確及穩定。不管是指針式的電子鐘還是數字顯示的電子鐘都使用了晶體振蕩器電路。一般輸出為方波的數字式晶體振蕩器電路通常有兩類,一類是用ttl門電路構成;另一類是通過cmos非門構成的電路,本次設計采用了后一種。如圖(b)所示,由cmos非門u1與晶體、電容和電阻構成晶體振蕩器電路,u2實現整形功能,將振蕩器輸出的近似于正弦波的波形轉換為較理想的方波。輸出反饋電阻r1為非門提供偏置,使電路工作于放大區域,即非門的功能近似于一個高增益的反相放大器。電容c1、c2與晶體構成一個諧振型網絡,完成對振蕩頻率的控制功能,同時提供了一個180度相移,從而和非門構成一個正反饋網絡,實現了振蕩器的功能。由于晶體具有較高的頻率穩定性及準確性,從而保證了輸出頻率的穩定和準確。
一、設計目的
數字鐘是一種用數字電路技術實現時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。
數字鐘從原理上講是一種典型的數字電路,其中包括了組合邏輯電路和時序電路。
因此,我們此次設計與制做數字鐘就是為了了解數字鐘的原理,從而學會制作數字鐘.而且通過數字鐘的制作進一步的了解各種在制作中用到的中小規模集成電路的作用及實用方法.且由于數字鐘包括組合邏輯電路和時敘電路.通過它可以進一步學習與掌握各種組合邏輯電路與時序電路的原理與使用方法.二、設計要求
(1)設計指標
①時間以12小時為一個周期;
②顯示時、分、秒;
③具有校時功能,可以分別對時及分進行單獨校時,使其校正到標準時間;
④計時過程具有報時功能,當時間到達整點前10秒進行蜂鳴報時;
⑤為了保證計時的穩定及準確須由晶體振蕩器提供表針時間基準信號。
(2)設計要求
①畫出電路原理圖(或仿真電路圖);
②元器件及參數選擇;
③電路仿真與調試;
④pcb文件生成與打印輸出。
(3)制作要求自行裝配和調試,并能發現問題和解決問題。
(4)編寫設計報告寫出設計與制作的全過程,附上有關資料和圖紙,有心得體會。
三、原理框圖
1.數字鐘的構成
數字鐘實際上是一個對標準頻率(1hz)進行計數的計數電路。由于計數的起始時間不可能與標準時間(如北京時間)一致,故需要在電路上加一個校時電路,同時標準的1hz時間信號必須做到準確穩定。通常使用石英晶體振蕩器電路構成數字鐘。
(a)數字鐘組成框圖
2.晶體振蕩器電路
晶體振蕩器電路給數字鐘提供一個頻率穩定準確的32768hz的方波信號,可保證數字鐘的走時準確及穩定。不管是指針式的電子鐘還是數字顯示的電子鐘都使用了晶體振蕩器電路。一般輸出為方波的數字式晶體振蕩器電路通常有兩類,一類是用ttl門電路構成;另一類是通過cmos非門構成的電路,本次設計采用了后一種。如圖(b)所示,由cmos非門u1與晶體、電容和電阻構成晶體振蕩器電路,u2實現整形功能,將振蕩器輸出的近似于正弦波的波形轉換為較理想的方波。輸出反饋電阻r1為非門提供偏置,使電路工作于放大區域,即非門的功能近似于一個高增益的反相放大器。電容c1、c2與晶體構成一個諧振型網絡,完成對振蕩頻率的控制功能,同時提供了一個180度相移,從而和非門構成一個正反饋網絡,實現了振蕩器的功能。由于晶體具有較高的頻率穩定性及準確性,從而保證了輸出頻率的穩定和準確。
(f)帶有消抖電路的校正電路
6.整點報時電路
電路應在整點前10秒鐘內開始整點報時,即當時間在59分50秒到59分59秒期間時,報時電路報時控制信號。
當時間在59分50秒到59分59秒期間時,分十位、分個位和秒十位均保持不變,分別為5、9和5,因此可將分計數器十位的qc和qa、個位的qd和qa及秒計數器十位的qc和qa相與,從而產生報時控制信號。
報時電路可選74hc30來構成。74hc30為8輸入與非門。
四、元器件
1.四連面包板1塊(編號a45)
2.鑷子1把
3.剪刀1把
4.共陰八段數碼管6個
5.網絡線2米/人
6.cd4511集成塊6塊
7.cd4060集成塊1塊
8.74hc390集成塊3塊
9.74hc51集成塊1塊
10.74hc00集成塊4塊
11.74hc30集成塊1塊
12.10mω電阻5個
13.500ω電阻14個
14.30p電容2個
15.32.768k時鐘晶體1個
16.蜂鳴器10個(每班)
1)芯片連接圖
1)74hc00d2)cd4511
3)74hc390d4)74hc51d
2.面包板的介紹
面包板一塊總共由五部分組成,一豎四橫,面包板本身就是一種免焊電板。
面包板的樣式是:
面包板的注意事項:
1.面包板旁一般附有香蕉插座,用來輸入電壓、信號及接地。
2.上圖中連著的黑線表示插孔是相通的。
3.拉線時,盡量將線緊貼面包板,把線成直角,避免交叉,也不要跨越元件。
通過這次學習,讓我對各種電路都有了大概的了解,所以說,坐而言不如立而行,對于這些電路還是應該自己動手實際操作才會有深刻理解。
3.對設計的建議
我希望老師在我們動手制作之前應先告訴我們一些關于所做電路的資料、原理,以及如何檢測電路的方法,還有關于檢測芯片的方法。這樣會有助于我們進一步的進入狀況,完成設計.機械課程設計心得體會責任
第二篇:數字鐘課程設計心得
免費
分享
創新
數字鐘課程設計心得范文
一、設計目的
數字鐘是一種用數字電路技術實現時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。
數字鐘從原理上講是一種典型的數字電路,其中包括了組合邏輯電路和時序電路。
因此,我們此次設計與制做數字鐘就是為了了解數字鐘的原理,從而學會制作數字鐘.而且通過數字鐘的制作進一步的了解各種在制作中用到的中小規模集成電路的作用及實用方法.且由于數字鐘包括組合邏輯電路和時敘電路.通過它可以進一步學習與掌握各種組合邏輯電路與時序電路的原理與使用方法.二、設計要求
(1)設計指標
①時間以12小時為一個周期;
②顯示時、分、秒;
③具有校時功能,可以分別對時及分進行單獨校時,使其校正到標準時間;
④計時過程具有報時功能,當時間到達整點前10秒進行蜂鳴報時;
⑤為了保證計時的穩定及準確須由晶體振蕩器提供表針時間基準信號。
(2)設計要求
①畫出電路原理圖(或仿真電路圖);
②元器件及參數選擇;
③電路仿真與調試;
④pcb文件生成與打印輸出。
(3)制作要求自行裝配和調試,并能發現問題和解決問題。
(4)編寫設計報告寫出設計與制作的全過程,附上有關資料和圖紙,有心得體會。
三、原理框圖
1.數字鐘的構成
免費
分享
創新
數字鐘實際上是一個對標準頻率(1hz)進行計數的計數電路。由于計數的起始時間不可能與標準時間(如北京時間)一致,故需要在電路上加一個校時電路,同時標準的1hz時間信號必須做到準確穩定。通常使用石英晶體振蕩器電路構成數字鐘。
(a)數字鐘組成框圖
2.晶體振蕩器電路
晶體振蕩器電路給數字鐘提供一個頻率穩定準確的32768hz的方波信號,可保證數字鐘的走時準確及穩定。不管是指針式的電子鐘還是數字顯示的電子鐘都使用了晶體振蕩器電路。一般輸出為方波的數字式晶體振蕩器電路通常有兩類,一類是用ttl門電路構成;另一類是通過cmos非門構成的電路,本次設計采用了后一種。如圖(b)所示,由cmos非門u1與晶體、電容和電阻構成晶體振蕩器電路,u2實現整形功能,將振蕩器輸出的近似于正弦波的波形轉換為較理想的方波。輸出反饋電阻r1為非門提供偏置,使電路工作于放大區域,即非門的功能近似于一個高增益的反相放大器。電容c1、c2與晶體構成一個諧振型網絡,完成對振蕩頻率的控制功能,同時提供了一個180度相移,從而和非門構成一個正反饋網絡,實現了振蕩器的功能。由于晶體具有較高的頻率穩定性及準確性,從而保證了輸出頻率的穩定和準確。
一、設計目的
數字鐘是一種用數字電路技術實現時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。
數字鐘從原理上講是一種典型的數字電路,其中包括了組合邏輯電路和時序電路。
因此,我們此次設計與制做數字鐘就是為了了解數字鐘的原理,從而學會制作數字鐘.而且通過數字鐘的制作進一步的了解各種在制作中用到的中小規模集成電路的作用及實用方法.且由于數字鐘包括組合邏輯電路和時敘電路.通過它可以進一步學習與掌握各種組合邏輯電路與時序電路的原理與使用方法.資料來源:http://www.tmdps.cn/data/xdth/
第三篇:數字鐘課程設計
南 昌 大 學
數字電路與邏輯設計實驗報告
姓
名:
付
容 學
號:
6100212236 學
院:
信息工程學院 班
級:
電氣信息I類126班 實驗名稱:
數字鐘設計
一、實驗目的
1、熟悉數字系統的分析和設計方法;
2、熟悉根據任務的要求合理選擇集成器件的方法;
3、學習和掌握數字鐘的工作原理及設計方法,并且通過對數字鐘的制作
進一步了解各種中、小規模集成電路的功能及使用方法;
4、學習使用protel軟件進行電子電路的原理圖設計、印制電路板設計;
5、初步掌握PCB板的制作流程及其工藝;
6、掌握數字系統的調試方法;
7、提高檢查故障和排除故障的能力。
二、實驗任務
利用中、小規模集成電路設計并制作一個數字顯示時、分、秒的時鐘,應具備如下功能:
1、能進行正常的時、分、秒計時功能,以數字形式顯示時、分、秒的時間;
2、時應以24小時計時周期,計數序列為00—23;
3、計時出現誤差時能校正,可以分別對時和分進行校正。
三、實驗器材
計算機、protel軟件、555定時器一個、6個74LS161、3個74LS90、個74LS48、6個數碼管、若干個74LS00和74LS04、電源、開關。
四、實驗原理
1、電路的總體原理框圖
數字鐘是一個將“ 時”,“分”,“秒”顯示于人的視覺器官的計時裝置。它
2、數字鐘的構成的計時周期為24小時,顯示滿刻度為23時59分59秒,另外應有校時功能。因此,一個基本的數字鐘電路主要由譯碼顯示器、“時”,“分”,“秒”計數器、校時電路、振蕩電路組成。數字鐘實際上是一個對標準頻率(1HZ)進行計數的計數電路。由于計數的起始時間不可能與標準時間(如北京時間)一致,故需要在電路上加一個校時電路,同時標準的1HZ時間信號必須做到準確穩定。通常使振蕩電路構成數字鐘。
⑴555振蕩電路
555定時器振蕩電路給數字鐘提供一個頻率穩定準確的1KHz的方波信號,可保證數字鐘的走時準確及穩定。不管是指針式的電子鐘還是數字顯示的電子鐘都使用了555振蕩電路。
⑵分頻器電路
分頻器電路用74LS90芯片將1kHz的高頻方波信號經3次分頻后得到1Hz的方波信號供秒計數器進行計數。分頻器實際上也就是計數器。
⑶時間計數器電路
時間計數電路由秒個位和秒十位計數器、分個位和分十位計數器及時個位和時十位計數器電路構成,其中秒個位和秒十位計數器、分個位和分十位計數器為60進制計數器,而根據設計要求,時個位和時十位計數器為12進制計數器。⑷譯碼驅動電路
譯碼驅動電路將計數器輸出的8421BCD碼轉換為數碼管需要的邏輯狀態,并且為保證數碼管正常工作提供足夠的工作電流。
⑸數碼管
數碼管通常有發光二極管(LED)數碼管和液晶(LCD)數碼管,本設計提供的為LED數碼管。
3、數字鐘工作原理
數字電子鐘的原理方框圖如上圖,該電路系統由秒信號發生器、“時、分、秒”計數器、譯碼器及數碼顯示管、校時電路、整點報時電路等組成。秒信號發生器是整個系統的時基信號,它直接決定計時系統的精度,本實驗用555定時器來實現。將標準秒信號送入“秒計數器”,“秒計數器”采用六十進制計數器,每累計60秒發出一個“分脈沖”信號,該信號作為“分計數器”的時鐘脈沖。“分計數器”采用六十進制計數器,每累計60分鐘發出一個“時脈沖”信號,該信號作為“時計數器”的時鐘脈沖。譯碼顯示電路將“時”、“分”、“秒”計數器的輸出狀態經七段顯示譯碼器譯碼,通過LED七段共陰極數碼顯示管顯示出來。整點報時電路是根據計時系統的輸出狀態產生脈沖信號,然后去觸發一音頻發生器實現報時。校時電路是用來對“時”、“分”、“秒”顯示數字進行校對調整的。
五、實驗設計方案
1、六十進制計數器電路
由兩片74160構成的六十進制計數器如下圖所示。首先將兩片74160構成一百進制計數器,然后采用整體置數法接成六十進制計數器。電路的59狀態譯碼產生LD'=0信號,同時加到兩片74LS161上,在下一個計數脈沖(第60個計數脈沖)到達時將0000同時輸入兩片74LS161中,從而得到六十進制計數器。進位輸出可有門電路G的輸出直接得到。
2、二十四進制計數器電路
由兩片74LS161構成的二十四進制計數器如下圖所示。首先將兩片74160構成一百進制計數器,然后采用整體置數法接成二十四進制計數器。電路的23狀態譯碼產生LD'=0信號,同時加到兩片74LS161上,在下一個計數脈沖(第24個計數脈沖)到達時將0000同時輸入兩片74LS161中,從而得到二十四進制計數器。
3、秒信號發生器電路
秒信號發生器是整個系統的時基信號,它直接決定計時系統的精度,本實驗用555定時器來實現。先將555定時器的2、6管腳連在一起構成施密特觸發器,然后再通過RC積分電路構成多諧振蕩器。接入電路的二極管D1、D2使電容C1的充電電流和放電電流流經不同的路徑,充電電流只流經R1,放電電流只流經R2,因此電容C1的充電時間為
T1=R1C1Ln2 電容C1的放電時間為
T2=R2C1Ln2 輸出脈沖的占空比為
q=R1/(R1+R2)若取R1=R2=71千歐然后與一個2千歐的電位器串聯,則電路的振蕩周期為
T=T1+T2=1s
4、校時電路
校準電路實質上是由一個555定時器接成的頻率為1KHz的多諧振蕩器,如下圖示。從圖中可知,秒脈沖進入計數器,數字鐘正常工作。校時時先按下按鈕J2,若按下J2則10Hz脈沖信號進入分計數器的個位,而分脈沖被阻止進入,因而較快的校準分計數器的計數值;若按下J1則100Hz脈沖信號進入時計數器個位,而時脈沖被阻止進入,因而較快的校準時計數器的計數值。
5、譯碼顯示電路
譯碼電路的功能是將“秒”、“分”、“時”計數器的輸出代碼進行翻譯變成相應的數字。用于驅動LED七段數碼管的譯碼器為74LS48。由74LS48和LED七段數碼管組成的數碼顯示電路如下圖所示。將“秒”、“分”、“時”計數器的每位輸出分別接到相應七段譯碼器的輸入端,便可進行不同數字的顯示。在譯碼器輸出與數碼管之間串聯的為限流電阻。
六、實驗總電路圖
Multisim仿真原理圖
七、實驗仿真結果 1、1kHz脈沖信號:
2、秒時鐘:
3、分時鐘:
4、時時鐘:
5、實驗總仿真圖:
八、實驗總結
1、仿真過程中遇到的問題及解決方法 剛接到數字鐘這個實驗設計的時候,感覺腦子中一片混亂,理不出來一個清晰的思路。但是我先看了一遍課本,充分理解、熟悉課本中所講的每個集成芯片的功能和它們的接法,然后又查閱了相關的資料。經過這個過程之后,我構思出來了數字鐘大致的電路圖和所要用到的集成芯片。但是在真正設計、畫電路圖的時候卻不斷出現了一些細節問題。比如用74LS161芯片構成60進制計數器后,在Multisim里找不到實驗室用到的CD4511BE型號的譯碼器,那我該如何選合適的譯碼器進行譯碼?用555定時器產生1Hz的秒脈沖信號后,在保證原理圖一定正確的情況下,為什么數碼管一直顯示0,不會走數字呢?24進制的地方為什么仿真結果總是會有些不對,從09變成10的時候中間會有一個類似于“8”一樣的數出現,使得24進制與60進制不能同步進行,總是慢一秒?。于是我又去查資料,并請教了一些同學、老師才逐漸掌握了解決這些問題的方法,最后將問題一個個的擊破了。經上網百度后,我知道用74LS48譯碼比較合適;問同學、老師后,我知道1Hz數碼管能走數字,但是周期太長,所以將555定時器改成1KHz的才能很直觀的看到實驗仿真結果;在24進制的個位上加一個非門后就能實現正常功能。經過幾次修改完善之后,我的設計仿真終于做出來了。
2、畫protel原理圖遇到的問題
①用單刀雙擲開關實現校時電路時發現所選開關沒有封裝,后來經老師點撥在“元件庫”中查找到了帶封裝的單刀雙擲開關;
②不知道花PCB板的時候需要在板子的某個角落放總電源,否則整塊板子無法供電使用,就連555定時器也需要電源驅動才能正常產生脈沖信號,加個電源開關更能使整個電路設計的合理、規范;
3、心得體會
此次的數字鐘設計重點在于理論設計、對各種集成芯片的應用和電路本身的原理的熟悉,與電路的仿真和實際的連線有很大的差距。在此次的數字鐘設計過程中,讓我更進一步地熟悉了芯片的結構及掌握了各芯片的工作原理和其具體的使用方法。在連接六十進制及其進位輸出和用555定時器構成多諧振蕩器的接法中,熟悉了邏輯電路及其芯片各引腳的功能,在電路出錯時能準確地找出錯誤所在并及時糾正。
這次電子課程設計讓我收獲很大,通過這次的設計實驗進一步地增強了實驗的動腦、動手能力。讓我體會到了學習知識時理論聯系實際的重要性,并發現自己的知識面是很窄的,對很多簡單的理論問題都比較難于解決,更別說實際的的問題了。所以,以后遇到這種動手操作的能力我一定要格外重視,并且努力完成它,爭取做到最好的效果。
第四篇:數字鐘課程設計
ORG 0000H SJMP ONE ORG 0003H LJMP ELEVEN ORG 000BH LJMP NINE ORG 001BH LJMP TEN ONE:LED12 EQU 30H;數碼管12顯示緩存 LED34 EQU 31H;數碼管34顯示緩存 LED56 EQU 32H;數碼管56顯示緩存
COUNT EQU 33H;定時器T0(用來走時)計數值存儲器(計數中斷20次到1秒)COUNTS EQU 34H;定時器T1(用來預置)計數值存儲器(計數中斷15次到預置值加一)HOUR EQU 40H;以下為時間,日期,鬧鈴時間,生日的存儲地址 MIN EQU 41H SECOND EQU 22H YEAR EQU 50H MONTH EQU 23H DAY EQU 52H RH EQU 60H;鬧鈴小時 RM EQU 61H;鬧鈴分 RE EQU 62H;鬧鈴使能 BM EQU 71H;生日-月份 BD EQU 72H;生日-天 MOV LED12,#0 MOV LED34,#0 MOV LED56,#0 MOV COUNT,#0 MOV COUNTS,#0 MOV HOUR,#0 MOV MIN,#0 MOV SECOND,#0 MOV YEAR,#0 MOV MONTH,#1 MOV DAY,#1 MOV RH,#0 MOV RM,#0 MOV RE,#0 MOV BM,#6 MOV BD,#1 BS BIT 00H;birthday symbol生日標志(到生日那天就為1)
SS BIT 01H;set symbol預置信號(按下中斷預置為1,便開始閃爍和預置)GS BIT 02H;glisten symbol閃爍標志 FC BIT 03H;frequency control頻率控制 NB BIT 04H;neglect bitrhday symbol 忽略生日標志 CLR BS CLR SS CLR GS CLR FC CLR NB SETB 05H;生日顯示有效標志位 MOV IP,#02H;中斷優先級:T0>INT0>T1 MOV TMOD,#11H MOV IE,#8BH SETB IT0 MOV TH0,#3CH;50ms MOV TL0,#0B0H SETB TR0 MOV R1,#50;顯示延時用 MOV R0,#0;顯示延時用
;************************************************************** TWO檢測開關號 TWO:MOV P0,#0FFH JB P0.5,TWO1 MOV RE,#0A0H;0A0表示鬧鈴無效,送0A0是為了方便將使能查表顯示,表中第A項為“-” SJMP TWO2 TWO1:MOV RE,#0A1H TWO2:JB P0.0,TWO4 JB P0.1,TWO3 MOV LED12,HOUR MOV LED34,MIN MOV LED56,SECOND SJMP THREE TWO3:MOV LED12,YEAR MOV LED34,MONTH MOV LED56,DAY SJMP THREE TWO4:JB P0.1,TWO5 MOV LED12,RH MOV LED34,RM MOV LED56,RE SJMP THREE TWO5:MOV LED12,BM MOV LED34,BD MOV LED56,#0BCH SJMP THREE;************************************** THREE顯示主程序(同時包含了鬧鈴,預置閃爍,鬧鈴功能)THREE:MOV P1,#0 MOV P0,#0FFH MOV DPTR,#TAB3 JNB SS,THREEB;判斷預置信號是否有效,預置有效則轉入判斷閃爍顯示模塊,否則轉入正常顯示模塊
SJMP THREEA THREEB:LJMP THREE11;THREE11是正常顯示并判斷整點報時及鬧鈴模塊
THREEA:JNB P0.3,THREE1;開始是判斷閃爍顯示,這句判斷是否預置分/月/生日的日/鬧鈴分
JNB GS,THREE1;是否閃爍?
LCALL TWELVE;閃爍則調用延時不顯示LED34 SJMP THREE4 THREE1:MOV A,LED34 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE2:SETB P1.3 NOP DJNZ R0,THREE2 CLR P1.3 MOV A,LED34 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE3:SETB P1.2 NOP DJNZ R0,THREE3 CLR P1.2 JNB P0.2,THREE4;判斷是否預置小時/年/生日月/鬧鈴的小時 JNB GS,THREE4;是否顯示小時/年/生日月/鬧鈴的小時 LCALL TWELVE SJMP THREE7 THREE4:MOV A,LED12 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE5:SETB P1.1 NOP DJNZ R0,THREE5 CLR P1.1 MOV A,LED12 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE6:SETB P1.0 NOP DJNZ R0,THREE6 CLR P1.0 JB P0.0,THREE7;數碼管56只有在顯示日期的天時才有預置閃爍功能,其余三項都不需要判斷閃爍 JNB P0.1,THREE7 JB P0.3,THREE7 JNB P0.4,THREE7 JNB GS,THREE7 LCALL TWELVE SJMP THREE10 THREE7:MOV A,LED56 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE8:SETB P1.5 NOP DJNZ R0,THREE8 CLR P1.5 MOV A,LED56 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE9:SETB P1.4 NOP DJNZ R0,THREE9 CLR P1.4 THREE10:DJNZ R1,TWOA SJMP TWOB TWOA:LJMP TWO TWOB:MOV R1,#50;判斷閃爍一次是否完成 CPL GS;取反閃爍標志,用于控制閃爍的亮和滅 LJMP TWO;一輪顯示完后再判斷開關號;**************************正常顯示
THREE11:LCALL EIGHT;判斷是否取反P1.6即輸出鬧鈴或整點報時,以下每次顯示都要調用一次
JB NB,THREE12;如果是在整點報時狀態就不顯示生日提醒,報時過后顯示提醒 JNB BS,THREE12 SJMP SEVEN;跳到生日提醒程序
THREE12:CLR NB;開始正常顯示時間及判斷鬧鈴輸出 MOV A,LED34 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE13:SETB P1.3 NOP DJNZ R0,THREE13 CLR P1.3 MOV A,LED34 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE14:SETB P1.2 NOP DJNZ R0,THREE14 CLR P1.2 LCALL EIGHT MOV A,LED12 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE15:SETB P1.1 NOP DJNZ R0,THREE15 CLR P1.1 MOV A,LED12 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE16:SETB P1.0 NOP DJNZ R0,THREE16 CLR P1.0 LCALL EIGHT MOV A,LED56 ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE17:SETB P1.5 NOP DJNZ R0,THREE17 CLR P1.5 MOV A,LED56 SWAP A ANL A,#0FH MOVC A,@A+DPTR MOV P2,A THREE18:SETB P1.4 NOP DJNZ R0,THREE18 CLR P1.4 LJMP TWO;一輪顯示完后判開關
TAB3:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H 7FH,6FH,40H,7CH,5EH;0.1.2.3.4.5.6.7.8.9.-.b.d,的字形表“bd”在顯示生日時間時顯示在LED56;**************************************************SEVEN生日時顯示生日祝福語“HAPPY” SEVEN:MOV P1,#01H MOV P2,#76H DJNZ R0,SEVEN SEVEN1:MOV P1,#02H MOV P2,#77H DJNZ R0,SEVEN1 SEVEN2:MOV P1,#04H MOV P2,#73H DJNZ R0,SEVEN2 SEVEN3:MOV P1,#08H MOV P2,#73H DJNZ R0,SEVEN3 SEVEN4:MOV P1,#10H MOV P2,#6EH DJNZ R0,SEVEN4 LJMP TWO;一輪顯示完后判開關
;******************************************************************EIGHT判斷是否鬧鈴子程序 EIGHT:MOV A,RE CJNE A,#0A1H,EIGHT1 MOV A,MIN CJNE A,RM,EIGHT1 MOV A,HOUR CJNE A,RH,EIGHT1 SJMP EIGHT4;鬧鈴時間到則CPLP1.6一次并忽略生日標志(即NB有效)EIGHT1:MOV A,MIN CJNE A,#59H,EIGHT7 MOV A,SECOND CJNE A,#59H,EIGHT5;是否等于59分59秒 EIGHT2:MOV A,COUNT;是否到達后半秒 CJNE A,#10,EIGHT3 EIGHT3:JC EIGHT7 EIGHT4:CPL P1.6 SETB NB SJMP EIGHT7 EIGHT5:MOV A,SECOND CJNE A,#51H,EIGHT6;是否大于51秒 EIGHT6:JC EIGHT7 JNB 10H,EIGHT7;判斷是否報低音
JB FC,EIGHT7;只有FC有效時才輸出
SJMP EIGHT2 EIGHT7:CPL FC;用來控制報低音和高音,滿足報低音條件時,調用兩次本程序對P1.6取反一次,高音時調用一次取反一次
RET;******** NINE中斷(T0)計時程序(包含了秒-分-時-日-月-年間的進位及判斷大小月,平閏年)
NINE:MOV TH0,#3CH;開定時器 MOV TL0,#0B0H SETB TR0 INC COUNT MOV A,COUNT CJNE A,#20,INEAA SJMP AAA INEAA:LJMP NINE1 AAA:MOV COUNT,#0;計時 MOV A,SECOND ADD A,#01 DA A;換成bcd碼以方便顯示 MOV SECOND,A CJNE A,#60H,INEAA MOV SECOND,#0 MOV A,MIN ADD A,#01 DA A MOV MIN,A CJNE A,#60H,INEAA MOV MIN,#0 MOV A,HOUR ADD A,#01 DA A MOV HOUR,A CJNE A,#24H,INEAA MOV HOUR,#0 MOV A,DAY ADD A,#01 DA A MOV DAY,A;************************判斷平閏年及大小月 MOV A,MONTH CJNE A,#02H,TEN6A MOV A,YEAR;把年由BCD碼換成二進制碼 ANL A,#0F0H SWAP A MOV B,#10 MUL AB MOV 24H,A MOV A,YEAR ANL A,#0FH ADD A,24H JB ACC.0,TEN5A;二進制碼后兩位為00表示為閏年 JB ACC.1,TEN5A MOV 24H,#01 MOV A,DAY CJNE A,#30H,NINE1 MOV DAY,#1 SJMP NINE0 TEN5A:MOV A,DAY CJNE A,#29H,NINE1 MOV DAY,#1 SJMP NINE0;**************判斷大小月;大于等于8月時雙月為大月,小于8月時單月為大月 TEN6A:MOV A,MONTH CJNE A,#08H,TEN7A TEN7A:JC TEN9A JB 18H,TEN8A MOV A,DAY CJNE A,#32H,NINE1 MOV DAY,#1 SJMP NINE0 TEN8A:MOV A,DAY CJNE A,#31H,NINE1 MOV DAY,#1 SJMP NINE0 TEN9A:JNB 18H,TEN10A MOV A,DAY CJNE A,#32H,NINE1 MOV DAY,#1 SJMP NINE0 TEN10A:MOV A,DAY CJNE A,#31H,NINE1 MOV DAY,#1;******************* NINE0:MOV A,MONTH ADD A,#01 DA A MOV MONTH,A SETB 05H CJNE A,#13H,NINE1 MOV MONTH,#1 MOV A,YEAR ADD A,#01 DA A MOV YEAR,A NINE1:MOV A,MONTH CJNE A,BM,NINE2 MOV A,DAY CJNE A,BD,NINE2 JNB 05H,NINE2 SETB BS NINE2:RETI;*****************************************TEN中斷(T1)預置加一程序由INT0控制其的開啟與關閉
;*******************判斷預置項目 TEN:MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 INC COUNTS MOV A,COUNTS CJNE A,#15,TENE MOV COUNTS,#0 JB P0.0,RBRB JB P0.1,DAT SJMP TIME DAT: LJMP DATE RBRB:JB P0.1,BDAT LJMP RTIME BDAT:LJMP BDATE TENE:RETI;**********************預置時間 TIME: JNB P0.3,TEN1 MOV A,MIN ADD A,#01 DA A MOV MIN,A CJNE A,#60H,TENA MOV MIN,#0 SJMP TENA TEN1:JNB P0.2,TENA MOV A,HOUR ADD A,#01 DA A MOV HOUR,A CJNE A,#24H,TENA MOV HOUR,#0 TENA:RETI;******************預置日期 DATE:JNB P0.3,TEN3 MOV A,MONTH ADD A,#01 DA A MOV MONTH,A CJNE A,#13H,TENB MOV MONTH,#1 SJMP TENB TEN3:JNB P0.2,TEN4 MOV A,YEAR ADD A,#01 DA A MOV YEAR,A SJMP TENB TEN4:JNB P0.4,TENB MOV A,DAY ADD A,#01 DA A MOV DAY,A;***************判斷平閏年 MOV A,MONTH CJNE A,#02H,TEN6 MOV A,YEAR ANL A,#0F0H SWAP A MOV B,#10 MUL AB MOV 24H,A MOV A,YEAR ANL A,#0FH ADD A,24H JB ACC.0,TEN5 JB ACC.1,TEN5 MOV A,DAY CJNE A,#30H,TENB MOV DAY,#1 SJMP TENB TEN5:MOV A,DAY CJNE A,#29H,TENB MOV DAY,#1 SJMP TENB;**************判斷大小月 TEN6:CJNE A,#08H,TEN7 TEN7:JC TEN9 JB 18H,TEN8 MOV A,DAY CJNE A,#32H,TENB MOV DAY,#1 SJMP TENB TEN8:MOV A,DAY CJNE A,#31H,TENB MOV DAY,#1 SJMP TENB TEN9:JNB 18H,TEN10 MOV A,DAY CJNE A,#32H,TENB MOV DAY,#1 SJMP TENB TEN10:MOV A,DAY CJNE A,#31H,TENB MOV DAY,#1 TENB: RETI;**************************預置鬧鈴時間 RTIME:JNB P0.3,TEN12 MOV A,RM ADD A,#01 DA A MOV RM,A CJNE A,#60H,TENC MOV RM,#0 SJMP TENC TEN12:JNB P0.2,TENC MOV A,RH ADD A,#01 DA A MOV RH,A CJNE A,#24H,TENC MOV RH,#0 TENC:RETI;************************預置生日日期 BDATE:JNB P0.3,TEN14 MOV A,BD ADD A,#01 DA A MOV BD,A MOV A,BM CJNE A,#02H,TEN15 MOV A,BD CJNE A,#30H,TEND MOV BD,#1 SJMP TEND TEN15:CJNE A,#08H,TEN16 TEN16:JC TEN18 JB 18H,TEN17 MOV A,BD CJNE A,#32H,TEND MOV BD,#1 SJMP TEND TEN17:MOV A,BD CJNE A,#31H,TEND MOV BD,#1 SJMP TEND TEN18:JNB 18H,TEN19 MOV A,BD CJNE A,#32H,TEND MOV BD,#1 SJMP TEND TEN19:MOV A,BD CJNE A,#31H,TEND MOV BD,#1 SJMP TEND TEN14:JNB P0.2,TEND MOV A,BM ADD A,#01 DA A MOV BM,A CJNE A,#13H,TEND MOV BM,#1 TEND:SETB 05H RETI;*******************************ELEVEN中斷(INT0)控制了預置的開關以及生日信號的清除
ELEVEN:JNB SS,ELEVEN1;預置有效時按一次INT0關預置 CLR SS CLR TR1 SJMP ELEVEN3 ELEVEN1:JNB BS,ELEVEN2;預置無效判斷生日信號有效則清除生日信號 CLR 05H CLR BS SJMP ELEVEN3 ELEVEN2:SETB SS;都無效則令預置有效 MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 ELEVEN3:RETI;***************************************************************TWELVE 延時小程序
TWELVE:MOV P1,#0 MOV P2,#0 DJNZ R0,TWELVE TWELVE1:MOV P1,#0 MOV P2,#0 DJNZ R0,TWELVE1 RET
第五篇:數字鐘課程設計
數字電子鐘邏輯電路設計
一、實驗目的:
1、掌握數字鐘的設計方法;
2、熟悉集成電路的使用方法。
二、設計任務和要求:
1、設計一個有“時”,“分”,“秒”(23小時59分59秒)顯示且有校時功能的電子鐘;
2、用中小規模集成電路組成電子鐘;
3、畫出框圖和邏輯電路圖,寫出設計報告;
4、選做:①鬧鐘系統。②整點報時。③日歷系統。
三、方案選擇和論證:
1.分秒功能的實現:用兩片74290組成60進制遞增計數器 2.時功能的實現:用兩片74290組成24進制遞增計數器 3.定點報時:當分秒同時出現為0時,燈亮。
4.日歷系統:月跟日分別用2片74192實現,月份就接成12進制,日則接成31進制,星期由1片74192組成7進制,從星期一至星期天。
四、方案的設計:
1、可調時鐘模塊:
秒、分、時分別為60、60和24進制計數器。用兩片74LS290做一個二十四進制, 輸入計數脈沖CP加在CLKA’端,把QA與與CPLB’從外部連接起來,電路將對CP按照8421BCD碼進行異步加法計數。通過反饋端,控制清零端清零,其中個位接成二進制形式,十位接成四進制形式。其電路圖如下:
同理利用兩片74290組成的六十進制計數器,如下圖所示
將兩個六十進制的加法計數器和一個二十四進制的加法計數器進行級聯:將秒的十位進位脈沖接到分的個位輸入脈沖,將分的十位進位脈沖接到時的個位輸入脈沖,這樣就可以組成最基本的電路。2.校時電路: 例如說時的校準,開關1上端接1HZ脈沖,下端接分的進位。當開關打到上端時電路進入校準功能,當開關打到下端時電路進入正常計時功能。其電路如總電路圖所示
3.整點報時:
分別用2個或非門接到分和秒的各輸出個節點處,再用一個與非門與報時燈鏈接,當輸出同時為零時,即整點時,報時燈就亮了,起到報時功能。本實驗使用LED發光(1s),其電路圖如下:
4日歷系統:
月和日都用2片74192實現。月份功能則接成13進制,因為月份分日都是從1開始計起,所以要求從0001開始,到1101時,立刻清零,清零時應該切換到置數狀態,即將ABCD置1000,通過一個與非門鏈接到LOAD端置零,同時也將計數器置為0001的狀態。其電路圖如下所示
日功能74192三十一進制電路圖:
總電路圖:
四、電路調試:
調試這部分工作在EWB仿真軟件上進行。對于電路的調試應該分為幾個部分,分別對電路各個部分的功能都進行調試,之后,每連接一部分都要調試一次。在實現日歷系統時,如月份需要顯示燈顯示1~31。一開始以為只把計數器鏈接成三十一進制即可,結果顯示燈只顯示0~30,沒有自己預期的結果。經過仔細思考,要把0去掉不顯示,從1開始顯示,而還要顯示31。經過查書,最后,知道開始需置數成0001狀態,到1000才清零,清零的同時回到置數0001狀態,通過多次鏈接、測試,終于實現了。
在實現校時功能過程中,由于之前想得太過復雜了,浪費了大量時間,最后,經過上網搜索,到圖書館查書,簡單的用了個開關連接到脈沖實現了。
五、收獲心得體會:
整個過程花了我不少時間,可當做完時才發現做這個數字鐘是多么簡單的一件事,主要是在調試時花了不少時間,其間換了不少器件,有的器件在理論上可行,但在實際運行中就無法看到效果,所以調試花了我不少時間,有時無法找出錯誤便更換器件重新接線以使電路正常運行。
在實際的操作過程中,能把理論中所學的知識靈活地運用起來,并在調試中會遇到各種各樣的問題,電路的調試提高了我們解決問題的能力,學會了在設計中獨立解決問題,也包括怎樣去查找問題。似乎所有的事都得自己新手去操作才會在腦海中留下深刻的印象,這個小小的課程設計讓我可以熟練的操作EWB軟件,也了解了不少器件的功能的應用,也加深了對數字電路認識和理解。
本次課程設計主要是用軟件仿真,如果是實際加工電路板就更加鍛煉我們的動手能力了,因此,能力還有待提高。