资源预览内容
第1页 / 共70页
第2页 / 共70页
第3页 / 共70页
第4页 / 共70页
第5页 / 共70页
第6页 / 共70页
第7页 / 共70页
第8页 / 共70页
第9页 / 共70页
第10页 / 共70页
亲,该文档总共70页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
课程设计题目:基于PC机的电子琴设计 目的:1.掌握PC机扬声器发声原理2.掌握PC机键盘工作原理3.掌握中断技术4.掌握8253,8255,8259等芯片在 PC机使用。5.加强汇编语言编程能力,中断程 序编写方法 要求:当按下PC机键盘数字键1-8时,发 低音1,2,3,4,5,6,7,i八个音调。当按下 Q,W,E,R,T,Y,U,I时发中音1,2,3,4,5,6,7,i八 个音调 ,当按下A,S,D,F,G,H,J时发高音 1,2,3,4,5,6,7,i八个音调。按键由中断的方 式直接从并行口8255读取, 由软件实现转 化,从而确定键值,根据键值使8253发不 同频率的音,完成电子琴设计。PC机中硬件介绍可编程的定时/计数器 内部有3个16位功能相同独立计数器通道 每个计数器可工作在6种方式 计数频率8253(2MHZ),8254(5MHZ )一、8253在PC/XT机中的应用GATE0 GATE1 GATE2CLK0 CLK1 CLK2OUT0OUT1OUT2D7D0D CQSCLRDCQ+5VQ+5VDRQ08237-5IRQ0 8259T/C2 OUT扬声器接口RD WR CS A1 A0 D7D0PCLK 2.38636MHzRESETDRVA1 A0IOR IOW T/C CSPB0 8255- 5DACK0 BRD8253PC机中8253的地址 为40H43H通道0:用来做系统一般定时器用,其门控 信号接至高电平,使得计数器0一直工作。 通道0的输出接至系统中断控制器8259的 IRQ0输入,BIOS设定为方式3方波产生器, 初值栽入为0,因此正常情况下每秒产生 18.2的中断,BIOS即利用此周期性的中断来 维持电脑的时间计数通道1:用来做系统存储器刷新,门控信号输入 接高电平,计数器工作一直有效,PC的BIOS在 启动时设定此通道工作于方式2做比率产生器 用,计数器每15US产生一次存储器刷新信号, 此通道的计数器不允许被使用者加以利用通道2:用做喇叭驱动,门控输入可以由输出口 (I/O地址61H)的位0加以控制启动或关闭。若 启动,设定为工作方式3做方波产生器可以持续 地由此通道送出固定频率的方波信号至喇叭,驱 动喇叭发出声音8253的初始化编程步骤: *写入控制字 *写入计数初值定时时间=时钟脉冲周期*预置计数初值N写控制字写计数值低8位写计数值高8位*非必须控制字寄存器:是一种只写寄存器,由CPU向它 写入控制字,规定各计数器通道工作方式,读写 格式、计数进制。SC1 SC0 RL1 RL0 M2 M1 M0 BCD 1 BCD码计数 0 2进制计数 000 方式0 001 方式1 X10 方式2 X11 方式3 100 方式4 101 方式500 通道0 01 通道1 10 通道2 00 计数器锁存,供CPU读取 01 只读/写计数器低字节 10 只读/写计数器高字节 11 先读/写低字节, 再读/写高字节MOV AL,10110110B ; 8253计数器2方式3OUT 43H,AL MOV BX,FRED ;所要分频技术值MOV AL,BL ;先写低字节OUT 42H,ALMOV AL,BH ;再写高字节OUT 42H,AL二、PC微机键盘及接口 1、PC微机键盘特点 PC微机常用的键盘有101键的增强型键盘和102键的 扩展键盘。不论键数的多少均具有如下特点: 键盘由单片机、译码器和16行X 8列的键开关矩阵 三大部分组成。 按键采用电容开关,即按键时的上下动作使电容 量发生变化,从而实现开关接通或断开的目的。它是一种由单片机扫描、编码的智能化键盘。但 是,它不能直接提供与键功能对应的键值或键码, 必须由主机在键处理程序中将键盘提供的扫描码 转换为 反映键功能的ASCII码。它是一个与主机箱分开的独立部件,通过一根五 芯电缆与主机相连接。2.PC微机键盘的功能 串行接受键盘送来的扫描码,完成串并转换 后保存 收妥一个键盘扫描码后,立即产生一个中断 请求信号 保存的扫描码可供CPU读取,并通过软件进 行相应转换处理 接受CPU的命令,输出到键盘,并接受键盘 回送的响应信号SE DS S/P D0 D1 OE CLRCLK GD CLR RD CLR RQPCLK RESETCLK DATA RESET GND +5VPB7PB6D CLK CLR PRQQQ1+5VIRQ1OA OBOHOHPA7 PA6PA0+5V微机键盘接口电路LS332LS 332 串并转换电路 D1 串行输入,和接口中DATA连接 OAOH 并行输出,和8255的PA0PA7连接,供 CPU读取 OH是中断源,通过中断请求触发器连8259的 IRQ1,作为向CPU提出申请的中断源 PB7 允许读取扫描码(为0),清除中断请求信号 (高到低跳变) PB6 为1该接口电路能工作接口中的CLK经过两级同步和LS322的CLK相连。工作原理: 当PB7和IRQ1为0时,LS322接受串行数 据(DATA),实现串并转换。 收到8位扫描码,LS322的OH为1,使得 IRQ1有效,向CPU提出中断申请,同时 中断请求触发器的Q端输出0,使DI 为0 ,通知接口暂时不送扫描码。 CPU接受到中断请求信号,通过8255的 A口读取数据,并使PB7产生1到0跳变, 清除LS322和中断请求触发器。3.PC机键值的获取按下一个键时,开关接通,该芯片就产生一 个扫描码(通码), 该扫描码说明了按下的键在 键盘上的位置松开按下的键时,也产生一个扫描码(断码 ),该扫描码说明了松开的键在键盘上的位置。扫描码长度为一个字节(16位),通码的第 7位为0,断码的地7位为1。 即:断码通码80h(80h相当于二进制1000 0000)三、PC机中的82551.8255有3个8位并行口2. 方式0:基本I/O方式1:选通I/O方式2:双向I/O8255PA口 PB6 PB7键盘PB0 PB1扬声器8255在PC机中的地址为60H63H8255的控制字 1. 方式选择控制字 2. 置位/复位控制字 方式选择控制字D7 D6 D5 D4 D3 D2 D1 D0C口低4位I/O1=输入 0=输出B口I/O1=输入 0=输出B口方式0=方式0 1=方式1C口高4位I/O1=输入 0=输出A口I/O1=输入 0=输出A口 方式00=方式001=方式11X=方式2D7=1 标志位 置位/复位控制字D7 D6 D5 D4 D3 D2 D1 D0 1 置位 0 复位 000 选中PC0 001 选中PC1111 选中PC7位选择任意值D7=0 标志位 8255初始化MOV AL,99H;模式0,A口、C口输入OUT 63H,AL ;B口输出MOV AL,80H ;PB7=1OUT 61H,ALMOV AL,40H ;PB7=0,PB6=1OUT 61H,AL启动扬声器工作IN AL,61H ;读PB口当前状态OR AL,03H ;使PB1、PB0均为1OUT 61H,AL ;使扬声器发声(开始发音)当然扬声器发声还要控制8253芯片IN AL,61H ;读PB口当前状态AND AL,0FCH ;使PB1、PB0均为0OUT 61H,AL ;8253计数器2,扬声器停止工作停止扬声器工作四、PC机中8259优先级排队管理优先级排队管理 接受和扩充外部设备的中断请求接受和扩充外部设备的中断请求 提供中断类型号提供中断类型号 进行中断请求的屏蔽和开放进行中断请求的屏蔽和开放PC机中有2块中断管理芯片:主片、从片T/C0计时中断 键盘控制器中断 级联中断 串行口2 串行口1 并行口2 软盘控制器 并行口108 09 0A 0B 0C 0D 0E 0FIR0 IR1 IR2 IR3 IR4 IR5 IR6 IR770 71 72 73 74 75 76 77 INTAINTAINTAINTAINTINTINTRINTR主片主片从片从片口地址:口地址: 20H 21H20H 21H口地址:口地址: A0H A1HA0H A1H双片IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7SP/ENSP/EN+5VGND共15级向量中断,采用两片级连,故CAS2CAS0 作互连线,从片的INT直接连到主片的IR2上。 端口地址,主片在020H03F范围内,实际使用 020H和021H。从片在0A00BFH范围,实际使用 0A0H,0A1H两个端口。 主、从片的中断请求信号均采用边沿触发。 采用完全嵌套方式,优先级的排列次序为0级最高, 依次为1级,8-15级,然后是3-7级。 采用非缓冲方式,主片的SPEN端接+5V,从片SP EN端接地。 设定0级-7级对应主片的中断号为8HOFH,8级 15级对应从片的中断号为70H77H。五、 8259A的编程方法1.如何对8259进行初始化?8259的命令字分为初始化命令字和操 作方式命令字两种 (1)4个初始化命令字ICW1、ICW2、 ICW3和ICW4 (2)3个操作方式命令字OCW1、OCW2 和OCW3对8259的初始化是通过CPU对8259A 送控制命令字实现的。对于只占两个 I/O地址的8259A,CPU对8259A各寄存 器的读写是I/O地址和数据配合完成的ICW1ICW2级联方式ICW3需要ICW4ICW4N SNGL=1 Y(SNGL=0)Y(IC4=1)N (IC4=0)注意:初始化命令字只发一次, 操作命令字可以重置,以动 态改变8259A的操作与控制方式2、PC机对主片8259A各寄存器的选定:(PC机上的8259A的 I/O地址为20H和21H) (1)对于4个初始化命令字的选定: ICW1:0020H A0=0,D4=1 ICW2:0021H A0=1 ICW3:0021H A0=1,ICW1中SNGL(D1)位=0 ICW4:0021H A0=1,ICW1中IC4(D0)位=1 按照ICW1-ICW4的顺序写入 (2)对于操作方式命令字的选定 OCW1:0021H A0=1 OCW2:0020H A0=0,D3D4=0 0 OCW3:0020H A0=0,D3D4=1 03、初始化命令字初始化命令字ICW1写入后,8259A内部完成初始化过程: A、使8259A对中断请求信号边沿检测电路复位,以使它在 中断请求信号由低变高时,才能产生中断。 B、清除中断屏蔽寄存器,设置中断优先级排队。ICW1IC4SNGL00*1LTIM*A0D7 D6 D5 D4 D3
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号