1樓:匿名使用者
name cs_t
? pr? cs_t? cs_t segment code
public cs_t
rseg ? pr? cs_t? cs_t以上是什麼意思 編譯軟體 肯定 不認 , 以下程式 應該 可以編譯
cs_t: push acc ; 這程式看不出起什麼作用。
mov th0, #00hmov tl0, #00hmov a, #4dsetb tro
cs_t1: cpl p1.0nopnop
nopnop
nopnop
nopnop
nopnop
djnz acc, cs_t1pop acc
retend
2樓:匿名使用者
程式不完整,你把全部程式複製下來吧
51微控制器組合語言程式設計問題(使用keil uvision4)mcs-51
3樓:專注51微控制器
mov r5,#0
mov r6,#0
mov r7,#0
mov dptr,#tab
mov r2,#50
loop:
clr a
movc a,@a+dptr
cjne a,#3ah,lp1
lp1:
jc suzi
cjne a,#'z',lp2
sjmp daxie
lp2:
jnc,xiaxie
daxie:
inc r6
sjmp lp3
xiaoxie:
inc r7
sjmp lp3
suzi:
inc r5
lp3:
inc dptr
djnz r2,loopret
51微控制器組合語言程式設計。
4樓:不亦心
自己動手豐衣足食,
還是好好學習吧,剛開始學,可以自己想嘗試著編寫,有問題再貼出來,請教
你這樣直接要程式的,自己什麼也學不到
keil c51微控制器 c語言程式設計基本語法問題
5樓:匿名使用者
函式宣告是在使用之前麼?
關於goto的問題,很明顯goto是不能跨函式的,label必須是在goto語句的同一個函式內才有效。
6樓:匿名使用者
沒有見過你這樣的寫法啊(loop:)如果是組合語言可以
7樓:圍城
樓上錯了吧,loop: 肯定是可以的,他肯定沒學過c.
不介意的話把檔案發上來吧...這圖看不出來
急求c51微控制器組合語言程式錯誤更改,用的keil軟體不能生成hex檔案,不能匯入proteus 30
8樓:匿名使用者
k1 bit p1.0
k2 bit p1.1
k3 bit p1.2
k4 bit p1.3
k5 bit p1.4
k6 bit p1.5
k7 bit p1.6
k8 bit p1.7
min equ 30h
sec equ 31h
sec100 equ 32h
dis_buf equ 33h
buf_min_h equ dis_buf
buf_min_l equ dis_buf+1
buf_sec_h equ dis_buf+2
buf_sec_l equ dis_buf+3
k_old equ 41h
k_new equ 42h
dis_digit equ 43h
dis_index equ 44h
k_old1 equ 45h
k_new1 equ 46h
flag equ 47h
convert equ 48h
org 0000h
jmp main
org 0003h
ljmp int_0
org 0000bh
ljmp timer0
org 0001bh
ljmp timer1
org 0030h
main:
mov sp,#60h
mov p0,#0ffh
mov p2,#0ffh
mov tmod,#011h
mov th0,#0fch
mov tl0,#017h
mov th1,#0dch
clr a
mov tl1,a
mov convert,#00h
mov convert+1 ,#00h
mov convert+2,#00h
mov convert+3 ,#00h
clr a
mov min,#20
mov sec,a
mov sec100,a
mov buf_min_h,#0a4h
mov buf_min_l,#0c0h
mov buf_sec_h,#0c0h
mov buf_sec_l,#0c0h
mov dis_buf+4,#0c0h
mov dis_buf+5,#0c0h
mov dis_buf+6,#0c0h
mov dis_buf+7,#0c0h
mov flag ,#00h
mov k_old,#00h
beep_bl00: mov r3,#10
mov r2,#200
main1100:
cpl p3.7
lcall delay500
lcall delay500
djnz r2,main1100
cpl p3.6
lcall delay500
lcall delay500
lcall delay500
mov r2,#200
main2100:
cpl p3.7
lcall delay500
djnz r2,main2100
djnz r3,main1100
ljmp start
delay500:
mov r7,#230
loop1:
djnz r7,loop1
retstart: mov dis_digit,#0feh
clr a
mov dis_index,a
setb ea
setb et0
setb tr0
setb it0
setb ex0
setb pt0
main_lp:
call key_prog
sjmp main_lp
key_prog:
call k_scan
mov a,k_new
cjne a,k_old,key_p1
jmp end_proc_key
key_p1:
mov r4,#15
key_p2:
mov r7,#10
call delayms
djnz r4,key_p2
call k_scan
mov a,k_new
cjne a,k_old,key_p3
jmp end_proc_key
key_p3:
jb acc.0,proc_k1
jb acc.1,proc_k2
jb acc.2,proc_k3
jb acc.3,proc_k4
ljmp end_proc_key
proc_k1:lcall beep_bl001
inc min
mov a,min ;
cjne a, #100,update_min21
mov min,#00h
update_min21:
mov a,min
mov b,#10
div ab ; a = min / 10
mov dptr,#dis_code
movc a,@a+dptr
mov buf_min_h,a
mov a,min
mov b,#10
div ab
mov a,b
movc a,@a+dptr
mov buf_min_l,a
sjmp end_proc_key
proc_k2:lcall beep_bl001
dec min
mov a,min
cjne a, #255, update_min1
mov min,#99
update_min1:
mov a,min
mov b,#10
div ab
mov dptr,#dis_code
movc a,@a+dptr
mov buf_min_h,a
mov a,min
mov b,#10
div ab
mov a,b
movc a,@a+dptr
mov buf_min_l,a
sjmp end_proc_key
proc_k3: lcall beep_bl001
push psw
inc flag
mov a ,flag
rrc a
jnc stop
clr p3.6
setb et1
setb tr1
pop psw
sjmp end_proc_key
stop:setb p3.6
clr et1
clr tr1
pop psw
sjmp end_proc_key
proc_k4: lcall beep_bl001
mov r3,convert+1
mov convert+1,convert+3
mov convert+3,r3
mov r3,convert
mov convert,convert+2
mov convert+2,r3
lcall conveter
end_proc_key:
ret; 鍵掃描子程式
k_scan:
mov p1,#0ffh
mov k_new,#00h
mov a,p1
cpl a
anl a,#0f0h
swap a
mov k_new,a
retusing 0
timer0:
; 定時器0中斷服程式, 用於數碼管的動態掃描
push acc
push psw
push ar0
mov th0,#0fch
mov tl0,#017h
mov p2,#0ffh
mov a,#dis_buf
add a,dis_index
mov r0,a
mov a,@r0
mov p0,a
mov p2,dis_digit
mov a,dis_digit
rl a
mov dis_digit,a
inc dis_index
mov r5 , dis_index
cjne r5,#08h,tt
mov dis_index ,#00h
mov dis_digit,#0feh
tt: pop ar0
pop psw
pop acc
reti
timer1:
; 定時器1中斷服務程式, 產生時基訊號10ms
push psw
push acc
push b
push dph
push dpl
mov th1,#0dch
mov tl1,#00h
inc sec100
mov a,sec100
cjne a, #100, end_timer1
mov sec100,#00h
lcall dec_sec
end_timer1:
pop dpl
pop dph
pop b
pop acc
pop psw
reti ;
dec_sec:
dec sec
mov a ,min
jnz obtain
cpl p3.6
mov a ,sec
jnz obtain
mov buf_sec_l,#0c0h
clr tr1
clr et1
beep_bl: mov r3,#10
mov r2,#200
main11:
cpl p3.7
lcall delay500
lcall delay500
djnz r2,main11
cpl p3.6
lcall delay500
lcall delay500
lcall delay500
mov r2,#200
main21:
cpl p3.7
lcall delay500
djnz r2,main21
djnz r3,main11
ljmp obtain
obtain:
mov a,sec
cjne a, #255,update_sec
mov sec,#59
lcall dec_min
update_sec:
mov a,sec
mov b,#10
div ab
mov dptr,#dis_code
movc a,@a+dptr
mov buf_sec_h,a
mov a,sec
mov b,#10
div ab
mov a,b
movc a,@a+dptr
mov buf_sec_l,a
retdec_min:
dec min
mov a,min
cjne a, #255, update_min
mov min,#00h
update_min:
mov a,min
mov b,#10
div ab ; a = min / 10
mov dptr,#dis_code
movc a,@a+dptr
mov buf_min_h,a
mov a,min
mov b,#10
div ab
mov a,b
movc a,@a+dptr
mov buf_min_l,a
retret
; 中斷int0服務程式
int_0:
push psw
push acc
push b
push dph
push dpl
jb k1,rkey1
mov r7,#30
lcall delayms
jb k1,rkey1
ljmp kp1
rkey1 :jb k2,rkey2
mov r7,#30
lcall delayms
jb k2,rkey2
ljmp kp2
rkey2 :jb k3,rkey3
mov r7,#30
lcall delayms
jb k3,rkey3
ljmp kp3
rkey3 : jb k4,rkey4
mov r7,#30
lcall delayms
jb k4,rkey4
ljmp kp4
rkey4: ljmp kp5
kp1: lcall beep_bl001
inc convert
mov a,convert
cjne a,#0ah,kp5
mov convert ,#00h
inc convert+1
mov a,convert+1
cjne a,#0ah,kp5
mov convert+1,#00h
ljmp kp5
kp2: lcall beep_bl001
dec convert
mov a,convert
cjne a,#255,kp5
mov convert,#09h
dec convert+1
mov a,convert+1
cjne a,#255,kp5
mov convert+1,#09h
ljmp kp5
kp3: lcall beep_bl001
inc convert+2
mov a,convert+2
cjne a,#0ah,kp5
mov convert+2 ,#00h
inc convert+3
mov a,convert+3
cjne a,#0ah,kp5
mov convert+3,#00h
ljmp kp5
kp4: lcall beep_bl001
dec convert+2
mov a,convert+2
cjne a,#255,kp5
mov convert+2 ,#09h
dec convert+3
mov a,convert+3
cjne a,#255,kp5
mov convert+3,#09h
ljmp kp5
kp5:lcall conveter
pop dpl
pop dph
pop b
pop acc
pop psw
reti
delayms:
; 延時子程式
dly_lp1:
mov r6,#185
dly_lp2:
nopnop
nopdjnz r6,dly_lp2
djnz r7,dly_lp1
end_dlyms:
ret;蜂鳴器響一聲子程式
beep_bl001: mov r3,#1
putoff: ;
mov r2,#30
main11001:
cpl p3.7
lcall delay500
lcall delay500
djnz r2,main11001
djnz r3,putoff
ret;顯示緩衝區**轉碼子程式
conveter:
mov a,convert
mov dptr,#dis_code
movc a,@a+dptr
mov dis_buf+7,a
mov a,convert+1
mov dptr,#dis_code
movc a,@a+dptr
mov dis_buf+6,a
mov a,convert+2
mov dptr,#dis_code
movc a,@a+dptr
mov dis_buf+5,a
mov a,convert+3
mov dptr,#dis_code
movc a,@a+dptr
mov dis_buf+4,a
ret;查表指令
dis_code:
db 0c0h
db 0f9h
db 0a4h
db 0b0h
db 099h
db 092h
db 082h
db 0f8h
db 080h
db 090h
db 0ffhend
51微控制器組合語言例項,51微控制器組合語言資料
其他沒要求了?要是這樣,隨便寫寫的呀。清零程式 org 0000h ljmp start org 0030h start mov r7,mov r0,30h clr aloop mov r0,a inc r0 djnz r7,loopend 我的部落格上有,你可以去看看。51微控制器組合語言資料 一...
微控制器(組合語言)需要的軟體,微控制器(組合語言)程式
51微控制器是襲keil 軟體 關鍵你學過什麼語言?如果學過c語言就用c,上手快。學過其他的高階語言也可以,和c也大都是相通的。要是學過彙編的話就用匯編,畢竟彙編對硬體的操作 建議你還是先學微控制器c語言,這樣不會因為彙編這個攔路虎,而降低你持續學習的熱情。微控制器 組合語言 程式 開發當bai然是...
微控制器彙編程式求解,微控制器 組合語言編寫
嘿嘿 還是俺來幫你看看吧。1 原因找到了 你在第二段程式中 少了一條指令 使你的流水燈流到迴圈2就斷了。加上ljmp three 就可以跳轉到第三段流水燈控制程式上了。2 具體就是加在第二段程式的 cjne a,02h,loop3 指令的下面。即修改後 應如下 cjne a,02h,loop3 lj...