4-外围接口-6.3[精].pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4-外围接口-6.3[精]

一般的PC/AT、286、386、486等微机均配有CMOS芯片,CMOS芯片包含了一个实时钟和64个字节的CMOS内存。 在CMOS内存中,0-0DH为实时钟的有关信息,0E-3FH包含计算机的硬件配置信息,如常规内存的大小、扩展 内存的大小、软盘的类型、固定盘的类型及其物理参数、显示器的类型等。 CMOS内存的地址口和数据口的口地址分别为70H和71H。在对CMOS内存进行写操作时,首先将要写入的CMOS内 存的地址送到口地址70H,再将要写入的数据送口地址71H。在对CMOS内存进行读操作时,首先将要读出的 CMOS内存的地址送到口地址70H,再从口地址71H读出数据到AL寄存器。 * MC146818为motorola公司生产的RTC芯片 * CMOS共有128字节的ram,0-0D与时间相关。 * 随着微机的发展,计算机内需要保存的配置越来越多,现在CMOS为128~256个字节的容量,为了保证兼容性,BIOS厂商将自己BIOS中CMOS ram的前64字节的内容设置保持与MC146818A的COMS RAM一致,扩展出来的部分再加入特殊设置。 * (1) 计数器0—系统定时器 工作方式:3方式,计数初值:0(65536)。 1.系统定时器 连接到8259A的IRQ0(中断类型号为8)上。 fOUT0=1.1931816MHz/65536=18.2Hz, 即:每秒产生18.2次中断用于日时钟计时。 应用:系统BIOS提供INT 1CH用户定时中断接口; INT 8H(IRQ0)调用INT 1CH。 2.软盘驱动器马达控制 日时钟运行原理 日时钟定时中断服务流程 初始值计算 计数器0:55ms(54.925 493ms)产生一次中断,即每秒产生18.206次中断请求。 计数初始值=1.193 18MHz÷18.206 =65 536(即0000H)    计数器0初始化程序 MOV AL,35H;设置计数器0:方式3,双字节,二进 制计数 OUT 43H,AL;写入控制寄存器 MOV AL,0;计数初值 OUT 40H,AL;写低字节 OUT 40H,AL;写高字节 (2)计数器1—动态存储器定时刷新控制 工作方式:2方式,计数初值:18。 连接到8237的DREQ0上,定时产生负脉冲。 脉冲宽度=1/ 1.1931816MHz=838ns, 脉冲周期=18/1.1931816MHz=15.08μs, 即:每隔15.08μs产生一个脉冲用于刷新。 初始值计算 计数器1: 计数初始值=15.084μs×1.19318 MHz=17.997 9≈18    计数器1初始化程序 MOV AL,54H;设置计数器1:只写低字节,方式2, 二进制计数 OUT 43H,AL;写入控制字寄存器 MOV AL,18 ;写入计数初值18 OUT 41H,AL;计数器1 (3) 计数器2—扬声器音频发生器 工作方式:3方式,计数初值:由调用程序控制。 与8255的PB口D1信号“与”后连接到扬声器上,控制扬声器发生频率及时长。 软件控制发声:T/C2的OUT2=1,CPU控制8255的PB口的D1位的电平实现; 硬件控制发声:8255的PB口的D1位为高电平,控制8254的T/C2的OUT2实现。 IBM-PC系列发声驱动电路示意 初始值计算 计数器2: 计数初始值和发声频率相关。 假设扬声器的发声频率为1kHz,则 计数初始值=1.193 18 MHz÷1kHz=1 190 计数器2的发声程序 BEEP PROC MOV AL,0B6H;设置计数器2,写双字节,方式3,二 进制计数 OUT 43H,AL;写入控制寄存器 MOV AX,533H;装入计数初值0533H OUT 42H,AL;写入低字节 MOV AL,AH OUT 42H,AL;写入高字节 IN AL,61H;读取8255的PB口原输出值 计数器2的发声程序(续) MOV AH,AL;将原输出的值保留与AH中 OR AL,03H;使PB1PB0均为1 OUT 61H,AL;打开GATE2门,输出方波到扬声器 SUB CX,CX;CX循环计数,最大为216 L: LOOP L ;循环延时 DEC BL;子程序入口条件 计数器2的发声程序(续) JNZ L;BL=6发长声(3S), BL=1发短声(0.5S) MOV AL,AH;取出AH中的8255PB口的原输出值 OUT

文档评论(0)

jsntrgzxy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档