freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機的多功能數(shù)字鐘的設(shè)計學士學位論文(編輯修改稿)

2025-07-17 12:36 本頁面
 

【文章內(nèi)容簡介】 表,不會混淆。電路圖如下頁所示: 圖5 發(fā)光二極管顯示電路 數(shù)碼管顯示電路 數(shù)碼管顯示器成本低,配置靈活,與單片機接口簡單,在單片機應(yīng)用系統(tǒng)中廣泛應(yīng)用。圖6 數(shù)碼管顯示電路數(shù)碼管是由8個發(fā)光二極管構(gòu)成的顯示器件。在數(shù)碼管中,若將二極管的陽極連在一起,稱為共陽極數(shù)碼管;若將二極管的陰極連在一起,稱為共陰極數(shù)碼管。本文用到的6個數(shù)碼管均是共陰極的。當發(fā)光二極管導通時,它就會發(fā)光。每個二極管就是一個筆劃,若干個二極管發(fā)光時,就構(gòu)成了一個顯示字符。將單片機的I/O口控制相應(yīng)的芯片與數(shù)碼管的ag相連,高電平的位對應(yīng)的發(fā)光二極管亮,這樣,由I/O口輸出不同的代碼,就可以控制數(shù)碼管顯示不同的字符。本文的6個數(shù)碼管均采用動態(tài)顯示方式,顯示當前的時間。整個顯示電路應(yīng)用了2個573芯片這六位數(shù)據(jù)經(jīng)過573芯片以后是片選信號,即控制動態(tài)顯示的是哪一位數(shù)碼管。在片選信號和段選信號的控制下如下圖所示,數(shù)碼管就正確的動態(tài)顯示當前的時間。圖7 驅(qū)動電路 電源電路設(shè)計電源電路包括變壓器、橋式整流器、電容和穩(wěn)壓器。通過變壓器變壓,使得220V電壓變?yōu)? V,在通過橋式整流,電容的濾波作用,穩(wěn)壓器的穩(wěn)壓作用,可輸出5V的穩(wěn)定電壓。 本章小結(jié)本章介紹的是本設(shè)計的硬件結(jié)構(gòu),單片機的相關(guān)I/O口輸入輸出就可以實現(xiàn)相應(yīng)的控制功能。還介紹了單片機的復位電路和時鐘電路。4 電路的軟件設(shè)計 軟件程序內(nèi)容本設(shè)計的軟件程序包括主程序、中斷子程序、鬧鈴程序、時鐘顯示子程序、查詢時間表切換程序和延時子程序等等。另外由于電路中有四個按鍵,還另外設(shè)計了防抖動程序來防止干擾。 軟件流程圖軟件程序整個流程圖如下:開始初始化是否按時間表切換鍵是切換時間表查詢功能移位鍵調(diào)整時間否是是否與時間表時間匹配調(diào)用鬧鈴子程序否 定時程序設(shè)計單片機的定時功能也是通過計數(shù)器的計數(shù)來實現(xiàn)的,此時的計數(shù)脈沖來自單片機的內(nèi)部,即每個機器周期產(chǎn)生一個計數(shù)脈沖,也就是每經(jīng)過1個機器周期的時間,計數(shù)器加1。如果MCS51采用的12MHz晶體,則計數(shù)頻率為1MHz,即每過1us的時間計數(shù)器加1。這樣可以根據(jù)計數(shù)值計算出定時時間,也可以根據(jù)定時時間的要求計算出計數(shù)器的初值。MCS51單片機的定時器/計數(shù)器具有4種工作方式,其控制字均在相應(yīng)的特殊功能寄存器中,通過對特殊功能寄存器的編程,可以方便的選擇定時器/計數(shù)器兩種工作模式和4種工作方式。定時器/計數(shù)器工作在方式0時,為13位的計數(shù)器,由TLX(X=0、1)的低5位和THX的高8位所構(gòu)成。TLX低5位溢出則向THX進位,THX計數(shù)溢出則置位TCON中的溢出標志位TFX.當定時器/計數(shù)器工作于方式1,為16位的計數(shù)器。本設(shè)計師單片機多功能定時器,所以MCS51內(nèi)部的定時器/計數(shù)器被選定為定時器工作模式,計數(shù)輸入信號是內(nèi)部時鐘脈沖,每個機器周期產(chǎn)生一個脈沖使計數(shù)器增1。時鐘的最小計時單位是秒,但使用定時器的方式1,最大的定時時間也只能達到131ms。我們可把定時器的定時時間定為50ms。這樣,計數(shù)溢出20次即可得到時鐘的最小計時單位:秒。而計數(shù)20次可以用軟件實現(xiàn)。秒計時是采用中斷方式進行溢出次數(shù)的累積,計滿20次,即得到秒計時。從秒到分,從分到時是通過軟件累加并進行比較的方法來實現(xiàn)的。要求每滿1秒,則“秒”單元中的內(nèi)容加1;“秒”單元滿60,則“分”單元中的內(nèi)容加1;“分”單元滿60,則“時”單元中的內(nèi)容加1;“時”單元滿24,則將時、分、秒的內(nèi)容全部清零。 實時時鐘程序設(shè)計步驟(1)選擇工作方式,計算初值;(2)采用中斷方式進行溢出次數(shù)累計;(3)從秒——分——時的計時是通過累加和數(shù)值比較實現(xiàn)的;(4)時鐘顯示緩沖區(qū):時鐘時間在方位數(shù)碼管上進行顯示,為此在內(nèi)部RAM中要設(shè)置顯示緩沖區(qū),共6個地址單元。顯示緩沖區(qū)從左到右依次存放時、分、秒數(shù)值;(5)主程序:主要進行定時器/計數(shù)器的初始化編程,然后反復調(diào)用顯示子程序的方法等待中斷的到來。(6)中斷服務(wù)程序:進行計時操作(7)加1子程序:用于完成對時、分、秒的加操作,中斷服務(wù)程序在秒、分、時加1時共有三種條調(diào)用加1子程序,包括三項內(nèi)容:合字、加1并進行十進制調(diào)整、分字。在整個系統(tǒng)中,在單片機的30H、31H和32H中存儲當前時間的小時、分鐘和秒。由于要用數(shù)碼管顯示當前的時間,必須用到分字和合字,因此在33H、34H、35H、36H、37H和38H中存儲當前時間的時十位、時個位、分十位、分個位、秒十位和秒個位,方便顯示。本設(shè)計有由四個輕觸按鍵組成的小鍵盤,這些按鍵可以任意改變當前的狀態(tài)。按功能移位鍵一次,表示當前要校對小時的十位;按第二次,表示當前校對的是小時的個位;按第三次,則表示校對的是分鐘的十位;第四次,表示的校對的是分鐘的個位。按下數(shù)字“+” 鍵和數(shù)字“”鍵可在當前校對的數(shù)字上相應(yīng)加上1或者減去1。本設(shè)計采用查表方式,在程序里預先存儲兩個表格,即日常作息時間表和考試時間表,可以通過手動按鍵來選擇所要執(zhí)行的時間表。并且用紅、綠發(fā)光二極管來區(qū)別當前所執(zhí)行的時間表。系統(tǒng)開機后,按功能移位鍵就可以調(diào)整當前的時間,整個系統(tǒng)操作簡單,功能明確。顯示數(shù)據(jù)時,先把要顯示的數(shù)據(jù)送到數(shù)據(jù)緩沖區(qū)SBUF中,再從SBUF中顯示。串行口緩沖寄存器SBUF器是可直接尋址的專用寄存器。在物理上,它對應(yīng)著兩個寄存器,一個發(fā)送寄存器,一個接收寄存器。CPU寫SBUF,就是修改發(fā)送寄存器;讀SBUF,就是讀接收寄存器。接收器是雙緩沖的,以避免在接收下一幀數(shù)據(jù)之前,CPU未能及時響應(yīng)接收器的中斷,沒有把上一幀數(shù)據(jù)讀走,而產(chǎn)生兩幀數(shù)據(jù)重疊的問題。對于發(fā)送器,為了保持最大的傳輸速率,一般不需要雙緩沖,因為發(fā)送時CPU是主動的,不會產(chǎn)生寫重疊的問題。(時分秒),(月日星期),鬧鐘定時時間的設(shè)計。按鍵1依次選擇調(diào)整時間顯示月日星期調(diào)整月日星期顯示鬧鐘定時時間調(diào)整鬧鐘定時按鍵S2依次選中時分秒(月日星期)數(shù)碼管,S3按鍵依次加1,S4按鍵依次減1具有整點報時,鬧鐘定時顯示功能。timer0()實現(xiàn)走時中斷。定時器方式控制寄存器TMOD工作方式選擇1。void timer0() interrupt 1 //50ms中斷函數(shù){TMOD=0x01。TH0=0x4c。 //50ms初值 TL0=0x00。count++。if(count==20){count=0。sec++。jishi()。 //調(diào)計時函數(shù)}} Jishi()實現(xiàn)的系統(tǒng)的時間計時功能。當sec=60,minu加1,當minu=60,hour加1,同理加到day,week。void jishi() //計時函數(shù){if(sec==60){sec=0。minu++。if(minu==60) {minu=0。hour++。if(hour==24){ hour=0。day++。week++。if(week==8){week=0。}if(year%4==0amp。amp。year%100!=0||year%400==0) //閏年{if(day==table1[mon]+1){day=0。mon++。if(mon==13){mon=0。year++。}}}函數(shù)disp()實現(xiàn)系統(tǒng)日期或時間的顯示功能。void disp(uchar a1,uchar a2,uchar a3,uchar a4,uchar a5,uchar a6) //顯示函數(shù){dula=1。 //選定段選P0=table[a1]。 //段碼送P0口dula=0。 //關(guān)段選P0=0xff。wela=1。 //選定位選P0=0xfe。 //位選(第1個數(shù)碼管)送P0wela=0。 //關(guān)位選delay(3)。 //延時一小會}函數(shù)nz_clock用于啟動系統(tǒng)報警,通過控制PNP三極管導通實現(xiàn)。Fm=0啟動鬧鈴,fm=1鬧鈴結(jié)束。void nz_clock() //鬧鐘函數(shù){if((hour==n_hour)amp。amp。(minu==n_minu)){fm=0。delay(50)。fm=1。delay(50)。}}zd_clock()實現(xiàn)整點報時,fm=0開始報時 ,fm=1報時結(jié)束。void zd_clock() //整點報時函數(shù){if(minu==59amp。amp。(sec==53||sec==55||sec==57)){fm=0。delay(1)。fm=1。delay(1)。}if(minu==59amp。amp。sec==59){fm=0。delay(1)。fm=1。delay(1)。}}函數(shù)delay(uint k)實現(xiàn)的延時功能。void delay(uint k) //延時函數(shù){uint i,j。for(i=k。i0。i)for(j=110。j0。j)。} 本章小結(jié) 這一章介紹了本設(shè)計的軟件設(shè)計,所有的功能在流程圖里清晰的表現(xiàn)了出來
點擊復制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1