設計十進位制0 99的計數器,採用按鍵計數,數碼管顯示,採用微控制器內部的定時計數器完成計數功能

2022-07-06 16:31:15 字數 3012 閱讀 8494

1樓:匿名使用者

呵呵,此軟體10分鐘完成不了即可認為51微控制器沒學好。

實現0到99通過微控制器內部的定時計數器完成計數功能的彙編程式

2樓:匿名使用者

second equ 30h

count equ 31h

org 00h

ljmp start

org 0bh ;定時器0中斷入口ljmp int_t0

start: mov second,#00hmov count,#00h

mov dptr,#table ;段碼錶首地址mov p0,#3fh ;數碼管顯示初始化mov p2,#3fh

mov tmod,#01h ;設定定時器0工作方式mov th0,#(65536-50000)/256 ;定時50毫秒

mov tl0,#(65536-50000) mod 256setb tr0 ;啟動定時/計數器0mov ie,#82h ;開中斷

ljmp $ ;等待中斷

int_t0: mov th0,#(65536-50000)/256 ;定時50毫秒

mov tl0,#(65536-50000) mod 256inc count ;計數值加1

mov a,count

cjne a,#20,i2 ;是否計夠1秒mov count,#00h

inc second

mov a,second

cjne a,#60,i1 ;是否計夠60秒mov second,#00h

i1: mov a,second

mov b,#10

div ab ;分離計數值十位和個位movc a,@a+dptr

mov p0,a

mov a,b

movc a,@a+dptr

mov p2,a ;顯示計數值

i2: reti ;中斷返回

table: db 3fh,06h,5bh,4fh,66hdb 6dh,7dh,07h,7fh,6fhend

at89s52微控制器 用計數器實現按鍵計數功能,七段數碼管「0-9」迴圈計數顯示 用到p0端顯示數 30

3樓:十年霸王

;p0口是段碼,共陰。

;p1.0是位碼

;按鍵16個在p3口

;按鍵用1s延時,沒有用等待鬆開確認

;按鍵只做了第一列00-12共4個按鍵,後3列02-15按鍵自己按照這個意思編寫

org 0000h

ajmp main

main:

setb p1.0

mov p0,#00h

scan:

clr p3.0

acall delay1s

jb p3.4,key04 ;是按鍵0嗎?不是就跳轉到按鍵4,如果是按鍵0被按下,顯示按鍵位號0.

mov a,#00h

mov dptr,#tab

movc a,@a+dptr

mov p0,a

clr p1.0

lcall scan

key04:

clr p3.0

acall delay1s

jb p3.5,key08

clr p1.0

mov a,#04h

mov dptr,#tab

movc a,@a+dptr

mov p0,a

clr p1.0

lcall scan

key08:

clr p3.0

acall delay1s

jb p3.6,key12

clr p1.0

mov a,#08h

mov dptr,#tab

movc a,@a+dptr

mov p0,a

clr p1.0

lcall scan

key12:

clr p3.0

acall delay1s

jb p3.7,key02

mov a,#0ch

mov dptr,#tab

movc a,@a+dptr

mov p0,a

clr p1.0

setb p3.0

lcall scan

key02:

;省略ret

tab:

db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;define定義段碼0、1、2、3、4、5、6、7、8、9

db 77h,7ch,39h,5eh,79h,71h,0ffh,73h,5ch,70h ;define定義段碼a、b、c、d、e、f、滅、p、o、r

delay1s: mov r4,#08h

mov r5,#00h

mov r6,#00h

djnz r4,$

delay2: djnz r5,delay2

djnz r6,delay2

retend

51微控制器設計兩位計數器c語言 50

4樓:匿名使用者

你好!程式是c語言寫嗎

求助51微控制器計數器設計c語言

5樓:匿名使用者

程式很簡單啊,首先明白數碼管、按鍵、中斷是怎麼回事,然後在實現從0到99計數,完成後再慢慢完善功能,慢慢來,最重要的把基礎打好。

問問提問者,實現這幾個功能的計數器,程式寫了多久?還是上來就要程式?

跪求 at89c51控制7seg-mpx2-ca數碼管顯示0-99數字(c程式)

6樓:做而論道

參考

怎麼用十進位制計數器完成六十進位制計數器

你每抄個計數器肯定有個時鐘訊號,對吧,你只要把第一個2位的計數器的進位位輸出,一般式carry位,只要你將它賦給下一個2位計數器的輸入時鐘就可以了,以此類推 counter 2 c1 clk clk cout cout0 counter 2 c2 clk cout0 cout cout1 count...

二進位制與十進位制的換算二進位制和十進位制轉換怎麼算?

人們通常使用的是十進位制。它的特點有兩個 有0,1,2 9十個基本字元組成,十進位制數運算是按 逢十進一 的規則進行的.在計算機中,除了十進位制數外,經常使用的數制還有二進位制數和十六進位制數.在運算中它們分別遵循的是逢二進一和逢十六進一的法則.2 二進位制數 3 二進位制數有兩個特點 它由兩個基本...

十進位制的來歷,十進位制起源於中國還是起源於印度?

至遲在商代時,中國已採用了十進位值制。從現已發現的商代陶文和甲骨文中,可以看到當時已能夠用 一 二 三 四 五 六 七 八 九 十 百 千 萬等十三個數字,記十萬以內的任何自然數。這些記數文字的形狀,在後世雖有所變化而成為現在的寫法,但記數方法卻從沒有中斷,一直被沿襲,並日趨完善。十進位值制的記數法...