曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶(hù)?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>匯編編程>

匯編語(yǔ)言 八路搶答器與99秒計(jì)數(shù)器

大?。?/span>0.1 MB 人氣: 2017-09-06 需要積分:0

1、八路搶答器

? ? ?ORG 0000H
???? SETB P3.7
???? MOV R0, #00H
???? MOV A , #0FFH
???? MOV P2 , A
L1:? MOV A , P1
???? XRL? A , #0FFH
???? JZ L1
L2:? MOV B , #02H
???? DIV AB
???? INC R0
???? JNZ L2
???? MOV DPTR,#TABLE
???? MOV A,R0
???? MOVC A , @A+DPTR
???? MOV P2 ,A
???? MOV R3 , #0FFH
SS:? CLR P3.7
???? ACALL DELAY
???? SETB P3.7
???? ACALL DELAY
???? DJNZ R3,SS
?????
L4:? SJMP?? L4
DELAY: MOV R1, #249
L3:? NOP
???? NOP
???? DJNZ R1, L3
???? RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;0-9
???? END
?

?

2、99秒計(jì)數(shù)器
counter equ 30h;分配計(jì)數(shù)器內(nèi)存?
timer?? equ 31h;計(jì)數(shù)速度控制計(jì)數(shù)器?
speed?? equ 50;計(jì)數(shù)速度調(diào)節(jié)(0到255)?
led7seg equ p0;數(shù)碼管段位接口?
ledbit? equ p2;數(shù)碼管位選接口
???org 0000h
???ljmp start
?
???org 0030h
start:?mov sp,#60h;設(shè)置堆棧指針?
???mov counter,#0;計(jì)數(shù)器清零初始化?
loop:??mov timer,#speed;計(jì)數(shù)速度設(shè)定?
loop0:?mov a,counter;取出計(jì)數(shù)值到累加器?
???mov b,#10;設(shè)定十進(jìn)制模?
???div ab;除法,十六進(jìn)制轉(zhuǎn)十進(jìn)制?
???da a;BCD碼調(diào)整?
???anl a,#0fh;清除高位?
???mov dptr,#ledmap;取字符譯碼表頭地址?
???movc a,@a+dptr;查表字符譯碼?
???mov ledbit,#0ffh;關(guān)閉數(shù)碼管,修改數(shù)據(jù)前必須關(guān)閉?
???mov led7seg,a;送出字符段碼?
???mov ledbit,#0feh;打開(kāi)一位數(shù)碼管?
???acall delay;延時(shí)一段時(shí)間
???mov dptr,#ledmap
???mov a,b;取出十位值?
???movc a,@a+dptr
???mov p2,#0ffh
???mov p0,a
???mov p2,#0fdh
???acall delay
???djnz timer,loop0;速度控制,多次顯示后計(jì)數(shù)器+1??
???inc counter;計(jì)數(shù)器+1?
???mov a,counter
???cjne a,#100,loop;100溢出判斷
???mov counter,#0;溢出后歸零
???sjmp loop
;經(jīng)典延時(shí)模塊?
delay:?mov r7,#100
dd:??mov r6,#10
???djnz r6,$
???djnz r7,dd
???ret
;共陰極數(shù)碼管字符譯碼表?
ledmap:?db 03FH,006H,05BH,04FH,066H
???db 06DH,07DH,007H,07FH,06FH
???end
?

3、8*8LED點(diǎn)陣電子屏字符顯示程序

描述:????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
;*???????????? 8*8LED點(diǎn)陣電子屏字符顯示程序
;*???????????? 四個(gè)顯示字符數(shù)據(jù)表放在40H-7FH單元內(nèi),字符用8*8點(diǎn)陣,R4(30H)用于
;????????????? 控制顯示靜止字的時(shí)間,R5(31H)靜止字顯示跳轉(zhuǎn)地址步距,B內(nèi)放顯示首址???????????????????????????????????????????????????????
;*???????????? COL-(8--1)分別接 (P0.0---P0.7)? 即J27-8腳接P0.0? J27-7腳接P0.1
;*???????????? J27-6腳接P0.2? J27-5腳接P0.3??? J27-4腳接P0.4? J27-3腳接P0.5
;*???????????? J27-2腳接P0.6? J27-1腳接P0.7????
;*???????????? S1逐字顯示功能程序? S3控制左移顯示功能程序???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
;******************************************************************************
? ???????? S1????? BIT??? P3.3??? ;
???????? S2????? BIT??? P3.4??? ;
???????? S3????? BIT??? P3.5??? ;
???????? S4????? BIT??? P3.6??? ;
;******************************************************************************
??????????????? ORG???? 0000H???????? ;程序執(zhí)行開(kāi)始地址
??????????????? LJMP??? START???????? ;跳至START執(zhí)行
??????????????? ORG???? 0003H???????? ;外中斷0中斷入口地址
??????????????? RETI????????????????? ;中斷返回(不開(kāi)中斷)
??????????????? ORG???? 000BH???????? ;定時(shí)器T0中斷入口地址
??????????????? RETI????????????????? ;中斷返回(不開(kāi)中斷)
??????????????? ORG???? 0013H???????? ;外中斷1中斷入口地址
??????????????? RETI????????????????? ;中斷返回(不開(kāi)中斷)
??????????????? ORG???? 001BH???????? ;定時(shí)器T1中斷入口地址
??????????????? RETI????????????????? ;中斷返回(不開(kāi)中斷)
??????????????? ORG???? 0023H???????? ;串行口中斷入口地址
??????????????? RETI????????????????? ;中斷返回(不開(kāi)中斷)
??????????????? ORG???? 002BH???????? ;定時(shí)器T2中斷入口地址
??????????????? RETI????????????????? ;中斷返回(不開(kāi)中斷)
;******************************************************************************
;主體程序
START:??
??????????????? MOV????? SP,#60H????? ;堆棧在60H開(kāi)始???????
??????????????? MOV????? 20H,#00H???? ;20H內(nèi)存單元清0
??????????????? SETB???? 00H????????? ;20H.0位置1
START1:???????? LCALL??? CLEARMEN???? ;調(diào)用上電初始化子程序
??????????????? JB?????? 00H,FUN0???? ;20H.0位為1,執(zhí)行FUN0
??????????????? JB?????? 01H,FUN1???? ;20H.1位為1,執(zhí)行FUN1
??????????????? JB?????? 02H,FUN2???? ;20H.2位為1,執(zhí)行FUN2
??????????????? AJMP???? START1?????? ;跳回START1循環(huán)
;******************************************************************************
;初始化程序????????
CLEARMEN:??
??????????????? MOV???? A,#0FFH?????? ;四端口置1
??????????????? MOV???? P1,A????????? ;
??????????????? MOV???? P2,A????????? ;
??????????????? MOV???? P3,A????????? ;
??????????????? MOV???? P0,A????????? ;
??????????????? MOV???? DPTR,#TABLE?? ;取"東哥單片機(jī)學(xué)習(xí)網(wǎng)"字符表首址值
??????????????? CLR???? A???????????? ;
??????????????? MOV???? 21H,A???????? ;21H-24H內(nèi)存單元清0
??????????????? MOV???? 22H,A???????? ;
??????????????? MOV???? 23H,A???????? ;
??????????????? MOV???? 24H,A???????? ;
??????????????? MOV???? R3,A????????? ;R3寄存器清0
??????????????? MOV???? R1,#40H?????? ;設(shè)字符表移入內(nèi)存單元首址
??????????????? MOV???? R2,#20H?????? ;設(shè)查表次數(shù)(32次)
CLLOOP:???????? MOVC??? A,@A+DPTR???? ;查表將"東哥單片機(jī)學(xué)習(xí)網(wǎng)"字符數(shù)據(jù)移入內(nèi)存單元
??????????????? MOV???? @R1,A???????? ;
??????????????? MOV???? A,R3????????? ;
??????????????? INC???? A???????????? ;
??????????????? MOV???? R3,A????????? ;
??????????????? INC???? R1??????????? ;
??????????????? DJNZ??? R2,CLLOOP???? ;查表32次,不到轉(zhuǎn)CLLOOP再查
??????????????? RET?????????????????? ;子程序返回
;******************************************************************************
;鍵掃描子程序
KEYWORK:??????? MOV????? P3,#0FFH???? ;置輸入狀態(tài)
??????????????? JNB????? S1,KEY1????? ;P3.3為0(鍵按下)轉(zhuǎn)KEY1
;??????????????? JNB????? S2,KEY2????? ;P3.4為0(鍵按下)轉(zhuǎn)KEY2
??????????????? JNB????? S3,KEY3????? ;P3.5為0(鍵按下)轉(zhuǎn)KEY3
KEYRET:???????? RET?????????????????? ;無(wú)鍵按下,子程序返回
;******************************************************************************
;按鍵1功能處理
KEY1:?????????? LCALL?? DL10MS??????? ;延時(shí)10MS削抖動(dòng)
??????????????? JB????? S1,KEYRET???? ;是干擾轉(zhuǎn)KEYRET結(jié)束
??????????????? SETB??? 00H?????????? ;置逐字顯示方式標(biāo)志(20H.0=1)
??????????????? CLR???? 01H?????????? ;
??????????????? CLR???? 02H?????????? ;
??????????????? RET?????????????????? ;子程序返回
;******************************************************************************
; 按鍵2功能處理
KEY2:?????????? LCALL?? DL10MS??????? ;
??????????????? JB????? S2,KEYRET???? ;
??????????????? SETB??? 01H?????????? ;置上移顯示方式標(biāo)志(20H.1=1)
??????????????? CLR???? 00H?????????? ;
??????????????? CLR???? 02H?????????? ;
??????????????? RET?????????????????? ;
;******************************************************************************
; 按鍵3功能處理
KEY3:?????????? LCALL?? DL10MS??????? ;
??????????????? JB????? S3,KEYRET???? ;
??????????????? SETB??? 02H?????????? ;置左移顯示方式標(biāo)志(20H.2=1)
??????????????? CLR???? 01H?????????? ;
??????????????? CLR???? 00H?????????? ;
??????????????? RET
;******************************************************************************
;逐字顯示功能程序
FUN0:?????????? MOV???? 30H,#80H???? ;1幀顯示時(shí)間控制(約1秒)
??????????????? MOV???? 31H,#08H???? ;換幀跳轉(zhuǎn)步距為8
??????????????? LJMP??? DISP1??????? ;轉(zhuǎn)顯示子程序DISP1
; 上移顯示功能程序
FUN1:?????????? MOV???? 30H,#25H???? ;1幀顯示時(shí)間控制(約80毫秒)
??????????????? MOV???? 31H,#01H???? ;換幀跳轉(zhuǎn)步距為1
??????????????? LJMP??? DISP1??????? ;轉(zhuǎn)顯示子程序DISP1
;左移顯示功能程序
FUN2:?????????? LJMP??? DISP2??????? ;
;******************************************************************************
;顯示控制程序
DISP1:????????? MOV???? B,#40H?????? ;顯示數(shù)據(jù)首址
??????????????? MOV???? R4,30H?????? ;放入1幀顯示時(shí)間控制數(shù)據(jù)
??????????????? MOV???? R5,31H?????? ;放入跳轉(zhuǎn)步距控制數(shù)據(jù)
LOOP:?????????? LCALL?? DISPLAY????? ;調(diào)用顯示子程序一次
??????????????? DJNZ??? R4,LOOP????? ;1幀顯示時(shí)間未到再轉(zhuǎn)LOOP循環(huán)
??????????????? MOV???? R4,30H?????? ;1幀顯示時(shí)間到,重裝初值
??????????????? MOV???? A,B????????? ;
??????????????? CJNE??? A,#58H,CONT? ;不是末地址轉(zhuǎn)CONT
??????????????? AJMP??? START1?????? ;是末地址,一次顯示結(jié)束跳回START1
CONT:?????????? ADD???? A,R5???????? ;次幀掃描首址調(diào)整
??????????????? MOV???? B,A????????? ;
??????????????? AJMP??? LOOP???????? ;轉(zhuǎn)LOOP進(jìn)行次幀掃描
;******************************************************************************
;顯示子程序,字符數(shù)據(jù)從P0口輸出,掃描控制字從P2口輸出,顯示1幀約需8MS
DISPLAY:??????? MOV???? A,#0FFH????? ;
??????????????? MOV???? P0,A???????? ;關(guān)顯示數(shù)據(jù)
??????????????? MOV???? P2,A???????? ;關(guān)掃描
??????????????? MOV???? R6,#0FEH???? ;賦掃描字
??????????????? MOV???? R0,B???????? ;賦顯示數(shù)據(jù)首地址
??????????????? MOV???? R7,#08H????? ;一次掃描8行
DISLOOP:??????? MOV???? A,@R0??????? ;取顯示數(shù)據(jù)
??????????????? MOV???? P0,A???????? ;放入P0口
??????????????? MOV???? P2,R6??????? ;掃描輸出(顯示某一行)
??????????????? ACALL?? DL1MS??????? ;亮1毫秒
??????????????? INC???? R0?????????? ;指向下一行數(shù)據(jù)地址
??????????????? MOV???? A,R6???????? ;掃描字移入A
??????????????? RL????? A??????????? ;循環(huán)左移一位
??????????????? MOV???? R6,A???????? ;放回R6
??????????????? DJNZ??? R7,DISLOOP?? ;8行掃描未完轉(zhuǎn)DISLOOP繼續(xù)
??????????????? RET????????????????? ;8行掃描結(jié)束
;******************************************************************************
;左移顯示控制程序
DISP2:????????? MOV???? R5,#32?????? ; 左移32次
DISP22:???????? LCALL?? DISPP??????? ;調(diào)用左移顯示控制子程序
??????????????? LCALL?? MOVH???????? ;調(diào)用高位移出處理子程序MOVH
??????????????? LCALL?? MOVH1??????? ;調(diào)用高位移出處理子程序MOVH1
??DJNZ?R5,DISP22??? ;左移顯示32次控制
??????????????? LJMP??? START1?????? ;跳回主程序
;******************************************************************************
; 左移顯示控制子程序
DISPP:????????? MOV???? B,#40H?????? ;第一顯示字符首址
??????????????? MOV???? R4,#25H????? ;1幀顯示時(shí)間控制
DISPP1:???????? LCALL?? DISPLAY????? ;調(diào)用顯示子程序一次
??????????????? DJNZ??? R4,DISPP1??? ;1幀顯示時(shí)間不到轉(zhuǎn)DISPP再循環(huán)
??????????????? RET
;******************************************************************************
; 高位移出處理子程序。將"東哥單片機(jī)學(xué)習(xí)網(wǎng)"6個(gè)字符數(shù)據(jù)的最高位移出至21H-24H單元內(nèi)
MOVH:?????????? MOV???? R1,#21H????? ;最高位移出存放單元首址
??????????????? MOV???? R0,#40H????? ;"東哥單片機(jī)學(xué)習(xí)網(wǎng)"字符數(shù)據(jù)首址
??????????????? MOV???? R2,#08H????? ;每"字"移8次
MOV1:?????????? MOV???? A,@R0??????? ;取"電子設(shè)計(jì)"字符數(shù)據(jù)
??????????????? CLR???? C??????????? ;清進(jìn)位C
??????????????? RLC???? A??????????? ;帶進(jìn)位循左移
??????????????? MOV???? @R0,A??????? ;放回原單元
??????????????? MOV???? A,@R1??????? ;存放單元數(shù)據(jù)入A
??????????????? RRC???? A??????????? ;帶進(jìn)位循右移
??????????????? MOV???? @R1,A??????? ;放回存放單元
??????????????? INC???? R0?????????? ;字符數(shù)據(jù)地址加1
??????????????? DJNZ??? R2,MOV1????? ;移8次未完轉(zhuǎn)MOV1再移
??????????????? MOV???? R2,#08H????? ;8次移完賦初值
??????????????? INC???? R1?????????? ;存放單元地址加1
??????????????? MOV???? A,R1???????? ;判斷地址是否小于25H
??????????????? SUBB??? A,#25H?????? ;
??????????????? JZ????? OUT????????? ;等于25H退出
??????????????? AJMP??? MOV1???????? ;小于25H轉(zhuǎn)MOV1繼續(xù)
OUT:??????????? RET????????????????? ;子程序結(jié)束
;******************************************************************************
;高位移出處理子程序。
MOVH1:????????? MOV???? A,21H??????? ;21H與22H、23H、24H單元數(shù)據(jù)循交換
??????????????? XCH???? A,24H??????? ;21H與24H全交換
??????????????? XCH???? A,23H??????? ;23H與24H全交換
??????????????? XCH???? A,22H??????? ;23H與22H全交換
??????????????? MOV???? 21H,A??????? ;22H與21H全交換
??????????????? MOV???? R1,#21H????? ;以下是重新組成顯示字符數(shù)據(jù)表程序
??????????????? MOV???? R0,#40H????? ;將21H-24H的各位分別移入50H-6FH的低位
??????????????? MOV???? R2,#08H????? ;移位次數(shù)
MOV2:?????????? MOV???? A,@R0??????? ;取字符數(shù)據(jù)
??????????????? RR????? A??????????? ;右移
??????????????? MOV???? @R0,A??????? ;放回原單元
??????????????? MOV???? A,@R1??????? ;取原移出最高位存放單元數(shù)
??????????????? CLR???? C??????????? ;清C
??????????????? RRC???? A??????????? ;帶進(jìn)位循環(huán)右移
??????????????? MOV???? @R1,A??????? ;放回原單元
??????????????? MOV???? A,@R0??????? ;取字符數(shù)據(jù)
??????????????? RLC???? A??????????? ;帶進(jìn)位循環(huán)左移
??????????????? MOV???? @R0,A??????? ;放回字符數(shù)據(jù)
??????????????? INC???? R0?????????? ;字符數(shù)據(jù)地址加1
??????????????? DJNZ??? R2,MOV2????? ;8次未完轉(zhuǎn)MOV2再繼續(xù)
??????????????? MOV???? R2,#08H????? ;8次完賦初值
??????????????? INC???? R1?????????? ;原移出最高位存放單元地址加1
??????????????? MOV???? A,R1???????? ;判斷地址是否小于25H
??????????????? SUBB??? A,#25H?????? ;
??????????????? JZ????? OUT????????? ;等于25H轉(zhuǎn)OUT退出
??????????????? AJMP??? MOV2???????? ;小于25H轉(zhuǎn)MOV2繼續(xù)
;******************************************************************************
;1毫秒延時(shí)子程序,采用調(diào)用掃鍵子程序延時(shí),可快速讀出按紐的狀態(tài)
DL1MS:????????? MOV???? R3,#64H? ;100*(10+2)us
LOOPK:????????? LCALL?? KEYWORK
??????????????? DJNZ??? R3,LOOPK
??????????????? RET
;******************************************************************************
;0.5毫秒延時(shí)子程序
DL512:????????? MOV???? R2,#0FFH
LOOP1:????????? DJNZ??? R2,LOOP1
??????????????? RET
;******************************************************************************
; 10毫秒延時(shí)子程序
DL10MS:???????? MOV???? R3,#14H
LOOP2:????????? LCALL?? DL512
??????????????? DJNZ??? R3,LOOP2
??????????????? RET
;******************************************************************************
;"電子設(shè)計(jì)"顯示用ROM數(shù)據(jù)表
TABLE:????????? DB????? 0DDH,88H,0DDH,88H,5DH,0D8H,0DDH,0D8H???? ;?? 桂
??????????????? DB????? 0F7H,81H,0EFH,0D7H,81H,0E3H,0D5H,0B6H??? ;?? 東
??????????????? DB????? 0B1H,0B5H,04H,0BFH,0B1H,0B5H,9BH,0A4H??? ;?? 設(shè)
??????????????? DB????? 0BBH,0BBH,1BH,0A0H,0BBH,0BBH,9BH,0BBH??? ;?? 計(jì)
??????????????? DB????? 00H,00H,00H,00H
??????????????? END????????????????????????????????????????????? ;程序結(jié)束

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶(hù)評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?