【精品】廣東工業(yè)大學(xué)單片機(jī)課程設(shè)計(何教授)_第1頁
【精品】廣東工業(yè)大學(xué)單片機(jī)課程設(shè)計(何教授)_第2頁
【精品】廣東工業(yè)大學(xué)單片機(jī)課程設(shè)計(何教授)_第3頁
【精品】廣東工業(yè)大學(xué)單片機(jī)課程設(shè)計(何教授)_第4頁
【精品】廣東工業(yè)大學(xué)單片機(jī)課程設(shè)計(何教授)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計課程名稱題目名稱 單片機(jī)原理課程設(shè)計學(xué)生學(xué)院自動化學(xué)院專業(yè)班級學(xué) 號學(xué)生姓名指導(dǎo)教師何x敏、李x芳2010年09 月10日(1)把兩條輸入線同一端口的一根輸入線接到ko接口。當(dāng)ko=l,顯示78fa;當(dāng)k0=0,顯示12be:程序如下:org 0000hhjmpmainorg i000hdb 0eeh,8eh,0feh,0e0hdb 9eh,3eh,0dah,60hmain:mov 52h,#00hmov 53h,#00hmov51h,#oohmov 5()h,#()()hmov r5,#53hkeysub :mov a,#03hmov dptr,#7f00hmovx dptr,abe

2、gin:mov dptr,#()7f()3hmov a,dptrmov r3,#0fehjb accdisplay】jmp d1splay2display 1:mov r2,#(x)hjmp aldisplay2:mov r2,#04hal: mova,r3mov dptr,#7f01hmovx dptr,amov dptr,#1000hmov a,r2movc a,a+dptrmov dptr,#7f02hmovx dptr,acall dlimsinc r2mov a,r3rlamov r3,ajnb acc.4,beginjmpa1dlims:mov r7,#05hdlo:mov r6,

3、#0ffhdl1:djnz r6,dl1djnz r7,dl0retend(2)編程實現(xiàn)鍵盤org 0000hhjmpmainorg i000h54790eba并能左移顯示:程序如下:main:mov 52h,#()()hmov 53h,#00hmov51h,#oohmov 50h,#00hmov r5,#53hkeysub :mova,#()3hmov dptr,#7f00hmovx dptr,abeg1n:acalldisacallclearacall ccscanjnz ink 1ajmp begin inkkacall disacall dlimsacall dlimsacallcle

4、aracall ccscanjnz ink2ajmp beginink2:mov r2,#0fehmov r4,#00hcolum:mov dptr,#7f01hmov a,r2movx dptr,ainc dptrinc dptrmovx a,dptrjb acc.3jlonemov a,#00hajmpkcodelone:jb.acc.2,nextmov a,#04hkcode:add a,r4acallputbufpush acckon: acall disacallclearacall ccscanjnz konpop accnext: inc r4mova,r2jnb acc.4,k

5、eerrlamov r2,aajmp columkerr:ajmp beginccscanimov dptr,#7f01hmov a,#()()hmov dptr,ainc dptrinc dptrmovx a ,dptrcplaanla,#0chretclear: mov dptr,#7f02hmov a,#00hmovx dptr,aretdis:push accpush oohpush 03hmov r(),#()5hmov r3,#0f7hmov a,r3again:mov dptr,#7f01hmovx dptr,amov a,r()mov dptr,#ddegmovc a,a+dp

6、trmov dptr,#7f02hmovx dptr,aacall dlimsinc romov a,r3jnb acc.oqutrramov r3,aajmp againout:pop 03hpopoohpop accretddeg:db 0ee,3eh,9eh,7ahdb 0e6h,0e0h,66h,0b6hdlims:mov r7,#01hdl():mov r6,#0ffhdl1:djnz r6,dl1djnz r7,dl0retputbuf:push oohmov r7,amova,51hmov 50h,amov a,52hmov51h,amova,53hmov 52h,amov a,

7、r7mov r3,apopoohretend(3)程序?qū)崿F(xiàn)單片機(jī)售票機(jī),以下要求:a) 當(dāng)k()=l時,鍵入地址、價錢、set,設(shè)置某個地址的票價,該機(jī)至少可連續(xù)設(shè)置三個不 同地址的價錢:上海864元、北京756元、廣州819元。b) 當(dāng)k0=0時,鍵入一個地址,購買的張數(shù),按set得到總價,再鍵入另一個地址、購買 的張數(shù),按set即得總價,可計得至少三個地址的合總價。程序如下:#include<reg51 .h># include<absacc.h>#define uchar unsigned char#dcfinc peon xbyte0x7f00#define p

8、a xbyte0x7f01#define pb xbytel0x7f02j#define pc xbyte0x7f03#dcfinc lcdo dbyte0x50#define ledl dbyte0x51#define led2 dbytelox52j#define led3 dbyte0x53#define keynum dbyte0x54uchar bdata da; sbit pc2=daa2;sbit pc3=daa3;sbit ko=daa 1;sbit p26=p2a6;uchar code tableh二0xfc,0x60,0xba,0xf2,0x66,0xb6,0xbe,0x

9、e0,0xfe,0xe6;uchar code ctrl 4=0xfe,0xfd,0xfb ,0xf7;void init()p26二1;pa=0x00;pcon=()x03;void delay(int sec)int i,j;for(i=();i<sec;i+)fog 二 o;jvlo;j+);void displayo pa=ctrloj; pb=ledo;delay(lo);pa=ctrll; pb=ledl;delay(lo);pa=ctrl2; pb=led2;delay(lo);pa=ctrl31; pb=lcd3;delay(lo);void main()int temp

10、;int status=o;int sadd=o;int count3= 0,0,0;int price3 0,0,0;int numbuff4=0,0,0,0;unsigned int totalprice=0;led()=table();lcdl=tablco;led2=table0;led3=table0;while(l)/ipa=0x00;da=pc;if(pc2=0|pc3=0)/2delay(30);/鍵盤掃描/pa=ctrl0;da=pc;if(pc2=0)keynum= 7;else if(pc3=0)keynum= 8;else/3 pa=ctrlll j; da=pc; i

11、f(pc2=0)keynum= 6;else if(pc3=0)kcynum= 1;else/4pa=ctrl ;da=pc;if(pc2=0)kcynum二 5;else if(pc3=0)keynum= 2;else/5pa=ctrl3;da=pc; if(pc2=0)keynum= 4;else if(pc3=0)keynum二 3;/5/4/3/ 以上鍵盤掃描/while(l)pahoxopdaupc;if(pc3hh0=pc2h0) led()£blelnumbufffolk led 1 htablemumbum 二 k -ed2heb 一 2numbuf=2 三 led3

12、gb_e=umbuff!3八 display。;云c-sc brcar三三三三三"曙廳湎三三三三三三dahppifslr上)33三三三三右cow%三三三三三 if(seushho)一一4i f(key n u mv"3 <&<&key n u m 八"5)saddukeynum-sracsh 一 八numbu33itnumbu32numbuff 二itnumbumoitp一一5 一一4三三三三三歹ddw纟三三三三三三三三三三ese三三三三三三_else if(stacshhl)34switch(keynum)(05case 7-if(n

13、umbua3llh9)numbuffi3llpelse numbuf二 3 一+break 八case?if(numbua2llh9)numbu32ll0;else numbuff!2+八break-case 1:if(numbuff l=9)numbuff 1j=o;else numbuffl j+;break;case 2:if(numbuff0=9)numbuff0=0;else numbuffo+;break;case 6:/set/6if(sadd>=3&&sadd<=5)/7pricesadd-3=numbuff0* 1 ooo+numbuff 1*10

14、0+numbuff2 * 10+numbuff3j;sadd=o;numbuff3=numbuff21=numbufff 1 =numbuffo=o; status=o;/7break;/6/5/4/以上 price/3else if(ko=o)/3/address/if(status=o)/4if(keynum>=3&&keynum<=5)/5sadd=kcynum;status=2; numbuff3=numbuff2j=numbuffl 1 =numbuffo=o;/5/4/address/else if(status=2)/count/4switch(key

15、num)/5case 7:/6if(numbuff3=9)numbuff3=0;else numbufff31+; break;/6case 8:if(numbuff2=9)numbuff2=0;else numbuff2+; break;case 1:if(numbuff l=9)numbuff l=0;else numbuffl+; break;case 2:if(numbuff0=9)numbuff0=0;else numbuffloj+;break;case 6:/sct/6if(sadd>=3&&sadd<=5)/7countsadd3=numbuff0* 1 ooo+numbuff 11*100+numbuff21 * 10+numbuff3; totalprice+=countsadd-3*pricesadd-3; numbuff0=totalprice/1000;temp=totalprice-numbuff 0 * 1000;numbufff l=temp/l()(); tcmp=tcmp-numbuff 1

溫馨提示

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

評論

0/150

提交評論