汇编语言程序设计教程 教学课件 作者 王庆生 10.ppt

汇编语言程序设计教程 教学课件 作者 王庆生 10.ppt

ID:50056007

大小:313.00 KB

页数:46页

时间:2020-03-08

汇编语言程序设计教程 教学课件 作者 王庆生 10.ppt_第1页
汇编语言程序设计教程 教学课件 作者 王庆生 10.ppt_第2页
汇编语言程序设计教程 教学课件 作者 王庆生 10.ppt_第3页
汇编语言程序设计教程 教学课件 作者 王庆生 10.ppt_第4页
汇编语言程序设计教程 教学课件 作者 王庆生 10.ppt_第5页
资源描述:

《汇编语言程序设计教程 教学课件 作者 王庆生 10.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第十章输入输出应用10.1可编程定时器10.2键盘调用10.3显示器的文本方式显示10.4显示器的图形方式显示10.5磁盘文件存取10.1可编程定时器可编程定时器用来提供时间间隔,可以通过编程来控制定时器的各种参数。工作原理:利用机器提供的时钟作为计数脉冲,对计数器进行减法计数,当计数到0时,产生一个输出信号,然后再恢复计数器的计数初值,接着计数。10.1可编程定时器Intel公司的825310.1可编程定时器对8253编程:首先要写控制字节到控制寄存器,以告诉8253选择哪一个计数器,接下来对选择的计数器确定工作模式和计数初

2、值。控制字节格式:10.1可编程定时器控制字节的含义如下:SC1,SC0位:选择计数器。RL1,RL0位:读写控制,00为计数器锁存,即所定当前计数值;11表示读写循序为先低字节(LSB),后高字节(MSB)。BCD位:计数值格式选择,0为16位二进制数,1为4位压缩BCD码。M2,M1,M0位:工作模式,如表10.1所示。表10.18253工作模式工作模式开始输出波形特征自动循环模式0gate=1计数期间低电平否模式1gate上升沿计数期间低电平是/gate启动模式2gate=1最后计数期间低电平是模式3gate=1占空比1

3、:1方波是模式4gate=1计数结束输出一个CLK周期低电平否模式5gate上升沿计数结束输出一个CLK周期低电平是/gate启动10.1可编程定时器例10.1对8253初始化,将计数器0设定为模式3,计数初值为65536。moval,00110110b;控制字36Hout43h,almoval,0;65536就是0000hout40h,alout40h,al10.1.2定时器驱动扬声器发声定时器驱动扬声器的电路10.1.2定时器驱动扬声器发声计数初值与定时器的输出脉冲频率fout的关系由下式确定:计数初值/1.1931*10

4、6=1/fout即:计数初值=1193100/给定频率,或十六进制数表示为计数初值=12348CH/给定频率。可见,只要给出合适的计数值就可得到某个频率。10.1.3通用发声程序根据定时器编程原理可知,编写通用发声程序需要做到两点:(1)定时器2的43h控制端口送控制字0b6h,对定时器方式寄存器初始化,设置计数初值。61h端口低2位置1,开与门,开定时器2的门控GATE,以便OUT输出。这很简单。(2)声音需要一定的时长才能听见,最简单的办法是用循环程序来延时:wait:movcx,60000delay:loopdelay1

5、0.1.3通用发声程序例10.2通用发声程序gsound,定时器2发出指定频率的声音,但时长不确定。gsound程序解决了频率问题,但音长是通过程序的循环来进行时间延迟的,这就和具体机器有关,CPU速度越快,音长就越短。为了更好地解决不依赖具体机器而获得固定的时间延迟,从80286开始,61H端口的PB4位每0.015ms有一次变化,可以利用这个触发信号作为时间基准的方法。;gsound.asm;gensound过程调用参数;入口参数:di=频率(20~65535),人耳能听到的频率范围20~20000Hz/Sbx=音长(根据

6、具体机器)publicgensoundcodesegmentassumecs:codegensoundprocfarpushaxpushbxpushcxpushdxpushdimoval,0b6h;定时器控制字节out43h,almovdx,12hmovax,348chdivdi;DI=给定频率,AX=计数初值out42h,al;写计数值低8位moval,ahout42h,al;写计数值高8位inal,61hmovah,al;保存61h口原状态oral,3out61h,al;开与门,开定时器2,启动扬声器发声;延时开始wait

7、1:movcx,10000d10ms:loopd10msdecbx;利用二重循环加大延时jnzwait1;延时结束moval,ah;取61h端口原状态out61h,al;关扬声器popdipopdxpopcxpopbxpopaxretgensoundendpcodeendsend10.1.3通用发声程序例10.3延时0.25秒单位时间的程序tms250tms250procnearpushaxms250:movcx,16666;16666*0.015=250(ms)us015:inal,61handal,10hcmpal,ahj

8、eus015movah,alloopus015decbljnzms250popaxrettms250endpend10.1.4乐曲程序利用通用发声程序可以很容易编写乐曲程序,只要知道乐曲中每个音符的频率和音长就可以了。例10.4利用通用发声程序编写熟悉的“生日快乐”乐曲程序,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。