請問51微控制器中怎麼用彙編編寫,我每按一次中斷先輸入數字

時間 2021-09-10 12:08:57

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中,相除,得到...