1樓:匿名使用者
先說,沒寫過這麼雞肋的程式。想了下,這樣應該可以實現。
設乙個標誌位,標誌位的主要作用是確定數碼管有幾位顯示,意思就是確定按了幾次。按一次,標誌位是0(當然,0不是唯一的第一位,9也沒問題),最低位顯示。按八次,標誌位為7,八位數碼管都顯示。
顯示採用動態掃瞄,根據標誌位的值,先掃瞄顯示最高位或者最低位應該都可以。保留標誌位的按鍵產生值,顯示的時候對其加一或者減一,以確定按鍵值顯示在哪一位。
寫程式,思路總體布局最重要。其中的細節慢慢想吧,一步步寫,最後,你會發現,莫名其妙就寫完了。
2樓:一劍飄紅
你這程式,無非就是控制位碼和段碼
段碼就不說了吧,就是個查表,位碼,就是你輸到第幾個數字,就只顯示到那一位
其餘後邊的都不亮
假設數碼管位動態掃瞄方式,位碼是p2控制,而且是輸出1有效,第一位是在p2.0口
則:r1中存位控制碼,
bitnb裡邊是你存進去的現在顯示到第幾位了當你輸到第幾位的
bitnb equ 30h
mov r1, #01h
mov r0, bitnb
loop:
mov a, r1
mov p2,a
rl a
mov r1,a
加延時(有效位數碼管顯示的時間,時間長短影響是否閃爍)djnz r0,loop
mov r1, #01h
mov r0, bitnb
這樣,如果你只顯示到第二位
他就會一直重新整理顯示第一,第二位,後面的沒輸出,也就是不顯示同理,如果是第6位,就重新整理顯示前6位,後兩位不顯示段顯示bitdata裡邊存放要顯示幾,如果要顯示0,就給他賦值0,是9,就賦值9
bitdata equ 31h
mov dptr #table
mov a, bitdata
movc a, @a+dptr 查表,將要顯示數字的段碼值送給amov p.., a
table:
0的段碼 1的段碼 .... 9的段碼不知道這樣回答,是否清楚
3樓:
將輸入到數碼管顯示快取中的數字迴圈"移位" 假如你是五個數碼管,應該有五個快取與之相對應,每次輸入時始終輸入到第五個快取中,然後將快取中的數迴圈移位,即:第五個快取中的數入棧,第四個快取中的數移到第五個快取中,第三個移到第四個快取中,依此類推,最後將壓入棧中的第五個快取中的數彈出到第乙個快取中 表述的不是太清楚,希望你能看懂!
51微控制器八位數碼管兩兩動態顯示,然後迴圈,用組合語言。我編寫的程式始終只能顯示一位,求大神指導。
4樓:匿名使用者
51微控制器八位數碼管兩兩動態顯示,(如1 2,3 4,5 6,7 8),這也沒有說清楚,那兩個數是始終在固定的兩位上顯示,還是在八位數碼管上流動顯示?
把你寫的程式發上來,可以知道數碼管的接法,還是共陰共陽等關鍵點,可以在你的程式基礎上修改。否則,你不給**圖或原理圖,也不知道數碼管是怎麼連線的,這程式是不能寫的。
要發源程式,別發截圖的程式,那樣不能複製。
51微控制器八位數碼管兩位動態顯示,用組合語言。我編寫的程式始終只能顯示一位,求大神指導。
5樓:匿名使用者
51微控制器八位數碼
復管兩兩動制態顯示,是怎麼bai顯示的,那兩個數是始終在du固定的兩位上顯示zhi,還是在八位數碼管上流dao動顯示?
把你寫的程式發上來,可以知道數碼管的接法,及數碼管是共陰還是共陽的,可以在你的程式基礎上修改。否則,你不給**圖或原理圖,也不知道數碼管是怎麼連線的,這程式是不能寫的。
要發源程式,別發截圖的程式,那樣不能複製。
一位數碼管連在51微控制器上,按鍵後數碼管加1,按一下加1.怎樣用組合語言編寫?
6樓:
一、圖貌似有點問題:
1、用的是共陰極數碼管,如果用微控制器直接驅動的話,應該用共陽極的;
2、所有led(包括數碼管)都未接限流電阻,建議串接470歐左右的;
3、微控制器直接驅動「sounder」,估計驅動電流不夠,建議接三極體後再輸出
二、程式可以借鑑樓上的,但需要修改:
......
setb p1.0
jnb p1.0,$
......
在這2句之間需要加入:
jb 1.0 lp0
lcall delay_50ms
另:加入子程式delay_50ms
delay_50ms:
mov r7,#0c3h
lp_dl:
mov r6,#00h
djnz r6,$
djnz r7,lp_dl
ret如果換成共陽極數碼管後,資料表換成以下的:
table: ;表:共陽數碼管 0-9 a-fdb 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h,86h,8eh
以上意見供參考
51微控制器組合語言做16位除法,51微控制器是否能夠完成16位的加減乘除運算
大別山的蝸牛 雙位元組無符號除法程式 r5r2r3r4 r6r7 r2 r3r4 餘數r6r7 入口 r5,r2,r3,r4,r6,r7 占用資源 acc,b,f0 堆疊需求 4位元組 出口 r2 r3,r4,r6,r7,ovndiv42 mov a,r1 push a mov b,00h ndv4...
51微控制器中ACC怎麼用,51微控制器中ACC怎麼用??
a和acc的實質是一樣的,對應位址都是0e0h,只是彙編在使用時,在格式上取了兩個名字。你看看它們的使用方法,有的地方用a,有的地方用acc,會發現有一定的規律。當其要進行位表示時,必須用acc,比如要寫成acc.7,而不能寫成a.7 但當其作為8位二進位制數時,acc和a都能用 但還是有區別 比如...
在51微控制器中,使用組合語言,如何將十六進位制數轉換成十進位制
共陽數碼管顯示數字嗎?0 9 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 把數值送到暫存器a中,mov b,10 div ab 得到的a即是商,也就是十位,b中是餘數,也就是個位。如果位數更多的話,例如三位六進位制數,100關到b中,相除,得到...