8253仿真电路与程序;包括方式0与方式3的仿真与程序.
仿真工程文件与完整源码打包下载:
8253仿真.zip
(54.18 KB, 下载次数: 46)
- code segment
- assume cs:code
- start:
- ;CPU与第一个8253连接时,其四个地址为10h 12h 14h 16h
- mov al, 00010000b ;设置计数器0的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
- out 16h, al ; 将计数器0的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
- mov al, 25 ;将计数器0的计数初始字(只写低8位)给al
- out 10h, al; ;将al内容写入计数器0的计数初始寄存器CR,其地址为10h
- mov al, 01010000b ;设置计数器1的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
- out 16h, al ; 将计数器1的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
- mov al, 50 ;将计数器1的计数初始字(只写低8位)给al
- out 12h, al ;将al内容写入计数器1的计数初始寄存器CR,其地址为10h
- mov al, 10010000b ;设置计数器2的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
- out 16h, al ; 将计数器2的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
- mov al, 100 ;将计数器2的计数初始字(只写低8位)给al
- out 14h, al ;将al内容写入计数器2的计数初始寄存器CR,其地址为10h
-
- ;CPU与第二个8253连接时,其四个地址为20h 22h 24h 26h
- mov al, 00010110b ;设置计数器0的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
- out 26h, al ; 将计数器0的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
- mov al, 50 ;将计数器0的计数初始字(只写低8位)给al
- out 20h, al; ;将al内容写入计数器0的计数初始寄存器CR,其地址为10h
- mov al, 01010110b ;设置计数器1的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
- out 26h, al ; 将计数器1的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
- mov al, 100 ;将计数器1的计数初始字(只写低8位)给al
- out 22h, al ;将al内容写入计数器1的计数初始寄存器CR,其地址为10h
- mov al, 10010110b ;设置计数器2的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
- out 26h, al ; 将计数器2的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
- mov al, 200 ;将计数器2的计数初始字(只写低8位)给al
- out 24h, al ;将al内容写入计数器2的计数初始寄存器CR,其地址为10h
- code ends
- end start
复制代码
- code segment
- assume cs:code
- Timer0 equ 20h
- Timer1 equ 22h
- Timer2 equ 24h
- Control equ 26h
- start:
- ;CPU与8253连接时,其四个地址为20h 22h 24h 26h
- mov al, 00010110b ;设置计数器0的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
- out Control, al ; 将计数器0的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
- mov al, 2 ;将计数器0的计数初始字(只写低8位)给al
- out Timer0, al; ;将al内容写入计数器0的计数初始寄存器CR,其地址为10h
- mov al, 01010110b ;设置计数器1的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
- out Control, al ; 将计数器1的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
- mov al, 4 ;将计数器1的计数初始字(只写低8位)给al
- out Timer1, al ;将al内容写入计数器1的计数初始寄存器CR,其地址为10h
- mov al, 10010110b ;设置计数器2的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
- out Control, al ; 将计数器2的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
- mov al, 10 ;将计数器2的计数初始字(只写低8位)给al
- out Timer2, al ;将al内容写入计数器2的计数初始寄存器CR,其地址为10h
- code ends
- end start
复制代码
|