标题: 8253仿真电路与源程序 [打印本页]

作者: zhuisuiagan    时间: 2016-11-11 15:48
标题: 8253仿真电路与源程序
8253仿真电路与程序;包括方式0与方式3的仿真与程序.


仿真工程文件与完整源码打包下载:
8253仿真.zip (54.18 KB, 下载次数: 46)
  1. code segment
  2. assume  cs:code
  3. start:
  4. ;CPU与第一个8253连接时,其四个地址为10h 12h 14h 16h
  5. mov al,  00010000b ;设置计数器0的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
  6. out 16h, al        ; 将计数器0的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
  7. mov al,  25      ;将计数器0的计数初始字(只写低8位)给al
  8. out 10h, al;      ;将al内容写入计数器0的计数初始寄存器CR,其地址为10h


  9. mov al,  01010000b ;设置计数器1的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
  10. out 16h, al        ; 将计数器1的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
  11. mov al,  50      ;将计数器1的计数初始字(只写低8位)给al
  12. out 12h, al        ;将al内容写入计数器1的计数初始寄存器CR,其地址为10h



  13. mov al,  10010000b  ;设置计数器2的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
  14. out 16h, al        ; 将计数器2的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
  15. mov al,  100      ;将计数器2的计数初始字(只写低8位)给al
  16. out 14h, al        ;将al内容写入计数器2的计数初始寄存器CR,其地址为10h




  17. ;CPU与第二个8253连接时,其四个地址为20h 22h 24h 26h
  18. mov al,  00010110b ;设置计数器0的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
  19. out 26h, al        ; 将计数器0的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
  20. mov al,  50      ;将计数器0的计数初始字(只写低8位)给al
  21. out 20h, al;      ;将al内容写入计数器0的计数初始寄存器CR,其地址为10h


  22. mov al,  01010110b ;设置计数器1的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
  23. out 26h, al        ; 将计数器1的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
  24. mov al,  100      ;将计数器1的计数初始字(只写低8位)给al
  25. out 22h, al        ;将al内容写入计数器1的计数初始寄存器CR,其地址为10h



  26. mov al,  10010110b  ;设置计数器2的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
  27. out 26h, al        ; 将计数器2的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
  28. mov al,  200      ;将计数器2的计数初始字(只写低8位)给al
  29. out 24h, al        ;将al内容写入计数器2的计数初始寄存器CR,其地址为10h




  30. code ends
  31. end start
复制代码

  1. code segment
  2. assume  cs:code
  3. Timer0  equ 20h
  4. Timer1  equ 22h
  5. Timer2  equ 24h
  6. Control equ 26h


  7. start:
  8. ;CPU与8253连接时,其四个地址为20h 22h 24h 26h
  9. mov      al,  00010110b ;设置计数器0的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
  10. out Control,  al        ; 将计数器0的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
  11. mov      al,  2         ;将计数器0的计数初始字(只写低8位)给al
  12. out  Timer0,  al;      ;将al内容写入计数器0的计数初始寄存器CR,其地址为10h


  13. mov      al,  01010110b ;设置计数器1的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
  14. out Control,  al        ; 将计数器1的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
  15. mov      al,  4         ;将计数器1的计数初始字(只写低8位)给al
  16. out  Timer1,  al        ;将al内容写入计数器1的计数初始寄存器CR,其地址为10h



  17. mov      al,  10010110b ;设置计数器2的控制字,计数初始字写入时只写低8位(高8位自动清0),选择方式0,控制字为二进制格式
  18. out Control, al         ; 将计数器2的控制字写入其寄存器,端口地址为三个计时器公用地址26H。
  19. mov      al,  10        ;将计数器2的计数初始字(只写低8位)给al
  20. out  Timer2, al         ;将al内容写入计数器2的计数初始寄存器CR,其地址为10h




  21. code ends
  22. end start
复制代码


作者: kevine1207    时间: 2017-10-21 18:33
谢谢分享




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1