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

正文內(nèi)容

基于單片機的時鐘系統(tǒng)設計(編輯修改稿)

2025-07-24 22:41 本頁面
 

【文章內(nèi)容簡介】 復雜點就有三極管等等配合程序來進行了。為確保微機系統(tǒng)中電路穩(wěn)定可靠工作,復位電路是必不可少的一部分,復位電路的第一功能是上電復位。一般微機電路正常工作需要供電電源為5V177。5%,~。由于微機電路是時序數(shù)字電路,它需要穩(wěn)定的時鐘信號,因此在電源上電時,復位信號才被撤除,微機電路開始正常工作。 實驗板電路原理圖 實驗板結(jié)構(gòu)框圖 功能電路分析 時鐘電路。其中JT 的晶振,改變兩電容CB的值即可對此晶振頻率進行調(diào)節(jié)。該電路提供單片機工作所需的振蕩頻率,計算定時器初值即需此晶振頻率,在通信時也需知道晶振頻率,以對波特率進行計算。圖 時鐘電路 復位電路,當RESET 信號為低電平時,實驗板為工作狀態(tài),當RESET信號為高電平時,實驗板為復位或下載程序狀態(tài)。由于AT89S52具有ISP 的功能,即可以通過并口線直接將程序下載到單片機內(nèi),因此, AT89S52 具有兩種狀態(tài),下載程序狀態(tài)和運行狀態(tài)。該復位電路能實現(xiàn)上電自動復位,也能手動復位,一般復位時RESET應保持20毫秒以上高電平,此復位時間由接地電容控制。圖 復位電路 鍵盤電路,各設置及轉(zhuǎn)換信號由此電路輸入,實驗板提供了16個按鍵,由P1口經(jīng)SN74F244(驅(qū)動芯片)輸出擴展成44的陣列按鍵,~,~。SN74F244有一片選信號線,當此口線為低電平時,A1~A4與Y1~Y4接通,反之,A1~A4與Y1~Y4斷開。此鍵盤用掃描工作方式,若有鍵按下,則相應位端口被拉低為低電平,由于本系統(tǒng)只用了4個按鍵,所以只需對4個按鍵進行掃描。掃描時,向P1口送0EFH(MOV P1,0EFH),讀P1口(MOV A,P1),最后判斷P1口低4位哪位是低電平,若某位為低電平,則相應按鍵被按下,(=0),則K1鍵被按下。 液晶顯示屏LCD1602 (一)LCD1602特點說明[12] [13]液晶顯示模塊由于具有低功耗、壽命長、體積小、顯示內(nèi)容豐富、價格低、接口控制方便等優(yōu)點,因此在各類電子產(chǎn)品中被極廣泛地推廣和應用。字符型液晶顯示模塊是一類專門用于顯示字母、數(shù)字、符號等點陣式液晶顯示模塊。本系統(tǒng)設計采用字符型液屏顯示模塊LCD1602 作為顯示器件,這樣不僅簡化了系統(tǒng)的硬件設計,而且極大地提高了系統(tǒng)的可靠性。字符型液晶顯示模塊LCD1602是單片機應用設計中最常用的信息顯示器件。LCD1602 可以顯示兩行,每行16 個字符,采用+5V 電源供電,外圍電路配置簡單,價格便宜,具有很高的性價比[14]。(二)LCD1602功能介紹 。 LCD1602管腳功能表(1)基本操作時序:LCD1602 讀寫操作時序總體上來說是比較簡單的,掌握其有兩種方法:一種是直接看時序圖,另外一種方法是直接記憶和總結(jié)讀寫時電平高低和變化。很顯然第二種更簡單、直接,下面就列出典型讀寫的時序要求,以方便編寫程序。讀狀態(tài)輸入:RS=L,R/W=H,E=H 輸出:D0D7=狀態(tài)字寫指令輸入:RS=L,R/W=L,D0D7=指令碼,E=高脈沖 輸出:無讀數(shù)據(jù)輸入:RS=H,R/W=H,E=H 輸出:D0D7=數(shù)據(jù)寫數(shù)據(jù)輸入:RS=H,R/W=L,D0D7=數(shù)據(jù),E=高脈沖 輸出:無(2)狀態(tài)字說明: 狀態(tài)字表對控制器每次進行讀寫操作之前,都必須進行讀寫檢測,確保STA7為0(3)指令說明: 顯示模式設置表 顯示開/關(guān)及背光燈設置表(4)數(shù)據(jù)控制控制器內(nèi)部有一個數(shù)據(jù)地址指針,用戶可通過它們來訪問內(nèi)部的全部80字節(jié)RAM(5)數(shù)據(jù)指針設置 數(shù)據(jù)指針設置表(6)其他設置 其他設置指令表(三)LCD1602初始化過程(1)延時15ms(2)寫指令38H(不檢測忙信號)(3)延時5ms(4) 寫指令38H(不檢測忙信號)(5)寫指令5ms(6) 寫指令38H(不檢測忙信號)(7)之后每次寫指令、讀/寫數(shù)據(jù)操作之前均需檢測忙信號(8)寫指令38H:顯示模式設置(9)寫指令08H:顯示關(guān)閉(10) 寫指令01H:顯示清屏幕(11) 寫指令06H:顯示光標移動設置(12) 寫指令0CH:顯示及光標設置 本章小節(jié)本章主要對芯片作了介紹,對其內(nèi)存單元作了詳細說明,并對系統(tǒng)硬件(實驗板)的結(jié)構(gòu)框圖和各功能電路作了說明,以及這些電路在本設計中的用途。 第四章 軟件設計 軟件設計總體說明本系統(tǒng)的程序采用C語言編寫,為了便于修改和調(diào)試,系統(tǒng)軟件采用模塊化設計,程序的編寫編譯在WAVE6000軟件中完成。首先對STC89C5LCD160DS12C887進行初始化,日歷信息通過LCD1602顯示出來,實際上芯片內(nèi)部的時間仍然在走。時鐘芯片向單片機發(fā)出中斷請求,單片機通過報警模塊進行警報,此時,若按下四個按鍵中的任意一個,報警停止,LCD1602顯示的時間繼續(xù)精確顯示。[20]系統(tǒng)中有四個按鍵,即:設置鍵k切換鍵k上調(diào)鍵k下調(diào)鍵k4。(1)按下k1鍵,系統(tǒng)進入設置狀態(tài),再按下k2鍵可在除了溫度外的項目,如年、月、日、時、分、秒、星期、鬧鐘上停留,此時再按下上調(diào)鍵S3即可進行加一操作,按下下調(diào)鍵S4即可進行減一的操作。(2)同時按下k1鍵和k2鍵會將當前的時間恢復到程序中設定的默認時間。(3)同時按下k3鍵和k4鍵可對鬧鐘進行開啟和關(guān)閉的操作。 主程序軟件實現(xiàn) 主程序流程圖void main(){ lcd_init()。 Start_calendar ()。 initial_irq ()。 enable_set = F。 while(1) { if ( enable_play_song ) { play_song()。 enable_play_song = F。 } update_display_data ()。 display_calender_and_temp ()。 if (enable_set) { delay (100)。 update_set_display (cur_set_pos)。 //更新設置的信息 display_calender_and_temp ()。 delay (100)。 date_time[TIME_SIGN_POS] = 39。:39。 continue。 } delay (200)。 flash_time_sign ()。 } } LCD1602模塊軟件實現(xiàn) LCD1602液晶顯示模塊子程序流程圖 LCD1602子程序流程圖 LCD1602液晶顯示模塊子程序代碼include include include include include include define LCD_DATA P2 sbit rs = P1^6。sbit rw = P1^5。sbit ep = P1^4。BOOL lcd_bz(){ BOOL result。 rs = 0。 rw = 1。 ep = 1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 result = (BOOL)(LCD_DATA amp。 0x80)。 ep = 0。 return result。 }void lcd_wcmd(BYTE cmd){ while(lcd_bz())。 rs = 0。 rw = 0。 ep = 0。 _nop_()。 _nop_()。 LCD_DATA = cmd。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ep = 1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ep = 0。 }void lcd_pos(BYTE pos){ lcd_wcmd(pos | 0x80)。}void lcd_wdat(BYTE dat) { while(lcd_bz())。 rs = 1。 rw = 0。 ep = 0。 LCD_DATA = dat。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ep = 1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ep = 0。 }void lcd_write_line(BYTE line, BYTE *line_data){ BYTE i = 0。 lcd_pos(line * 0x40)。 for (i = 0。 line_data[i] != 39。\039。 i ++) { lcd_wdat(line_data[i])。 }}void lcd_clear_line(BYTE line){ BYTE i = 0。 lcd_pos(line * 0x40)。 for (i = 0。 i 16。 i ++) { lcd_wdat (39。 39。)。 }}void lcd_init(){ lcd_wcmd(0x38)。 delay(1)。 lcd_wcmd(0x0c)。 delay(1)。 lcd_wcmd(0x06)。 delay(1)。 lcd_wcmd(0x01)。 delay(1)。 lcd_clear_line(0)。 lcd_clear_line(1)。} DS12887模塊軟件實現(xiàn) DS12887模塊子程序流程圖 DS12887時間顯示流程圖 DS12887模塊子程序代碼include include include include include include sbit key_tab = P1^0。 sbit key_set = P1^1。 sbit key_up = P1^2。 sbit key_down = P1^3。 define CENTURY_POS 0 define YEAR_POS 2define MONTH_POS 5define DAY_POS 8define HOUR_POS 11define TIME_SIGN_POS 13define M
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1