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

正文內(nèi)容

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

2025-03-22 08:25 上一頁面

下一頁面
 

【正文】 ( 1)基本操作時序: LCD1602 讀寫操作時序總體上來說是比較 簡單的,掌握其有兩種方法:一種是直接看時序圖,另外一種方法是直接記憶和總結(jié)讀寫時電平高低和變化。本設(shè)計的電路模塊可以分為單片機最小系統(tǒng)模塊,時鐘模塊,溫度傳感器模塊,液晶顯示模塊,按鍵模塊,蜂鳴器報警模塊。時鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。 單片機晶振兩個電容的作用:這兩個電容叫晶振的負(fù)載電容,分 別接在晶振的兩個腳上和對地的電容,一般在幾十 pf。 基于 51 單片機的多功能電子鐘設(shè)計 22 圖 310 復(fù)位電路圖 無論使用哪種類型的單片機,總要涉及到單片機復(fù)位電路的設(shè)計.而單片機復(fù)位電路設(shè)計的好壞,直接影響 到整個系統(tǒng)工作的可靠性.許多用戶在設(shè)計完單片機系統(tǒng),并在實驗室調(diào)試成功后,在現(xiàn)場卻出現(xiàn)了“死機”、“程序走飛”等現(xiàn)象,這主要是單片機的復(fù)位電路設(shè)計不可靠引起的 [16]。 單片機復(fù)位電路主要有四種類型:微分型復(fù)位電路;積分型復(fù)位電路;比較器型復(fù)位 電路;看門狗型復(fù)位電路[17]。因此 R/W 和 DS 引腳也為對應(yīng) INTEL 的操作模式。 溫度傳感器模塊電路如圖 313 所示。 基于 51 單片機的多功能電子鐘設(shè)計 26 圖 314 液晶顯示模塊 按鍵模塊 74LS21 芯片 為兩組 4 輸入與門(正邏輯) 。四個按鍵中 S1 為切換鍵,S2 為設(shè)定鍵, S3 為上調(diào)鍵, S4 下調(diào)鍵。 報警模塊電路如圖 316所示。 [20] 系統(tǒng)中有四個按鍵,即:設(shè)置鍵 S切換鍵 S上調(diào)鍵 S下調(diào)鍵 S4。 主程序軟件實現(xiàn) 主程序流程圖 基于 51 單片機的多功能電子鐘設(shè)計 30 圖 41 主程序流程圖 主程序代碼 void main() { lcd_init()。 //設(shè)置禁止 while(1) { if ( enable_play_song ) //鈴聲使能 { play_song()。 //顯 示日歷及溫度 if (enable_set) //設(shè)置使能 { delay (100)。 //延時 100ms date_time[TIME_SIGN_POS] = 39。 //延時 200ms flash_time_sign ()。i125。 while(i0) i。 } void rxwait(void) { uint i。 while (i0) i。 i++。 b=dq。 基于 51 單片機的多功能電子鐘設(shè)計 34 } uchar rdbyte(void) { uchar i,j,b。i++){ j=rdbit()。 uchar j。j++) { btmp=bamp。 i++。 while (i0) i。 dq=1。 基于 51 單片機的多功能電子鐘設(shè)計 35 rxwait()。 } float rdtemp(void) { unsigned char tplsb=0。 float point_val = 。 wrbyte(0xcc)。 t=tpmsb。 t= tt*10+。 return tt。 sbit rw = P1^5。 rw = 1。 _nop_()。 ep = 0。 rw = 0。 LCD_DATA = cmd。 _nop_()。 _nop_()。 } void lcd_wdat(BYTE dat) { while(lcd_bz())。 基于 51 單片機的多功能電子鐘設(shè)計 38 LCD_DATA = dat。 _nop_()。 _nop_()。 lcd_pos(line * 0x40)。 i ++) { lcd_wdat(line_data[i])。 i 16。 } } void lcd_init() { lcd_wcmd(0x38)。 lcd_wcmd(0x06)。 lcd_clear_line(0)。 sbit key_up = P1^2。239。139。/39。539。139。 39。039。339。 BYTE week_alarm_temperature[16] ={39。,39。,39。,39。,39。,39。,39。,39。} 。 基于 51 單片機的多功能電子鐘設(shè)計 42 void lcd_init()。 BYTE cur_set_pos = 0。 0xF) == 9) { return (bcd amp。 0xF) == 0) { return ((bcdamp。039。 return 。date_time[YEAR_POS])。date_time[DAY_POS])。date_time[MINUTE_POS])。 week_alarm_temperature[ALARM_SIGN_POS] = ALARM_STATE。:39。 clock_a = 0x20。 //bcd,24 hour } void enable_alarm (void) { clock_b = 0x22。 //21 centruy clock_year = 0x10。 clock_minute = 0x46。 clock_minute_a = inc_bcd_value (clock_minute)。 clock_year = 0。 } else { clock_month = inc_bcd_value(clock_month)。 } break。 case 4: if (clock_minute == 0x59) { clock_minute = 0x0。 } else { clock_week ++。 } break。 default : break。 } break。 } else { clock_year = 0x99。 } else { 基于 51 單片機的多功能電子鐘設(shè)計 46 clock_minute_a = inc_bcd_value(clock_minute_a)。 case 6: if (clock_hour_a == 0x23) { clock_hour_a = 0x0。 } break。 基于 51 單片機的多功能電子鐘設(shè)計 45 } else { clock_hour = inc_bcd_value(clock_hour)。 case 2: if (clock_day == 0x31) { clock_day = 0x1。 } break。 基于 51 單片機的多功能電子鐘設(shè)計 44 clock_a = 0x20。 clock_week = 07。 clock_day = 0x21。 } void Set_default_calendar(void) { Set_calendar()。 } void Set_calendar (void) { clock_a = 0x70。week_alarm_temperature[ALARM_MINUTE_POS])。week_alarm_temperature[ALARM_HOUR_POS])。week_alarm_temperature[WEEK_POS], week[(clock_week amp。date_time[HOUR_POS])。date_time[MONTH_POS])。date_time[CENTURY_POS])。 0x0F) + 39。 } return bcd 1。 } return bcd + 1。 BYTE enable_play_song = 0。 void lcd_pos(BYTE pos)。A39。,39。,39。,39。,39。,39。,39。,39。,39。539。:39。239。739。/39。039。139。039。 define CENTURY_POS 0 define YEAR_POS 2 define MONTH_POS 5 define DAY_POS 8 define HOUR_POS 11 define TIME_SIGN_POS 13 define MINUTE_POS 14 define WEEK_POS 0 define ALARM_SIGN_POS 4 define ALARM_HOUR_POS 5 define ALARM_MINUTE_POS 8 define clock_second XBYTE[0xff00] define clock_second_a XBYTE[0xff01] define clock_minute XBYTE[0xff02] define clock_minute_a XBYTE[0xff03] define clock_hour XBYTE[0xff04] define clock_hour_a XBYTE[0xff05] define clock_week XBYTE[0xff06] define clock_day XBYTE[0xff07] define clock_month XBYTE[0xff08] define clock_year XBYTE[0xff09] define clock_a XBYTE[0xff0a] define clock_b XBYTE[0xff0b] define clock_c XBYTE[0xff0c] define clock_century XBYTE[0xff32] define clock_ram_first XBYTE[0xff0e] define clock_ram_second XBYTE[0xff33] BYTE *week[7] = { SUN,MON, TUE, WED, THU, FRI, SAT}。 } DS12887 模塊軟件實現(xiàn) DS12887 模塊子程序流程圖 圖 44 DS12887時間顯示流程圖 基于 51 單片機的多功能電子鐘設(shè)計 40 圖 45 DS12887時間設(shè)置流程圖 DS12887 模塊子程序代碼 include include include include include 基于 51 單片機的多功能電子鐘設(shè)計 41 include sbit key_tab = P1^0。 lcd_wcmd(0x01)。 lcd_wcmd(0x0c)。 39。 lcd_pos(line * 0x40)。 line_data[i] != 39。 ep = 0。 _nop_()。 _nop_()。 rw = 0。 ep = 0。 _nop_()。 _nop_()。 _nop_()。 } void lcd_wcmd(BYTE cmd) { while(lcd_bz())。 result = (BOOL)(LCD_DATA amp。 _nop_()。 BOOL lcd_bz() { 基于 51 單片機的多功能電子鐘設(shè)計 37 BOOL result。 return rdtemp()。1)* 。 t = t|tplsb。 tplsb=rdbyte()。 rxwait()。 unsigned i
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1