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

正文內(nèi)容

基于單片機的多功能液晶顯示數(shù)字時時鐘設(shè)計(編輯修改稿)

2024-07-17 12:36 本頁面
 

【文章內(nèi)容簡介】 含有一個實時時鐘/日歷和31字節(jié)靜態(tài)RAM,通過簡單的串行接口與單片機進行通信。實時時鐘/日歷電路提供秒、分、時、日、日期、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動調(diào)整,時鐘操作可通過AM/PM指示決定采用24或12小時格式。DS1302與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到三個口線: RES復位線、 I/O數(shù)據(jù)線、SCLK串行時鐘。時鐘/RAM的讀/寫數(shù)據(jù)以一個字節(jié)或多達31個字節(jié)的字符組方式通信。DS1302工作時功耗很低保持數(shù)據(jù)和時鐘信息時功率小于1mW。DS1302器件外觀如圖310所示,DS1302管腳的功能描述可見表39所示。圖310 DS1302器件表39 DS1302管腳的功能描述管腳名功能說明X1,X2 晶振管腳GND地RST復位腳I/O數(shù)據(jù)輸入/輸出引腳SCLK串行時鐘Vcc1,Vcc2電源供電管腳DS1302 的控制字如圖311所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址。最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。 1 RAM/CK A4 A3 A2 A1 A0 RAM/K圖311 DS1302的控制字在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。 DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表310所示。表310 日歷、時間寄存器及其控制字寄存器名稱寫操作讀操作取值范圍76 5 43 2 1秒寄存器80H81H00~59CH10SECSEC分寄存器82H83H00~59010MINMIN時寄存器84H85H00~2312/2410HRHR日寄存器86H87H01~31010DATEDATE月寄存器88H89H01~1200 10MMONTH周寄存器8AH8BH01~0700 0 0DAY年寄存器8CH8DH00~9910YEARYEARDS1302的主要特性:(1)實時時鐘具有能計算2100年之前的秒、分、時、日、日期、星期、月、年的能力,還有閏年調(diào)整的能力(2)31* 8 位暫存數(shù)據(jù)存儲RAM(3)串行I/O口方式使得管腳數(shù)量最少(4)寬范圍工作電壓:~ (5) ,小于300nA(6) 讀/寫時鐘或RAM數(shù)據(jù)時,有兩種傳送方式:單字節(jié)傳送和多字節(jié)傳送(字符組方式)(7) 8 腳DIP封裝或可選的8腳SOIC封裝(根據(jù)表面裝配)(8) 簡單3線接口(9) 與TTL兼容(Vcc=5V)(10)可選工業(yè)級溫度范圍40 ~+85 AT89C51與時鐘芯片DS1302的連接在使用DS1302時需加一個供其工作的晶振,一般選值為32768Hz。最好再加一個后備電源使其在斷電后斷續(xù)工作。其與AT89C51的連接如圖312所示。實際上,在調(diào)試程序時可以不加電容器,只加一個32768Hz 的晶振即可。只是選擇晶振時,不同的晶振,誤差也較大。要特別說明的是備用電源BAT1,可以用電池或者超級電容器()。雖然DS1302在主電源掉電后的耗電很小,但是,如果要長時間保證時鐘正常,最好選用小型充電電池。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容器代替。100 μF就可以保證1小時的正常走時。DS1302在第一次加電后,必須進行初始化操作。初始化后就可以按正常方法調(diào)整時間。圖312 AT89C51與DS1302的連接 AT89C51與溫度芯片的連接DS18B20數(shù)字溫度計是DALLAS公司生產(chǎn)的1-Wire,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計,十分方便。其實物圖如圖313所示,其引腳的功能描述可見表311所示。圖313 DS18B20表311 DS18B20的引腳功能描述引腳功能說明GND地DQ數(shù)字輸入輸出引腳VDD可選的VDD引腳DS18B20的特點: (1)只要求一個端口即可實現(xiàn)通信。 (2)在DS18B20中的每個器件上都有獨一無二的序列號。 (3)實際應(yīng)用中不需要外部任何元器件即可實現(xiàn)測溫。 (4)測量溫度范圍在-55176。C到+125176。C之間。 (5)數(shù)字溫度計的分辨率用戶可以從9位到12位選擇。 (6)內(nèi)部有溫度上、下限告警設(shè)置。 在仿真軟件中,可以用DS18B20仿真器上的上、下鍵來調(diào)節(jié)溫度的高低,以此來檢測讀、寫溫度程序是否成功。具體的DS18B20與AT89C51連接如圖314所示.圖314 AT89C51與DS18B20的連接 AT89C51與鍵盤的連接鍵盤在單片機應(yīng)用系統(tǒng)中,實現(xiàn)輸入數(shù)據(jù)、傳送命令的功能,是人工干預(yù)的主要手段。鍵盤分兩大類:編碼鍵盤和非編碼鍵盤。(1)編碼鍵盤:由硬件邏輯電路完成必要的鍵識別工作與可靠性措施。每按一次鍵,鍵盤自動提供被按鍵的讀數(shù),同時產(chǎn)生一選通脈沖通知微處理器,一般還具有反彈跳和同時按鍵保護功能。這種鍵盤易于使用,但硬件比較復雜,對于主機任務(wù)比較繁重。(2)非編碼鍵盤:只簡單地提供鍵盤的行列與矩陣,其他操作如鍵的識別,決定按鍵的讀數(shù)等僅靠軟件完成,故硬件較為簡單,但占用CPU較多時間。鍵盤電路結(jié)構(gòu)分為兩類:獨立式按鍵和矩陣式鍵盤。(1)獨立式按鍵獨立式按鍵就是各按鍵相互獨立,每個按鍵單獨占用一根I/O口線,每根I/O口線的按鍵工作狀態(tài)不會影響其他I/O口線上的工作狀態(tài)。因此,通過檢測輸入線的電平狀態(tài)可以很容易判斷哪個按鍵被按下了。(2)矩陣式鍵盤矩陣式鍵盤適用于按鍵數(shù)量較多的場合,由行線和列線組成,按鍵位于行列的交叉點上,節(jié)省I/O口。為了使設(shè)計簡潔、易于操作,本系統(tǒng)鍵盤部分設(shè)計使用了非編碼、獨立式按鍵了。系統(tǒng)中共有四個獨立按鍵,、。其中1號鍵為時間調(diào)整時間鍵,按下此鍵則進入時間調(diào)整狀態(tài),然后用2號鍵(增量鍵)或3號鍵(減量鍵)來完成時間的校準和鬧鐘的定時。用4號鍵可以顯示鬧鐘的具體時間。其具體的連接電路如圖315所示。圖315 AT89C51與鍵盤連接4 系統(tǒng)軟件設(shè)計軟件設(shè)計是本次系統(tǒng)設(shè)計的一個重要組成部分。而在單片機應(yīng)用系統(tǒng)中,最常用的程序設(shè)計方法是模塊程序設(shè)計。模塊程序設(shè)計具有結(jié)構(gòu)清晰、功能明確、設(shè)計簡便、程序模塊可共享、便于功能擴展及便于程序維護等特點。為了編制模塊程序,先要將軟件功能劃分為若干個子功能模塊,然后確定出各模塊的輸入、輸出及相互間的聯(lián)系。而本次系統(tǒng)設(shè)計也大都是使用這種軟件設(shè)計方法,根據(jù)系統(tǒng)軟、硬件的功能分工,確定出軟件應(yīng)完成的功能。在語言選擇方面,我選擇了匯編語言作為主開發(fā)語言。單片機的程序雖然也可以用C語言進行編寫。但與其相比,匯編語言只是在可讀性和開發(fā)周期上有些遜色于C語言,其運行效率一點都不比C語言差,相反用匯編語言編出來的程序無論是運行速度還是程序占用空間大小方面都比C語言編出來的程序要強的多。所以這次設(shè)計我選用了匯編語言。單片機開發(fā)中除必要的硬件外,同樣離不開軟件,我們編寫的匯編語言源程序需變?yōu)闄C器碼才可以在CPU上執(zhí)行。將源程序編譯成機器碼的軟件很多,我選用的是Keil軟件, Keil軟件是目前最流行開發(fā)MCS-51系列單片機的軟件,從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(μVision)將這些部份組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN9NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的。用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍。通過μVision可以完成編輯、編譯、連接等開發(fā)流程。Keil操作過程也十分的簡單,只需要打開Keil新建一個擴展名為asm文件,然后將其源程序代碼輸入進去,選擇編譯按鈕即可其源程序編譯成以hex為擴展名的二進制文件(機器碼),然后即可下載到單片機上執(zhí)行其程序。本系統(tǒng)程序設(shè)計采用匯編語言進行編寫。主程序設(shè)計思路為:先對系統(tǒng)進行初始化,如:LCD1602初始化,DS1302初始化等,然后才能進入主顯示模塊,即可在LCD1602上看到相應(yīng)的信息。對于LCD1602的初始化,主要是對開啟顯示屏,清屏,設(shè)置顯示初始行等操作。DS1302的初始化主要是先開啟寫功能,然后寫入一個初始值。具體的主程序流程如圖41開始系統(tǒng)初始化定時是否到?歡迎界面顯示主界面鬧鐘響調(diào)整時間是否調(diào)時間?查看定時?顯示定時是是所示。圖41 主程序流程圖主程序源代碼:MAIN:LCALL INIT_LCD1602 。調(diào)用顯示器LCD1602的初始化LCALL INIT_DS1302 。調(diào)用時鐘芯片DS1302的初始化LCALL INIT_TIMER 。調(diào)用鬧鐘初始化LCALL WELCOME 。調(diào)用歡迎界面START:LCALL DISPLAY_TIME 。調(diào)用時鐘顯示程序LCALL DISPLAY_TEMP 。調(diào)用溫度顯示程序LCALL TIMER 。調(diào)用鬧鐘判斷程序JB SETUP,START_NEXT 。判斷是否設(shè)置時間LCALL KEY_SELECT START_NEXT:JB TIMERDISPLAY,START 。判斷是否查看定點鬧鐘的具體時間LCALL TIMER_DISPLAYJMP START AT89C51LCD1602先將命令寫入LCD1602中,告訴它將做什么如果需要顯示數(shù)據(jù)的話,再將數(shù)據(jù)送入LCD1602中本系統(tǒng)采用的是LCD1602液晶顯示器,由于其是本身帶有驅(qū)動模塊的液晶屏,所以對于LCD1602操作程序可分為開顯示、設(shè)置顯示初始行、寫數(shù)據(jù)和清屏等部分。LCD1602的寫命令程序和寫數(shù)據(jù)程序分別以子程序的形式寫在程序里,以便主程序中的調(diào)用。對LCD1602的具體操作過程如圖42所示。圖42對LCD1602的具體操作過程1602LCD的總體操作流程圖見圖43所示。開始LCD初始化延時設(shè)第一行顯示位置顯示第一行內(nèi)容設(shè)第二行顯示位置顯示第二行內(nèi)容圖43 軟件流程圖LCD初始化程序:INIT_LCD1602:MOV LCD,01H ;清屏CALL ENABLE_ORDERMOV LCD,38H ;8位點陣,兩行顯示CALL ENABLE_ORDERMOV LCD,0CH ;顯示開關(guān)為開,光標開關(guān)為關(guān),閃爍開關(guān)為關(guān)CALL ENABLE_ORDERMOV LCD,80H ;顯示的起始位置為第一行的第一位CALL ENABLE_ORDERRETDS1302 與微處理器進行數(shù)據(jù)交換過程如圖44所示,首先由微處理器向電路發(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é)。AT89C51LCD1602先將命令寫入DS1302,告訴它將做什么操作如果是寫數(shù)據(jù)的話,再將數(shù)據(jù)送入DS1302中如果是讀數(shù)據(jù)的話,直接從DS1302數(shù)據(jù)口讀出讀、寫DS1302的流程圖分別為圖45,圖46所示,其源程序見附錄代碼。開始復位端產(chǎn)生1個高電平將命令字寫到變量中向DS1302發(fā)送1位數(shù)據(jù)延時命令字是否傳輸完準備傳輸命令字中的下一位將數(shù)據(jù)寫到變量中向DS1302發(fā)送1位數(shù)據(jù)延時數(shù)據(jù)是否傳輸完準備傳輸數(shù)據(jù)中的下一位結(jié)束否否圖44 DS1302 與微處理器進行數(shù)據(jù)交換過程圖45 寫DS1302數(shù)據(jù)流程圖開始復位端產(chǎn)生1個高電平將命令字寫到變量中向DS1302發(fā)送1位數(shù)據(jù)延時命令字是否傳輸完準備傳輸命令字中的下一位將數(shù)據(jù)寫到變量中從DS1302接收 1位數(shù)據(jù)延時數(shù)據(jù)是否接收完準備接收數(shù)據(jù)中的下一位結(jié)束否否圖46 讀DS1302數(shù)據(jù)流程圖
點擊復制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1