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

正文內(nèi)容

基于51單片機(jī)的多功能電子鐘設(shè)計(jì)-資料下載頁

2024-12-06 02:32本頁面

【導(dǎo)讀】本設(shè)計(jì)(論文)和資料若有不實(shí)之處,本人愿承擔(dān)一切相關(guān)責(zé)任。數(shù)字電子時(shí)鐘是人們?nèi)粘I钪胁豢苫蛉钡谋匦杵?。本文以STC89C52為核心控。示時(shí)間及溫度,通過按鍵設(shè)置年月日和星期以及定時(shí)鬧鐘,定時(shí)鬧鐘時(shí)間到自動(dòng)發(fā)出警報(bào)。5V電壓供系統(tǒng)使用。程序的下載則是通過普中科技公司自制的PZ-ISP軟件完成。試,系統(tǒng)可以正常完成預(yù)定的功能。電子時(shí)鐘;單片機(jī);DS12887;DS18B20;電子時(shí)鐘的國內(nèi)外研究現(xiàn)狀----------------------------------------------------------------1. 第二章總體方案---------------------------------------------------------------------------------------4. 設(shè)計(jì)流程和預(yù)期成果------------------------------------------------------------------------5. 第三章硬件設(shè)計(jì)---------------------------------------------------------------------------------------6

  

【正文】 emperature(uint t) { uint i。 while(t) { for(i=0。i125。i++){} } } void txreset(void) { uint i。 dq=0。 i=100。 while(i0) i。 dq=1。 i=4。 while(i0) i。 } void rxwait(void) { uint i。 while(dq) 。 while(~dq)。 i=4。 while (i0) i。 } bit rdbit(void) { uint i。 bit b。 dq=0。 i++。 dq=1。 i++。i++。 b=dq。 i=8。 while(i0) i。 return(b)。 基于 51 單片機(jī)的多功能電子鐘設(shè)計(jì) 34 } uchar rdbyte(void) { uchar i,j,b。 b=0。 for(i=1。i=8。i++){ j=rdbit()。 b=(j7)|(b1)。 } return(b)。 } void wrbyte(uchar b) { uint i。 uchar j。 bit btmp。 for(j=1。j=8。j++) { btmp=bamp。0x01。 b=b1。 if(btmp) { dq=0。 i++。i++。 dq=1。 i=8。 while (i0) i。 } else { dq=0。 i=8。 while(i0) i。 dq=1。 i++。i++。 } } } void convert(void) { txreset()。 基于 51 單片機(jī)的多功能電子鐘設(shè)計(jì) 35 rxwait()。 delay_temperature(1)。 wrbyte(0xcc)。 wrbyte(0x44)。 } float rdtemp(void) { unsigned char tplsb=0。 unsigned char tpmsb=0。 unsigned int t=0。 float tt=0。 float point_val = 。 txreset()。 rxwait()。 delay_temperature(1)。 wrbyte(0xcc)。 wrbyte(0xbe)。 tplsb=rdbyte()。 tpmsb=rdbyte()。 t=tpmsb。 t =8。 t = t|tplsb。 tt = t*。 t= tt*10+。 point_val = (tplsbamp。1)* 。 tt = (tplsb1) + point_val。 return tt。 } float get_temperature() { convert()。 return rdtemp()。 } LCD1602 模塊軟件實(shí)現(xiàn) LCD1602 液晶顯示模塊子程序流程圖 基于 51 單片機(jī)的多功能電子鐘設(shè)計(jì) 36 圖 43 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() { 基于 51 單片機(jī)的多功能電子鐘設(shè)計(jì) 37 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。 基于 51 單片機(jī)的多功能電子鐘設(shè)計(jì) 38 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)。 基于 51 單片機(jī)的多功能電子鐘設(shè)計(jì) 39 lcd_clear_line(1)。 } DS12887 模塊軟件實(shí)現(xiàn) DS12887 模塊子程序流程圖 圖 44 DS12887時(shí)間顯示流程圖 基于 51 單片機(jī)的多功能電子鐘設(shè)計(jì) 40 圖 45 DS12887時(shí)間設(shè)置流程圖 DS12887 模 塊子程序代碼 include include include include include 基于 51 單片機(jī)的多功能電子鐘設(shè)計(jì) 41 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 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}。 BYTE date_time[16] = {39。239。,39。039。,39。139。,39。139。,39。/39。,39。039。,39。539。,39。/39。,39。139。,39。739。,39。 39。,39。239。,39。039。,39。:39。,39。339。,39。539。}。 BYTE week_alarm_temperature[16] ={39。 39。,39。 39。,39。 39。,39。 39。,39。 39。,39。 39。,39。 39。,39。 39。,39。 39。,39。 39。,39。 39。,39。 39。,39。 39。,39。 39。,39。 39。,39。 39。} 。 BYTE ALARM_STATE = 39。A39。 define SET_MODE_COUNT (7 + 1) void play_song(void)。 基于 51 單片機(jī)的多功能電子鐘設(shè)計(jì) 42 void lcd_init()。 void lcd_write_line(BYTE line, BYTE *line_data) 。 void lcd_pos(BYTE pos)。 void lcd_clear_line(BYTE line)。 BYTE cur_set_pos = 0。 BYTE enable_set = 0。 BYTE enable_play_song = 0。 BYTE inc_bcd_value(BYTE bcd) { if ((bcd amp。 0xF) == 9) { return (bcd amp。 0xF0) + 0x10。 } return bcd + 1。 } BYTE dec_bcd_value (BYTE bcd) { if ((bcd amp。 0xF) == 0) { return ((bcdamp。0xF0) 0X10)|0X9。 } return bcd 1。 } void bcd_to_byte_string(uchar bcd, uchar *bcd_str) { bcd_str[0] = (bcd 4) + 39。039。 bcd_str[1] = (bcd amp。 0x0F) + 39。039。 return 。 } void update_display_data() { bcd_to_byte_string (dec_bcd_va
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1