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

正文內(nèi)容

電子萬年歷的設(shè)計(jì)畢業(yè)論文一稿-wenkub

2023-07-12 15:20:01 本頁面
 

【正文】 p processor。硬件由主控器、時(shí)鐘電路、溫度檢測(cè)電路、顯示電路、鍵盤接口 5 個(gè)模塊組成。本設(shè)計(jì)的主控模塊使用 AT89C5時(shí)鐘電路使用時(shí)鐘芯片 DS130顯示模塊使用液晶顯示器 LCD160溫度檢測(cè)使用 DS18B20 溫度傳感器、鍵盤接口電路使用普通按鍵接上拉電阻完成;軟件利用 C 語言編程實(shí)現(xiàn)單片機(jī)程序控制。 temperature sensor。LCD 液晶顯示的日歷鐘顯示清晰直觀、走時(shí)準(zhǔn)確、可以進(jìn)行夜視,并且還可以擴(kuò)展出多種功能,可以實(shí)現(xiàn)公歷年月日、時(shí)分秒、星期、溫度顯示等功能。2 設(shè)計(jì)要求與方案論證 設(shè)計(jì)要求顯示部分可采用數(shù)碼管或液晶顯示器,可顯示當(dāng)前時(shí)間,用陽歷顯示年、月、日,時(shí)間用 24 小時(shí)制顯示。綜合考慮,選擇采用 AT89C52 芯片作為主控制芯片。總體可以考慮。方案二:采用 DS1302 時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘DS1302 芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)年、月、日、星期、時(shí)、分、秒以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,8 位的RAM 做為數(shù)據(jù)暫存區(qū),工作電壓在 范圍內(nèi),耗電量小, 時(shí)耗電小于 300uA。方案二:采用數(shù)字式溫度傳感器 DS18B20此類傳感器為數(shù)字式傳感器,而且僅需一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,易于與單片機(jī)連接,可以去除 A/D 模塊,降低硬件成本,簡(jiǎn)化系統(tǒng)電路。3 系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn) 硬件電路設(shè)計(jì)框圖AT89C52主控制模 塊LED 數(shù)碼管動(dòng)態(tài)掃描顯示模塊DS1302 時(shí)鐘模塊鍵盤控制模塊溫度采集模塊圖 1 硬件電路設(shè)計(jì)框圖 系統(tǒng)硬件概述本電路以 AT89C52 單片機(jī)為控制核心,具有在線編程功能,低功耗,能在 3V 的超低壓下工作;時(shí)鐘電路由 DS1302 提供,它是一種高性能、高精度、低功耗、帶 RAM 的實(shí)時(shí)時(shí)鐘電路,可以對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行計(jì)時(shí),并具有閏年補(bǔ)償功能,工作電壓為,采用三線接口與 CPU 進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或 RAM 數(shù)據(jù),同時(shí)具有掉電自動(dòng)保存功能;溫度采集電路由 DS18B20 構(gòu)成;顯示部分由液晶顯示器 LCD1602構(gòu)成。圖 2 AT89C52 主控制系統(tǒng)AT89C52 單片機(jī)為 40 引腳雙列直插芯片,有四個(gè) 8 位 I/O 口PPP3 和 P4,每一條 I/O 線都能獨(dú)立地作為輸出或輸入。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。RST 是復(fù)位/片選線,通過把 RST 輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。上電運(yùn)行時(shí),在 VCC 大于等于 之前,RST 必須保持低電平。此類傳感器僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,使用 與 DS18B20 的 I/O 口連接,加上一個(gè)上拉電阻,VCC 接電源,GND 接地。圖 5 LCD1602 顯示電路連接圖 相關(guān)電路原理及說明(1)時(shí)鐘芯片 DS1302 的工作原理DS1302 在每次進(jìn)行讀、寫程序前都必須初始化先把 SCLK 端置“0”,接著把 RST 端置“1”,最后才給予 SCLK 脈沖。(2)DS1302 的控制字節(jié)DS1302 的控制字如表 1 所示。位 0 是讀、寫操作位,進(jìn)行讀操作時(shí),該位為“1”;進(jìn)行寫操作時(shí),該位為“0”。如下圖 6 所示。當(dāng) WP為“1”時(shí),寫保護(hù)位防止對(duì)任一寄存器的寫操作。4 系統(tǒng)的軟件設(shè)計(jì) 軟件設(shè)計(jì)是本設(shè)計(jì)的關(guān)鍵,軟件程序編寫的好壞直接影響著系統(tǒng)運(yùn)行情況的良好。陽歷顯示流程圖如下圖 8所示。利用定時(shí)器計(jì)時(shí),當(dāng)達(dá)到 50ms 溢出時(shí),就送給該位熄滅符,在下一次溢出時(shí),再送正常顯示的值,不斷交替,直到調(diào)整該位結(jié)束。 基本功能實(shí)現(xiàn)程序 此段程序的主要功能是實(shí)現(xiàn)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20 的測(cè)量溫度值,溫度測(cè)量每 1s 進(jìn)行一次。 溫度轉(zhuǎn)換命令子程序此段程序主要功能是發(fā)出溫度轉(zhuǎn)換開始命令。 開 始 溫 度 零 下 ? 溫 度 值 取 補(bǔ) 碼 置 “—”標(biāo) 志 置 “+”標(biāo) 志 結(jié) 束 計(jì) 算 小 數(shù) 位 BCD值 計(jì) 算 整 數(shù) 位 BCD值 N Y 圖 12 溫度轉(zhuǎn)換命令子程序流程圖 圖 13 溫度計(jì)算子程序流程圖 溫度計(jì)算子程序 此段程序主要功能是將 RAM 中的讀取值進(jìn)行 BCD 碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定。圖 14 顯示數(shù)據(jù)刷新子程序流程圖5 系統(tǒng)仿真與調(diào)試 系統(tǒng)仿真本設(shè)計(jì)使用的仿真軟件為 PROTEUS 軟件和 Keil C51 軟件。首先,按設(shè)計(jì)方案在 ISIS 軟件中連接好電路,如下圖 15 所示。最后,在 ISIS 文件加載進(jìn)單片機(jī)中,對(duì)系統(tǒng)總體電路進(jìn)行仿真調(diào)試,檢查各按鍵是否有效、查看顯示結(jié)果是否與實(shí)際相符。其余元件必須按正確的極性插裝,否則電路不會(huì)正常工作。然后通電,觀察硬件運(yùn)行情況。(2)修改時(shí)間、日期時(shí)沒有自動(dòng)對(duì)應(yīng)。6 結(jié)束語 電子萬年歷是一種應(yīng)用非常廣泛的日常計(jì)時(shí)工具,而且將越來越流行和實(shí)用。LCD1602 液晶顯示器效果清晰,而且亮度可調(diào)。因此,此種電子萬年歷的生產(chǎn)和發(fā)展是非常有必要的,它具有非常廣闊的市場(chǎng)空間與發(fā)展前景,有著很大的現(xiàn)實(shí)意義。在這段時(shí)間里,我學(xué)到了很多的專業(yè)知識(shí)也充分感受到了指導(dǎo)老師和同學(xué)們的關(guān)心與幫助,正是因?yàn)橛兴麄兊年P(guān)心和幫助,本次設(shè)計(jì)才能順利的完成。在此我要特別感謝我的指導(dǎo)老師:楊漢祥老師。附錄 1 系統(tǒng)電路圖附錄 2 系統(tǒng)程序清單include include //include //include define uint unsigned intdefine uchar unsigned charsbit DS1302_CLK = P1^7。 //實(shí)時(shí)時(shí)鐘數(shù)據(jù)線引腳 sbit DS1302_RST = P1^5。sbit wireless_3 = P3^2。char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year。 //減法按鈕sbit out = P2^3。uchar temp_value。 //P2^6。//P2^7。 _nop_()。return DBPort。 _nop_()。 _nop_()。}//設(shè)置顯示模式************************************************************define LCD_SHOW 0x04 //顯示開define LCD_HIDE 0x00 //顯示關(guān) define LCD_CURSOR 0x02 //顯示光標(biāo)define LCD_NO_CURSOR 0x00 //無光標(biāo) define LCD_FLASH 0x01 //光標(biāo)閃動(dòng)define LCD_NO_FLASH 0x00 //光標(biāo)不閃動(dòng)void LCD_SetDisplay(unsigned char DisplayMode){LCD_Write(LCD_COMMAND, 0x08|DisplayMode)。 //8 位數(shù)據(jù)端口,2 行顯示,5*7 點(diǎn)陣LCD_Write(LCD_COMMAND,0x38)。 //AC 遞增, 畫面不動(dòng)}//液晶字符輸入的位置************************void GotoXY(unsigned char x, unsigned char y){if(y==0)LCD_Write(LCD_COMMAND,0x80|x)。){LCD_Write(LCD_DATA,*str)。unsigned char Hour。unsigned char Year。 //定義的時(shí)間類型SYSTEMTIME CurrentTime。 i0。 ACC = ACC 1。 i) { ACC = ACC 1。 } return(ACC)。 DS1302InputByte(ucAddr)。} unsigned char Read1302(unsigned char ucAddr)//讀取 DS1302 某地址的數(shù)據(jù){ unsigned char ucData。 DS1302InputByte(ucAddr|0x01)。 return(ucData)。0x70)4)*10 + (ReadValueamp。0x70)4)*10 + (ReadValueamp。0x70)4)*10 + (ReadValueamp。0x70)4)*10 + (ReadValueamp。0x70)4)*10 + (ReadValueamp。0x70)4)*10 + (ReadValueamp。0x70)4)*10 + (ReadValueamp。 TimeDateString[1] = 39。 TimeDateString[3] = TimeYear%10 + 39。 TimeDateString[1] = 39。 TimeDateString[3] = 39。if(hide_month2){ TimeDateString[5] = TimeMonth/10 + 39。} else { TimeDateString[5] = 39。 }TimeDateString[7] = 39。 TimeDateString[9] = TimeDay%10 + 39。 TimeDateString[9] = 39。 //星期的數(shù)據(jù)另外放到 week_value[]數(shù)組里,跟年,月,日的分開存放,因?yàn)榈纫幌乱谧詈箫@示} else { week_value[0] = 39。TimeDateString[10] = 39。 ,判斷結(jié)束字符}void TimeToStr(SYSTEMTIME *Time) //將時(shí),分,秒數(shù)據(jù)轉(zhuǎn)換成液晶顯示字符放到數(shù)組 TimeString[]。039。 39。039。 39。:39。039。 39。if(Secondamp。Write1302(0x86,0x01)。Write1302(0x80,0x00)。 DQ = 1。 //精確延時(shí) 大于 480us DQ = 1。}/***********ds18b20 讀一個(gè)字節(jié)**************/ unsigned char ReadOneChar(void){uchar i=0。i) { DQ = 0。 delay_18B20(4)。 i0。 delay_18B20(5)。unsigned char b=0。 // 跳過讀序號(hào)列號(hào)的操作WriteOneChar(0x44)。 //跳過讀序號(hào)列號(hào)的操作WriteOneChar(0xBE)。 //讀取溫度值高位temp_value=b4。039。 //溫度符號(hào) TempBuffer[3]=39。}void Delay1ms(unsigned int count){unsigned int i,j。j120。delay0。} }}void outkey() //跳出調(diào)整模式,返回默認(rèn)顯示{ uchar Second。Second=Read1302(DS1302_SECOND)。Write1302(0x8E,0x80)。 }}////////////////////////////////////////////////////////////////////////////////////////////////////////////void Upkey()//升序按鍵{ Up=1。 //秒數(shù)加 1 up_flag=1。 case 2: temp=Read1302(DS1302_MINUTE)。 break。 if(temp0x23) //超過 23 小時(shí),清零 temp=0。 //星期數(shù)加 1 up_flag=1。 //讀取日數(shù) temp=temp+1。 case 6: temp=Read1302(DS1302_MONTH)。 break。 if(temp0x85) temp=0。 while(wireless_2==1)。 //讀取秒數(shù)temp=temp1。 case 2: temp=Read1302(DS1302_MINUTE)。 //小于 0 秒,返回 59秒 break。 if(temp==1) temp=0x23。 //星期數(shù)減 1 down_flag=1。 //讀取日數(shù) temp=temp1。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1