|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
定時器做1秒延遲成功了,可是數(shù)碼管顯示不一樣 |
| 作者:fewa 欄目:單片機(jī) |
1管顯示的約為1秒數(shù)值加1,類似秒表,結(jié)果我加了一段2管的程序,2管顯示比1管慢,有趣的是,恰好1管每跳10下,2管就加1。難道是電路的問題? |
| 2樓: | >>參與討論 |
| 作者: fewa 于 2006/7/28 19:22:00 發(fā)布:
附程序 org 0000h ljmp start org 001bh ;中斷入口地址必須隨t0變t1而改過來 ljmp zdt0 org 0100h start: mov sp,#5eh mov b,#28h ;b放入內(nèi)循環(huán)次數(shù),40,這樣可定時10ms mov r0,#64h ;r0放入外循環(huán)次數(shù),100,在前者基礎(chǔ)上乘100倍,這樣就1秒了 mov tmod,#20h ;t1工作在模式2,t0不工作。 ; setb pt0 mov tl1,#18h ; mov th0,#0dch ;對于11.0592MHZ的晶振頻率,t0需要計(jì)數(shù)9216下才能延時10ms mov th1,#18h ;這里是定時0.25ms setb tr1 setb et1 setb ea ;------------------------------ mov dpm,#0ffh mov xsm1,#01h mov xsm2,#02h mov xsm3,#03h mov xsm4,#04h mov xsm5,#05h mov xsm6,#06h acall disp here: sjmp here ;等待中斷 zdt0: acall sz1 acall DISPLAY reti sz1: djnz b,sz2 ;內(nèi)循環(huán)40次就到外循環(huán) mov b,#28h ;重賦循環(huán)初值 djnz r0,sz2 ;外循環(huán)100次,就相當(dāng)于1秒了,可以讓顯示變量加1 mov r0,#64h ;重賦循環(huán)初值 mov a,xsm1 ;1管變量加1 inc a mov xsm1,a cjne a,#0ah,sz2 mov xsm1,#00h mov a,xsm2 ;2管變量加1 inc a mov xsm2,a cjne a,#0ah,sz2 mov xsm2,#00h sz2: ret ;--------------------------------------------數(shù)碼管顯示程序 DISPLAY: clr p3.5 mov dptr,#8000h ;數(shù)碼管小數(shù)點(diǎn)、通信口轉(zhuǎn)換控制地址 mov a,dpm movx @dptr,a mov dptr,#9000h ;1、2位數(shù)碼管地址 anl xsm1,#0fh ;xsm1、xsm2、xsm3顯示緩沖單元,10進(jìn)制數(shù) anl xsm2,#0fh mov xsclm,xsm1 ;xsclm顯示處理單元 orl xsclm,#0f0h mov a,xsm2 swap a orl a,#0fh anl a,xsclm movx @dptr,a mov dptr,#0a000h ;3、4位數(shù)碼管地址 anl xsm3,#0fh anl xsm4,#0fh mov xsclm,xsm3 orl xsclm,#0f0h mov a,xsm4 swap a orl a,#0fh anl a,xsclm movx @dptr,a mov dptr,#0b000h mov a,xsm6 swap a orl a,xsm5 movx @dptr,a ret ;---------------------------------------- 顯點(diǎn),滅管子程序 disp: mov dptr,#8000h ; 小數(shù)點(diǎn)的地址 mov a,#00h movx @dptr,a ; 向小數(shù)點(diǎn)送高電平,滅掉 mov dptr,#9000h ; 1~2數(shù)碼管地址 mov a,#0ffh movx @dptr,a ; 讓數(shù)碼管顯示1和2 mov dptr,#0a000h mov a,#0ffh movx @dptr,a mov dptr,#0b000h mov a,#0ffh movx @dptr,a   |
|
| 3樓: | >>參與討論 |
| 作者: faiwong 于 2006/7/29 4:18:00 發(fā)布:
電路能有什么問題? 你加的2管就是在1管跳10下才跳1下,問題出在cjne a,#0ah,sz2。 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |