在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

大小: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秒計數(shù)器
counter equ 30h;分配計數(shù)器內(nèi)存?
timer?? equ 31h;計數(shù)速度控制計數(shù)器?
speed?? equ 50;計數(shù)速度調(diào)節(jié)(0到255)?
led7seg equ p0;數(shù)碼管段位接口?
ledbit? equ p2;數(shù)碼管位選接口
???org 0000h
???ljmp start
?
???org 0030h
start:?mov sp,#60h;設置堆棧指針?
???mov counter,#0;計數(shù)器清零初始化?
loop:??mov timer,#speed;計數(shù)速度設定?
loop0:?mov a,counter;取出計數(shù)值到累加器?
???mov b,#10;設定十進制模?
???div ab;除法,十六進制轉(zhuǎn)十進制?
???da a;BCD碼調(diào)整?
???anl a,#0fh;清除高位?
???mov dptr,#ledmap;取字符譯碼表頭地址?
???movc a,@a+dptr;查表字符譯碼?
???mov ledbit,#0ffh;關閉數(shù)碼管,修改數(shù)據(jù)前必須關閉?
???mov led7seg,a;送出字符段碼?
???mov ledbit,#0feh;打開一位數(shù)碼管?
???acall delay;延時一段時間
???mov dptr,#ledmap
???mov a,b;取出十位值?
???movc a,@a+dptr
???mov p2,#0ffh
???mov p0,a
???mov p2,#0fdh
???acall delay
???djnz timer,loop0;速度控制,多次顯示后計數(shù)器+1??
???inc counter;計數(shù)器+1?
???mov a,counter
???cjne a,#100,loop;100溢出判斷
???mov counter,#0;溢出后歸零
???sjmp loop
;經(jīng)典延時模塊?
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點陣電子屏字符顯示程序

描述:????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
;*???????????? 8*8LED點陣電子屏字符顯示程序
;*???????????? 四個顯示字符數(shù)據(jù)表放在40H-7FH單元內(nèi),字符用8*8點陣,R4(30H)用于
;????????????? 控制顯示靜止字的時間,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í)行開始地址
??????????????? LJMP??? START???????? ;跳至START執(zhí)行
??????????????? ORG???? 0003H???????? ;外中斷0中斷入口地址
??????????????? RETI????????????????? ;中斷返回(不開中斷)
??????????????? ORG???? 000BH???????? ;定時器T0中斷入口地址
??????????????? RETI????????????????? ;中斷返回(不開中斷)
??????????????? ORG???? 0013H???????? ;外中斷1中斷入口地址
??????????????? RETI????????????????? ;中斷返回(不開中斷)
??????????????? ORG???? 001BH???????? ;定時器T1中斷入口地址
??????????????? RETI????????????????? ;中斷返回(不開中斷)
??????????????? ORG???? 0023H???????? ;串行口中斷入口地址
??????????????? RETI????????????????? ;中斷返回(不開中斷)
??????????????? ORG???? 002BH???????? ;定時器T2中斷入口地址
??????????????? RETI????????????????? ;中斷返回(不開中斷)
;******************************************************************************
;主體程序
START:??
??????????????? MOV????? SP,#60H????? ;堆棧在60H開始???????
??????????????? 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?? ;取"東哥單片機學習網(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?????? ;設字符表移入內(nèi)存單元首址
??????????????? MOV???? R2,#20H?????? ;設查表次數(shù)(32次)
CLLOOP:???????? MOVC??? A,@A+DPTR???? ;查表將"東哥單片機學習網(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?????????????????? ;無鍵按下,子程序返回
;******************************************************************************
;按鍵1功能處理
KEY1:?????????? LCALL?? DL10MS??????? ;延時10MS削抖動
??????????????? JB????? S1,KEYRET???? ;是干擾轉(zhuǎn)KEYRET結(jié)束
??????????????? SETB??? 00H?????????? ;置逐字顯示方式標志(20H.0=1)
??????????????? CLR???? 01H?????????? ;
??????????????? CLR???? 02H?????????? ;
??????????????? RET?????????????????? ;子程序返回
;******************************************************************************
; 按鍵2功能處理
KEY2:?????????? LCALL?? DL10MS??????? ;
??????????????? JB????? S2,KEYRET???? ;
??????????????? SETB??? 01H?????????? ;置上移顯示方式標志(20H.1=1)
??????????????? CLR???? 00H?????????? ;
??????????????? CLR???? 02H?????????? ;
??????????????? RET?????????????????? ;
;******************************************************************************
; 按鍵3功能處理
KEY3:?????????? LCALL?? DL10MS??????? ;
??????????????? JB????? S3,KEYRET???? ;
??????????????? SETB??? 02H?????????? ;置左移顯示方式標志(20H.2=1)
??????????????? CLR???? 01H?????????? ;
??????????????? CLR???? 00H?????????? ;
??????????????? RET
;******************************************************************************
;逐字顯示功能程序
FUN0:?????????? MOV???? 30H,#80H???? ;1幀顯示時間控制(約1秒)
??????????????? MOV???? 31H,#08H???? ;換幀跳轉(zhuǎn)步距為8
??????????????? LJMP??? DISP1??????? ;轉(zhuǎn)顯示子程序DISP1
; 上移顯示功能程序
FUN1:?????????? MOV???? 30H,#25H???? ;1幀顯示時間控制(約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ù)據(jù)
??????????????? MOV???? R5,31H?????? ;放入跳轉(zhuǎn)步距控制數(shù)據(jù)
LOOP:?????????? LCALL?? DISPLAY????? ;調(diào)用顯示子程序一次
??????????????? DJNZ??? R4,LOOP????? ;1幀顯示時間未到再轉(zhuǎn)LOOP循環(huán)
??????????????? MOV???? R4,30H?????? ;1幀顯示時間到,重裝初值
??????????????? 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進行次幀掃描
;******************************************************************************
;顯示子程序,字符數(shù)據(jù)從P0口輸出,掃描控制字從P2口輸出,顯示1幀約需8MS
DISPLAY:??????? MOV???? A,#0FFH????? ;
??????????????? MOV???? P0,A???????? ;關顯示數(shù)據(jù)
??????????????? MOV???? P2,A???????? ;關掃描
??????????????? 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幀顯示時間控制
DISPP1:???????? LCALL?? DISPLAY????? ;調(diào)用顯示子程序一次
??????????????? DJNZ??? R4,DISPP1??? ;1幀顯示時間不到轉(zhuǎn)DISPP再循環(huán)
??????????????? RET
;******************************************************************************
; 高位移出處理子程序。將"東哥單片機學習網(wǎng)"6個字符數(shù)據(jù)的最高位移出至21H-24H單元內(nèi)
MOVH:?????????? MOV???? R1,#21H????? ;最高位移出存放單元首址
??????????????? MOV???? R0,#40H????? ;"東哥單片機學習網(wǎng)"字符數(shù)據(jù)首址
??????????????? MOV???? R2,#08H????? ;每"字"移8次
MOV1:?????????? MOV???? A,@R0??????? ;取"電子設計"字符數(shù)據(jù)
??????????????? CLR???? C??????????? ;清進位C
??????????????? RLC???? A??????????? ;帶進位循左移
??????????????? MOV???? @R0,A??????? ;放回原單元
??????????????? MOV???? A,@R1??????? ;存放單元數(shù)據(jù)入A
??????????????? RRC???? A??????????? ;帶進位循右移
??????????????? 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??????????? ;帶進位循環(huán)右移
??????????????? MOV???? @R1,A??????? ;放回原單元
??????????????? MOV???? A,@R0??????? ;取字符數(shù)據(jù)
??????????????? RLC???? A??????????? ;帶進位循環(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毫秒延時子程序,采用調(diào)用掃鍵子程序延時,可快速讀出按紐的狀態(tài)
DL1MS:????????? MOV???? R3,#64H? ;100*(10+2)us
LOOPK:????????? LCALL?? KEYWORK
??????????????? DJNZ??? R3,LOOPK
??????????????? RET
;******************************************************************************
;0.5毫秒延時子程序
DL512:????????? MOV???? R2,#0FFH
LOOP1:????????? DJNZ??? R2,LOOP1
??????????????? RET
;******************************************************************************
; 10毫秒延時子程序
DL10MS:???????? MOV???? R3,#14H
LOOP2:????????? LCALL?? DL512
??????????????? DJNZ??? R3,LOOP2
??????????????? RET
;******************************************************************************
;"電子設計"顯示用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??? ;?? 設
??????????????? DB????? 0BBH,0BBH,1BH,0A0H,0BBH,0BBH,9BH,0BBH??? ;?? 計
??????????????? DB????? 00H,00H,00H,00H
??????????????? END????????????????????????????????????????????? ;程序結(jié)束

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關規(guī)定!

      ?
      主站蜘蛛池模板: 欧美天天视频| 免费三级网站| 亚洲狠狠网站色噜噜| 我要看一级大片| 色婷婷综合和线在线| 奇米影色777四色在线首页| 免费一级欧美片在线观免看 | 国产小视频在线看| 五月婷婷激情网| 天天综合天天射| 色老太视频| 真实女人寂寞偷人视频| 一区二区三区精品国产欧美| 四虎影视院| 噜噜色网| 97人人看| 男人的天堂222eee| 啪啪中文字幕| 男女全黄做爰视频| 四虎影在线永久免费观看| 日本国产在线| 国产精品李雅在线观看| 麻豆国产一区二区在线观看| 国产一区二区影院| 夜夜做日日做夜夜爽| 女女色综合影院| 美女啪啪91| eeuss影院www影院夜场| 国产成人乱码一区二区三区 | 日本与大黑人xxxx| 国产在线精品观看一区| 李老汉的性生生活2| 性视频久久| 免费国产在线视频| 中国一级特黄高清免费的大片| 欧美一级爱操视频| 免费视频h| 亚洲成年人免费网站| 另类免费视频| 黄 色美 女人| 多男一女一级淫片免费播放口|