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

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文-基于proteus的單片機(jī)實(shí)時(shí)時(shí)鐘的仿真設(shè)計(jì)-資料下載頁(yè)

2024-11-16 18:35本頁(yè)面

【導(dǎo)讀】使用了Proteus軟件技術(shù)和Keilc軟件進(jìn)行仿真和調(diào)試,最終實(shí)現(xiàn)日常的時(shí)。功能,同時(shí)具有時(shí)鐘調(diào)整、鬧鐘等功能。在編寫完軟件并檢測(cè)完正確后用仿真硬件檢測(cè)運(yùn)行。待這一切工作做好后再利用系統(tǒng)板硬件電路來實(shí)。并應(yīng)用Proteus的ISIS軟件實(shí)現(xiàn)了單片機(jī)電子時(shí)。鐘系統(tǒng)的設(shè)計(jì)與仿真。該方法仿真效果真實(shí)、準(zhǔn)確,節(jié)省了硬件資源。

  

【正文】 har rd,uchar wd,uchar fd,uchar shi) { u0=Read_ds1302(wd)。 u0=((u0amp。0x70)4)*10+(u0amp。0x0F)。 if(shi==1) { u0++。 if(u0==24) {u0=0。 } } else { u0。 31 if((u0+1)==0) { u0=23。 } if(u023) { u0=23。 } } Write_ds1302(rd,(u0/10)4 | (u0%10))。 //秒 _asm(nop)。 write_sfm(fd,u0)。 lcd_w(0x80+0x40+fd)。 //顯示分 _asm(nop)。 lcd_w(0x38)。 lcd_w(0x0f)。 //顯示功能開,有光標(biāo) lcd_w(0x80+0x40+fd)。 } //日的加減子函數(shù) /輸入 // void rjia_key(uchar rd,uchar wd,uchar fd,uchar day) { n3=Read_ds1302(wd)。 n3=((n3amp。0x70)4)*10+(n3amp。0x0F)。 if (day==1) { n3++。 if(n3==32) { n3=0。 } } else {n3。 if((n3+1)==0) { 32 n3=31。 } _asm(nop)。 if(n331) { n3=31。 } } Write_ds1302(rd,(n3/10)4 | (n3%10))。 _asm(nop)。 write_sfm1(fd,n3)。 _asm(nop)。 lcd_w(0x80+fd)。 //顯示 lcd_w(0x38)。 lcd_w(0x0f)。 //顯示功能開,有光標(biāo) } // 月的子函數(shù) //輸入 // void yjia_key(uchar rd,uchar wd,uchar fd,uchar yue) {n2=Read_ds1302(wd)。 n2=((n2amp。0x70)4)*10+(n2amp。0x0F)。 _asm(nop)。 if(yue==1) { n2++。 if(n2==13) { n2=0。 } } else {n2。 if((n2+1)==0) { n2=12。 33 } if(n212) { n2=12。 } } Write_ds1302(rd,(n2/10)4 | (n2%10))。 _asm(nop)。 write_sfm1(fd,n2)。 _asm(nop)。 lcd_w(0x80+fd)。 _asm(nop)。 lcd_w(0x38)。 lcd_w(0x0f)。//顯示功能開,有光標(biāo) } // 年的子函數(shù) /輸入 // void njia_key(uchar rd,uchar wd,uchar fd,uchar nian) { n1=Read_ds1302(wd)。 n1=((n1amp。0xF0)4)*10+(n1amp。0x0F)。 if (nian==1) {n1++。 if(n1==100) { n1=0。 } } else {n1。 if((n1+1)==0) { n1=99。 } if(n199) 34 { n1=99。 } } Write_ds1302(rd,(n1/10)4 | (n1%10))。 write_sfm1(fd,n1)。 lcd_w(0x80+fd)。 //顯示 lcd_w(0x38)。 lcd_w(0x0f)。 //顯示功能開 , 有光標(biāo) lcd_w(0x80+fd)。 } //初始化 1302,設(shè)置開始時(shí)候的時(shí)分秒 void Init_DS1302(void) { Write_ds1302(Write_protect,0x00)。 Write_ds1302(Write_year,0x0A)。//年 Write_ds1302(Write_month,0XC)。 //月 Write_ds1302(Write_day,0X22)。 //日 Write_ds1302(Write_hour,0X23)。 //小時(shí) Write_ds1302(Write_minute,0X59)。 //分 Write_ds1302(Write_second,0X00)。 //秒 Write_ds1302(Write_protect,0x80)。 //關(guān)閉寄存器操作; } void write_sfm(uchar add,uchar dat) { uchar shi,ge。 shi=dat/10。 ge=dat%10。 lcd_w(0x80+0x40+add)。 lcd_wdat(table2[shi])。 lcd_wdat(table2[ge])。 35 } void write_sfm1(uchar add,uchar dat) { uchar shi,ge。 shi=dat/10。 ge=dat%10。 lcd_w(0x80+add)。 lcd_wdat(table2[shi])。 lcd_wdat(table2[ge])。 } void write_sfm2(uchar add,uchar dat) { uchar k,ge。 ge=dat%10。 lcd_w(0x80+add)。 for(k=(ge*33)。k(ge*3)。k++) { lcd_wdat(table3[k])。 delay(5)。} } void lcd_init1(void) //顯示祝福語 { uchar i,k=0。 PD_ODR=0x11。 lcd_w(0x80); for(i=0。i16。i++) { lcd_wdat(table4[i])。 } lcd_w(0x80+0x40)。 for(k=0。k16。k++) { lcd_wdat(table5[k])。 delay(100)。 PD_ODR=0X18。 36 } } void naozhong(uchar hour1,uchar day1,uchar month1) { if(hour1==00) //判斷是否時(shí)相等 { if(day1==23) //判斷日是否相等 { if(month1==12) //判斷月是否相等 { lcd_init1()。 lcd_w(0x01)。 //清屏 lcd_init()。 PD_ODR=0X00。 return。 } } } } void read_shzh(void) { u2=Read_ds1302(Read_second )。 //把讀取的數(shù)據(jù)暫時(shí)儲(chǔ)存在 u2 u2=((u2amp。0x70)4)*10+(u2amp。0x0F)。 //轉(zhuǎn)十進(jìn)制的 bcd 碼換成十進(jìn)制 write_sfm(6,u2)。 u1=Read_ds1302(Read_minute )。 //分 u1=((u1amp。0xF0)4)*10+(u1amp。0x0F)。 //轉(zhuǎn)換成十進(jìn)制 write_sfm(3,u1)。 //顯示分 u0=Read_ds1302(Read_hour )。 //時(shí) u0=((u0amp。0xF0)4)*10+(u0amp。0x0F)。 //轉(zhuǎn)換成十進(jìn)制 37 write_sfm(0,u0)。 //顯示小時(shí) u3=Read_ds1302(Read_week )。 //周 u3=u3amp。0x0F。 //轉(zhuǎn)換成十進(jìn)制 write_sfm2(11,u3)。 //顯示星期 n1=Read_ds1302(Read_year )。 n1=((n1amp。0xF0)4)*10+(n1amp。0x0F)。 //轉(zhuǎn)換成十進(jìn)制 write_sfm1(2,n1)。 //顯示年 n3=Read_ds1302(Read_day )。 n3=((n3amp。0x30)4)*10+(n3amp。0x0F)。 //轉(zhuǎn)換成十進(jìn)制 write_sfm1(8,n3)。 //顯示日 n2=Read_ds1302(Read_month )。 n2=((n2amp。0x10)4)*10+(n2amp。0x0F)。 //轉(zhuǎn)換成十進(jìn)制 write_sfm1(5,n2)。 //顯示月 if(u1==0) {naozhong(u0,n3,n2)。 //鬧鐘子函數(shù) } } main() { _asm(sim)。 delay(20)。 //延時(shí) 15ms 等待電源電壓穩(wěn)定 GPIO_Init()。 //IO 口初始化 _asm(NOP)。 lcd_init()。 _asm(NOP)。 delay(5)。 Init_DS1302()。 while (1) {_asm(rim)。 38 delay(5)。 read_shzh()。 _asm(NOP)。 } } 實(shí)現(xiàn) 9系統(tǒng)仿真分析 該時(shí)鐘程序設(shè)計(jì)思路如下: 開始顯示初始化定時(shí)器賦初值中斷初始化軟件計(jì)數(shù)器初始化開啟定時(shí)器調(diào)用顯示、按鍵子程序 圖 8 工作流程 第 1 步: 在程序頭將設(shè)計(jì)中的一些 IO 口進(jìn)行分配并注釋。 第 2 步: 初始化程序,對(duì)單片機(jī)的 IO 口設(shè)置為輸入輸出等,對(duì) 1302, 1602n的參數(shù)進(jìn)行設(shè)置,如設(shè)定時(shí)鐘運(yùn)行為 24 小時(shí)制 。將一些未到時(shí)鐘設(shè) 39 計(jì)功能的功能端口關(guān)閉等。 第 3 步: 開始主程序進(jìn)行程序掃描,先掃初始化字子程序初始化 DS1302 和LCD1602,啟動(dòng)時(shí)鐘芯片進(jìn)行計(jì)時(shí),初始化 1602 的顯示方式,將分配好的時(shí)分秒等數(shù)字調(diào)入到顯示子程序中。 ——顯示子程序通過分配的空間對(duì)應(yīng)口將 DS1302 時(shí)鐘芯片的數(shù)據(jù)顯示相應(yīng)的時(shí)分秒,年月日等。 ——進(jìn)入按鍵掃描,判斷按鍵是否有變動(dòng),若有就根據(jù)設(shè)計(jì)程序?qū)ο鄳?yīng)的按鍵按入次數(shù)而進(jìn)行實(shí)現(xiàn)相應(yīng)的功能。如進(jìn)入時(shí)間調(diào)整,中斷進(jìn)入、退出等。 ——最后返回主程序頭重新依次掃描。顯示過程設(shè)有消隱,按鍵通過軟件去斗。 第 4 步: 子程序部分。在主程序的調(diào)用下依據(jù)不同的子程序工能而編寫子程序,有多級(jí)嵌套。這些子程序包括顯示子程序、延時(shí)子程序、時(shí)間計(jì)數(shù)子程序、按鍵處理子程序、調(diào)時(shí)間子程序等 。 第 5步: 電路原理圖在 ISIS里設(shè)計(jì)完成,并 將系統(tǒng)軟件編譯成. Hex文件后,下 面就可以進(jìn)行電子時(shí)鐘的系統(tǒng)虛擬仿真了。在 ISIS的原理圖中,右鍵單擊 AT89C51將其選中,然后單擊左鍵打開 AT89C51的 Edit Component對(duì)話框,如圖 8所示。在 Program File:選項(xiàng)中選擇文件 111. Hex,單擊 OK按鈕完成仿真設(shè)置。點(diǎn)擊 ISIS下方仿真按鈕的運(yùn)行按鈕,系統(tǒng)開始運(yùn)行,實(shí)時(shí)顯示當(dāng)前時(shí)間。圖 9是系統(tǒng)運(yùn)行時(shí)的畫面。 40 圖 9 Edit Component 對(duì)話框 圖 10 系統(tǒng)運(yùn) 行時(shí)的畫面 41 圖 11 系統(tǒng)仿真時(shí)的時(shí)間顯示 結(jié) 論 單片機(jī)電子時(shí)鐘系統(tǒng)的設(shè)計(jì)與仿真中加入 Proteus軟件之后,實(shí)現(xiàn)了硬件軟化的目的。通過本文的 Proteus軟件實(shí)現(xiàn)單片機(jī)實(shí)時(shí)時(shí)鐘電路仿真設(shè)計(jì)的實(shí)例,可以得出將 Proteus軟件引入單片機(jī)課程中進(jìn)行輔助教學(xué),是教學(xué)方法的一種改革,是虛擬仿真技術(shù)和計(jì)算機(jī)多媒體技術(shù)相結(jié)合的綜合運(yùn)用,具有明顯的經(jīng)濟(jì)性、可移植性、可推廣性。有利于促進(jìn)課程和教學(xué)改革,有利于 促進(jìn)課程和教學(xué)改革,有利于培養(yǎng)學(xué)生的創(chuàng)新素質(zhì)和創(chuàng)造能力,更有利于人才的培養(yǎng)。同時(shí) Proteus不斷完善的功能和強(qiáng)大的仿真能力被越來越多的設(shè)計(jì)人員所喜愛。在大學(xué)生電子設(shè)計(jì)競(jìng)賽活動(dòng)中也逐步得到了推廣。 雖然本次設(shè)計(jì) 基本 完成,但是 本次設(shè)計(jì)相對(duì)于老師給的任務(wù)書還是有幾點(diǎn)沒有完成,該時(shí)鐘電路沒有自備電池,在系統(tǒng)掉電的情況下不能正常的顯示實(shí)時(shí)時(shí)間;另外鬧鈴電路的工作也不是完成的太好,它是通過按鍵來實(shí)現(xiàn)的,而在實(shí)際應(yīng)用中,通過軟件 實(shí)現(xiàn)比較方便。這些功能沒有完善主要?dú)w咎于自己對(duì)于專業(yè)知識(shí)認(rèn)識(shí)還不夠,自己的理論知識(shí)擴(kuò)展得還不 夠,還有待提高。而且 在設(shè)計(jì)之 初, 42 也遇到了 好多困難,首先是對(duì)于該項(xiàng)軟件的不太 熟悉 ,運(yùn)用起來就不是那么
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1