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

正文內(nèi)容

基于單片機的多功能液晶顯示數(shù)字時時鐘設(shè)計-在線瀏覽

2025-08-07 12:36本頁面
  

【正文】 入時,P2口的管腳被外部拉低,將輸出電流。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。在編程/校驗時,P3口可接收某些控制信號。表31 P3口的特殊功能引腳 替代功能 說明 RXD 串行數(shù)據(jù)接收 TXD 串行數(shù)據(jù)發(fā)送 INT0 外部中斷0申請 INT1 外部中斷1申請 T0 定時器0外部事件計數(shù)輸入 T1 定時器1外部事件計數(shù)輸入 WR 外部RAM寫選通 RD 外部RAM讀選通RST——復(fù)位輸入。ALE/PROG——當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。/EA/VPP——當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL2——來自反向振蕩器的輸出。AT89C51的時鐘信號可通過內(nèi)部振蕩方式和外部振蕩方式兩種方式得到。在使用片內(nèi)振蕩器時,XTAL1和XTAL2分別為反向放大器的輸入端和輸出端。當(dāng)使用外部時鐘驅(qū)動時,XTAL2引腳應(yīng)懸空,而由XTAL1引腳上的信號驅(qū)動,或者XTAL1引腳應(yīng)懸空,而由XTAL2引腳上的信號驅(qū)動。在電容器CC2選擇時方面,一般選擇其值為5~30pF。圖35 晶振電路圖 AT89C51的復(fù)位電路設(shè)計根據(jù)應(yīng)用的要求,復(fù)位操作通常由上電復(fù)位和開關(guān)復(fù)位2種基本形式。具體的電路連接接法如圖36所示。這表明程序從0000H地址單元開始執(zhí)行。表32 8051單片機復(fù)位后特殊功能寄存器的初始狀態(tài)[1]特殊功能寄存器初始狀態(tài)特殊功能寄存器初始狀態(tài)A 00H TMOD 00H B 00H TCON 00H 表32續(xù) 8051單片機復(fù)位后特殊功能寄存器的初始狀態(tài)[1]特殊功能寄存器初始狀態(tài)特殊功能寄存器初始狀態(tài)PSW 00H TH0 00H SP 07H TL0 00H DPL 00H TH1 00H DPH 00H TL1 00H P0~P3 FFH SBUF 不定 IP ***00000B SCON 00H IE 0**00000B PCON 0*******B 注:表中的符號*為隨機狀態(tài)需要指出的是,記住一些特殊功能寄存器復(fù)位后的狀態(tài),對于熟悉單片機操作,減短應(yīng)用程序中的初始化部分是十分必要的。本系統(tǒng)使用是是LCD1602液晶顯示器,它可以顯示兩行,每行16個字符,采用單+5V電源電,外圍電路配置簡單,價格便宜,具有很高的性價比。圖37 LCD1602外觀LCD1602采用標(biāo)準(zhǔn)的14腳接口,其中VSS為地電源,VDD接5V正電源,VEE為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。LCD1602液晶模塊內(nèi)部的控制器共有11條控制指令,具體的命令見表33所示。(1)清屏指令功能:1) 清除液晶顯示器,即將DDRAM的內(nèi)容全部填入“空白”的ASCII碼20H;2)光標(biāo)歸位,即將光標(biāo)撤回液晶顯示屏的左上方;3) 將地址計數(shù)器(AC)的值設(shè)為0;2. 光標(biāo)復(fù)位指令參數(shù)設(shè)定的情況表34所示。參數(shù)設(shè)定的情況如表35。參數(shù)設(shè)定的情況如表36。參數(shù)設(shè)定的情況如表37。(8)設(shè)定DDRAM地址指令功能:設(shè)定下一個要存入數(shù)據(jù)的CGRAM的地址。(10)數(shù)據(jù)寫入DDRAM或CGRAM指令一覽功能:1) 將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對應(yīng)的字符;2)將使用者自己設(shè)計的圖形存入CGRAM;(11)從CGRAM或DDRAM讀出數(shù)據(jù)的指令一覽功能:讀取DDRAM或CGRAM中的內(nèi)容。 DB0~DB7=指令碼無讀數(shù)據(jù)RS=H,RW=H,E=HDB0~DB7=數(shù)據(jù)寫數(shù)據(jù)RS=H,RW=L,E=下降沿脈沖,DB0~DB7=數(shù)據(jù)無液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。圖38 1602LCD內(nèi)部顯示地址例如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標(biāo)定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。R/。具體的連接仿真電路可見圖39所示。實時時鐘/日歷電路提供秒、分、時、日、日期、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動調(diào)整,時鐘操作可通過AM/PM指示決定采用24或12小時格式。時鐘/RAM的讀/寫數(shù)據(jù)以一個字節(jié)或多達31個字節(jié)的字符組方式通信。DS1302器件外觀如圖310所示,DS1302管腳的功能描述可見表39所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址。 1 RAM/CK A4 A3 A2 A1 A0 RAM/K圖311 DS1302的控制字在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。 DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表310所示。最好再加一個后備電源使其在斷電后斷續(xù)工作。實際上,在調(diào)試程序時可以不加電容器,只加一個32768Hz 的晶振即可。要特別說明的是備用電源BAT1,可以用電池或者超級電容器()。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容器代替。DS1302在第一次加電后,必須進行初始化操作。圖312 AT89C51與DS1302的連接 AT89C51與溫度芯片的連接DS18B20數(shù)字溫度計是DALLAS公司生產(chǎn)的1-Wire,即單總線器件,具有線路簡單,體積小的特點。其實物圖如圖313所示,其引腳的功能描述可見表311所示。 (2)在DS18B20中的每個器件上都有獨一無二的序列號。 (4)測量溫度范圍在-55176。C之間。 (6)內(nèi)部有溫度上、下限告警設(shè)置。具體的DS18B20與AT89C51連接如圖314所示.圖314 AT89C51與DS18B20的連接 AT89C51與鍵盤的連接鍵盤在單片機應(yīng)用系統(tǒng)中,實現(xiàn)輸入數(shù)據(jù)、傳送命令的功能,是人工干預(yù)的主要手段。(1)編碼鍵盤:由硬件邏輯電路完成必要的鍵識別工作與可靠性措施。這種鍵盤易于使用,但硬件比較復(fù)雜,對于主機任務(wù)比較繁重。鍵盤電路結(jié)構(gòu)分為兩類:獨立式按鍵和矩陣式鍵盤。因此,通過檢測輸入線的電平狀態(tài)可以很容易判斷哪個按鍵被按下了。為了使設(shè)計簡潔、易于操作,本系統(tǒng)鍵盤部分設(shè)計使用了非編碼、獨立式按鍵了。其中1號鍵為時間調(diào)整時間鍵,按下此鍵則進入時間調(diào)整狀態(tài),然后用2號鍵(增量鍵)或3號鍵(減量鍵)來完成時間的校準(zhǔn)和鬧鐘的定時。其具體的連接電路如圖315所示。而在單片機應(yīng)用系統(tǒng)中,最常用的程序設(shè)計方法是模塊程序設(shè)計。為了編制模塊程序,先要將軟件功能劃分為若干個子功能模塊,然后確定出各模塊的輸入、輸出及相互間的聯(lián)系。在語言選擇方面,我選擇了匯編語言作為主開發(fā)語言。但與其相比,匯編語言只是在可讀性和開發(fā)周期上有些遜色于C語言,其運行效率一點都不比C語言差,相反用匯編語言編出來的程序無論是運行速度還是程序占用空間大小方面都比C語言編出來的程序要強的多。單片機開發(fā)中除必要的硬件外,同樣離不開軟件,我們編寫的匯編語言源程序需變?yōu)闄C器碼才可以在CPU上執(zhí)行。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(μVision)將這些部份組合在一起。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的。通過μVision可以完成編輯、編譯、連接等開發(fā)流程。本系統(tǒng)程序設(shè)計采用匯編語言進行編寫。對于LCD1602的初始化,主要是對開啟顯示屏,清屏,設(shè)置顯示初始行等操作。具體的主程序流程如圖41開始系統(tǒng)初始化定時是否到?歡迎界面顯示主界面鬧鐘響調(diào)整時間是否調(diào)時間?查看定時?顯示定時是是所示。調(diào)用顯示器LCD1602的初始化LCALL INIT_DS1302 。調(diào)用鬧鐘初始化LCALL WELCOME 。調(diào)用時鐘顯示程序LCALL DISPLAY_TEMP 。調(diào)用鬧鐘判斷程序JB SETUP,START_NEXT 。判斷是否查看定點鬧鐘的具體時間LCALL TIMER_DISPLAYJMP START AT89C51LCD1602先將命令寫入LCD1602中,告訴它將做什么如果需要顯示數(shù)據(jù)的話,再將數(shù)據(jù)送入LCD1602中本系統(tǒng)采用的是LCD1602液晶顯示器,由于其是本身帶有驅(qū)動模塊的液晶屏,所以對于LCD1602操作程序可分為開顯示、設(shè)置顯示初始行、寫數(shù)據(jù)和清屏等部分。對LCD1602的具體操作過程如圖42所示。開始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)為開,光標(biāo)開關(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,指定讀操作(輸出)。若進行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。開始復(fù)位端產(chǎn)生1個高電平將命令字寫到變量中向DS1302發(fā)送1位數(shù)據(jù)延時命令字是否傳輸完準(zhǔn)備傳輸命令字中的下一位將數(shù)據(jù)寫到變量中向DS1302發(fā)送1位數(shù)據(jù)延時數(shù)據(jù)是否傳輸完準(zhǔn)備傳輸數(shù)據(jù)中的下一位結(jié)束否否圖44 DS1302 與微處理器進行數(shù)據(jù)交換過程圖45 寫DS1302數(shù)據(jù)流程圖開始復(fù)位端產(chǎn)生1個高電平將命令字寫到變量中向DS1302發(fā)送1位數(shù)據(jù)延時命令字是否傳輸完準(zhǔn)備傳輸命令字中的下一位將數(shù)據(jù)寫到變量中從DS1302接收 1位數(shù)據(jù)延時數(shù)據(jù)是否接收完準(zhǔn)備接收數(shù)據(jù)中的下一位結(jié)束否否圖46 讀DS1302數(shù)據(jù)流程圖DS1302為單線接口且每一個DS18B20都有唯一的系列號,因此多個DS18B20可以存在于同一條單線上工作,但本系統(tǒng)就用了一個DS1302所以對DS18B20的搜索可以用Skip ROM命令跳過搜索,然后再對其進行操作。AT89C51LCD1602跳過搜索先將命令寫入DS1302,告訴它將做什么操作向DS18B20發(fā)讀命令如果是寫數(shù)據(jù)的話,再將數(shù)據(jù)送入DS1302中讀DS18B20的數(shù)據(jù)如果是讀數(shù)據(jù)的話,直接從DS1302數(shù)據(jù)口讀出圖47 DS18B20的操作過程開始初始化寫命令:跳過讀序列號操作(0XCC)寫命令:啟動溫度轉(zhuǎn)換溫度轉(zhuǎn)換結(jié)束?初始化寫命令:讀溫度寄存器寫命令:跳過讀序列號操作(0XCC)讀出溫度,并存儲結(jié)果結(jié)束否讀DS18B20的流程圖見
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1