您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 建筑材料 > 上海大学接口技术实验2
实验名称:可编程并行接口8255实验姓名:杨明田学号:07160049实验时间:2009-09-12星期一第11-13节报告日期:2009-10-18报告成绩一、实验目的1、将32Hz的晶振频率作为8253的时钟输入,利用定时器产生1Hz的方波,使发光二极管不停闪烁。需要调整参数,使灯的闪烁频率有明显的改变。2、通过控制定时器来产生不同频率的方法,驱动喇叭发出不同音阶的声音,再利用延时来控制发音时间的长短,即可控制音调中的节拍。利用定时器编制不同音乐的,演奏出一段乐曲。二、实验原理1、8255A的内部结构:8253/4是一种可编程的定时器/计数器芯片,它具有3个独立的16位计数器通道,每个计数器都可以按照二进制或二-十进制计数,每个计数器都有6种工作方式,计数频率可高达24MHz,芯片所有的输入输出都与TTL兼容。6种工作方式主要有5点不同:一是启动计数器的触发方式和时刻不同;二是计数过程中门控信号GATE对计数操作的影响不同;三是OUT输出的波形不同;四是在计数过程中重新写入计数初值对计数过程的影响不同;五是计数过程结束,减法计数器是否恢复计数初值并自动重复计数过程的不同CLK:计数脉冲输入端。计数器对该引脚的输入脉冲进行计数。如果CLK信号是周期精确的时钟脉冲,则具有定时作用。GATE:门控输入端。这是控制计数器工作的一个外部信号。当GATE为低电平时,禁止计数器工作;当GATE为高电平时,允许计数器工作。OUT:输出信号端。当计数器计数到零时,在OUT引脚上输出一个信号,该信号的波形取决于工作方式。通过控制8253定时器来产生不同频率的方法,驱动喇叭发出不同音阶的声音,再利用延时来控制发音时间的长短,即可控制音调中的节拍。把乐谱中的音符和相应的节拍变换为定时常数和延时常数,作为数据表格存放在存储器中。由查表程序得到定时常数和延时常数,分别用以控制定时器产生方波和频率和发该频率方波的持续时间。当延时时间到,再查下一个音符的定时常数和延时常数。依次下去,就可自动演奏出悦耳的乐曲。实验原理图:8253控制字格式LM386是低电压音频放大器。本实验是用8253定时器T0方式3来产生歌谱中各音符对应频率的方波,由OUT0输出驱动喇叭。节拍控制可通过调用延时子程序次数来实现。三、实验步骤1、可编程定时器/计数器实验(1)实验连线:1)信号源模块8M接到分频单元T,T7连到8253模块的CLK0。2)8253模块选通线CS连到译码接口模块的00H。3)8253模块GATE0接电源+5V;OUT0接发光二极管L1。4)该模块的WR、RD分别连到总线接模块的IOWR、IORD。该模块该模块的数据(AD0~AD7)、连到总线JX0。(系统已连接好)(2)在C:\PCI598\SOURCE\WIN32\下查找实验使用的源程序:D8253文件夹;(3)运行程序,观察发光二极管亮灭,记录间隔时间。(4)查找并修改源程序中的计数值,再次运行、观察和记录发光二极管亮灭间隔时间。2、键盘音乐实验(1)实验连线:1)8253GATE0接PB0;CLK0接信号源1.8432M;CS3接00H。2)OUT0接音频电路VIN,VOUT接SP+,SP-接地。3)8279单元的CS6接10H,JSL接JS,JRL接JR,JOUT接JLED,JK拨到外接,T接8M。(2)复制key文件夹下的所有文件到WIN32文件夹。(3)查找实验使用的源程序:Keymusic文件夹。(4)运行程序,分析记录8个键对应显示以及音符的参数设置。3、电子音乐实验(1)实验连线:1)8253模块的GATE0接+5V,OUT0接音频电路VIN(喇叭),VOUT接SP+,SP-接地,CLK0接信号源1.8432M.2)8253模块的CS选通线接到译码模块的I00H.3)系统已接好:8253WR、RD分别连到总线接口模块的IOWR、ORD;8253模块的数据线AD7~AD0、地址线A7~A0分别分别连到总线接口模块的LAD0~AD7,LA0~LA7等。(2)查找实验使用的源程序:Music文件夹.(3)调整程序中的延迟参数,使音乐节拍比较悦耳,记录相关语句的位置和你的参数值。(4)自己编制演奏出一段乐曲。四、分析与体会1、实验结果分析:1、可编程定时器/计数器实验连线和运行程序后由于时间间隔太小所以亮灭不太清楚,它只显示一个灯亮。UINTComd(LPVOIDpParam){outp8(hDevice,(ULONG)P8253_MODE,0x37);outp8(hDevice,(ULONG)P8253_T0,0x20);outp8(hDevice,(ULONG)P8253_T0,0x00);return0;}可以看到灯亮32/1000秒它就灭0秒所以灯的亮灭不太清楚。所以我们改这两个值为FF,再次运行,灯的亮灭就很清楚了。UINTComd(LPVOIDpParam){outp8(hDevice,(ULONG)P8253_MODE,0x37);outp8(hDevice,(ULONG)P8253_T0,0x20);outp8(hDevice,(ULONG)P8253_T0,0x00);return0;}2、键盘音乐实验当按下一个键盘从0到7在LED就显示相应的数字同时发出声音。3、电子音乐实验程序运行后把它进行修改使音乐节拍比较悦耳。BYTEtabs[]={0x2E,0X0B,0x01,0x2E,0x0B,0x01,0x2E,0x0B,0x02,0xF2,0x0E,0X02,0xE0,0x08,0x01,0xE0,0x08,0x01,0xE0,0X08,0X02,0x2E,0x0B,0X02,0x2E,0x0B,0X01,0xE0,0X08,0X01,0x79,0x07,0X02,0x79,0x07,0X02,0x64,0X08,0X01,0xE0,0x08,0X01,0xF7,0x09,0X02,0x00,0x00,0x02,0xff,0xff};程序中每三个数为一组,其中前两个分别为频率的低高8位,第三个为音长,所以只要修改第三个参数就可以使音乐节拍比较悦耳。自己编制演奏出一段乐曲:BYTEtabs[]={0xEC,0x0A,0x02,0xFF,0x0C,0x02,0xFF,0x0C,0x04,0x44,0x0C,0x02,//00x93,0x0E,0X02,0x93,0x0E,0X04,0x5D,0x10,0x02,0x93,0x0E,0x02,0xFF,0X0C,0X02,0x44,0x0C,0X02,0xEC,0x0A,0X02,0xEC,0X0A,0X02,0xEC,0x0A,0X02,0xEC,0x0A,0X02,0xFF,0X0C,0X02,0xFF,0X0C,0X04,0x44,0x0C,0X02,0x93,0x0E,0X02,0x93,0x0E,0X04,0x5D,0x10,0x02,0xff,0x0C,0X02,0XEC,0X0A,0X01,0X5D,0X10,0X04,0xff,0xff};//0xff2、问题思考:问:在定时/计数器实验中,所设置的工作方式字是什么?表示什么含义?(使用了哪个计数通道、什么工作方式、计数方式等)答:在程序中可以看到定时/计数器所设置的工作方式字outp8(hDevice,(ULONG)P8253_MODE,0x37);37B=00110111B00:使用计数器011:先读写低字节,后读写高字节011:工作方式31:使用十进制问:初始化时的计数值是多少?你修改的参数是多少?答:初始化的计数值为20H,我修改的计数值为FFH。问:为什么电子音乐实验中原定的延迟参数不满足悦耳的要求?答:因为程序中每三个数为一组,第三个参数为音长,程序的原定的延迟参数音长有个太短有个太长。3、体会通过这个实验我们了解可编程并行接口芯片8253的内部结构、工作方式、初始化编程及应用,了解计数器的硬件连接方法及时序关系。掌握8253的各种模式的编程及其原理。进一步熟悉VC++程序,认识编程驱动程序设计。
本文标题:上海大学接口技术实验2
链接地址:https://www.777doc.com/doc-7197856 .html