版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)課程設(shè)計(jì)報(bào)告 項(xiàng)目:作息時(shí)間表系統(tǒng)設(shè)計(jì) 班級(jí):通信工程04本 姓名:xx x號(hào) 實(shí)驗(yàn)指導(dǎo)老師: 李強(qiáng)一、題目作息時(shí)間表系統(tǒng)設(shè)計(jì)用89c51設(shè)計(jì)一個(gè)6位led數(shù)碼顯示“作息時(shí)間表系統(tǒng)”,顯示時(shí)間為000000 23時(shí)59分59秒,每秒自動(dòng)加一。另設(shè)計(jì)4個(gè)按鈕,分別是“分狀態(tài)”按鍵、“分加1”按鍵、“時(shí)狀態(tài)”按鍵,“時(shí)加1”按鍵。用于進(jìn)行小時(shí)和分鐘的調(diào)整。這就是一個(gè)完整的具有時(shí)、分、秒顯示的單片機(jī)實(shí)時(shí)鐘系統(tǒng)。二、增加功能在上述實(shí)時(shí)鐘系統(tǒng)的基礎(chǔ)上,在控制軟件鐘增加一個(gè)“作息時(shí)間表”,如圖1 所示,并增加對(duì)該表的查詢功能模塊,依據(jù)對(duì)該表的查詢結(jié)果,控制喇叭,進(jìn)行課間打鈴提示,完成單片機(jī)作息時(shí)間表
2、系統(tǒng)的設(shè)計(jì)。也完成本次課程設(shè)計(jì)。三、內(nèi)容提要 本設(shè)計(jì)利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合sl-100、sl-200系統(tǒng)上的集成電路芯片8052、led數(shù)碼管以及按鍵來設(shè)計(jì)計(jì)時(shí)器。將軟、硬件有機(jī)地結(jié)合起來,使得系統(tǒng)能夠正確地進(jìn)行計(jì)時(shí),數(shù)碼管能夠正確地顯示時(shí)間。其中本設(shè)計(jì)中的四個(gè)開關(guān)按鍵:其中一個(gè)按鍵按下去時(shí),系統(tǒng)進(jìn)入秒調(diào)整狀態(tài),然后,秒加1鍵每按一次,秒計(jì)時(shí)器加1。時(shí)狀態(tài)按下時(shí),系統(tǒng)進(jìn)入時(shí)調(diào)整狀態(tài),時(shí)按鍵每按一次,時(shí)計(jì)數(shù)器加1。本設(shè)計(jì)運(yùn)行開始時(shí),各按鍵回到各初始位置,即都處于1狀態(tài)。計(jì)時(shí)顯示從00:00:00開始,依據(jù)秒加1為單位進(jìn)行顯示計(jì)時(shí)。三、實(shí)驗(yàn)?zāi)康?1、 通過本次課程設(shè)計(jì)加深
3、對(duì)單片機(jī)課程的全面認(rèn)識(shí)復(fù)習(xí)和掌握,對(duì)嵌入式系統(tǒng)的應(yīng)用進(jìn)一步的了解。 2、 掌握定時(shí)器、外部中斷的設(shè)置和編程原理。 3、 通過此次課程設(shè)計(jì)能夠?qū)纹瑱C(jī)軟硬件結(jié)合起來,對(duì)程序進(jìn)行編輯,校驗(yàn)。四、意義 該實(shí)驗(yàn)通過單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和計(jì)數(shù)原理,設(shè)計(jì)單片機(jī)作息時(shí)間表系統(tǒng),擁有正確的計(jì)時(shí)、顯示、時(shí)間調(diào)整等功能,并同時(shí)可以用數(shù)碼管顯示,在現(xiàn)實(shí)生活中應(yīng)用廣泛,具有現(xiàn)實(shí)意義。五、本人所做工作根據(jù)相關(guān)的單片機(jī)材料,利用所學(xué)的單片機(jī)知識(shí),結(jié)合sl-100單片機(jī)微機(jī)實(shí)驗(yàn)系統(tǒng)中的軟件和硬件(集成電路芯片8952,七段數(shù)碼管,開關(guān)電路及時(shí)鐘信號(hào)電路,按鍵等),編寫能夠?qū)崿F(xiàn)該設(shè)計(jì)的軟件程序,最后將軟、硬件有機(jī)的結(jié)合
4、起來,進(jìn)行有效的調(diào)試,達(dá)到完成該實(shí)驗(yàn)課程設(shè)計(jì)的目的要求。六、設(shè)計(jì)內(nèi)容用at89c51設(shè)計(jì)一個(gè)6位led數(shù)碼顯示“實(shí)時(shí)鐘”,顯示時(shí)間為00:00:00秒,每秒自動(dòng)加一。另設(shè)計(jì)一個(gè)“時(shí)狀態(tài)”按鍵和一個(gè)“時(shí)加1 ”按鍵。再增加一個(gè)“分狀態(tài)”按鍵和一個(gè)“分加1”按鍵。在以上設(shè)計(jì)的基礎(chǔ)上,在在控制軟件系統(tǒng)中增加作息時(shí)間表功能,驅(qū)動(dòng)喇叭去完成作息時(shí)間控制的功能。七、設(shè)計(jì)思路及描述該實(shí)驗(yàn)要求進(jìn)行計(jì)時(shí)并在數(shù)碼管上顯示時(shí)間,則可利用sl-100單片機(jī)實(shí)驗(yàn)系統(tǒng)中的芯片at89c52,中的p3管腳做為外部按鍵輸入,并實(shí)現(xiàn)各個(gè)按鍵的功能;定時(shí)器t0作為每1050毫秒加一的定時(shí)器。在內(nèi)部ram中開辟1050ms計(jì)數(shù)器,
5、秒計(jì)數(shù)器、分計(jì)數(shù)器、時(shí)計(jì)數(shù)器。單片機(jī)依據(jù)定時(shí)器t0的定時(shí)時(shí)間,進(jìn)行秒、分、時(shí)的累加,并將秒、分、時(shí)數(shù)據(jù)轉(zhuǎn)換為7段led顯示段碼,送led顯示器,從而完成單片機(jī)實(shí)時(shí)鐘系統(tǒng)的設(shè)計(jì)。注意,為了輸出顯示方便,時(shí)、分、秒的累加計(jì)時(shí)可以采用bcd碼運(yùn)算。 。八、原理圖九、課程設(shè)計(jì)參考匯編程序 ;*; 按鍵可調(diào)作息時(shí)間電子鐘; ;date 2007.7.6 ;created by 李強(qiáng) ;*;*; 顯示緩沖區(qū)定義;*seclequ50hsechequ51hminlequ52hminhequ53hhourlequ54hhourhequ55h;*; 時(shí)鐘計(jì)數(shù)單元定義;*msequ56hsecequ57hmine
6、qu58hhourequ59hflashequ5ahtimecequ5bhbpcountequ5chcodepequ5dh;*; 按鍵定義;*keymbit p3.0keym1bitp3.1keym_1 bitp3.2keyhbitp3.3keyh1bitp3.4keyh_1bit p3.5;keytime bitp3.6;按鍵狀態(tài)標(biāo)志m_keybit00hh_keybit01hflashbbit02htimebit03htimegbit04h;*; 共陽數(shù)碼管段碼;*;disptab: ;db 0c0h,0f9h,0a4h,0b0h,99h;db 92h,82h,0f8h,80h,90h,0
7、ffhorg 0080htab: db 0c0h, 0f9h, 0a4h, 0b0h, 99h; 01234 db 92h, 82h, 0f8h, 80h, 90h ; 56789 db 88h, 83h, 0c6h, 0a1h, 86h; abcde db 8eh,0ffh;*; 作息時(shí)間碼;*org00b0htimetab:db00h,00h,15hdb00h,00h,30hdb00h,01h,00hdb10h,00h,15hdb00h,03h,00hdb13h,00h,15hdb20h,30h,00hdb00h,00h,45hdb0ffh,0ffh,0ffh;*; 中斷地址表設(shè)置;*or
8、g0000hajmpmainorg0003hretiorg000bhajmpintt0org0013hretiorg001bhajmpintt1org0023hreti;*; main程序;*org0100hmain:movsp,#60hmovr7,#0fhmovr0,#50hmova,#00hmov20h,aclrm_keyclrh_keyclrd:movr0,aincr0djnzr7,clrdmovtmod,#11hmovth0,#3chmovtl0,#0b0hmovth1,#3chmovtl1,#0b0hmovms,#00hmovflash,#00hsetbeasetbet0setbet
9、1setbtr0clrtimegclrtr1cont: lcalldisplaylcallkeytest;jnbtime,contlcallbeepajmpcont;*; beep程序;*beep:movtimec,hourmovcodep,#0fdhmovdptr,#timetabbeph:mova,codepincaincaincamovcodep,amovca,a+dptrmovb,axrla,#0ffhjzexitbmova,bcjnea,timec,bephmovtimec,mindeccodepdeccodepbepm:mova,codepincaincaincamovcodep,
10、amovca,a+dptrmovb,axrla,#0ffhjzexitbmova,bcjnea,timec,bepmmovtimec,secdeccodepdeccodepbepsec:mova,codepincaincaincamovcodep,amovca,a+dptrmovb,axrla,#0ffhjzexitbmova,bcjnea,timec,bepsecsetbtimegclrcodep;ajmp exitbbexitb:;clrtimegexitbb:clrcodepclrtimecret;*; keytest 程序;key0-p3.0,狀態(tài)鍵盤;key1=p3.1,加1鍵;*k
11、eytest:setbkeymsetbkeym1setbkeyhsetbkeyh1setbkeym_1setbkeyh_1jnbkeym,keydelayjnbkeym1,keydelayjnbkeym_1,keydelay jnbkeyh,keydelayjnbkeyh1,keydelayjnbkeyh_1,keydelay;jnbkeytime,keydelayajmpexitskeykeydelay:lcall delay10msjnbkeym,keympjnbkeym1,keym1pjnbkeym_1,keym_1pjnbkeyh,keyhpjnbkeyh1,keyh1pjnbkeyh
12、_1,keyh_1p;jnbkeytime,keytimepajmpexitskeykeymp:ajmpkeymppkeym1p:ajmpkeym1ppkeym_1p:ajmpkeym_1ppkeyhp:ajmpkeyhppkeyh1p:ajmpkeyh1ppkeyh_1p:ajmpkeyh_1pp;keytimep:ajmptimep;timep:jnbkeytime,$;jbcm_key,exitkeyt;jbch_key,exitkeyt;cpltime;ajmp exitskeykeympp:jnbkeym,$jbcm_key,exitkeytjbch_key,exitkeytsetb
13、m_keysetbet1setbtr1clrtr0ajmpexitskeyexitkeyt:ajmpexitkeykeyhpp:jnbkeyh,$jbcm_key,exitkeyjbch_key,exitkeysetbh_keysetbet1setbtr1clrtr0ajmpexitskeykeym1pp:jnbkeym1,$jnbm_key,exitkeymova,minadda,#1daamovmin,acjnea,#60h,$+3jcexitsmmovmin,#00hexitsm:ajmpexitskeykeym_1pp:jnbkeym_1,$jnbm_key,exitkeymova,m
14、injnzexitm_1mova,#60hexitm_1:clrcsubba,#1movb,aanla,#0fhcjnea,#0fh,exmmova,bsubba,#06hsjmp$+3exm:mova,bmovmin,aajmpexitskeykeyh_1pp:jnbkeyh_1,$jnbh_key,exitkeymova,hourjnzexith_1mova,#24hexith_1:clrcsubba,#1movb,aanla,#0fhcjnea,#0fh,exhmova,bsubba,#06hsjmp$+3exh:mova,bmovhour,aajmpexitskeykeyh1pp:jn
15、bkeyh1,$jnbh_key,exitkeymova,houradda,#1daamovhour,acjnea,#24h,$+3jcexitshmovhour,#00hexitsh:ajmpexitskey exitkey:setbtr0clret1clrtr1exitskey:ret;*; display 程序;*display:mova,sec;顯示緩沖區(qū)更新movb,aanla,#0fhmovsecl,amova,banla,#0f0hswapamovsech,amova,minmovb,aanla,#0fhmovminl,amova,banla,#0f0hswapamovminh,
16、amova,hourmovb,aanla,#0fhmovhourl,amova,banla,#0f0hswapamovhourh,a; 顯示更新movdptr,#tabmov a,seclmovca,a+dptrmovp0,amovp2,#0fehlcalldelay1msmov a,sechmovca,a+dptrmovp0,amovp2,#0fdhlcalldelay1msjnbm_key,dminjnbflashb,dminmovminl,#16movminh,#16dmin:mov a,minlmovca,a+dptrmovp0,amovp2,#0fbhlcalldelay1msmov
17、 a,minhmovca,a+dptrmovp0,amovp2,#0f7hlcalldelay1msjnbh_key,dhourjnbflashb,dhourmovhourl,#16movhourh,#16dhour:mov a,hourlmovca,a+dptrmovp0,amovp2,#0efhlcalldelay1msmov a,hourhmovca,a+dptrmovp0,amovp2,#0dfhlcalldelay1msret;*; 延時(shí) 程序;*delay1ms:movr7,#10d1ms:movr6,#100djnzr6,$djnzr7,d1msretdelay10ms:movr
18、7,#100d10ms:movr6,#100djnzr6,$djnzr7,d10msret;*; t0 50ms 中斷 程序;*intt0: ;lcall beeppushaccpushpsw;lcall beepclrtr0clrcmova,#0b8hadda,tl0movtl0,amova,#3chaddca,#0movth0,asetbtr0mova,msincamovms,acjnea,#20,eoutmovms,#00hmova,secadda,#1daamovsec,acjnea,#60h,eoutmovsec,#00hmova,minadda,#1daamovmin,acjnea
19、,#60h,eoutmovmin,#00hmova,houradda,#1daamovhour,acjnea,#24h,eoutmovhour,#00heout:jnbtimeg,eeoutmovtmod,#21hmovth1,#156movtl1,#156setbtr1;cplp3.3incbpcountmova,bpcountcjnea,#100,eeoutmovbpcount,#0clrtimegclrtimecsetbp3.3movtmod,#11hclrtr1clrtimecclrcodepeeout: ;lcallbeep poppsw popaccreti;*; t1 50ms
20、中斷 程序;*intt1:pushaccpushpswjnbtimeg,exit_int1;movth1,#0d8h;movtl1,#0f0hcplp3.3;incbpcount;mova,bpcount;cjnea,#200,exitt1;movbpcount,#00h;clrtimeg;clrtr1;setbp3.3sjmpexitnt1exit_int1:;movtmod,#11hincflashmova,flashcjnea,#5,exitnt1movflash,#0cplflashb;閃爍標(biāo)志取反exitnt1:movth1,#3chmovtl1,#0b0hexitt1:poppsw
21、popaccretiend 十、課程設(shè)計(jì)c51參考程序clock.c 文件/* 電子表c源程序 date 2007.7.11 created by 李強(qiáng) */#includeclock.h/* 主程序*/main() tmod=0x11;et0=1;et1=1;ea=1;th0=0x3c;tl0=0xb0;th1=0x3c;tl1=0xb0;tr0=1;while(1) disp(); beep(); key();clock.h 文件#include/* 數(shù)據(jù)類型聲明*/#define uint unsigned inttypedef unsigned char uchar;/* 全局?jǐn)?shù)據(jù)類型
22、聲明*/ typedef struct /* structure of the time record */ uchar hour; /* hour */ uchar min; /* minute */ uchar sec; /* second */ ucharms; /* 50 ms */ time;typedef struct /* structure of the time record */ uchar hourh; /* hour */ uchar hourl; uchar minh; /* minute */ uchar minl; uchar sech; uchar secl;
23、/* second */ timebuf;typedef struct /* structure of the time record */ uchar hour; /* hour */ uchar min; /* minute */ uchar sec; /* second */ timetab;/* 函數(shù)原型聲明*/void delay1ms();void delay10ms();void disp();void beep();void scankey();void key_min_state();void key_min_plus();void key_min_sub();void ke
24、y_hour_state();void key_hour_plus();void key_hour_sub();void key();function.c 文件#includeclock.h/* 數(shù)碼管共陽段碼表*/uchar code dispcode17=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff;/* 初始時(shí)間值*/extern timebuf data dtimebuf = 0, 0, 0, 0, 0, 0 ;extern time data ctime = 1
25、2, 0, 0, 0 ;uint count;uint count_flash;bit beeph;bit flash_flag;/* 作息時(shí)間表*/ timetab code code_time10=12,30,15,12,30,30,12,30,45,12,20,45,12,03,00,12,01,00,0xff,0xff,0xff,;/* 按鍵i/o口定義/*/ sbitkeymin= 0xb0;sbitkeymin_plus = 0xb1;sbitkeymin_sub= 0xb2;sbitkeyhour= 0xb3;sbitkeyhour_plus= 0xb4;sbitkeyhour_
26、sub= 0xb5 ;/* 時(shí)間調(diào)整定義*/ bitmin_flag;bithour_flag;/* 顯示函數(shù)實(shí)現(xiàn)*/void disp()dtimebuf.secl=dispcodectime.sec%10;dtimebuf.sech=dispcodectime.sec/10;dtimebuf.minl=dispcodectime.min%10;dtimebuf.minh=dispcodectime.min/10;dtimebuf.hourl=dispcodectime.hour%10;dtimebuf.hourh=dispcodectime.hour/10;if(flash_flag)if
27、(min_flag)p0=dtimebuf.secl;p2=0xfe;delay1ms();p0=dtimebuf.sech;p2=0xfd;delay1ms();p0=dtimebuf.hourl;p2=0xef;delay1ms();p0=dtimebuf.hourh;p2=0xdf;delay1ms();if (hour_flag) p0=dtimebuf.secl;p2=0xfe;delay1ms();p0=dtimebuf.sech;p2=0xfd;delay1ms();p0=dtimebuf.minl;p2=0xfb;delay1ms();p0=dtimebuf.minh;p2=0
28、xf7;delay1ms();elsep0=dtimebuf.secl;p2=0xfe;delay1ms();p0=dtimebuf.sech;p2=0xfd;delay1ms();p0=dtimebuf.minl;p2=0xfb;delay1ms();p0=dtimebuf.minh;p2=0xf7;delay1ms();p0=dtimebuf.hourl;p2=0xef;delay1ms();p0=dtimebuf.hourh;p2=0xdf;delay1ms();/* timer0 中斷函數(shù)實(shí)現(xiàn)*/void intt0(void) interrupt 1 using 1th0=0x3c;
29、tl0=0xb0;if(+ctime.ms=20)ctime.ms=0;if(+ctime.sec=60)ctime.sec=0;if(+ctime.min=60)ctime.min=0;if(+ctime.hour=24)ctime.hour=0; /* beep()函數(shù)實(shí)現(xiàn)*/void beep()uchar i=0;while(code_timei.hour!=0xff)if(ctime.hour=code_timei.hour)&(ctime.min=code_timei.min)&(ctime.sec=code_timei.sec)tmod=0x21;th1=6;tl1=6;tr1=
30、1;count=0;beeph=1;return;i+; /* key()函數(shù)實(shí)現(xiàn)*/void key()p3=0xff;while(p3!=0xff)delay10ms();while(p3!=0xff)switch(p3)case 0xfe:key_min_state();break;case 0xfd:key_min_plus();break;case 0xfb:key_min_sub();break;case 0xf7:key_hour_state();break;case 0xef:key_hour_plus();break;case 0xdf:key_hour_sub();brea
31、k; default:break; void key_min_state()while(!keymin);if(hour_flag)hour_flag=0;flash_flag=0;tr1=0;return;min_flag=!min_flag;if(min_flag)tmod=0x11;flash_flag=1;tr1=1;else flash_flag=0;tr1=0;void key_min_plus()while(!keymin_plus);if(hour_flag)hour_flag=0;flash_flag=0;tr1=0;return;if(min_flag)if(+ctime.min=60)ctime.min=0;void key_min_sub()while(!keymin_sub);if(hour_flag)hour_flag=0;flash_flag=0;tr1=0;return;if(min_flag)if(-ctime.min=0xff)ctime.min=59;void key_hour_state()while(!keyhour);if(min_flag)min_flag=0;flash_flag=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度安置房建設(shè)項(xiàng)目環(huán)境保護(hù)及污染治理協(xié)議2篇
- 2024版大連市雷電防護(hù)與接地安裝施工標(biāo)準(zhǔn)化合同
- 2024版高精尖設(shè)備銷售協(xié)議版B版
- 2024智慧城市生態(tài)系統(tǒng)規(guī)劃合同
- 華中師范大學(xué)《運(yùn)籌學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 青島城市學(xué)院《高等代數(shù)研究I》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江工商職業(yè)技術(shù)學(xué)院《海洋技術(shù)專業(yè)英語1》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南省株洲市(2024年-2025年小學(xué)六年級(jí)語文)統(tǒng)編版期中考試((上下)學(xué)期)試卷及答案
- 2024年短期信用貸款居間協(xié)議模板一
- 河北省衡水市(2024年-2025年小學(xué)六年級(jí)語文)部編版隨堂測(cè)試(下學(xué)期)試卷及答案
- 合肥市建筑行業(yè)施工安全生產(chǎn)標(biāo)準(zhǔn)化示范工地評(píng)選辦法
- 2025年度航空航天材料研發(fā)與應(yīng)用技術(shù)服務(wù)合同2篇
- AEO貿(mào)易安全培訓(xùn)
- 2025年中國(guó)財(cái)產(chǎn)險(xiǎn)行業(yè)市場(chǎng)深度分析及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 巨量信息流廣告(初級(jí))營(yíng)銷師認(rèn)證考試題及答案
- 銀行會(huì)計(jì)主管年度工作總結(jié)2024(30篇)
- 上海市12校2025屆高三第一次模擬考試英語試卷含解析
- 重慶市渝中區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末考試數(shù)學(xué)試題含答案及解析
- 【MOOC】教學(xué)研究的數(shù)據(jù)處理與工具應(yīng)用-愛課程 中國(guó)大學(xué)慕課MOOC答案
- 工商企業(yè)管理畢業(yè)論文范文 工商企業(yè)管理5000論文范文
- 《小學(xué)科學(xué)實(shí)驗(yàn)創(chuàng)新》課件
評(píng)論
0/150
提交評(píng)論