- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 常用接口技术
第9章 常用接口技术 制作 钱晓捷 第9章 常用接口技术 9.1 定时控制接口 9.1.1 8253/8254定时器 9.1.2 定时器的应用 9.2 并行接口 9.2.1 并行接口电路8255 9.2.2 8255的应用 9.2.3 PC机键盘 9.3 串行通信接口 9.3.1 串行通信基础 9.3.2 串行接口标准 9.3.3 异步通信程序 9.4 模拟接口 9.4.1 模拟输入输出系统 9.4.2 D/A转换器 9.4.3 A/D转换器 定时器 定时器(计数器):由数字电路中的计数电路构成,记录输入脉冲的个数 如果脉冲信号具有一定随机性,往往通过脉冲的个数可以获知外设的状态变化次数(计数) 如果脉冲信号的周期固定(使用高精度晶振产生脉冲信号),个数乘以周期就是时间间隔(定时) Intel 8253/8254可编程间隔定时器 3个独立的16位计数器通道 每个计数器有6种工作方式 定时器内部结构 3个相互独立的计数器通道,结构完全相同 计数器0 计数器1 计数器2 每个计数器通道 16位减法计数器 16位预置寄存器 输出锁存器 定时器外设引脚 CLK时钟输入信号 在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1 GATE门控输入信号 控制计数器工作,可分成电平控制和上升沿控制两种类型 OUT计数器输出信号 当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号 连接微处理器引脚 D0~D7数据线 A0~A1地址线 RD*读信号 WR*写信号 CS*片选信号 定时器工作过程 8253有6种工作方式,由方式控制字确定 每种工作方式的过程类似: ① 设定工作方式 ② 设定计数初值 [ ③ 硬件启动 ] ④ 计数初值进入减1计数器 ⑤ 每输入一个时钟计数器减1的计数过程 ⑥ 计数过程结束 定时器方式0:计数结束中断 定时器方式1:可编程单稳脉冲 定时器方式2:频率发生器(分频器) 定时器方式3:方波发生器 定时器方式4:软件触发选通信号 定时器方式5:硬件触发选通信号 定时器方式控制字 控制字写入控制字I/O地址:A1A0=11 定时器方式控制字编程 ;8253的计数器0、1、2端口和控制端口地址: 40H~43H ;设置其中计数器0为方式0 ;采用二进制计数,先低后高写入计数值 mov al,30h ;方式控制字:30H=00 11 000 0B out 43h,al ;写入控制端口:43H 定时器计数值 选择二进制时 计数值范围:0000H~FFFFH 0000H是最大值,代表65536 选择十进制(BCD码) 计数值范围:0000~9999 0000代表最大值10000 计数值写入计数器各自的I/O地址 按方式控制字规定的读写格式进行 定时器计数值编程 ;8253的计数器0、1、2端口和控制端口地址: 40H~43H ;设置计数器0采用二进制计数 ;写入计数初值:1024(=400H) mov ax,1024 ;计数初值:1024(=400H) ;写入计数器0地址:40H out 40h,al ;写入低字节计数初值 mov al,ah out 40h,al ;写入高字节计数初值 定时器的应用 定时中断 mov al,36h ;计数器0为方式3,采用二进制计数, ;先低后高写入计数值 out 43h,al ;写入方式控制字 mov al,0 ;计数值为0 out 40h,al ;写入低字节计数值 out 40h,al ;写入高字节计数值 计数器0:方式3,计数值:65536,输出方波频率: 1.19318MHz÷65536=18.206Hz,不断产生 OUT0端接8259A的IRQ0,每秒产生18.206次中断请求,或说每隔55ms(54.925493ms)申请一次中断 DOS系统利用计数器0的这个特点,通过08号中断服务程序实现了日时钟计时功能 定时刷新 需要重复不断提出刷新请求 门控总为高,选择方式2或3 2ms内刷新128次,即15.6?s刷新一次 计数初值为18 mov al,54h ;计数器1为方式2 ;采用二进制计数,只写低8位计数值 out 43h,al ;写入方式控制字 mov al,18 ;计数初值为18 out 41h,al ;写入计数值 扬声器频率控制 ;发音频率设置子程序 ;入口参数:AX=1.19318×106÷发音频率 speaker proc push ax ;暂存入口参数 mov al,0b6h ;定时器2为方式3,先低后高 out 43h,al ;写入方式控制字 pop ax ;恢复入口参数 out 42h,al ;写入低8位计数值 mov al,ah out 42h,al ;写入高8位计数
文档评论(0)