日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

8255控制四个双色灯C语言,汇编语言实现通过8255A和4个开关控制实现8个LED灯和8个7位数码管显示指定数字全亮、全灭、从左至右、从右至左跑马灯式点亮...

發布時間:2024/10/14 编程问答 63 豆豆

最后改進代碼:

.MODELTINY

.STACK100

.DATA

ledshow DB 11111110B ;數據段定義變量按“變量名 數據類型 數據”;DB為字節型

seven DB 07h

zero DB 00h

.CODE

START:A equ 0270H;數碼管端口地址

B equ 0271H;0-1開關端口地址

C equ 0272H;控制數碼管顯示內容

movax,@DATA ;獲得當前程序的數據段地址,并傳送給數據段DS寄存器保存。

mov ds,ax ;這樣,程序中訪問存儲器操作數時,默認情況下就會從DS指定的數據段進行存取

movdx,273h

moval,10000010H

outdx,al

function:

call delay

movdx,B

inal,dx ;從dx端口地址中將數據讀入到al中

andal,00001111B

cmpal,00000001B

jefun1

cmpal,00000010B

jefun2

cmpal,00000100B

jefun3

cmpal,00001000B

jefun4

fun1:movdx,A

moval,00H

outdx,al ;將al中的值讀出到dx端口地址中

jmpfunction

fun2:movdx,A

moval,0FFH

outdx,al

movdx,C

moval,01011011B

outdx,al

jmpfunction

fun3:movdx,C

moval,01001111B

outdx,al

movdx,A

fun3xh:mov cx,8

leabx,ledshow

rol ledshow

mov al,seven

dec seven

xlat

outdx,al

call delay

loop fun3xh

jmpfunction

fun4:movdx,C

moval,01100110B

outdx,al

movdx,A

fun4xh: mov cx,8

leabx,ledshow

ror ledshow

moval,zero

inc zero

xlat

outdx,al

call delay

loop fun4xh

jmpfunction

delayproc near ;proc為子程序起點; 調用程序和子程序在同一code segment中時用near, 只能被相同code segment的其它程序調用; 不在同一code segment中時用far,可以被相同或不同的代碼段程序調用。

push cx

movcx,30000

delay1: loop delay1

pop cx

ret ;子程序結束時調用, 用于實現相應地址參數從該子程序到下一步程序的轉移的轉移

delayendp

ENDSTART

改進前匯編代碼:

.MODELTINY

COM_ADDEQU0273H

PA_ADDEQU0270H

PB_ADDEQU0271H

PC_ADDEQU0272H

.STACK100

.DATA

LED_DataDB11111110B

DB11111101B

DB11111011B

DB11110111B

DB11101111B

DB11011111B

DB10111111B

DB01111111B

.CODE

START:MOVAX,@DATA

MOVDS,AX

NOP

MOVDX,COM_ADD

MOVAL,82H;PA、PB、PC為基本輸出模式

OUTDX,AL

LOOP1:CALLDL500ms

CALLDL500ms

MOVDX,PB_ADD

INAL,DX

ANDAL,00001111B

CMPAL,00000001B

JEf1

cmpal,00000010B

jef2

cmpal,00000100B

jef3

cmpal,00001000B

jef4

f1:

movdx,PA_ADD

MOVal,00H

OUTdx,al

jmpLOOP1

f2:movdx,PA_ADD

MOVal,0FFH

OUTdx,al

movdx,PC_ADD

moval,01011011B

outdx,al

jmpLOOP1

f4:

movdx,PC_ADD

moval,01100110B

outdx,al

movdx,PA_ADD

leabx,LED_DATA

moval,0

xlat

outdx,al

callDL500ms

leabx,LED_DATA

moval,1

xlat

outdx,al

callDL500ms

leabx,LED_DATA

moval,2

xlat

outdx,al

callDL500ms

leabx,LED_DATA

moval,3

xlat

outdx,al

callDL500ms

leabx,LED_DATA

moval,4

xlat

outdx,al

callDL500ms

leabx,LED_DATA

moval,5

xlat

outdx,al

callDL500ms

leabx,LED_DATA

moval,6

xlat

outdx,al

callDL500ms

leabx,LED_DATA

moval,7

xlat

outdx,al

callDL500ms

jmpLOOP1

f3:

movdx,PC_ADD

moval,01001111B

outdx,al

movdx,PA_ADD

leabx,LED_DATA

moval,7

xlat

outdx,al

callDL500ms

leabx,LED_DATA

moval,6

xlat

outdx,al

callDL500ms

leabx,LED_DATA

moval,5

xlat

outdx,al

callDL500ms

leabx,LED_DATA

moval,4

xlat

outdx,al

callDL500ms

leabx,LED_DATA

moval,3

xlat

outdx,al

callDL500ms

leabx,LED_DATA

moval,2

xlat

outdx,al

callDL500ms

leabx,LED_DATA

moval,1

xlat

outdx,al

callDL500ms

leabx,LED_DATA

moval,0

xlat

outdx,al

callDL500ms

jmpLOOP1

DL500msPROCNEAR

PUSHCX

MOVCX,30000

DL500ms1:LOOPDL500ms1

POPCX

RET

DL500msENDP

ENDSTART

前導題目:

LEDdt db 8 dup(0)

mov si, offset LEDdt

call LEDdisp

LEDdisp proc

push ax

push bx

push dx

mov bx, offset LEDtb

mov ah, 0feh

LED1:lodsb

xlat cs:LEDtb

mov dx, segport

out dx, al

mov al, ah

mov dx, bitport

out dx, al

call delay

rol ah, 1

cmp ah, 0feh

jnz LED1

pop dx

pop bx

pop ax

ret

LEDtbdb 0c0h, 0f9h, 0a4h, 0b0h, 99h, 92h, 82h, 0f8h

db 80h, 90h, 88h, 83h, 0c6h, 0c1h, 86h, 8eh

LEDdispendp

timer=10

delayproc

push bx

push cx

mov bx, timer

delay1:xor cx, cx

delay2: loop delay2

dec bx

jnz delay1

pop cx

pop bx

ret

delayendp

標簽:8255A,al,mov,跑馬燈,call,dx,全滅,bx,out

來源: https://www.cnblogs.com/CongG/p/11951066.html

總結

以上是生活随笔為你收集整理的8255控制四个双色灯C语言,汇编语言实现通过8255A和4个开关控制实现8个LED灯和8个7位数码管显示指定数字全亮、全灭、从左至右、从右至左跑马灯式点亮...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。