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

正文內容

基于at89c51數(shù)碼時鐘電路的設計(編輯修改稿)

2025-07-24 17:48 本頁面
 

【文章內容簡介】 第3章 系統(tǒng)軟件設計本系統(tǒng)程序設計采用匯編語言進行編寫。開始系統(tǒng)初始化定時是否到?歡迎界面顯示主界面鬧鐘響調整時間是否調時間?查看定時?顯示定時是是 主程序設計思路為:先對系統(tǒng)進行初始化,如:LCD1602初始化,DS1302初始化等,然后才能進入主顯示模塊,即可在LCD1602上看到相應的信息。對于LCD1602的初始化,主要是對開啟顯示屏,清屏,設置顯示初始行等操作。DS1302的初始化主要是先開啟寫功能,然后寫入一個初始值。具體的主程序流程如圖31所示圖31 主程序流程圖主程序源代碼:MAIN:LCALL INIT_LCD1602 。調用顯示器LCD1602的初始化LCALL INIT_DS1302 。調用時鐘芯片DS1302的初始化LCALL INIT_TIMER 。調用鬧鐘初始化LCALL WELCOME 。調用歡迎界面START:LCALL DISPLAY_TIME 。調用時鐘顯示程序LCALL DISPLAY_TEMP 。調用溫度顯示程序LCALL TIMER 。調用鬧鐘判斷程序JB SETUP,START_NEXT 。判斷是否設置時間LCALL KEY_SELECT START_NEXT:JB TIMERDISPLAY,START 。判斷是否查看定點鬧鐘的具體時間LCALL TIMER_DISPLAYJMP START AT89C51LCD1602先將命令寫入LCD1602中,告訴它將做什么如果需要顯示數(shù)據(jù)的話,再將數(shù)據(jù)送入LCD1602中本系統(tǒng)采用的是LCD1602液晶顯示器,由于其是本身帶有驅動模塊的液晶屏,所以對于LCD1602操作程序可分為開顯示、設置顯示初始行、寫數(shù)據(jù)和清屏等部分。LCD1602的寫命令程序和寫數(shù)據(jù)程序分別以子程序的形式寫在程序里,以便主程序中的調用。對LCD1602的具體操作過程如圖32所示。圖32對LCD1602的具體操作過程1602LCD的總體操作流程圖見圖33所示。開始LCD初始化延時設第一行顯示位置顯示第一行內容設第二行顯示位置顯示第二行內容圖33 軟件流程圖LCD初始化程序:INIT_LCD1602:MOV LCD,01H ;清屏CALL ENABLE_ORDERMOV LCD,38H ;8位點陣,兩行顯示CALL ENABLE_ORDERMOV LCD,0CH ;顯示開關為開,光標開關為關,閃爍開關為關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é)傳送結束之后,在下2個SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。AT89C51LCD1602先將命令寫入DS1302,告訴它將做什么操作如果是寫數(shù)據(jù)的話,再將數(shù)據(jù)送入DS1302中如果是讀數(shù)據(jù)的話,直接從DS1302數(shù)據(jù)口讀出讀、寫DS1302的流程圖分別為圖35,圖36所示,其源程序見附錄代碼。開始復位端產生1個高電平將命令字寫到變量中向DS1302發(fā)送1位數(shù)據(jù)延時命令字是否傳輸完準備傳輸命令字中的下一位將數(shù)據(jù)寫到變量中向DS1302發(fā)送1位數(shù)據(jù)延時數(shù)據(jù)是否傳輸完準備傳輸數(shù)據(jù)中的下一位結束否否圖34 DS1302 與微處理器進行數(shù)據(jù)交換過程圖35 寫DS1302數(shù)據(jù)流程圖開始復位端產生1個高電平將命令字寫到變量中向DS1302發(fā)送1位數(shù)據(jù)延時命令字是否傳輸完準備傳輸命令字中的下一位將數(shù)據(jù)寫到變量中從DS1302接收 1位數(shù)據(jù)延時數(shù)據(jù)是否接收完準備接收數(shù)據(jù)中的下一位結束否否圖36 讀DS1302數(shù)據(jù)流程圖DS1302為單線接口且每一個DS18B20都有唯一的系列號,因此多個DS18B20可以存在于同一條單線上工作,但本系統(tǒng)就用了一個DS1302所以對DS18B20的搜索可以用Skip ROM命令跳過搜索,然后再對其進行操作。具體的DS18B20的操作過程如圖37所示。AT89C51LCD1602跳過搜索先將命令寫入DS1302,告訴它將做什么操作向DS18B20發(fā)讀命令如果是寫數(shù)據(jù)的話,再將數(shù)據(jù)送入DS1302中讀DS18B20的數(shù)據(jù)如果是讀數(shù)據(jù)的話,直接從DS1302數(shù)據(jù)口讀出圖37 DS18B20的操作過程開始初始化寫命令:跳過讀序列號操作(0XCC)寫命令:啟動溫度轉換溫度轉換結束?初始化寫命令:讀溫度寄存器寫命令:跳過讀序列號操作(0XCC)讀出溫度,并存儲結果結束否讀DS18B20的流程圖見圖38所示。其源程序可查閱附錄中的源代碼部分。圖38 讀DS18B20的流程圖鍵盤操作是本系統(tǒng)軟件設計中的難點,也是重點。本次設計我只用了四個鍵,它人分別是1號鍵(時間調整時間鍵),2號鍵(增量鍵),3號鍵(減量鍵),4號鍵(顯示定時時間鍵)。當按下1號鍵后會進入,時間調整程序,在不同的設置時段你可以通過2號鍵或者3號鍵來對年、月、日、周、時、分、鬧鐘的時、鬧鐘分進行設置。當退出時間調整程序后,按4號鍵可以查看設置鬧鐘的時間。鍵盤操作可以有兩個方式分別為中斷法和按鍵掃描法。我選擇的后者,因為用四個鍵如果用中斷的話,不容易控制,易出錯。而且如果用這種最傳統(tǒng)的掃描法,使程序看起來SETUP按下?調整年SETUP按下?調整月SETUP按下?調整日SETUP按下?調整周SETUP按下?調整時SETUP按下?調整分SETUP按下?調整鬧鐘時SETUP按下?調整鬧鐘分年否否否否否否否否思路更清晰、更明了、更容易理解。具體軟件設計流程圖如圖39所示。圖39 時間設置過程第4章 硬件實現(xiàn) Protel的硬件電路設計本系統(tǒng)硬件由控制時鐘芯片DS130溫度芯片DS18BAT89C51單片機和字符點陣型LCD1602液晶顯示器等器件構成。用DS1302產生時鐘信號,用溫度芯片DS18B20產生溫度信號,由單片機負責接收并且對其進行控制,最后在LCD1602液晶顯示器然顯時間及溫度等信息。首先執(zhí)行菜單命令“文件” - “創(chuàng)建” - “項目” - “PCB項目”,創(chuàng)建一個新的PCB項目,并命名為“”,保存該項目到“在D:”下。然后在該項目中添加一個原理圖文件,命名為“”并保存在同一目錄下。 原理圖設計單擊工作區(qū)面板上的“Project”選項卡,從選項卡中選擇新建的原理圖文件“”,切換到原理圖編輯狀態(tài)界面,按照電路中用到的元件逐個放置,并對元件進行布局。再按照各個元件之間的電氣連接屬性,對電路進行連接。在連接的過程中,可以根據(jù)連接的需要適當調整元件的布局。在連線較復雜的地方可以通過放置網(wǎng)絡標簽來連接。連接好的電路如圖43所示。圖43 系統(tǒng)電路圖其中由于DXP中無LCD160DS18B20等芯片,而最終設計出的電路板并不會產生電子原器件,只是為芯片留其引腳相應的銅空而矣,所以這些芯片可用與其引腳相同的器件來代替。因此本系統(tǒng)的電路圖最終設計成了圖43所示的樣子。 報表生成在原理圖繪制完成后,就可以編譯原理圖找出錯誤的地方進行修改,同時生成所需要的各種報表文檔。執(zhí)行菜單命令“項目管理” - “Compile PCB Project ”,對項目進行編譯。編譯結束后,會彈出“Message”對話框,在該對話框中列出了編譯中的錯誤或者警告等信息。根據(jù)編譯的信息,仔細檢查原理圖并修正提示的錯誤信息。 創(chuàng)建PCB文件單擊工作區(qū)面板的“Project”選項卡,移動光標到項目“”上,單擊鼠標右鍵,在彈出的快捷菜單中,執(zhí)行菜單命名“追加新文件到項目中” - “PCB”,創(chuàng)建一個新的PCB文件,重新命名為“”并保存到項目目錄下,如圖44所示。圖44 追加PCB文件到項目在PCB編輯狀態(tài)下,執(zhí)行菜單命令“設計” - “Import Changes From ”,系統(tǒng)會彈出“工程變化訂單(ECO)”對話框,如圖45所示。圖45 工程變化訂單單擊“使變化生效”按鈕,檢查有無錯誤信息,如有錯誤則修改相應的地方。直到無錯誤信息為止。然后單擊“執(zhí)行變化” 完成網(wǎng)絡表的導入如圖46所示。圖46 執(zhí)行變化狀態(tài)完成網(wǎng)絡表的導入后,單擊“工程變化訂單(ECO)”對話框中的“關閉”按鈕。在PCB編輯狀下,可以看到導入網(wǎng)絡表后的PCB如圖47所示。圖47 完成網(wǎng)絡表導入的PCB界面第5章 結 論這次畢業(yè)設計項目雖然不是很大,但用的技術和知識一點也不遜色于大點的項目,比如說其中用到了DS18B20中的串行通信技術,AT89C51基本操作知識,匯編語言方面的知識等。這次畢業(yè)設計也是一次非常難得的理論和實際相結合的機會,通過這次比較完整系統(tǒng)設計,使我擺脫了以往單純的理論知識學習狀態(tài),并且在和實際設計的結合鍛煉了我的綜合運用所學的專業(yè)基礎知識。在設計過程中遇到的問題在老師或同學的幫助下一個一個解決了,這次設計雖然順利做完了,但還是許多美中不足之處,讓我認識到自己對單片機應用方面的知識的貧乏,對于書本上的很多理論知識還不能靈活運用,有很多我們掌握的知識在等著我去學習,我會在以后的學習生活中彌補我所缺少的知識。同時還從中學到了一件很重要的東西,那就是如何從理論到實踐的轉化,怎么樣將我所學到的知識運用到我以后的工作中去。此次的畢業(yè)設計給我奠定了一個實踐基礎,我會在以后的學習,生活中磨練自己,使自己適應于以后的競爭。附 錄(1)仿真電路圖仿真電路圖(2)PCB電路圖PCB電路圖(3):源程序ORG 0000H。——————————DS1602引腳定義——————————RS EQU 。RS為寄存器選擇RW EQU 。RW為讀寫信號線E EQU 。E為使能端,E由高變低進執(zhí)行命令LCD EQU P0 。數(shù)據(jù)總線?!!狣S1302引腳定義——————————RST EQU 。復位引腳SCLK EQU 。串行時鐘IO EQU 。數(shù)據(jù)輸入/輸出引腳?!??!狣S18B20引腳定義—————————DQ BIT 。單總線口。———————————————————————————。———————————鍵盤引腳定義——————————SETUP EQU 。調整時間按鍵UP EQU 。加按鍵DOWN EQU 。減按鍵TIMERDISPLAY EQU 。顯示鬧鐘時間按鍵?!??!狣S1302數(shù)據(jù)存儲單元定義————————DS1302_INSTRUCTION EQU 20H 。存儲DS1302指令的寄存器DS1302_DATA EQU 21H 。存儲(讀/寫)DS1302數(shù)據(jù)的寄存器YEAR_HH EQU 30H 。年的最高兩位YEAR EQU 31H 。年寄存器YEAR_H EQU 32H 。年的十位寄存器YEAR_L EQU 33H 。年的個位寄存器MONTH EQU 34H 。月寄存器MONTH_H EQU 35H 。月的十位寄存器MONTH_L EQU 36H 。月的個位寄存器DAY EQU 37H 。日寄存器DAY_H EQU 38H 。天的十位寄存器DAY_L EQU 39H 。天的個位寄存器WEEK EQU 40H 。周寄存器HOUR EQU 41H。小時寄存器HOUR_H EQU 42H 。小時的十位寄存器HOUR_L EQU 43H 。小時的個位寄存器MINUTE EQU 44H。分鐘寄存器MINUTE_H EQU 45H 。分鐘的十位寄存器MINUTE_L EQU 46H 。分鐘的個位寄存器SECOND EQU 47H。秒寄存器SECOND_H EQU 48H 。秒的十位寄存器SECOND_L EQU 49H 。秒的個位寄存器。———————————————————————————。—————————DS18B20數(shù)據(jù)存儲單元定義——————TEMPER_L EQU 50H 。暫存溫度個位TEMPER_H EQU 51H
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1