7段數(shù)碼管電子鬧鐘-課程設(shè)計(jì)_第1頁(yè)
7段數(shù)碼管電子鬧鐘-課程設(shè)計(jì)_第2頁(yè)
7段數(shù)碼管電子鬧鐘-課程設(shè)計(jì)_第3頁(yè)
7段數(shù)碼管電子鬧鐘-課程設(shè)計(jì)_第4頁(yè)
7段數(shù)碼管電子鬧鐘-課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

10科技大學(xué)信息科學(xué)技術(shù)學(xué)院課程設(shè)計(jì)〔32位微機(jī)原理與接口技術(shù)〕班級(jí):課題名稱(chēng): 7段數(shù)碼管電子鬧鐘一、設(shè)計(jì)要求:7系統(tǒng)調(diào)試等工作。所實(shí)現(xiàn)的電梯模擬系統(tǒng)主要功能如下。7段數(shù)碼管或液晶顯示當(dāng)前的時(shí)間。允許設(shè)置響鈴時(shí)間。允許設(shè)施當(dāng)前時(shí)間。④用發(fā)光二極管的閃耀表示響鈴。⑤按某個(gè)按鈕后,鬧鐘停頓響應(yīng)。二、設(shè)計(jì)原理:1、設(shè)計(jì)所用到的芯片:8086CPU中心處理器、8255A并行接口芯片、74LS244三態(tài)緩沖器2、硬件電路設(shè)計(jì)電路圖3、硬件電路設(shè)計(jì)原理825548255PB到數(shù)碼管的段選端,數(shù)碼管的位碼由8255PA口送到數(shù)碼管的位選端,這樣每一時(shí)刻就825548255,就可以實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)顯示,能顯示4位數(shù)。另外通過(guò)PCLED74HC244將數(shù)據(jù)有數(shù)據(jù)總線(xiàn)送給CPU。244當(dāng)其中某一個(gè)按鈕按下時(shí),對(duì)應(yīng)數(shù)據(jù)總線(xiàn)中的那一位的數(shù)據(jù)就是0,否則為1,因此,2444、軟件設(shè)計(jì)流程圖開(kāi)頭開(kāi)頭初始化檢測(cè)鬧鐘顯示數(shù)碼管及LED燈掃描檢測(cè)按鍵5、總體設(shè)計(jì)用數(shù)碼管的動(dòng)態(tài)掃描來(lái)作為顯示局部,用四個(gè)按鍵來(lái)作為操控局部,CPU接收用戶(hù)輸入的掌握信號(hào)并進(jìn)展分析,切換到相應(yīng)的狀態(tài)。按鍵局部是通過(guò)循環(huán)從244讀取數(shù)據(jù)到CPU,然后進(jìn)展分析,假設(shè)從四個(gè)按鍵讀回的數(shù)據(jù)均為1,表示沒(méi)有按鍵被按下,因此不做任何額外操作。假設(shè)第一個(gè)按鍵被按下,表示對(duì)分進(jìn)展加操作,假設(shè)當(dāng)前是模式0,則對(duì)實(shí)時(shí)時(shí)間分鐘進(jìn)展加1操作,否則對(duì)鬧鐘101操作,當(dāng)前模式為1時(shí)對(duì)鬧鐘的定時(shí)時(shí)間秒進(jìn)展加101LEDD3下此按鍵后停頓響鈴,即關(guān)掉LED燈,不讓其閃耀,假設(shè)當(dāng)前沒(méi)有處在響鈴時(shí)段,按下此按鍵不做任何操作。顯示局部。一是通過(guò)四位數(shù)碼管的動(dòng)態(tài)掃描來(lái)顯示當(dāng)前的時(shí)間,二是通過(guò)三個(gè)LED燈來(lái)表示當(dāng)前所處的模式,假設(shè)D1亮,表示處在模式0,即實(shí)時(shí)時(shí)間顯示及調(diào)整模式,D2亮,表示處在模式1,即定時(shí)時(shí)間顯示及調(diào)整模式。假設(shè)D3在鬧鐘響的時(shí)間段,假設(shè)為滅表示當(dāng)前不處在鬧鈴時(shí)段。808618.2兩個(gè)變量second,minute,轉(zhuǎn)變?cè)瓉?lái)18.2次中斷的效勞子程序的入口地址,改為自己countcount1,count18second11second60的時(shí)候?qū)⑵淝辶悴⑹筸inute1count、second、minute有了計(jì)時(shí)局部,顯示局部,操控局部,將它們組合起來(lái)就完成了鬧鐘的設(shè)計(jì)。用計(jì)時(shí)局部來(lái)計(jì)時(shí)并通過(guò)顯示局部將用于計(jì)時(shí)的兩個(gè)變量顯示出來(lái)時(shí)間和實(shí)時(shí)時(shí)間,這樣就實(shí)現(xiàn)了設(shè)計(jì)的需求。三、測(cè)試結(jié)果:3可以調(diào)整狀態(tài),1下,led112調(diào)整秒;2下,led212調(diào)整秒;led334可以完畢鬧鈴,led燈完畢閃耀。四、設(shè)計(jì)總結(jié)本設(shè)計(jì)成功的設(shè)計(jì)并實(shí)現(xiàn)了設(shè)計(jì)的需求。附件:程序源代碼:#include<stdio.h>#include<dos.h>#include<conio.h>#include<bios.h>chartable_dula[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //段碼chartable_wela[]={0x01,0x02,0x04,0x08}; //位碼charminute=0,second=1; //記錄當(dāng)前時(shí)間的分和秒charminute1=0,second1=0;intcount=0;

//記錄鬧鐘時(shí)間的分和秒intmode=0; //掌握方式標(biāo)志位,為是顯示當(dāng)前時(shí)間,為時(shí)調(diào)整當(dāng)前時(shí)間,為時(shí)調(diào)整定時(shí)時(shí)間charclock_led=0xff,clock_button=0; 為掌握鬧鐘鬧鈴時(shí)閃耀的led,主要利用最低位voidinterruptfar(interruptfar*OldAsyncInt)(...);voidinterruptfarAsyncInt(...); 聲明中斷效勞子程序voiddelay(unsignedintt);//延時(shí)函數(shù)聲明voiddisplay(charwei,charnum);//顯示第wei位為數(shù)num的顯示函數(shù)的聲明voidComInit;//端口初始化函數(shù)聲明voidKeyScan;voiddisplayAll;

//按鍵掃描的函數(shù)的聲明//總顯示函數(shù)的聲明voidclock_check; //檢查鬧鐘是否需要響鈴的函數(shù)的聲明voidmian{intc=0;outportb(0x183,0x80);//初始化的掌握字outportb(0x180,0x01);outportb(0x181,0x0c);ComInit; 初始化端口while(1){clock_check; //循環(huán)檢測(cè)鬧鐘是否需要響displayAll; //顯示數(shù)碼管if(second>=60) //掌握秒向分的進(jìn)位{second=0;minute++;minute=0;}KeyScan;c=bioskey(1);if(c==283)

//循環(huán)檢測(cè)按鍵//按Esc鍵退出程序break;}}voiddelay(unsignedintt) //粗略延時(shí)函數(shù){while(t--){unsignedinti=600;while(i--);}}voiddisplay(charwei,charnum)//在第wei位上顯示數(shù)num{outportb(0x180,0);outportb(0x181,table_dula[num]);//往B口上送段碼outportb(0x180,table_wela[wei]);//往A口上送位碼}voidinterruptfarAsyncInt(...){

//中斷效勞子程序disable;//關(guān)閉中斷count++;second++;

//每秒中斷.2秒的中斷elseif(count==36)second++;elseif(count==54)second++;elseif(count==72)second++;elseif(count==91){count=0;second++;}if(count%6==0&&clock_button==1)clock_led=~clock_led;}voidComInit //替換.2秒中斷原來(lái)的效勞子程序{unsignedcharIntVectNum=0x1c;disable;OldAsyncInt=getvect(IntVectNum);setvect(IntVectNum,AsyncInt);enable;}voidKeyScan//鍵盤(pán)掃描函數(shù){charkey;key=inportb(0x190);if(mode==0) //當(dāng)為方式的時(shí)候{if(!(key&0x0001)){delay(100);key=inportb(0x190);if(!(key&0x0001)){while(!(key&0x0001))key=inportb(0x190);delay(100);minute++;minute=0;}}elseif(!(key&0x0002)){delay(100);key=inportb(0x190);if(!(key&0x0002)){while(!(key&0x0002))key=inportb(0x190);delay(100);second++;second=0;}}}elseif(mode==1){if(!(key&0x0001)){delay(100);key=inportb(0x190);if(!(key&0x0001)){while(!(key&0x0001))key=inportb(0x190);delay(100);minute1++;minute1=0;}}elseif(!(key&0x0002)){delay(100);key=inportb(0x190);if(!(key&0x0002)){while(!(key&0x0002))key=inportb(0x190);delay(100);second1++;second1=0;}}}if(!(key&0x0004)){delay(100);key=inportb(0x190);if(!(key&0x0004)){while(!(key&0x0004))key=inportb(0x190);delay(100);mode++;mode=0;}}if(!(key&0x0008)){delay(100);key=inportb(0x190);if(!(key&0x0008)){while(!(key&0x0008))key=inportb(0x190);delay(100);clock_button=0;clock_led=0xff;}}}voiddisplayAll{if(mode==0){display(0,minute/10);delay(1);display(1,minute%10);delay(1);display(2,second/10);delay(1);display(3,second%10);delay(1);outportb(0x182,0xfd);}elseif(mode==1){display(0,minute1/10);delay(1);display(1,minute1%10);delay(1);display(2,second1/10);delay(1);display(3,second1%10);delay(1);outportb(0x182,0xf7

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論