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

正文內(nèi)容

基于51單片機的多功能電子鐘設(shè)計畢業(yè)設(shè)計(doc畢業(yè)設(shè)計論文)-wenkub.com

2025-06-25 00:16 本頁面
   

【正文】 t24000。 unsigned long t2。code unsigned char FREQL[]={ 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6, 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16, }。} 報警模塊軟件實現(xiàn) 報警模塊子程序流程圖圖46 報警模塊子程序流程圖 報警模塊子程序代碼include include include include include sbit speaker=P3^5。 39。 }}void display_calender_and_temp() { lcd_write_line(0, date_time)。 39。, 2)。 break。 case 5: memset (amp。date_time[MINUTE_POS], 39。 39。, 2)。 break。 case 1: memset (amp。date_time[CENTURY_POS], 39。 IT0 = 0。 } EX1=1。 enable_set) { increase_value(cur_set_pos)。 } else { Start_calendar()。 enable_set) { cur_set_pos ++。D39。 ALARM_STATE = 39。 } if (!key_up amp。 return。 if (enable_play_song) { TR0=0。 enable_play_song = T。 }}void int_0() interrupt 0 { BYTE i = 0。 case 7: if (clock_minute_a) { clock_minute_a = dec_bcd_value (clock_minute_a)。 } break。 } else { clock_minute = 0x59。 case 3: if (clock_hour) { clock_hour = dec_bcd_value (clock_hour)。 } break。 clock_century = dec_bcd_value(clock_century)。 } break。 } else { clock_hour_a = inc_bcd_value(clock_hour_a)。 case 5: if (clock_week == 0x7) { clock_week = 0x1。 } break。 } else { clock_day = inc_bcd_value (clock_day)。 case 1: if (clock_month== 0x12) { clock_month = 0x1。//select }void increase_value(BYTE cur_pos) { switch (cur_pos) { case 0: if ( clock_year == 0x99) { clock_century = inc_bcd_value(clock_century)。 clock_hour_a = clock_hour。 clock_hour = 0x14。 clock_century = 0x21。 clock_b = 0x82 | 0x20。 } void Start_calendar(void) { BYTE i = clock_c。 week_alarm_temperature[ALARM_SIGN_POS + 3] = 39。 0xF) 1], 3)。 bcd_to_byte_string (clock_minute,amp。 bcd_to_byte_string (clock_day, amp。 bcd_to_byte_string (clock_year, amp。039。}void bcd_to_byte_string(uchar bcd, uchar *bcd_str) { bcd_str[0] = (bcd 4) + 39。}BYTE dec_bcd_value (BYTE bcd) { if ((bcd amp。 BYTE inc_bcd_value(BYTE bcd) { if ((bcd amp。void lcd_clear_line(BYTE line)。 define SET_MODE_COUNT (7 + 1) void play_song(void)。 39。 39。 39。 39。 39。 39。 39。 39。}。,39。,39。,39。,39。,39。,39。,39。 BYTE date_time[16] = {39。 sbit key_set = P1^1。 delay(1)。 delay(1)。)。 for (i = 0。\039。 }void lcd_write_line(BYTE line, BYTE *line_data){ BYTE i = 0。 _nop_()。 _nop_()。 ep = 0。 }void lcd_pos(BYTE pos){ lcd_wcmd(pos | 0x80)。 _nop_()。 _nop_()。 _nop_()。 rs = 0。 0x80)。 _nop_()。 rs = 0。} LCD1602模塊軟件實現(xiàn) LCD1602液晶顯示模塊子程序流程圖圖43 LCD1602子程序流程圖 LCD1602液晶顯示模塊子程序代碼include include include include include include define LCD_DATA P2 sbit rs = P1^6。 tt = (tplsb1) + point_val。 tt = t*。 tpmsb=rdbyte()。 delay_temperature(1)。 float tt=0。 wrbyte(0x44)。 } }}void convert(void){ txreset()。 while(i0) i。 i=8。 if(btmp) { dq=0。j=8。}void wrbyte(uchar b){ uint i。i=8。 return(b)。i++。 dq=0。 i=4。 while(i0) i。 i=100。 while(t) { for(i=0。 //繼續(xù)循環(huán) } delay (200)。 //顯示日歷及溫度信息 delay (100)。 //更新顯示數(shù)據(jù) display_calender_and_temp ()。 //中斷開啟 enable_set = F。(3)同時按下S3鍵和S4鍵可對鬧鐘進行開啟和關(guān)閉的操作。時鐘芯片向單片機發(fā)出中斷請求,單片機通過報警模塊進行警報,此時,若按下四個按鍵中的任意一個,報警停止,LCD1602顯示的時間繼續(xù)精確顯示。本模塊采用PNP三極管為蜂鳴器放大電流,集電極直接接地,發(fā)射極接發(fā)光二極管和蜂鳴器。同時。液晶顯示模塊電路如圖314所示。這里只用到一個溫度傳感器,若要使用多個則只需將所有的DS18B20的I/O口接在一起即可,在具體操作時,通過讀取每個芯片的內(nèi)部序列號來識別[18]。MOT引腳接地,為INTEL總線時序方式。單片機復位電路參數(shù)的選定須在振蕩穩(wěn)定后保證復位高電平持續(xù)時間大于2個機器周期。(二)復位電路 最小系統(tǒng)復位電路如圖310所示?!?2MHz之間選擇,電容值在5~30pF之間選擇,電容值的大小可對頻率起微調(diào)的作用。 圖39 晶振電路圖STC89C52內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL0和XTAL1分別是此放大器的輸入端和輸出端。單片機的模塊化就是把系統(tǒng)分成各個具有獨立功能又可以互相銜接的簡單模塊,將復雜難懂的指令、語法、編程及其電路分解,使設(shè)計簡單化[15]。(二)LCD1602功能介紹 LCD1602各引腳功能如表37所示。字符型液晶顯示模塊是一類專門用于顯示字母、數(shù)字、符號等點陣式液晶顯示模塊。無論是那種供電方式,I/。數(shù)據(jù)通過單線接口以串行方式傳輸。這是通過改變計數(shù)器對溫度每增加一度所需計數(shù)的的值來實現(xiàn)的。如果計數(shù)器在門周期結(jié)束前到達0,則溫度寄存器(同樣被預置到55℃)的值增加,表明所測溫度大于55℃。如圖34所示。 溫度傳感器DS18B20(一)DS18B20功能特點DS18B20具有超小體積和超低硬件開銷,精度高,抗干擾能力強等優(yōu)點。 即:IRQF=PF●寄存器C 表35 DS12887寄存器CIRQF:中斷申請標志位。 a 用PIE位允許中斷;若UIP為1,實時時鐘的更新轉(zhuǎn)換發(fā)生的很快,而當UIP為0,更新轉(zhuǎn)換至少在244181。 DS12887的存儲器分配圖如圖33所示,其中00H09H為時鐘信息和鬧鐘信息寄存器,0AH0DH為四個控制寄存器圖33 DS12887存儲器分配圖(2) 控制寄存器 RESET(復位輸出):若要保證DS12887有效復位,必須讓該腳保持低電平時間大于200ms。IRQ線是漏極開路輸入,要求外接上拉電阻。(9)三種可供選擇的中斷方式 時間性中斷 周期性中斷時鐘更新結(jié)束中斷(二)DS12887的原理及管腳說明圖32顯示了DS12887管腳排列圖。 (7)可編程并選擇的方波信號輸出其中14個字節(jié)作為時鐘和控制寄存器,114字節(jié)為通用RAM,所有ARAM單元數(shù)據(jù)都具有掉電保護功能。其主要功能如下:需注意的是:如果加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。端口引腳 第二功能   RXD(串行輸入口)   TXD(串行輸出口)   INTO(外中斷0)   INT1(外中斷1)   TO(定時/計數(shù)器0)   T1(定時/計數(shù)器1)   WR(外部數(shù)據(jù)存儲器寫選通) RD(外部數(shù)據(jù)存儲器讀選通)此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。在使用 8位地址(如MOVX RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。此外,()和時器/計數(shù)器2 的觸發(fā)輸入(),具體如下所示。P1口(Pin1~Pin8):~。(4)可編程輸入/輸出引腳(32根)STC89C52單片機有4組8位的可編程I/O口,分別位P0、PPP3口,每個口有8位(8根引腳),共32根。表31給出了其主要功能。 3)定時時間到達時,蜂鳴器報警;手動按任意鍵報警停止;如無人工按鍵。最后將各個功能的電路程序組合起來,然后再進行總體調(diào)試直到成功。 系統(tǒng)硬件描述基于單片機系統(tǒng)的電子時鐘基本結(jié)構(gòu)框圖如圖21所示:圖21 系統(tǒng)基本結(jié)構(gòu)框圖該系統(tǒng)所需要的器件包括單片機STC89C52芯片一塊,實時時鐘芯片DS12887一塊,溫度傳感器DS18B20一塊,液晶顯示屏LCD1602一塊,雙4輸入與門芯片74LS21一塊,蜂鳴器一個,12mHZ的晶振一個,排針排線若干組,電容電阻若干,導線若干,發(fā)光二級管一個,三極管一個,按鈕5個。 第二章 總體方案 系統(tǒng)的設(shè)計思路本次設(shè)計完成電子時鐘年、月、日、時、分、秒的顯示及環(huán)境溫度測量等功能的基礎(chǔ)上完成定時鬧鐘的功能。21世紀后,智能溫度傳感器毫無疑問正朝著高精度、多功能、總線標準化、高可靠性及高安全性等高科技的方向迅速發(fā)
點擊復制文檔內(nèi)容
化學相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1