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

正文內(nèi)容

基于51單片機的日歷時鐘顯示系統(tǒng)設(shè)計畢業(yè)論文(編輯修改稿)

2025-07-25 00:35 本頁面
 

【文章內(nèi)容簡介】 正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負極。 系統(tǒng)硬件模塊的設(shè)計系統(tǒng)硬件主要由AT89S52主控模塊,DS1302時鐘模塊,LCD1602顯示模塊組成。 AT89S52主控模塊的設(shè)計AT89S52單片機為40引腳雙列直插芯片,有四個I/O口P0,P1,P2,P3,每一條I/O線都能獨立地作輸出或輸入。單片機的最小系統(tǒng)如圖37所示,18引腳和19引腳接時鐘電路,XTAL1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出。第9引腳為復(fù)位輸入端,接上電容,電阻及開關(guān)后夠上電復(fù)位電路,20引腳為接地端,40引腳為電源端。 圖37 主控制系統(tǒng) DS1302時鐘模塊的設(shè)計DS1302與CPU的連接僅需要三條線,即SCLK(7)、I/O(6)、RST(5)。圖38所示為DS1302與單片機的連接電路。,SCLK(7)、I/O(6)、RST(5)、。 圖38 DS1302的連接電路 LCD1602顯示模塊的設(shè)計由于LCD1602液晶顯示器是本身帶有驅(qū)動模塊的液晶屏,它只有并口線和一些控制線,與單片機的連接有兩種不同的方法,直接訪問方式和間接訪問方式。本系統(tǒng)采用直接訪問方式。直接訪問方式就是微處理器把液晶顯示模塊當(dāng)做存儲器或I/O設(shè)備直接掛在總線上,模塊8位數(shù)據(jù)總線與微處理器的數(shù)據(jù)總線相連,用讀操作或?qū)懖僮餍盘柵c地址信號共同產(chǎn)生控制信號。圖310所示為LCD液晶顯示模塊電路圖。其中J2為8*10K歐姆的排阻作為P0口的上拉電阻,J14為1602液晶顯示器件,左邊的封SIP16裝接口與液晶對應(yīng),電位器R7是用來調(diào)節(jié)液晶背光的對比度的,液晶的6腳與單片機相連作為控制信號,714腳與單片機P0口相連作為數(shù)據(jù)信號傳送。圖310 LCD1602液晶顯示電路 第四章 系統(tǒng)軟件設(shè)計軟件設(shè)計的重點在于從DS1302中讀取時間和日期數(shù)據(jù),并且在LCD1602液晶屏上顯示出來。 軟件整體設(shè)計系統(tǒng)軟件主要包括以下幾個模塊:主程序模塊,LCD顯示模塊,DS1302時鐘模塊,按鍵模塊等,通過這幾個模塊的有機結(jié)合和互相條用來完成任務(wù)。軟件總體框架結(jié)構(gòu)如圖41所示。主模塊LCD1602顯示模塊DS130時鐘模塊塊內(nèi)部等待函數(shù)寫指令函數(shù)寫數(shù)據(jù)函數(shù)初始化函數(shù)顯示字符函數(shù)顯示字符串函數(shù)寫入一字節(jié)函數(shù)讀出一字節(jié)函數(shù)寫入數(shù)據(jù)函數(shù)初始化函數(shù)設(shè)置初始時間函數(shù)圖41 軟件設(shè)計總體框架結(jié)構(gòu)在多功能模塊化程序設(shè)計中,主程序的作用是設(shè)置系統(tǒng)運行的一些初始狀態(tài)及系統(tǒng)運行的環(huán)境,并將各功能子程序按要求連接起來組成一個功能強大的系統(tǒng)。在本程序中,LCD1602初始化為:8位數(shù)據(jù)接口,兩行顯示,57點陣字符,顯示開,關(guān)光標,光標移動為增量式。DS1302初始化為:對時鐘、RAM的讀/寫采用單字節(jié)方式,采用24小時格式顯示時間。 子模塊設(shè)計 DS1302時鐘子模塊的設(shè)計DS1302有一個控制寄存器、12個日歷、時鐘寄存器和31個RAM。(1) DS1302的控制命令字 控制寄存器用于存放DS1302的控制命令字,DS1302的RST引腳回到高電平后寫入的第一個字就為控制命令。它用于對DS1302讀寫過程進行控制,它的格式如下: 控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。 (2) DS1302的寄存器DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表2。此外,DS1302 還有寫保護寄存器、慢充電寄存器、時鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除慢充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。說明:① 數(shù)據(jù)都以BCD碼形式表示。② 小時寄存器的D7位為12小時/24小時制的選擇位,當(dāng)為1時選12小時制,當(dāng)為0時選24小時制,D5位為1是上午,D5位為0是下午,D4為小時的十位。③ 秒寄存器中的CH位為時鐘暫停位,當(dāng)為1時,時鐘暫停,為0時,時鐘開始啟動。④ 寫保護寄存器中的WP為寫保護位,當(dāng)WP=1時,寫保護,當(dāng)WP=0時未寫保護,當(dāng)對日歷、時鐘寄存器或片內(nèi)RAM進行寫時WP應(yīng)清零,當(dāng)對日歷、時鐘寄存器或片內(nèi)RAM讀時WP一般置1。⑤ 慢充電寄存器的TCS位為控制慢充電的選擇,當(dāng)它為1010時才能使慢充電工作。DS為01選擇一個二極管,DS為10選擇二個二極管,DS為11或00充電器被禁止。與TCS無關(guān)。RS用于選擇連接在Vcc2與Vcc1之間的電阻,RS為00,充電器被禁止,與TCS無關(guān)。(3) DS1302的輸入輸出過程數(shù)據(jù)輸入輸出(I/O)在控制指令字輸入后的下一個SCLK的時鐘的上升沿時數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0開始到高位7。時序圖如43所示: 圖5 讀出DS1302數(shù)據(jù) 圖6 寫DS1302控制字節(jié)圖43 DS1302讀、寫時序圖DS1302通過RST引腳驅(qū)動輸入輸出過程,當(dāng)RST置高電平啟動輸入輸出過程,在SCLK時鐘的控制下,首先把控制命令字寫入DS1302的控制寄存器,其次根據(jù)寫入的控制命令字,依次讀寫內(nèi)部寄存器或片內(nèi)RAM單元的數(shù)據(jù),對于日歷、時鐘寄存器,根據(jù)控制命令字,一次可以讀寫一個日歷、時鐘寄存器,也可以一次讀寫8個字節(jié),對所有的日歷、時鐘寄存器,寫的控制命令字為0BEH,讀的控制命令字為0BFH;對于片內(nèi)RAM單元,根據(jù)控制命令字,一次可讀寫一個字節(jié),一次也可讀寫31個字節(jié)。當(dāng)數(shù)據(jù)讀寫完后,RST變?yōu)榈碗娖浇Y(jié)束輸入輸出過程。無論是命令字還是數(shù)據(jù),一個字節(jié)傳送時都是低位在前,高位在后,每一位的讀寫發(fā)生在時鐘的上升沿。DS1302時鐘模塊軟件設(shè)計具體可以包括三個模塊:寫入數(shù)據(jù)模塊、讀出數(shù)據(jù)模塊、初始化事件模塊,每個模塊有可以包含幾個子函數(shù),具體DS1302程序流程圖如圖44所示。變量初始化使DS1302不具備寫保護復(fù)位端產(chǎn)生一個高電平寫DS1302地址延時一段時間向該地址寫數(shù)據(jù)數(shù)據(jù)寫完了嗎?復(fù)位端產(chǎn)生一個高電平寫DS1302地址將該地址的數(shù)據(jù)讀出地址增加數(shù)據(jù)讀完了嗎?地址加1延時一段時間YNYN開始結(jié)束圖44 DS1302流程圖根據(jù)本人在調(diào)試中遇到的問題,特作如下說明: DS1302 與微處理器進行數(shù)據(jù)交換時,首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位MSB(D7)必須為邏輯1,如果D7=0,則禁止寫DS1302,即寫保護;D6=0,指定時鐘數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5~D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入), D0=1,指定讀操作(輸出)。 在DS1302的時鐘日歷或RAM進行數(shù)據(jù)傳送時,DS1302必須首先發(fā)送命令字節(jié)。若進行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM寄存器,在此方式下可一次性讀、寫所有的RAM的31個字節(jié)。 要特別說明的是備用電源B1,可以用電池或者超級電容器()。雖然DS1302在主電源掉電后的耗電很小,但是,如果要長時間保證時鐘正常,最好選用小型充電電池。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容器代替。100 μF就可以保證1小時的正常走時。DS1302在第一次加電后,必須進行初始化操作。初始化后就可以按正常方法調(diào)整時間。 (4) 結(jié)論 DS1302 存在時鐘精度不高,易受環(huán)境影響,出現(xiàn)時鐘混亂等缺點。DS1302可以用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄。這種記錄對長時間的連續(xù)測控系統(tǒng)結(jié)果的分析及對異常數(shù)據(jù)出現(xiàn)的原因的查找具有重要意義。傳統(tǒng)的數(shù)據(jù)記錄方式是隔時采樣或定時采樣,沒有具體的時間記錄,因此,只能記錄數(shù)據(jù)而無法準確記錄其出現(xiàn)的時間;若采用單片機計時,一方面需要采用計數(shù)器,占用硬件資源,另一方面需要設(shè)置中斷、查詢等,同樣耗費單片機的資源,而且,某些測控系統(tǒng)可能不允許。但是,如果在系統(tǒng)中采用時鐘芯片DS1302,則能很好地解決這個問題。 LCD1602顯示子模塊的設(shè)計(1) LCD1602各寄存器介紹字符型液晶顯示模塊內(nèi)部控制器主要由指令寄存器IR、數(shù)據(jù)寄存器DR、忙標示BF、地址計數(shù)器AC、DDROM、CGRAM、及時序發(fā)生電路組成。① 輸入輸出寄存器:本單元為LCD的大門,所有數(shù)據(jù)和控制信號都需通過本單元才得以進出LCD。② 指令寄存器:本寄存器(IR)為8位,其功能是存放微控制器所送入的指令、DDRAM、或CGRAM的地址。③ 指令譯碼器:本寄存器是將指令寄存器里的指令譯碼,以獲得所要操作DDRAM或CGRAM的地址。④ 數(shù)據(jù)寄存器:本寄存器(DR)連接LCD內(nèi)部數(shù)據(jù)總線,DDRAM或CGRAM的數(shù)據(jù)存取都通過本寄存器。⑤ 地址計數(shù)器:本寄存器(AC)連接內(nèi)部的地址總線,DDRAM或CGRAM的操作都需通過本計數(shù)器提供的地址來尋址。⑥ 忙碌標志:本標志(BF)用以表示當(dāng)時LCD的狀態(tài),若BF=1,則表示處于忙碌狀態(tài)無發(fā)接受外部指令或數(shù)據(jù);若BF=0,則可接受外部指令或數(shù)據(jù)。⑦ 顯示數(shù)據(jù)存儲器:本存儲器(DDRAM)存儲所要顯示的數(shù)據(jù)。實際上本存儲器里存放的是要顯示數(shù)據(jù)的ASCII碼,再以ASCII碼為地址,到CGRAM里找到該字節(jié)型的現(xiàn)實編碼。(2) 基本操作時序① 讀操作時序② 寫操作時序?qū)σ陨蠒r序圖的說明如下:讀狀態(tài):輸入:RS=0,RW=1,E=1 輸出:D0D7為狀態(tài)字寫指令:輸入:RS=0,RW=0,D0~D7為指令碼,E高脈沖 輸出:無讀數(shù)據(jù):輸入:RS=0,RW=1,E=1 輸出:D0D7為數(shù)據(jù)寫數(shù)據(jù):輸入:RS=1,RW=0,D0~D7為數(shù)據(jù),E高脈沖 輸出:無(3) LCD1602指令說明LCD控制器HD44780內(nèi)有多個寄存器,通過RS和R/W引腳共同決定選擇哪一個寄存器,選擇情況如下表所示:LCD1602液晶模塊內(nèi)部的控制器共有11條控制指令,它們的格式和功能如下表所示:它的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平) 指令1:清顯示,將顯示緩沖區(qū)DDRAM的內(nèi)容全部寫入空格,指令碼01H,光標復(fù)位到地址00H位置。指令2:光標復(fù)位,光標返回到地址00H,即顯示器的左上角,顯示緩沖區(qū)DDRAM的內(nèi)容不變。指令3:設(shè)定當(dāng)寫入一個字節(jié)后,關(guān)標的移動方向以及后面的內(nèi)容是否移動。當(dāng)I/D=1時,光標從左向右移動;I/D=0時,光標從右向左移動。當(dāng)S=1時,內(nèi)容移動;S=0時,內(nèi)容不移動。指令4:顯示開關(guān)控制 當(dāng)D=1時顯示,D=0時不顯示。 當(dāng)C=1時光標顯示,C=0時光標不顯示。 當(dāng)B=1時字符閃爍,B=0時字符不閃爍。指令5:光標或顯示移位 當(dāng)S/C=1時整個顯示字幕移位,S/C=0時只光標移位。當(dāng)R/L=1時光標右移,R/L=0時光標左移。指令6:功能設(shè)置命令 設(shè)置數(shù)據(jù)位數(shù),當(dāng)DL=1時數(shù)據(jù)位為8位,DL=0時數(shù)據(jù)位為4位。 設(shè)置顯示行數(shù),當(dāng)N=1時雙行顯示,N=0時單行顯示。設(shè)置字型大小,當(dāng)F=1時5*10點陣,F(xiàn)=0時為5*7點陣。指令7:設(shè)置用戶自定義CGRAM的地址,
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1