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

正文內(nèi)容

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

2025-07-27 15:20上一頁面

下一頁面
  

【正文】 能強(qiáng)、可靠性高等獨有的特點,在各個領(lǐng)域得到了廣泛的應(yīng)用。 系統(tǒng)基本方案選擇與論證 單片機(jī)芯片的選擇方案和論證方案一:采用 AT89C51 作為主控制芯片AT89C51 片內(nèi) ROM 采用 Flash ROM,內(nèi)部具有 4KB ROM 存儲空間,能在 3V 的超低壓下工作,而且與 MCS51 系列單片機(jī)完全兼容,但是在運用于電路設(shè)計時,由于不具備 ISP 在線編程技術(shù),當(dāng)在對電路進(jìn)行調(diào)試時,由于程序的錯誤需要修改或?qū)Τ绦蜻M(jìn)行增加功能需要燒入程序時,對芯片的多次插拔會對芯片造成一定的損壞。 時鐘芯片的選擇方案和論證方案一:采用單片機(jī)定時計數(shù)器直接采用單片機(jī)定時計數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、星期、時、分、秒計數(shù)。綜合考慮,選擇采用 DS18B20 作為溫度傳感器。第 9 引腳為復(fù)位輸入端,接上電容,電阻及開關(guān)構(gòu)成上電復(fù)位電路,20 引腳為接地端,40 引腳為電源端。當(dāng) RST 為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對 DS1302 進(jìn)行操作。RS、RW、E 分別與單片機(jī)接口中的、 連接。對于位 6,若對程序進(jìn)行讀、寫時,RAM=1;對時間進(jìn)行讀、寫時,CK=0。其中“CH”是時鐘暫停標(biāo)志位,當(dāng)該位為“1”時,時鐘振蕩器停止,DS1302 處于低功耗狀態(tài);當(dāng)該位為“0”時,時鐘開始運行。 主程序流程框圖開始初始化讀 / 寫日期 、 時間和溫度分離日期 / 時間 / 溫度顯示顯示子程序日期 、 時間修改程序返回圖 7 主程序流程圖 陽歷顯示程序設(shè)計因為使用了時鐘芯片 DS1302,陽歷程序只需從 DS1302 各寄存器中讀出年、月、日、星期、時、分、秒等數(shù)據(jù),再處理即可。時間調(diào)整程序流程圖如下圖 9 所示。在本程序設(shè)計中采用 1s 顯示程序延時法等待轉(zhuǎn)換的完成。Keil C51 軟件是美國 Keil Software 公司出品的 51 系列兼容單片機(jī) C 語言軟件開發(fā)系統(tǒng)。 硬件制作與調(diào)試 硬件制作(1)整理元器件,重點辯別認(rèn)清電阻器阻值及相應(yīng)代號,對電阻、電容等要用萬用表一一檢測。其次,由于本設(shè)計用動態(tài)掃描方式顯示數(shù)字,動態(tài)掃描很快,人的肉眼是無法看出,但是調(diào)用顯示程序時,如果不在返回時屏蔽掉最后的附值,則會出現(xiàn)很亮的現(xiàn)象,所以在顯示程序的后面加了屏蔽指令,最后解決了顯示不穩(wěn)定問題。本電路采用 AT89C52 單片機(jī)作為核心,功耗小,能在 3V 的低壓工作,可選用 35V 電壓供電。實驗 另外,對百忙之中評閱本論文的答辯委員會的各位老師致以最誠摯的謝意。 //實時時鐘復(fù)位線引腳sbit wireless_1 = P3^0。 //模式切換鍵sbit Up = P2^1。void show_time()。 //P0=0x80,P1=0x90,P2=0xA0,P3=//內(nèi)部等待函數(shù)**************************************************************************unsigned char LCD_Wait(void){LcdRs=0。LcdRs=style。 _nop_()。 //開啟顯示, 無光標(biāo)LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN)。}}/***********DS1302 時鐘部分子程序******************/typedef struct __SYSTEMTIME__{unsigned char Second。unsigned char TimeString[9]。 //相當(dāng)于匯編中的 RRC DS1302_CLK = 1。 DS1302_CLK = 1。 // 寫 1Byte 數(shù)據(jù) DS1302_CLK = 1。 // 讀 1Byte 數(shù)據(jù) DS1302_CLK = 1。ReadValue = Read1302(DS1302_MINUTE)。ReadValue = Read1302(DS1302_DAY)。ReadValue = Read1302(DS1302_MONTH)。}void DateToStr(SYSTEMTIME *Time) //將時間年,月,日,星期數(shù)據(jù)轉(zhuǎn)換成液晶顯示字符串,放到數(shù)組里 DateString[]{ if(hide_year2) //這里的 if,else 語句都是判斷位閃爍,2 顯示數(shù)據(jù),2 就不顯示,輸出字符串為 2022/07/22 { TimeDateString[0] = 39。} else { TimeDateString[0] = 39。}TimeDateString[4] = 39。 TimeDateString[6] = 39。} else { TimeDateString[8] = 39。 } week_value[1] = 39。039。:39。 39。 39。 //寫入允許Write1302(0x8c,0x09)。 //禁止寫入}}/***********ds18b20 子程序*************************//***********ds18b20 延遲子函數(shù)(晶振 12MHz )*******/ void delay_18B20(unsigned int i){while(i)。 x=DQ。 DQ = 1。 DQ = datamp。Init_DS18B20()。a=ReadOneChar()。039。icount。i62。 //寫入允許Write1302(0x80,Secondamp。 switch(count) {case 1: temp=Read1302(DS1302_SECOND)。 //分?jǐn)?shù)加 1 up_flag=1。 case 4: temp=Read1302(DS1302_WEEK)。 if(temp0x31) temp=1。 //讀取年數(shù) temp=temp+1。 if(Down==0||wireless_3==1) { mdelay(8)。 //分?jǐn)?shù)減 1 down_flag=1。 case 4: temp=Read1302(DS1302_WEEK)。 if(temp==0) temp=31。 //讀取年數(shù) temp=temp1。if(Set==0||wireless_4==1) { mdelay(8)。 Write1302(0x80,temp|0x80)。 //寫入允許 Write1302(0x80,temp|0x80)。break。 //寫入新的分?jǐn)?shù) Write1302(0x8e,0x80)。 case 3:do //count=3,調(diào)整小時 { hide_min=0。 down_flag=0。 Upkey()。 if(hide_week3) hide_week=0。 down_flag=0。 case 4:do //count=4,調(diào)整星期 { hide_hour=0。 //寫入新的小時數(shù) Write1302(0x8e,0x80)。 }while(count==3)。 if(up_flag==1||down_flag==1) { Write1302(0x8e,0x00)。 show_time()。 //掃描加按鈕 Downkey()。 if(flag==0) //關(guān)閉時鐘,停止計時 { Write1302(0x8e,0x00)。 while(wireless_3==1)。 break。 //讀取日數(shù) temp=temp1。 if(temp==1) temp=0x23。 case 2: temp=Read1302(DS1302_MINUTE)。 while(wireless_2==1)。 break。 //讀取日數(shù) temp=temp+1。 if(temp0x23) //超過 23 小時,清零 temp=0。 case 2: temp=Read1302(DS1302_MINUTE)。 }}////////////////////////////////////////////////////////////////////////////////////////////////////////////void Upkey()//升序按鍵{ Up=1。Second=Read1302(DS1302_SECOND)。delay0。}void Delay1ms(unsigned int count){unsigned int i,j。039。 //跳過讀序號列號的操作WriteOneChar(0xBE)。unsigned char b=0。 i0。i) { DQ = 0。 //精確延時 大于 480us DQ = 1。Write1302(0x80,0x00)。if(Secondamp。039。 39。 39。 ,判斷結(jié)束字符}void TimeToStr(SYSTEMTIME *Time) //將時,分,秒數(shù)據(jù)轉(zhuǎn)換成液晶顯示字符放到數(shù)組 TimeString[]。 //星期的數(shù)據(jù)另外放到 week_value[]數(shù)組里,跟年,月,日的分開存放,因為等一下要在最后顯示} else { week_value[0] = 39。 TimeDateString[9] = TimeDay%10 + 39。} else { TimeDateString[5] = 39。 TimeDateString[3] = 39。 TimeDateString[3] = TimeYear%10 + 39。0x70)4)*10 + (ReadValueamp。0x70)4)*10 + (ReadValueamp。0x70)4)*10 + (ReadValueamp。0x70)4)*10 + (ReadValueamp。 DS1302InputByte(ucAddr|0x01)。 DS1302InputByte(ucAddr)。 i) { ACC = ACC 1。 i0。unsigned char Year。){LCD_Write(LCD_DATA,*str)。 //8 位數(shù)據(jù)端口,2 行顯示,5*7 點陣LCD_Write(LCD_COMMAND,0x38)。 _nop_()。return DBPort。//P2^7。uchar temp_value。char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year。 //實時時鐘數(shù)據(jù)線引腳 sbit DS1302_RST = P1^5。在此我要特別感謝我的指導(dǎo)老師:楊漢祥老師。因此,此種電子萬年歷的生產(chǎn)和發(fā)展是非常有必要的,它具有非常廣闊的市場空間與發(fā)展前景,有著很大的現(xiàn)實意義。6 結(jié)束語 電子萬年歷是一種應(yīng)用非常廣泛的日常計時工具,而且將越來越流行和實用。然后通電,觀察硬件運行情況。最后,在 ISIS 文件加載進(jìn)單片機(jī)中,對系統(tǒng)總體電路進(jìn)行仿真調(diào)試,檢查各按鍵是否有效、查看顯示結(jié)果是否與實際相符。圖 14 顯示數(shù)據(jù)刷新子程序流程圖5 系統(tǒng)仿真與調(diào)試 系統(tǒng)仿真本設(shè)計使用的仿真軟件為 PROTEUS 軟件和 Keil C51 軟件。 溫度轉(zhuǎn)換命令子程序此段程序主要功能是發(fā)出溫度轉(zhuǎn)換開始命令。利用定時器計時,當(dāng)達(dá)到 50ms 溢出時,就送給該位熄滅符,在下一次溢出時,再送正常顯示的值,不斷交替,直到調(diào)整該位結(jié)束。4 系統(tǒng)的軟件設(shè)計 軟件設(shè)計是本設(shè)計的關(guān)鍵,軟件程序編寫的好壞直接影響著系統(tǒng)運行情況的良好。如下圖 6 所示。(2)DS1302 的控制字節(jié)DS1302 的控制字如表 1 所示。此類傳感器僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,使用 與 DS18B20 的
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1