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 二進位制數有兩個特點 它由兩個基本...
十進位制的來歷,十進位制起源於中國還是起源於印度?
至遲在商代時,中國已採用了十進位值制。從現已發現的商代陶文和甲骨文中,可以看到當時已能夠用 一 二 三 四 五 六 七 八 九 十 百 千 萬等十三個數字,記十萬以內的任何自然數。這些記數文字的形狀,在後世雖有所變化而成為現在的寫法,但記數方法卻從沒有中斷,一直被沿襲,並日趨完善。十進位值制的記數法...