怎样用C语言编写单片直接连接的8253初始化程序,急!

怎样用C语言编写单片直接连接的8253初始化程序,急!,第1张

data segment

prot1 equ 0d101h

pctrl equ 0d103h

data ends

code segment

assume cs:code

start:

mov ax,data

mov ds,ax

mov al,76h 控制字01,11,011,0 通道1,方式3,二进制

mov dx,pctrl

out dx,al

mov ax,20000 送计数器初值

mov dx,prot1

out dx,al

mov al,ah

out dx,al

mov ah,4ch

int 21h

code ends

end start

#include<reg51.h>

main()

{

unsigned char data *ptr

ptr=0x03

*ptr=0x10

ptr=0x00

*ptr=0x03

while(1)

}

data segment

ioport equ 0ff00h - 0280h

io8253a equ ioport + 280h counter 0 address

io8253b equ ioport + 281h counter 1 address

io8253c equ ioport + 282h counter 2 address

io8253d equ ioport + 283h 8253控制端

ts db 'press 1,lamb on once,press 2,lamb on twice,press 3 ,lamb on third,press q quit',0dh,0ah,'$'

ts1 db 'over',0ah,0dh,'$'

data ends

code segment

assume cs: code,ds:data

start:

mov ax,data

mov ds,ax

lea dx,ts

mov ah,9

int 21h 输出提示1

zl: mov ah,01h

int 21h 输入取值

cmp al,31h

jz l 如果为1,调到L

cmp al,32h

jz lec 如果为2,跳到lec

cmp al,33h

jz ls 如果为3,跳到ls

cmp al,71h

jz over 如果为q,跳入jieshu

jmp zl

l: mov dx,io8253d

mov al,30h

out dx,al 定义控制字段,使用计数器0,方式0

mov dx,io8253a

mov al,0aah

out dx,al

out dx,al 计数器0送初值0aaaah

jmp zl

lec: mov dx,io8253d

mov al,70h

out dx,al 定义控制字段,使用计数器0,方式0

mov dx,io8253b

mov al,0aah

out dx,al 计数器1初值0aaaah

out dx,al

mov cx,0ffffh

wait3: mov bx,2000h

wait4: dec bx

jnz wait4

loop wait3 输出延时循环,将闪烁两次

mov dx, IO8253B

mov al, 0AAH

out dx, al

out dx, al 再次给计数器1送入计数初值0AAAAH

jmp zl

LS: mov dx, IO8253D

mov al, 0B0H

out dx, al 定义控制字,使用计数器2,方式0

mov dx, IO8253C

mov al, 0AAH

out dx, al

out dx, al 给计数器2送入初值0AAAAH

mov cx, 0FFFFH

wait1: mov bx, 2000h

wait2: dec bx

jnz wait2

loop wait1 输出延时循环,将闪烁两次分时

mov al, 0AAH

mov dx, IO8253C

out dx, al

out dx, al 再次给计数器2送入初值0AAAAH

mov cx, 0FFFFH

wait11:mov bx, 2000H

wait22:dec bx

jnz wait22

loop wait11 输出延时循环,将闪烁两次分时

mov dx, IO8253C

mov al, 0AAH

out dx, al

out dx, al 再次给计数器2送入初值0AAAAH

jmp zl

over: lea dx, ts1

mov ah, 9

int 21H

mov ah, 4CH

int 21H

code ends

end start


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11097389.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-13
下一篇2023-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存