可编程接口芯片及应用PPT.ppt

  1. 1、本文档共103页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可编程接口芯片及应用PPT

第9章 可编程接口芯片及应用; CPU要与外设交换信息,必须通过接口电路,在接口电 路中一般具有如下电路单元: ⑴ 输入/输出数据缓冲器和锁存器,以实现数据的I/O。 ⑵ 控制命令和状态寄存器,用以存放对外设的控制命令,以及外设的状态信息。 ⑶ 地址译码器,用来选择接口电路中的不同端口(寄存器)。 ⑷ 读写控制逻辑。 ⑸ 中断控制逻辑。 ;9.2 可编程计数器/定时器8253;。 9.2.1 8253功能及结构 Intel 8253具有3个独立的16位计数器,使用单一+5V电源,采用NMOS工艺,24脚双排直插式封装的大规模集成电路1.8253主要功能 ⑴ 每片有3个独立的16位计数通道。 ⑵ 每个计数器可按二进制或十进制来计数,时钟脉冲下降沿使计数器进行减1操作 。 ⑶ 每个计数器最高计数速率可达2.6MHZ。 ⑷ 每个计数器可编程设定6种工作方式之一。 ⑸ 所???输入、输出均与TTL电平兼容,便于与外围接口电路相连。;2. 8253的内部结构和引脚特性;9.2.3 8253工作方式与工作时序 ;8253方式0 三种情况时序波形: ;2.方式1(可重触发单稳态方式) ;8253方式1 三种情况时序波形:;3.方式2(周期脉冲发生器) ;8253方式2 三种情况时序波形:;4.方式3(方波发生器) ;8253方式3 三种情况时序波形: ;5.方式4(软件触发的选通信号发生器) ;8253方式4 三种情况时序波形: ;6.方式5(硬件触发的选通信号发生器) ;8253方式5 三种情况时序波形:;9.2.4 8253的初始化编程;3.读计数值 在计数过程中,若要读取当前的计数值,则需采用以下方法: 先写入一个方式控制字,该方式控制字的SC1SC0指明要读取的计数通道,RW1RW0设为00即锁定计数值;然后再按照初始化该计数器时的读写方法读取计数值。 ;9.2.5 8253应用 ;;计数器0为方式3,先写低字节,后写高字节,二进制计数,计数初值为0。输出端OUT0接至中断控制器8259A的IR0,OUT0输出的脉冲周期约为55ms(65536÷1193200),即计数器0每隔55ms产生一次中断请求。 计数器1为方式2,只写低字节,二进制计数,计数初值为18。输出端OUT1接至DMA控制器8237A通道0的DMA请求DREQ0,作为定时(15.08μs)刷新动态存储器的启动信号。;IBM-PC机BIOS对CNT0的初始化程序: ; BIOS中BEEP子程序,功能为使CNT2输出方波到扬声器。 计数器2为方式3,先写低字节,后写高字节,二进制计数,计数初值为0533H。GATE2由8255A的PB0控制,当GATE2为高电平时,OUT2输出频率为896HZ的方波,经功率放大器和滤波后驱动扬声器发声。 ;【例2】利用8253的通道0和通道1,设计并产生周期为1HZ的方波。设通道0的输入时钟频率为 2MHz,8253所占端口地址为80H~83H。;电路图:;8253初始化程序如下:;【例3】 8253应用(键盘演奏音乐程序);初值之间的关系: (fin=1.1932MHz=1193200 Hz) (fin=1193200=1234F0H) 给定fout 在DI寄存器中,DX和AX存放1.1932MHz的十六进制值1234F0H,则产生 fout输出的计数初值的程序段:(初值存于AX中) MOV DX, 12H MOV AX, 34F0H ; DX和AX存放 fin DIV DI ;DI存放fout 结果在AX中 ;10ms秒软件延时程序: MOV CX, 2801 DELAY: LOOP DELAY 如产生1秒的程序: MOV BX, 100 WAIT: MOV CX, 2801 DELAY: LOOP DELAY DEC BX JNZ WAIT ;data segment freq dw 262,294,330,349,392,440,494 data ends code segment assume ds:data, cs:code main proc far start: push ds mov ax,0 push ax mov ax,data mov ds,ax mov al,0b6h out 43h, al in al,61h

文档评论(0)

djdjix + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档