籃球計分器程式(微控制器組合語言編寫,不要C語言)

2022-02-27 14:43:10 字數 8290 閱讀 1708

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...