博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
可编程定时 / 计数器应用实验
阅读量:7113 次
发布时间:2019-06-28

本文共 3482 字,大约阅读时间需要 11 分钟。

可编程定时 / 计数器应用实验

一、实验目的

了解定时器 / 计数器 8253 的原理,掌握编制定时器 / 计数器程序设计方法。

二、实验内容

设计连线和程序,以 1MHz 的信号为时钟信号,利用 8253 产生 1s 的定时控制发光二极管变化。

三、实验连线

  1. 用户时钟的 1MHz 输出接 8253 的 CLK1
  2. 8253 的 GATE1+5V (在实验箱的左上角和右上角)。
  3. 8253 OUT1 接 8253 的 CLK2
  4. 8253 的 GATE2+5V
  5. 8253 的 OUT2 的输出为 1s 方波,接 M 区的一个发光二极管。
    1. 区的 OE# 接实验箱的地线(在实验箱的左下角和右下角)。模块电源部分( L 区)的 JP7 (控制 LED)短接。
  6. 将 B 区 J1 的插头插上扁平电缆和微机相连。
  7. 将 A 区的电源开关拨到 “内” 位置。

四、编写程序

1. 各端口的地址

  • 0 号计数器地址 304H
  • 1 号计数器地址 305H
  • 2 号计数器地址 306H
  • 计数器控制寄存器地址 307H

2. 程序源代码

CODE    SEGMENT 'code'ASSUME  CS:CODESTART:  MOV     DX,307H                 ;        MOV     AL,01110110B            ;计数器一,先读写低八位,后读写高八位,方式 3,二进制计数        OUT     DX,AL                   ;        MOV     DX,305H                 ;一号计数器        MOV     AL,0E8H                 ;        OUT     DX,AL                   ;        MOV     AL,03H                  ;        OUT     DX,AL                   ;送计数初值 03E8H = 1000        MOV     DX,307H                 ;        MOV     AL,10110110B            ;计数器二,先读写低八位,后读写高八位,方式 3,二进制计数        OUT     DX,AL                   ;        MOV     DX,306H                 ;二号计数器        MOV     AL,0E8H                 ;        OUT     DX,AL                   ;        MOV     AL,03H                  ;        OUT     DX,AL                   ;送计数初值 03E8H=1000        MOV     AH,4CH                  ;        INT     21H                     ;CODE    ENDS        END START

五、思考题

利用 8253 和 8255 设计查询方式走马灯电路,8253 每秒使的 PC4 的电位变化一次,编程查询 PC4 的状态,当 PC4 为低电平时从 8255 的 A 端口输出一个数据,使得和 A 端口相连的 8 个发光二极管依次变亮且每次只亮一个。

1. 修改连线:

  • 8253 的 OUT2 的输出为 1s 方波,接 8255 的 PC4
  • 8255 的 PA0~PA7 接 M 区的发光二极管 L1~L8
  • 模块电源( L 区)短接 JP7

2. 修改程序:

PORTA=300HPORTB=301HPORTC=302HCONTROL=303HCODE SEGMENT 'code'ASSUME CS:CODESTART:  MOV    DX,307H                 ;{工作方式初始化        MOV    AL,01110110B            ;计数器一,先读写低八位,后读写高八位,方式3,二进制计数        OUT    DX,AL                   ;}        MOV    DX,305H                 ;{一号计数器        MOV    AL,0E8H                 ;        OUT    DX,AL                   ;        MOV    AL,03H                  ;送计数初值 03E8H = 1000        OUT    DX,AL                   ;}        MOV    DX,307H                 ;{工作方式初始化        MOV    AL,10110110B            ;计数器二,先读写低八位,后读写高八位,方式3,二进制计数        OUT    DX,AL                   ;}        MOV    DX,306H                 ;{二号计数器        MOV    AL,0E8H                 ;        OUT    DX,AL                   ;        MOV    AL,03H                  ;送计数初值 03E8H = 1000        OUT    DX,AL                   ;}        MOV    DX,CONTROL              ;{工作方式初始化        MOV    AL,88H                  ;A 口输出,C 口高四位输入        OUT    DX,AL                   ;}        MOV    BL,11111110B            ;二极管初始显示状态        MOV    DX,PORTC                ;{L1:     IN     AL,DX                   ;        TEST   AL,10H                  ;判断 AL 第 5 位是否为 1        JNZ    L1                      ;ZF = 0 转移到标号地址}        MOV    DX,PORTA                ;{        MOV    AL,BL                   ;将 BL 的值输出到二极管        OUT    DX,AL                   ;}        ROL    BL,1                    ;循环左移一位L2:     MOV    DX,PORTC                ;{        IN     AL,DX                   ;        TEST   AL,10H                  ;判断 AL 第 5 位是否为 1        JZ     L2                      ;ZF = 1 转移到标号地址}        JMP    L1                      ;        MOV    AH,4CH                  ;        INT    21H                     ;CODE    ENDS        END START

六、实验小结

本次实验,加深了我对定时器 / 计数器 8253 的原理的了解,掌握了编制定时器 / 计数器程序设计方法。在最后的思考题中,通过不断的尝试、修改连线和程序,我对接口编程更加熟练了,为我今后的实验及课程设计打下了良好的基础。

转载地址:http://cjwel.baihongyu.com/

你可能感兴趣的文章
python 多线程插入mysql
查看>>
数据库索引学习相关资料汇总
查看>>
equals和hashcode详解
查看>>
简单使用jumpserver
查看>>
利用碎片时间,TURBOMAIL飞邮手机客户端助你抓住每一个机遇
查看>>
execute、executeQuery和executeUpdate之间的区别
查看>>
equals()和hashCode()区别?
查看>>
开篇可好
查看>>
出现故障任何信息还是要亲自确认
查看>>
iOS开发-自定义控件的方式及注意
查看>>
Heartbeat + drbd 实现对mysql服务的高可用
查看>>
趣味学习:一篇文章读懂三层交换机【新任帮主】
查看>>
Hadoop源代码分析 - MapReduce(转载)
查看>>
C#摄像头实现拍照功能的简单代码示例
查看>>
常用的js时间函数
查看>>
在2960交换机上根据IP或MAC查找相应端口
查看>>
ajax验证用户与密码
查看>>
第五周网络攻防作业
查看>>
关于wlan合路信道设置问题
查看>>
我的友情链接
查看>>