1樓:匿名使用者
用c語言寫的可以幫你,如果是用匯編編寫的我可沒辦法了幫助你
2樓:爬行的山羊
很好寫的
顯示加判斷
org 00h
main:
mov p1,#00h
mov r1,#00h
a1:call dis
jb p3.2, j1
jb p3.3,j2
jb p3.4,j3
jmp a1
dis:
mov a,r1
mov b,#10
div ab
mov p1,a
setb p2.0
call yanshi
mov p1,b
clr p2.0
call yanshi
retji:call yanshi
jnb p3.2,a1
inc r1
retj2:call yanshi
jnb p3.3,a1
inc r1
inc r1
retj3:call yanshi
jnb p3.4,a1
subb r1 ,#01h
retyanshi :
延時自己寫好了
retend
3樓:做而論道
先參考一下一個按鍵的:
電子時鐘程式(微控制器組合語言編寫,不要c語言)
4樓:惠天音
這個電子鐘程式已經基本符合你的要求。希望能對你有用。
程式說明:
顯示的時間格式為:12-00-00,既,時-分-秒
按鍵說明:p3.2為時調節。p3.3為分調節。p3.4為秒調節。這三個按鍵均是每按一次加一。
晶振說明:12mhz
數碼管說明:共陽數碼管。共8個數碼管。共用了兩個4連共陽數碼管。
其中,p0口為數碼管的段選,p2口為數碼管的位選。
本程式已通過實踐驗證!!!
彙編源程式如下:
second equ 30h
minite equ 31h
hour equ 32h
hourk bit p3.2
minitek bit p3.3
secondk bit p3.4
dispbuf equ 40h
dispbit equ 48h
t2scnta equ 49h
t2scntb equ 4ah
temp equ 4bh
org 00h
ljmp start
org 0bh
ljmp int_t0
start:mov second,#00h
mov minite,#00h
mov hour,#12
mov dispbit,#00h
mov t2scnta,#00h
mov t2scntb,#00h
mov temp,#0feh
lcall disp
mov tmod,#01h
mov th0,#(65536-2000) / 256
mov tl0,#(65536-2000) mod 256
setb tr0
setb et0
setb ea
wt:jb secondk,nk1
lcall dely10ms
jb secondk,nk1
inc second
mov a,second
cjne a,#60,ns60
mov second,#00h
ns60:lcall disp
jnb secondk,$
nk1:jb minitek,nk2
lcall dely10ms
jb minitek,nk2
inc minite
mov a,minite
cjne a,#60,nm60
mov minite,#00h
nm60:lcall disp
jnb minitek,$
nk2:jb hourk,nk3
lcall dely10ms
jb hourk,nk3
inc hour
mov a,hour
cjne a,#24,nh24
mov hour,#00h
nh24:lcall disp
jnb hourk,$
nk3:ljmp wt
dely10ms:mov r6,#10
d1:mov r7,#248
djnz r7,$
djnz r6,d1
retdisp:mov a,#dispbuf
add a,#8
dec a
mov r1,a
mov a,hour
mov b,#10
div ab
mov @r1,a
dec r1
mov a,b
mov @r1,a
dec r1
mov a,#10
mov @r1,a
dec r1
mov a,minite
mov b,#10
div ab
mov @r1,a
dec r1
mov a,b
mov @r1,a
dec r1
mov a,#10
mov@r1,a
dec r1
mov a,second
mov b,#10
div ab
mov @r1,a
dec r1
mov a,b
mov @r1,a
dec r1
retint_t0:mov th0,#(65536-2000) / 256
mov tl0,#(65536-2000) mod 256
mov a,#dispbuf
add a,dispbit
mov r0,a
mov a,@r0
mov dptr,#table
movc a,@a+dptr
mov p0,a
mov a,dispbit
mov dptr,#tab
movc a,@a+dptr
mov p2,a
inc dispbit
mov a,dispbit
cjne a,#08h,kna
mov dispbit,#00h
kna:inc t2scnta
mov a,t2scnta
cjne a,#100,done
mov t2scnta,#00h
inc t2scntb
mov a,t2scntb
cjne a,#05h,done
mov t2scntb,#00h
inc second
mov a,second
cjne a,#60,next
mov second,#00h
inc minite
mov a,minite
cjne a,#60,next
mov minite,#00h
inc hour
mov a,hour
cjne a,#24,next
mov hour,#00h
next:lcall disp
done:reti
table:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0bfh
tab:db 0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,07fhend
求一份關於籃球計分器的51微控制器c語言程式
微控制器籃球計分器程式設計
5樓:匿名使用者
看板子是無法程式設計的,必須原理圖才可以,這裡有一個籃球計分程式,供參考。
up1 equ p1.1
down1 equ p1.2
up2 equ p1.3
down2 equ p1.4
change equ p1.5
begin equ p1.6
beef equ p2.4
duan equ p2.3
wei equ p2.2
grate1 equ 30h
grate2 equ 31h
grate_chg equ 33h
time equ 34h
cnt equ 35h
org 0000h
ljmp main
org 001bh
ljmp t1isr
org 0030h
main:
lcall inittimer1
setb up1
setb down1
setb up2
setb down2
setb change
setb begin
loop:
jb up1,loop1
clr et1
mov r7,#5
lcall delay
jnb up1,$
inc grate1
setb et1
sjmp loop6
loop1:
jb down1,loop2
clr et1
mov r7,#5
lcall delay
jnb down1,$
mov a,grate1
dec a
mov grate1,a
setb et1
sjmp loop6
loop2:
jb up2,loop3
clr et1
mov r7,#5
lcall delay
jnb up2,$
inc grate2
setb et1
sjmp loop6
loop3:
jb down2,loop4
clr et1
mov r7,#5
lcall delay
jnb down2,$
mov a,grate2
dec a
mov grate2,a
setb et1
sjmp loop6
loop4:
jb change,loop5
clr et1
mov r7,#5
lcall delay
jnb change,$
mov grate_chg,grate1
mov grate1,grate2
mov grate2,grate_chg
setb et1
sjmp loop6
loop5:
jb begin,loop6
mov r7,#5
lcall delay
jnb begin,$
setb tr1
loop6:
mov a,time
jnz loop7
mov time,#99
clr tr1
mov r7,#100
lcall beefe
loop7:
lcall display
ljmp loop
t1isr:
clr tr1
mov th1,#high(65536-50000)mov tl1,#low(65536-50000)setb tr1
djnz cnt,t0e
mov cnt,#20
dec time
t0e:
reti
inittimer1:
mov tmod,#10h
mov th1,#high(65536-50000)mov tl1,#low(65536-50000)setb ea
setb et1
mov cnt,#20
mov time,#99
retdelay:
mov r2,#17
dly:
mov r3,#26
djnz r3,$
djnz r2,dly
djnz r7,delay
retbeefc:
mov r2,#17
beefd:
mov r3,#16
beefe:
cpl beef
djnz r3,beefe
djnz r2,beefd
djnz r7,beefc
retdisplay:
mov a,grate1
mov b,#10
div ab
mov 40h,a
mov 41h,b
mov a,grate2
mov b,#10
div ab
mov 42h,a
mov 43h,b
mov a,time
mov b,#10
div ab
mov 46h,a
mov 47h,b
mov p0,#0ffh
setb wei
mov p0,#0feh
clr wei
mov p0,#0ffh
setb duan
mov dptr,#ledtab
mov a,40h
movc a,@a+dptr
mov p0,a
clr duan
mov r7,#5
lcall delay
mov p0,#0ffh
setb wei
mov p0,#0fdh
clr wei
mov p0,#0ffh
setb duan
mov dptr,#ledtab
mov a,41h
movc a,@a+dptr
mov p0,a
clr duan
mov r7,#5
lcall delay
mov p0,#0ffh
setb wei
mov p0,#0fbh
clr wei
mov p0,#0ffh
setb duan
mov dptr,#ledtab
mov a,42h
movc a,@a+dptr
mov p0,a
clr duan
mov r7,#5
lcall delay
mov p0,#0ffh
setb wei
mov p0,#0f7h
clr wei
mov p0,#0ffh
setb duan
mov dptr,#ledtab
mov a,43h
movc a,@a+dptr
mov p0,a
clr duan
mov r7,#5
lcall delay
mov p0,#0ffh
setb wei
mov p0,#0bfh
clr wei
mov p0,#0ffh
setb duan
mov dptr,#ledtab
mov a,46h
movc a,@a+dptr
mov p0,a
clr duan
mov r7,#5
lcall delay
mov p0,#0ffh
setb wei
mov p0,#07fh
clr wei
mov p0,#0ffh
setb duan
mov dptr,#ledtab
mov a,47h
movc a,@a+dptr
mov p0,a
clr duan
mov r7,#5
lcall delay
retledtab:
db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhend
微控制器組合語言的程式設計問題
首先教你如何理解jnb和jb,jnb就是jump not bit,這樣不好理解,解釋一下就明白了 jump表示跳轉,not表示0,bit表示該位。它實際是條件判斷語句,意思是 如果該為為0則跳轉,否則繼續下一條。例 jnb p1.1,mark 如果p1.1位為零則跳轉到mark標誌指向的指令,否則繼...
微控制器組合語言中是什麼意思,在微控制器組合語言中c是什麼意思
原地踏步的意思 等價於loop sjmp loop 代指本指令的 地址。如果sjmp 的起始地址是1010h,則在編譯的時候編譯器把 編譯為這專個起始地址屬1010h,就等於sjmp 1010h,執行完這指令後還跳到這個地址再執行它。無限迴圈直到微控制器沒電。指當前地址,可以有多種應用。比如 got...
在微控制器組合語言中c是什麼意思,微控制器組合語言中 CY AC OV 分別是什麼意思?
進位標誌位cy或布林處理器中的累加器。c為進借位標誌位bai,就是ducy 意思是兩數相加zhi addc指令 有進位就置c為1,兩數減dao subb指令 有借內位就置c為1,上面兩種請況c的置容1是系統自動的。另外還可以自己對c進行操作 指令如下 mov c,bit 將bit位地址中的值送psw...