微型计算机课程设计论文—通用微机发声程序的汇编设计 本文讲述了在微型计算机中利用可编程时间间隔定时器的通用发声程序设计,重点讲述了程序的发声原理,节拍的产生,按节拍改变的动画程序原理,并以设计一个简单的乐曲评分程序为引子,分析程序设计的细节。关键字:微机 8253 通用发声程序 动画技术 直接写屏 1. 可编程时间间隔定时器8253在通用个人计算机中,有一个可编程时间间隔定时器8253,它能够根据程序提供的计数值和工作方式,产生各种形状和各种频率的计数/定时脉冲,提供给系统各个部件使用。本设计是利用计算机控制发声的原理,编写演奏乐曲的程序。 在8253/54定时器内部有3个独立工作的计数器:计数器0,计数器1和计数器2,每个计数器都分配有一个断口地址,分别为40H,41H和42H.8253/54内部还有一个公用的控制寄存器,端地址为43H.端口地址输入到8253/54的CS,AL,A0端,分别对3个计数器和控制器寻址. 对8353/54编程时,先要设定控制字,以选择计数器,确定工作方式和计数值的格式.每计数器由三个引脚与外部联系,见教材第320页图9-1.CLK为时钟输入端,GATE为门控信号输入端,OUT为计数/定时信号输入端.每个计数器中包含一个16位计数寄存器,这个计数器时以倒计数的方式计数的,也就是说,从计数初值逐次减1,直到减为0为止. 8253/54的三个计数器是分别编程的,在对任一个计数器编程时,必须首先讲控制字节写入控制寄存器.控制字的作用是告诉8253/54选择哪个计数器工作,要求输出什么样的脉冲波形.另外,对8253/54的初始化工作还包括,向选定的计数器输入一个计数初值,因为这个计数值可以是8为的,也可以是16为的,而8253/5的数据总线是8位的,所以要用两条输出指令来写入初值.下面给出8253/54初始化程序段的一个例子,将计数器2设定为方式3,(关于计数器的工作方式参阅教材第325—330页)计数初值为65536. MOV AL,10110110B ;选择计数器2,按方式3工作,计数值是二进制格式 OUT 43H,AL ; j将控制字送入控制寄存器 MOV AL,0 ;计数初值为0 OUT 42H,AL ;将计数初值的低字节送入计数器2 OUT 42H,AL ;将计数初值的高字节送入计数器2 在IBM PC中8253/54的三个时钟端CLK0,CLK1和CLK2的输入频率都是1.1931817MHZ. PC机上的大多数I/O都是由主板上的8255(或8255A)可编程序外围接口芯片(PPI)管理的.关于8255A的结构和工作原理及应用举例参阅教材第340—373页.教材第364页的”PC/XT机中的扬声器接口电路”一节介绍了扬声器的驱动原理,并给出了通用发声程序.本设计正是基于这个原理,通过编程,控制加到扬声器上的信号的频率,奏出乐曲的.2.发声程序的设计下面是能产生频率为f的通用发声程序:MOV AL, 10110110B ;8253控制字:通道2,先写低字节,后写高字节 ;方式3,二进制计数OUT 43H, AL ;写入控制字MOV DX, 0012H ;被除数高位MOV AX, 35DEH ;被除数低位 DIV ID ;求计数初值n,结果在AX中OUT 42H, AL ;送出低8位MOV AL, AHOUT 42H,AL ;送出高8位IN AL, 61H ;读入8255A端口B的内容MOV AH, AL ;保护B口的原状态OR AL, 03H ;使B口后两位置1,其余位保留OUT 61H,AL ;接通扬声器,使它发声
上传时间: 2013-10-17
上传用户:sunjet
可编程中断控制器中断控制器8259A是专门为控制优先级中断而设计开发的芯片。它将中断源优先排队、辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需要增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统
上传时间: 2015-07-21
上传用户:无聊来刷下
利用ti54x系列dsp编解码dtmf源程序的第三版,改进了算法,更适合移植。利用make.bat可进行编译。
上传时间: 2015-09-14
上传用户:wangdean1101
供应用友财务通、U8软件、速达全系列软件. ... l 报表数据接口:提供与久其报表的接口:符合财政部统计评价司要求的数据接口软件,它可以独立运行,也可以内嵌其它软件中运行,它按照您定义的指标从用友账务中取数。
上传时间: 2014-02-07
上传用户:waitingfy
C8051F33x系列固件程序写FLASH原程序,可在keilc上运行
上传时间: 2016-02-23
上传用户:zhichenglu
微程序控制器采用ATMEL AVR MEGA162,该MCU为双串口,16 k字节系统内可编程FLASH,512字节EEPROM等。MCU工作流程为:(1) 上电复位,初始化各输入输出端口,定时器,串口等;(2) 初始化GPS,输出数据仅保留RMC;(3) 初始化GPRS,设置服务器IP地址,端口;(4) MCU循环读出来自GPS的数据,通过GPRS发送至服务器。
上传时间: 2016-08-31
上传用户:邶刖
NEC upd78f0300的自编程序样例,对78K0系列有都可以调用
上传时间: 2013-12-14
上传用户:ccclll
MC9s12d系列单片机中断程序实例,本程序在DP256,DG128两种实验平台上测试通过。此系列单片机有56种中断,其余中断程序可仿照此程序编写
上传时间: 2017-01-21
上传用户:924484786
亚龙高架库控制程序 VB 基本结构为PLC通过驱动器控制步进电机实现启动、停止、加速、减速、匀速、换向等运动轮廓,各个方向利用限位开关提供限位保护 本装置控制采用德国西门子公司的S7-200系列的PLC,它可以满足多种多样的自动化控制需要,具有紧凑的设计,良好的扩展性,低廉的价格以及强大的指令,使得S7-200可以近乎完美的满足小规模的控制要求。此外,丰富的CPU类型和电压等级使其在解决用户的工业自动化问题时,具有很强的适应性。S7-200系列是一种可编程序逻辑控制器。它能够控制各种设备以满足自动化控制需要。S7-200的用户程序中包括了位逻辑,中断,计数器,定时器,复杂数学运算以及与其它智能模块通讯等指令内容,从而使它能够监视输入状态,改变输出状态以达到控制目的。尤其是它的两路PTO(高速脉冲输出)功能在步进电极的控制上非常的方便,它可以直接来通过驱动模块来驱动步进电机来实现不同的旋转要求,实现起步的加速或停止时的减速
上传时间: 2013-12-05
上传用户:xuanchangri
中通台达plc PID 功能指令说明书以及程序范例
标签: PLC
上传时间: 2021-12-06
上传用户:18656002513