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

正文內(nèi)容

電子萬年歷的設(shè)計畢業(yè)論文一稿(完整版)

2025-08-02 15:20上一頁面

下一頁面
  

【正文】 為可編程通用 I/O 口,其功能用途由軟件定義,在本設(shè)計中,P0 端口(3239 腳)定義為 N1 功能控制端口,分別與 N1 的相應(yīng)功能管腳相連接,13 腳定義為 IR 輸入端,10 腳和 11 腳定義為 I2C 總線控制端口,分別連接 N1 的 SDAS(18 腳)和 SCLS(19 腳)端口,12腳、27 腳及 28 腳定義為握手信號功能端口,連接主板 CPU 的相應(yīng)功能端,用于當(dāng)前制式的檢測及會聚調(diào)整狀態(tài)進(jìn)入的控制功能。此設(shè)計方案需用 A/D 轉(zhuǎn)換電路,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴(yán)格線性的,會產(chǎn)生較大的測量誤差。方案三:采用 LCD 液晶顯示器液晶顯示器的顯示功能強(qiáng)大,可顯示大量文字、圖形,顯示多樣、清晰可見,焊接也較方便,但是價格相對較貴,需要的接口線較多。為此我設(shè)計了這種基于 52 單片機(jī)的電子萬年歷。 singlechip processor。本設(shè)計的主控模塊使用 AT89C5時鐘電路使用時鐘芯片 DS130顯示模塊使用液晶顯示器 LCD160溫度檢測使用 DS18B20 溫度傳感器、鍵盤接口電路使用普通按鍵接上拉電阻完成;軟件利用 C 語言編程實現(xiàn)單片機(jī)程序控制。LCD 液晶顯示的日歷鐘顯示清晰直觀、走時準(zhǔn)確、可以進(jìn)行夜視,并且還可以擴(kuò)展出多種功能,可以實現(xiàn)公歷年月日、時分秒、星期、溫度顯示等功能。綜合考慮,選擇采用 AT89C52 芯片作為主控制芯片。方案二:采用 DS1302 時鐘芯片實現(xiàn)時鐘DS1302 芯片是一種高性能的時鐘芯片,可自動對年、月、日、星期、時、分、秒以及閏年補(bǔ)償?shù)哪赀M(jìn)行計數(shù),而且精度高,8 位的RAM 做為數(shù)據(jù)暫存區(qū),工作電壓在 范圍內(nèi),耗電量小, 時耗電小于 300uA。3 系統(tǒng)的硬件設(shè)計與實現(xiàn) 硬件電路設(shè)計框圖AT89C52主控制模 塊LED 數(shù)碼管動態(tài)掃描顯示模塊DS1302 時鐘模塊鍵盤控制模塊溫度采集模塊圖 1 硬件電路設(shè)計框圖 系統(tǒng)硬件概述本電路以 AT89C52 單片機(jī)為控制核心,具有在線編程功能,低功耗,能在 3V 的超低壓下工作;時鐘電路由 DS1302 提供,它是一種高性能、高精度、低功耗、帶 RAM 的實時時鐘電路,可以對年、月、日、星期、時、分、秒進(jìn)行計時,并具有閏年補(bǔ)償功能,工作電壓為,采用三線接口與 CPU 進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或 RAM 數(shù)據(jù),同時具有掉電自動保存功能;溫度采集電路由 DS18B20 構(gòu)成;顯示部分由液晶顯示器 LCD1602構(gòu)成。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。上電運行時,在 VCC 大于等于 之前,RST 必須保持低電平。圖 5 LCD1602 顯示電路連接圖 相關(guān)電路原理及說明(1)時鐘芯片 DS1302 的工作原理DS1302 在每次進(jìn)行讀、寫程序前都必須初始化先把 SCLK 端置“0”,接著把 RST 端置“1”,最后才給予 SCLK 脈沖。位 0 是讀、寫操作位,進(jìn)行讀操作時,該位為“1”;進(jìn)行寫操作時,該位為“0”。當(dāng) WP為“1”時,寫保護(hù)位防止對任一寄存器的寫操作。陽歷顯示流程圖如下圖 8所示。 基本功能實現(xiàn)程序 此段程序的主要功能是實現(xiàn)溫度的實時顯示、讀出并處理DS18B20 的測量溫度值,溫度測量每 1s 進(jìn)行一次。 開 始 溫 度 零 下 ? 溫 度 值 取 補(bǔ) 碼 置 “—”標(biāo) 志 置 “+”標(biāo) 志 結(jié) 束 計 算 小 數(shù) 位 BCD值 計 算 整 數(shù) 位 BCD值 N Y 圖 12 溫度轉(zhuǎn)換命令子程序流程圖 圖 13 溫度計算子程序流程圖 溫度計算子程序 此段程序主要功能是將 RAM 中的讀取值進(jìn)行 BCD 碼的轉(zhuǎn)換運算,并進(jìn)行溫度值正負(fù)的判定。首先,按設(shè)計方案在 ISIS 軟件中連接好電路,如下圖 15 所示。其余元件必須按正確的極性插裝,否則電路不會正常工作。(2)修改時間、日期時沒有自動對應(yīng)。LCD1602 液晶顯示器效果清晰,而且亮度可調(diào)。在這段時間里,我學(xué)到了很多的專業(yè)知識也充分感受到了指導(dǎo)老師和同學(xué)們的關(guān)心與幫助,正是因為有他們的關(guān)心和幫助,本次設(shè)計才能順利的完成。附錄 1 系統(tǒng)電路圖附錄 2 系統(tǒng)程序清單include include //include //include define uint unsigned intdefine uchar unsigned charsbit DS1302_CLK = P1^7。sbit wireless_3 = P3^2。 //減法按鈕sbit out = P2^3。 //P2^6。 _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)閃動define LCD_NO_FLASH 0x00 //光標(biāo)不閃動void LCD_SetDisplay(unsigned char DisplayMode){LCD_Write(LCD_COMMAND, 0x08|DisplayMode)。 //AC 遞增, 畫面不動}//液晶字符輸入的位置************************void GotoXY(unsigned char x, unsigned char y){if(y==0)LCD_Write(LCD_COMMAND,0x80|x)。unsigned char Hour。 //定義的時間類型SYSTEMTIME CurrentTime。 ACC = ACC 1。 } return(ACC)。} unsigned char Read1302(unsigned char ucAddr)//讀取 DS1302 某地址的數(shù)據(jù){ unsigned char ucData。 return(ucData)。0x70)4)*10 + (ReadValueamp。0x70)4)*10 + (ReadValueamp。0x70)4)*10 + (ReadValueamp。 TimeDateString[1] = 39。 TimeDateString[1] = 39。if(hide_month2){ TimeDateString[5] = TimeMonth/10 + 39。 }TimeDateString[7] = 39。 TimeDateString[9] = 39。TimeDateString[10] = 39。039。039。:39。 39。Write1302(0x86,0x01)。 DQ = 1。}/***********ds18b20 讀一個字節(jié)**************/ unsigned char ReadOneChar(void){uchar i=0。 delay_18B20(4)。 delay_18B20(5)。 // 跳過讀序號列號的操作WriteOneChar(0x44)。 //讀取溫度值高位temp_value=b4。 //溫度符號 TempBuffer[3]=39。j120。} }}void outkey() //跳出調(diào)整模式,返回默認(rèn)顯示{ uchar Second。Write1302(0x8E,0x80)。 //秒數(shù)加 1 up_flag=1。 break。 //星期數(shù)加 1 up_flag=1。 case 6: temp=Read1302(DS1302_MONTH)。 if(temp0x85) temp=0。 //讀取秒數(shù)temp=temp1。 //小于 0 秒,返回 59秒 break。 //星期數(shù)減 1 down_flag=1。 case 6: temp=Read1302(DS1302_MONTH)。 if(temp==1) temp=0x85。 //Setkey 按一次,count 就加 1 done=1。 //禁止寫入 flag=1。 //禁止寫入 up_flag=0。 outkey()。 down_flag=0。 Upkey()。 if(hide_hour3) hide_hour=0。 if(up_flag==1||down_flag==1) { Write1302(0x8e,0x00)。 }while。 //寫入新的星期數(shù) Write1302(0x8e,0x80)。 }while(count==4)。 if(up_flag==1||down_flag==1) { Write1302(0x8e,0x00)。 if(hide_min3) hide_min=0。 Downkey()。 } hide_sec++。 //掃描模式切換按鍵 switch(count) {case 1:do //count=1,調(diào)整秒 { outkey()。 while(wireless_4==1)。 default:break。 //月數(shù)減 1 down_flag=1。 break。 //讀取小時數(shù)temp=temp1。 //數(shù)據(jù)調(diào)整后更新標(biāo)志 if(temp==0x7f) //小于 0 秒,返回 59 秒 temp=0x59。 default:break。 //月數(shù)加 1 up_flag=1。 break。 //讀取小時數(shù) temp=temp+1。0x7f)0x59) //超過 59 秒,清零 temp=0。 while(out==0)。 count=0。}/*延時子程序*/void mdelay(uint delay){ uint i。 TempBuffer[4]=39。0xf0)4。 // this message is wery importantInit_DS18B20()。 dat=1。}/*************ds18b20 寫一個字節(jié)****************/ void WriteOneChar(uchar dat){ unsigned char i=0。for (i=8。 //稍做延時 DQ = 0。Write1302(0x84,0x00)。\039。039。039。 39。 //字符串末尾加 39。 }if(hide_week2){ week_value[0] = TimeWeek%7 + 39。if(hide_day2){ TimeDateString[8] = TimeDay/10 + 39。 TimeDateString[6] = TimeMonth%10 + 39。 TimeDateString[2] = 39。 TimeDateString[2] = TimeYear/10 + 39。ReadValue = Read1302(DS1302_YEAR)。ReadValue = Read1302(DS1302_WEEK)。ReadValue = Read1302(DS1302_HOUR)。ReadValue = Read1302(DS1302_SECOND)。 DS1302_CLK = 0。 DS1302_CLK = 0。 for(i=8。 ACC = d。unsigned char Day。}//將字符輸出到液晶顯示void Print(unsigned char *str){while(*str!=39。}//初始化LCD************************************************************void LCD_Initial(){LcdEn=0。 _nop_()。 _nop_(
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1