基于AT89C51單片機(jī)的最小系統(tǒng)設(shè)計_第1頁
基于AT89C51單片機(jī)的最小系統(tǒng)設(shè)計_第2頁
基于AT89C51單片機(jī)的最小系統(tǒng)設(shè)計_第3頁
基于AT89C51單片機(jī)的最小系統(tǒng)設(shè)計_第4頁
基于AT89C51單片機(jī)的最小系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于at89c51單片機(jī)的最小系統(tǒng)設(shè)計 組員:田竹、王維、袁倍明摘要:本次實(shí)驗(yàn)課題為設(shè)計一個基于at89c51單片機(jī)的最小系統(tǒng)。用p1口設(shè)計流水燈,用p2口和p0口分別作段選和位選設(shè)計了六位數(shù)碼管的靜動態(tài)顯示和簡易的電子鐘,用p3口設(shè)計了一個4*4的矩陣鍵盤,并用蜂鳴器實(shí)現(xiàn)了唱歌功能和鍵盤按下的聲響,用62256擴(kuò)展內(nèi)部ram,還擴(kuò)展并實(shí)現(xiàn)了lcd1602的靜動態(tài)顯示,最后通過adc0809和 dac0832分別實(shí)現(xiàn)了a/d、d/a轉(zhuǎn)換功能。 一、系統(tǒng)電源用mc7805集成穩(wěn)壓器將輸入電壓轉(zhuǎn)為+5v穩(wěn)壓給系統(tǒng)供電。二、晶振(12mhz)及復(fù)位電路采用12mhz的外部晶振,給系統(tǒng)提供時鐘信號。并

2、采用了按鍵復(fù)位電路。三、流水燈功能描述:讓8個led燈循環(huán)閃爍源程序:流水燈org 0000h ljmp main org 0100h main:mov a,#11111110b loop:mov p1,a;給p1口送值lcall dly rl a ;循環(huán)左移 ljmp loop dly:mov r7,#250 ;延時子程序 dly1: mov r6,#200 djnz r6,$ djnz r7,dly1 ret end四、 數(shù)碼管功能描述:數(shù)碼管動態(tài)顯示16源程序:org 0000hljmp startorg 0100hstart: mov p0,#0 mov p2,#0f9h setb p

3、0.0 lcall delay clr p0.0 mov p2,#0c4h setb p0.1 lcall delay clr p0.1 mov p2,#0d0h setb p0.2 lcall delay clr p0.2 mov p2,#99h setb p0.3 lcall delay clr p0.3 mov p2,#92h setb p0.4 lcall delay clr p0.4 mov p2,#82h setb p0.5 lcall delay clr p0.5ljmp start delay: mov r5,#10 d1: mov r6,#20 d2: mov r7,#248

4、 djnz r7,$ djnz r6,d2 djnz r5,d1 retend五、 4*4矩陣鍵盤和蜂鳴器功能描述:通過按鍵讓數(shù)碼管顯示0-f,按鍵按下時,蜂鳴器響一下。源程序:org 0000hljmp mainorg 0100hmain: mov p0,#0ffhmov b,#4 mov p3,#0f0h;列置0,看行電平 jnb p3.4,l1 jnb p3.5,l2 jnb p3.6,l3 jnb p3.7,l4 ajmp mainl1: mov r1,#0ajmp ll1l2: mov r1,#1ajmp ll1l3: mov r1,#2ajmp ll1l4: mov r1,#3aj

5、mp ll1ll1: acall dl10ms;消抖 mov a,p3 xrl a,#0f0h jz main mov p3,#0fh;行置0,看列電平 jnb p3.0,l5 jnb p3.1,l6 jnb p3.2,l7 jnb p3.3,l8l5: mov 20h,#0ajmp keyl6: mov 20h,#1ajmp keyl7: mov 20h,#2ajmp keyl8: mov 20h,#3ajmp keykey:mov a,r1;計算鍵值并查表賦值 mul ab add a,20h mov r2,amov dptr,#tablemov a,r2movc a,a+dptrmov

6、p2,acall beep_bllcall delayljmp mainbeep_bl: clr p2.7;蜂鳴器子程序 acall delay setb p2.7 retdelay: mov r5,#50;延時 d1: mov r6,#20 d2: mov r7,#50 djnz r7,$ djnz r6,d2 djnz r5,d1 retdl10ms:mov r7,#05hloop1: mov r6,#0f9hloop2:nop nop djnz r6,loop2 djnz r7,loop1 rettable:db 0a0h,0f9h,0c4h,0d0h,99h db 92h,82h,0f

7、8h,80h,90h db 88h,83h,0a6h,0c1h,86h db 8ehend六、 時鐘功能描述:在數(shù)碼管上實(shí)現(xiàn)時鐘功能,并通過矩陣鍵盤的3個鍵實(shí)現(xiàn)復(fù)位,調(diào)時,調(diào)分。源程序:org 0000h ljmp 1000h org 001bh ajmp 0100h org 0100h mov th1,#0d8h mov tl1,#0f0h djnz 69h,tt1 mov 69h,#100 setb 4fh tt1:reti;中斷延時org 1000h mov 30h,#1 mov 31h,#2 mov 32h,#0 mov 33h,#0 mov 34h,#0 mov 35h,#0 mov

8、 tmod,#10h mov th1,#0d8h mov tl1,#0f0h mov ie,#88hxs0: setb tr1 mov 69h,#100 clr 4fhxs00:ljmp keykey;判斷按鍵有無按下lx1: cjne a,#0a0h,lx2ljmp p100lx2: cjne a,#0f9h,lx3ljmp p1000lx3: cjne a,#0c4h,xsljmp p10000xs: mov 40h,#01h mov dptr,#tab mov p0,40h mov a,30h movc a,a+dptr mov p2,a lcall ys1ms mov p2,#0ffh

9、 mov a,#42h mov 40h,a mov p0,40h mov a,31h add a,#10 movc a,a+dptr mov p2,a lcall ys1ms mov p2,#0ffh mov a,#44h mov 40h,a mov p0,40h mov a,32h movc a,a+dptr mov p2,a lcall ys1ms mov p2,#0ffh mov a,#48h mov 40h,a mov p0,40h mov a,33h add a,#10 movc a,a+dptr mov p2,a lcall ys1ms mov p2,#0ffh mov a,#50

10、h mov 40h,a mov p0,40h mov a,34h movc a,a+dptr mov p2,a lcall ys1ms mov p2,#0ffh mov a,#60h mov 40h,a mov p0,40h mov a,35h movc a,a+dptr mov p2,a lcall ys1ms mov p2,#0ffh mov a, #40h mov 40h,a jnb 4fh,llll1 clr 4fhljmp jia llll1:ljmp xs00p100: mov 30h,#0 mov 31h,#0 mov 32h,#0 mov 33h,#0 mov 34h,#0 m

11、ov 35h,#0jia: mov r1,#14h mov a,35h cjne a,#9,jia1 mov 35h,#0 mov a,34h cjne a,#5,jia10 mov 34h,#0p10000: mov a,33h cjne a,#9,jia100 mov 33h,#0 mov a,32h cjne a,#5,jia1000 mov 32h,#0p1000: mov a,31h cjne a,#9,jia10000 mov 31h,#0mov a,30h cjne a,#2,jia100000 mov 30h,#0 ajmp xsjia100000: inc 30h ajmp

12、xs0jia10000: cjne a,#3,jiajia mov a,30h cjne a,#02,jiajia mov 30h,#0 mov 31h,#0 ajmp xs0jiajia: inc 31h ajmp xs0jia1000:inc 32h ajmp xs0jia100: inc 33h ajmp xs0jia10: inc 34h ajmp xs0jia1: inc 35h ajmp xs0 ret ys1ms: mov r6,#9hyl1: mov r7,#19h djnz r7,$ djnz r6,yl1 retdl10ms:mov r7,#05hloop1: mov r6

13、,#0f9hloop2:nop nop djnz r6,loop2 djnz r7,loop1 retdelay: mov r5,#50 d1: mov r6,#20 d2: mov r7,#248 djnz r7,$ djnz r6,d2 djnz r5,d1 ret ;-矩陣鍵盤-keykey: mov b,#4 mov p3,#0f0h;列置0,看行電平 jnb p3.4,l1 jnb p3.5,l2 jnb p3.6,l3 jnb p3.7,l4 ajmp xsl1: mov r1,#0ajmp ll1l2: mov r1,#1ajmp ll1l3: mov r1,#2ajmp ll1

14、l4: mov r1,#3ajmp ll1ll1: acall dl10ms;消抖 mov a,p3 xrl a,#0f0h jz lll2 mov p3,#0fh;行置0,看列電平 jnb p3.0,l5 jnb p3.1,l6 jnb p3.2,l7 jnb p3.3,l8l5:jnb p3.0,l5mov 20h,#0ajmp keyl6: jnb p3.1,l6mov 20h,#1ajmp keyl7:jnb p3.2,l7mov 20h,#2ajmp keyl8: jnb p3.3,l8mov 20h,#3ajmp keylll2:ljmp xskey:mov a,r1;計算鍵值并查

15、表賦值 mul ab add a,20h mov r2,amov dptr,#tablemov a,r2movc a,a+dptr;lcall delayljmp lx1tab:db 0a0h,0f9h,0c4h,0d0h,099h,092h,082h,0f8h,080h,090hdb 020h,079h,044h,050h,019h,012h,002h,078h,000h,010htable:db 0a0h,0f9h,0c4h,0d0h,99h db 92h,82h,0f8h,80h,90h db 88h,83h,0a6h,0c1h,86h db 8ehend七、1602液晶顯示功能描述:在

16、lcd上動態(tài)逐字顯示兩行字符串。源程序:rs equ p2.7rw equ p2.6e equ p2.5org 0000hljmp mainorg 0100hmain: acall del5ms acall del5ms acall del5ms mov p1,#38h acall enable1 acall del5ms mov p1,#38h acall enable1 acall del5ms mov p1,38h acall enable1 mov p1,#00000001b acall enable mov p1,#00111000b acall enable mov p1,#000

17、01111b acall enable mov p1,#00000100b acall enable mov p1,#8fh acall enable mov dptr,#table1 acall l1 mov p1,#0cfh acall enable mov dptr,#table2 acall l2 sjmp $l1:mov r1,#00hll1:mov a,r1 movc a,a+dptr mov p1,a acall delxxms acall write_lcd inc r1 cjne a,#00h,ll1 retl2:mov r1,#00hll2:mov a,r1 movc a,

18、a+dptr mov p1,a acall delxxms acall write_lcd inc r1 cjne a,#00h,ll1 retwrite_lcd: setb rs clr rw clr e acall delay setb e retenable1:clr rs clr rw clr e setb e retenable:clr rs clr rw clr e acall delay setb e retdelay:mov p1,#0ffh clr rs setb rw clr e nop setb e jb p1.7,delay retdel5ms:mov r7,#125d

19、el1:mov r6,#18 nopdel2:djnz r6,del2 djnz r7,del1 retdelxxms:mov r7,#250 del3:mov r6,#250 nop del4:djnz r6,del4 djnz r7,del3 rettable1: dbuhz nait table2: db*:qq end八、外部ram擴(kuò)展功能描述:將片內(nèi)數(shù)據(jù)送到片外ram儲存,再送回片內(nèi),在數(shù)碼管中顯示。源程序:org 0000hljmp mainorg 0100hmain:mov p0,#0ffh mov a,#0f9h mov dptr,#0001h movx dptr,a clr

20、a movx a,dptr mov p2,a sjmp $end九、ad轉(zhuǎn)換功能描述:向adc0809輸入模擬信號電壓,經(jīng)轉(zhuǎn)換后在數(shù)碼管上顯示電壓值。源程序:led_0equ30hled_1equ31hled_2equ32hadcequ35hclockbitp3.1stbitp3.0;aleoebitp3.2eoc bit p3.3org0000hljmpstartorg 000bhcpl clock;給0809時鐘retiorg 0100hstart: movled_0,#00hmovled_1,#00hmovled_2,#00hmovtmod,#02hmovth0,#0fehmovtl0,

21、#0fehmovie,#82hsetbtr0wait:clrst setbst clrst jnbeoc,$ setboe movadc,p1 clroe mova,adcmovb,#51 divab movled_2,a mova,b movb,#5 divab movled_1,a mov a,b mov b,#2 mul ab mov led_0,a lcalldisp sjmp waitdisp:mov p0,#00h movdptr,#table mova,led_0 movca,a+dptr setbp0.2 movp2,a lcall delay clrp0.2 mova,led

22、_1 movca,a+dptr setb p0.1 movp2,a lcall delay clr p0.1 mova,led_2 movca,a+dptr setb p0.0 adda,#80h movp2,a lcalldelay clr p0.0 retdelay:movr6,#50d1:movr7,#15 djnzr7,$ djnzr6,d1 rettable:db 0a0h,0f9h,0c4h,0d0h,99h db 92h,82h,0f8h,80h,90h end十、da轉(zhuǎn)換功能描述:實(shí)現(xiàn)輸出方波、三角波、梯形波。源程序:1.方波程序org 0000hljmp loop1org 0

23、100h;通過高低電平地的變化來輸出方波loop1:clr p3.6mov p2,#00h;向選通地址送低電平地acall delaymov p2,#0ffh;向選通地址送高電平acall delayljmp loop1delay:mov r1,#06h d2:mov r2,#0ffh d1:djnz r2,d1 djnz r1,d2ret;延時,通過改變它的大小可以改變占空比end2.三角波:org 0000hljmp str1org 0100h str1: clr p3.6 ;通過上升和下降來產(chǎn)生三角波mov r6,#00h ;電壓隨時間上升 str2: mov a,r6 mov p2,ainc r6 cjne r6,#0ffh,str2 ;電壓隨時間下降str3: acall delaydec r6 mov a,r6 mov p2,a cjne r6,#00h,str3 ajmp str1end 總結(jié)一、流水燈 流水燈使用接口最好使用p1口,p1口沒有第二功能也不用作為地址總線,容易控制。最好加一跳針,以便與其他功能區(qū)分開。二、

溫馨提示

  • 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

提交評論