微型计算机技术第三版课件,微型计算机技术课件073.ppt

微型计算机技术课件073

第8章 定时计数控制接口 微机原理及接口技术 定时计数控制接口 1. 定时与计数 在微机系统或智能化仪器仪表的工作过程中,经常需要使系统处于定时工作状态,或者对外部过程进行计数。 定时或计数的工作实质均体现为对脉冲信号的计数,如果计数的对象是标准的内部时钟信号,由于其周期恒定,故计数值就恒定地对应于一定的时间,这一过程即为定时,如果计数的对象是与外部过程相对应的脉冲信号(周期可以不相等),则此时即为计数。 2. 定时功能的实现方法 软件延时 利用微处理器执行一个延时程序段实现 不用硬件,但占用CPU时间、定时精度不高,随系统时钟频率改变 不可编程的硬件定时 采用分频器、单稳电路或简易定时电路控制定时时间 定时电路简单、定时时间可以在一定范围改变 可编程的硬件定时 软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路 具有多种工作方式、能够输出多种控制信号 计数器/定时器的基本原理 可编程计数器/定时器的工作原理 基于计数器的减1工作 计数器/定时器的用途 ①在多任务的分时系统中用来作为中断信号实现程序的切换。 ②可以往I/O设备输出精确的定时信号。 ③作为一个可编程的波特率发生器。 ④实现时间延迟 定时/计数器芯片Intel8253 Intel8253是8086/8088微机系统常用的定时/计数器芯片,它具有定时与计数两大功能,同类型的定时/计数器芯片还有Intel8254等。 1. 面向CPU的引脚 2. 各计数器的3个引脚 1. 计数器 方式0时序图 方式1时序图 方式2时序图 方式3时序图 各种工作方式的输出波形 2. 写入计数值 选择二进制时 计数值范围:0000H~FFFFH 0000H是最大值,代表65536 选择十进制(BCD码) 计数值范围:0000~9999 0000代表最大值10000 3. 读取计数值 对8位数据线,读取16位计数值需分两次 计数在不断进行,应该将当前计数值先行锁存,然后读取: 向控制字I/O地址:给8253写入锁存命令 从计数器I/O地址:读取锁存的计数值 8253在IBM PC系列机上的应用 定时中断和定时刷新 计数器0:初始化程序 mov al,36h;36H=00 11 011 0B ;计数器0为方式3,采用二进制计数 ;先低后高写入计数值 out 43h,al;写入方式控制字 mov al,0;计数值为0 out 40h,al;写入低字节计数值 out 40h,al;写入高字节计数值 计数器0:定时中断 计数器0:方式3,计数值:65536,输出频率为1.19318MHz÷65536=18.206Hz的方波 门控为常启状态,这个方波信号不断产生 OUT0端接8259A的IRQ0,用作中断请求信号 每秒产生18.206次中断请求,或说每隔55ms(54.925493ms)申请一次中断 DOS系统利用计数器0的这个特点,通过08号中断服务程序实现了日时钟计时功能 计数器1:定时刷新 需要重复不断提出刷新请求 计数器1:初始化程序 mov al,54h;54H=01 01 010 0 B ;计数器1为方式2,采用二进制计数 ;只写低8位计数值 out 43h,al;写入方式控制字 mov al,18;计数初值为18 out 41h,al;写入计数值 扬声器控制 计数器2的输出控制扬声器的发声音调 计数器2只能工作在方式3,才能输出一定频率的方波,经滤波后得到近似的正弦波,进而推动扬声器发声 扬声器还受控于并行接口(8255芯片) 必须使PB0和PB1同时为高电平,扬声器才能发出预先设定频率的声音 发音频率设置子程序 ;入口参数AX=1.19318×106÷发音频率 speakerproc push ax mov al,0b6h;b6h out 43h,al;写入控制字 pop ax out 42h,al;写入低8位计数值 mov al,ah out 42h,al;写入高8位计数值 ret speakerendp 扬声器开子程序 speakonproc push ax in al,61h;PB端口的地址为61H or al,03h ;D1D0=PB1PB0=11B,其他位不变 out 61h,al pop ax ret speakonendp 扬声器关子程序 speakoffproc push ax in al,61h;PB端口的地址为61H and al,0fch ;D1D0=PB1PB0=00B,其他位不变 out 61h,al pop ax ret speakoffendp 例题1 扬声器声音的控制 ;数据段 f

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值