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

正文內(nèi)容

電子萬(wàn)年歷的仿真與設(shè)計(jì)方案-文庫(kù)吧

2025-04-10 13:39 本頁(yè)面


【正文】 。軟件系統(tǒng)的主要特點(diǎn)是整個(gè)過(guò)程完全在鍵盤的控制之下,實(shí)現(xiàn)了完全的友好的人機(jī)交互功能。程序框圖如下:初始化DS1302,1602從DS1302讀取信息1602液晶顯示相關(guān)信息判斷是否有按鍵按下時(shí)間、日期、溫度、鬧鐘和倒計(jì)時(shí)設(shè)置模塊沒有按鍵按下溫度檢測(cè)模塊四、調(diào)試結(jié)果及分析電路設(shè)計(jì)中單片機(jī)采用AT89C52,編譯環(huán)境為keil,程序使用C語(yǔ)言進(jìn)行編寫,使用proteus仿真軟件進(jìn)行仿真調(diào)試,設(shè)計(jì)硬件制作比較順利,很快就把硬件電路做好。接著,主要是程序的調(diào)試。程序調(diào)試的難點(diǎn)在于設(shè)計(jì)的功能模塊過(guò)多,程序結(jié)構(gòu)比較復(fù)雜,使得調(diào)試起來(lái)比較費(fèi)時(shí)間。在軟件調(diào)試過(guò)程中,當(dāng)調(diào)節(jié)時(shí)間和日期后,單片機(jī)上電后更新的是PC的時(shí)間,后來(lái)查找資料發(fā)現(xiàn),是設(shè)置ds1302的問題,還有一個(gè)問題,在按鍵操作時(shí)有時(shí)會(huì)出現(xiàn)功能不穩(wěn)定,這是由于按鍵存在抖動(dòng),所以后來(lái)加個(gè)去抖動(dòng)的延時(shí)后在判斷,基本就可以解決問題。仿真正確顯示了時(shí)間,在LCD1602中正確顯示了當(dāng)前日期、時(shí)間,通過(guò)按按鍵K1,就可以開始設(shè)置時(shí)間或鬧鈴,依次按K1依次在年、月、日、時(shí)、分之間切換,按K2鍵用于加1操作,K3鍵用于減1操作,K4是取消按鈕,單獨(dú)按加減按鍵可以顯示溫度和進(jìn)入倒計(jì)時(shí)。通過(guò)調(diào)試和仿真,基本實(shí)現(xiàn)了設(shè)計(jì)所要求的所有功能。1:顯示年、月、日、時(shí)、分、秒信息。 2:具有可調(diào)整日期和時(shí)間功能。 3:DS1302自帶閏年補(bǔ)償功能,可自動(dòng)判斷平閏年,正確顯示時(shí)間。4:實(shí)現(xiàn)鬧鐘提醒功能,且鬧鐘可設(shè)置至年,月,日,時(shí),分,秒。5:實(shí)時(shí)顯示環(huán)境溫度。6:顯示60秒倒計(jì)時(shí)功能。但唯一不足的是不能實(shí)現(xiàn)一年的溫度記憶功能,我用AT2404調(diào)了很長(zhǎng)時(shí)間,還是不能實(shí)現(xiàn)溫度的存儲(chǔ)和顯示,可能是我不太會(huì)用那個(gè)芯片,看了它的資料,還是不能寫出正確的程序。結(jié)束語(yǔ)本系統(tǒng)以AT89C52為核心部件,使用串行時(shí)鐘芯片DS1302,實(shí)現(xiàn)時(shí)間和鬧鐘的功能設(shè)置,用溫度傳感器DS18B20實(shí)現(xiàn)對(duì)環(huán)境實(shí)時(shí)溫度的檢測(cè)。通過(guò)鍵盤和液晶顯示屏可方便地校對(duì)時(shí)鐘、設(shè)置鬧鐘時(shí)間和顯示溫度,本系統(tǒng)基本完成了實(shí)用電子鐘的功能,并添加了許多附加功能,使電子萬(wàn)年歷更具多樣化,特色化。盡量做到了硬件電路簡(jiǎn)單穩(wěn)定,減少電磁干擾和其他環(huán)境干擾。在該系統(tǒng)設(shè)計(jì),調(diào)試完成之后,對(duì)最后的成功進(jìn)行分析,同時(shí)結(jié)合在調(diào)試過(guò)程中出現(xiàn)的錯(cuò)誤和不足進(jìn)行綜合分析,總結(jié)在實(shí)際系統(tǒng)設(shè)計(jì)和調(diào)試過(guò)程中的寶貴經(jīng)驗(yàn)。雖然還有一點(diǎn)功能不能實(shí)現(xiàn),但我不會(huì)放棄,在以后的業(yè)余時(shí)間里我會(huì)多查資料,多分析,多請(qǐng)教老師同學(xué),爭(zhēng)取把它做完善。同時(shí)也希望各位老師批評(píng)指正,提供你們的寶貴經(jīng)驗(yàn),我相信我會(huì)做得更好。在本次專業(yè)方向設(shè)計(jì)過(guò)程當(dāng)中,收獲知識(shí)的同時(shí),還收獲了閱歷,收獲了成熟,通過(guò)查找大量資料,請(qǐng)教老師同學(xué),以及不懈的努力,不僅培養(yǎng)了獨(dú)立思考、 動(dòng)手制作的能力,在各種其它能力上也都有了提高。更重要的是,我們學(xué)會(huì)了很多學(xué)習(xí)的方法,知道了理論和實(shí)踐的巨大差別。而這是以后最實(shí)用的,真的是受益匪淺。要面對(duì)社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。同時(shí)在與老師和同學(xué)的交流過(guò)程中,互動(dòng)學(xué)習(xí),將知識(shí)融會(huì)貫通。通過(guò)自己的努力,做出了一個(gè)萬(wàn)年歷,對(duì)以后的學(xué)習(xí)是一個(gè)莫大的鼓舞,激起了我的學(xué)習(xí)興趣和開發(fā)創(chuàng)新思維。致謝感謝學(xué)院給我們提供了一個(gè)展現(xiàn)自己的舞臺(tái),給我們一次難得煅煉的機(jī)會(huì),使得我們的動(dòng)手能力和專業(yè)技能都有了很大的提高。感謝提供相關(guān)技術(shù)幫助的老師和同學(xué),你們的支持和鼓勵(lì)使我對(duì)這次的作品完成有了信心和動(dòng)力,也給了我們很多無(wú)私的幫助和支持,我在此深表謝意。【參考文獻(xiàn)】【1】 于永學(xué)、葛健,1WIRE總線數(shù)字溫度傳感器DS18B20及應(yīng)用[J],電子產(chǎn)品世界2003(4)1624【2】 馬云峰、陳子夫、李全培,數(shù)字溫度傳感器DS18B20的原理與應(yīng)用[EB/OL]125【3】 胡振宇、劉魯源、杜振輝,DS18B20接口的C語(yǔ)言程序設(shè)計(jì)[J],單片機(jī)與嵌入式系統(tǒng)應(yīng)用,20022443【4】 李鋼,1WIRE總線數(shù)字溫度傳感器DS18B20原理及應(yīng)用,現(xiàn)代電子技術(shù) [J],2005(8)2123【5】 陳明義,電工電子技術(shù)課程設(shè)計(jì)指導(dǎo)[M],中南大學(xué)出版社,2002【6】 郭天祥,新概念51單片機(jī)c語(yǔ)言教程,電子工業(yè)出版社,2009【7】 陳躍東,DS18B20集成溫度傳感器原理與應(yīng)用[J],安徽教育出版社,2002(4)523【8】 李廣弟,《單片機(jī)基礎(chǔ)》[M],北京航空航天大學(xué)出版社,1994,156【9】 譚浩強(qiáng),C程序設(shè)計(jì)(第二版)[M],清華大學(xué)出版社,2003 【10】 付家才,單片機(jī)控制工程實(shí)踐技術(shù)[M],化學(xué)工業(yè)出版社,2004附錄一 仿真電路圖 圖(16) 電路原理圖 圖(17) 顯示實(shí)時(shí)時(shí)間 圖(18) 調(diào)整日期 圖(19) 調(diào)整時(shí)間 圖(20) 進(jìn)入后臺(tái)日期時(shí)間調(diào)整圖(21) 鬧鐘設(shè)置界面圖(22) 實(shí)時(shí)溫度顯示 圖(23) 倒計(jì)時(shí)顯示附錄二 源程序代碼includeincludeunsigned char code digit[]={0123456789}。 //數(shù)字代碼unsigned char mode,TH,TL,TN,TD,length,amode,alarmmode,count=60,minutes,hours,minutea,seconda,seconds,houra=12,yeara=12,montha=01,daya=01,years,months,days。sbit SCLK=P1^0。 //DS1302時(shí)鐘輸入sbit DATE=P1^1。 //DS1302數(shù)據(jù)輸入 sbit REST=P1^2。 //DS1302復(fù)位端口sbit SET=P1^4。 //DS1302設(shè)置模式選擇位sbit ADD=P1^5。 //增加sbit RED=P1^6。 //減小sbit CANL=P1^7。int down_flag=0。void delay1ms(int i)//1毫秒延時(shí){ int j,k。 while(i) for(j=76。j1。j)。 for(k=29。k1。k)。 }void delaynus(unsigned char n) //延時(shí)若干微秒{ unsigned char i。 for(i=0。in。i++)。 }/***********蜂鳴器模塊************/ sbit beep=P3^6。 //位定義, void dely500(void){ unsigned char i。 for(i=i0。i) { _nop_()。 }}void xiangling(unsigned char n){ unsigned char x,i。 while(n) { for(i=0。i5。i++) { for(x=0。x200。x++) { beep=~beep。 dely500()。 } } for(i=0。i3。i++) { for(x=0。x200。x++) { beep=~beep。 dely500()。 dely500()。 } } }} /*******DS1302模塊*************/ void Write1302(unsigned char date)//向1302寫數(shù)據(jù) { unsigned char i。 SCLK=0。 delaynus(2)。 for(i=0。i8。i++) { DATE=dateamp。0x01。 SCLK=1。 delaynus(2)。 SCLK=0。 delaynus(2)。 date=1。 } } void WriteSet1302(unsigned char cmd,unsigned char date) //根據(jù)相應(yīng)的命令輸入相應(yīng)的數(shù)據(jù) { REST=0。 SCLK=0。 REST=1。 Write1302(cmd)。 delaynus(5)。 Write1302(date)。 SCLK=1。 REST=0。 } unsigned char Read1302(void) //讀取1302數(shù)據(jù) { unsigned char i,date。 delaynus(2)。 for(i=0。i8。i++) { date=1。 if(DATE==1) date|=0x80。 SCLK=1。 delaynus(2)。 SCLK=0。 delaynus(2)。 } return date。 }unsigned char ReadSet1302(unsigned char cmd)//根據(jù)命令讀取1302相應(yīng)的值{ unsigned char date。 REST=0。 SCLK=0。 REST=1。 Write1302(cmd)。 delaynus(2)。 date=Read1302()。 SCLK=1。 REST=0。 return date。}void IntDS1302(void) //DS1302初始化{ unsigned char flag。 flag= ReadSet1302(0x81)。 if(flagamp。0x80) { //判斷時(shí)鐘芯片是否關(guān)閉 WriteSet1302(0x8E,0x00)。 //根據(jù)寫狀態(tài)寄存器命令字,寫入不保護(hù)指令 WriteSet1302(0x80,((0/10)4|(0%10)))。 //根據(jù)寫秒寄存器命令字,寫入秒的初始值 WriteSet1302(0x82,((0/10)4|(0%10)))。 //根據(jù)寫分寄存器命令字,寫入分的初始值 WriteSet1302(0x84,((0/10)4|(0%10)))。 //根據(jù)寫小時(shí)寄存器命令字,寫入小時(shí)的初始值 WriteSet1302(0x86,((0/10)4|(0%10)))。 //根據(jù)寫日寄存器命令字,寫入日的初始值 WriteSet1302(0x88,((0/10)4|(0%10)))。 //根據(jù)寫月寄存器命令字,寫入月的初始值 WriteSet1302(0x8c,((10/10)4|(10%10)))。 //根據(jù)寫年寄存器命令字,寫入年的初始值 WriteSet1302(0x90,0xa5)。 //打開充電功能 選擇2K電阻充電方式 WriteSet1302(0x8E,0x80)。 //根據(jù)寫狀態(tài)寄存器命令字,寫入保護(hù)指令 } }/***************液晶顯示模塊*****************/sbit RS=P2^5。sbit RW=P2^6。sbit E=P2^7。sbit BF=P0^7。 /*液晶忙檢測(cè)*/bit BusyTest(void){ bit result。 RS=0。 RW=1。 E=1。 _nop_()。 _nop_()。 _nop_()。 result=BF。 _nop_()。 _nop_()。 _nop_()。 E=0。 return result。}/*寫指令*/void Write_(unsigned char mand){ while(BusyTest()!=0)。 RS=0。 RW=0。 E=0。 _nop_()。 _nop_()。 _nop_()。 P0=mand。 _nop_()。 _nop_()。 _nop_()。 E=1。 _nop_()。 _nop_()。 _nop_()。 E=0。}/*寫地址*/void Write_Address(unsigned char address){ Write_(address|0x80)。 delay1ms(1)。 } /*寫數(shù)據(jù)*/void Write_Date(unsigned char date){ RS=1。 RW=0。 E=0。 _nop_()。 _nop_()。 _nop_()。 P0=date。 _nop_()。 _nop_()。 _nop_()。 E=1。 _nop_()。 _nop_()。 _nop_()。 E=0。 delay1ms(1)。}/*初始化*/void Lcd_Int(void){ Write_(0x38)。 delay1ms(1)。 Write_(0x38)。 delay1ms(1)。 Write_(0x06)。 delay1ms(1)。 Write_(0x0c)。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1