ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:325.70KB ,
资源ID:11504402      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11504402.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微原硬件实验三8253计数器定时器的实际应用.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微原硬件实验三8253计数器定时器的实际应用.docx

1、微原硬件实验三8253计数器定时器的实际应用专业:信息工程学生姓名:学号:指导教师:完成时间:2013年11月29日实验三:8253计数器/定时器的应用北京邮电大学微机原理硬件实验报告一、 实验目的 3矚慫润厲钐瘗睞枥庑赖。二、 实验原理及内容 3聞創沟燴鐺險爱氇谴净。1、实验原理 3残骛楼諍锩瀨濟溆塹籟。8253定时器介绍 3酽锕极額閉镇桧猪訣锥。8253初始化 3彈贸摄尔霁毙攬砖卤庑。8253控制字 3謀荞抟箧飆鐸怼类蒋薔。注意事项 4厦礴恳蹒骈時盡继價骚。2、实验内容 4茕桢广鳓鯡选块网羈泪。基本功能 4鹅娅尽損鹌惨歷茏鴛賴。拓展功能 5籟丛妈羥为贍偾蛏练淨。三、 硬件连接图及程序流程图

2、 5預頌圣鉉儐歲龈讶骅籴。1、硬件连接图 5渗釤呛俨匀谔鱉调硯錦。8253定时器 5铙誅卧泻噦圣骋贶頂廡。数码管 6擁締凤袜备訊顎轮烂蔷。译码器 7贓熱俣阃歲匱阊邺镓騷。扬声器 7坛摶乡囂忏蒌鍥铃氈淚。分频器 8蜡變黲癟報伥铉锚鈰赘。2、 程序流程图 9買鲷鴯譖昙膚遙闫撷凄。四、 源程序 10綾镝鯛駕櫬鹕踪韦辚糴。五、 实验结果 12驅踬髏彦浃绥譎饴憂锦。六、 实验总结 13猫虿驢绘燈鮒诛髅貺庑。1、 都是不认真听课惹的祸 13锹籁饗迳琐筆襖鸥娅薔。2、 难听的曲子 13構氽頑黉碩饨荠龈话骛。七、 实验收获与心得体会 13輒峄陽檉簖疖網儂號泶。八、思考题 13尧侧閆繭絳闕绚勵蜆贅。1、实验目的

3、1、进一步熟悉汇编语言;2、学习掌握8253用作定时器的编程原理。2、实验原理及内容1、实验原理8253定时器介绍、微机系统使用的8254,其3个通道均有固定的用途:0号计数器为系统时钟源,每隔55ms向系统主8259IR0提一次中断请求;1号计数器用于动态存储器的定时刷新控制;2号计数器为系统的发声源。用户在使用微机系统的时候,可以使用0号和2号计数器,但不能改变对1号计数器的初始化。识饒鎂錕缢灩筧嚌俨淒。、实验箱上的8253,其数据线D7D0,地址线A1、A0和控制线RD、WR通过总线驱动卡和微机系统的三总线相连。除此之外,三个计数器的引出段和片选端都是悬空的,这意味着实验箱上的8253的

4、三个计数器都归用户使用,你可以单独使用其中的一个计数器,也可以串联使用其中的2个或3个计数器。凍鈹鋨劳臘锴痫婦胫籴。、8253计数器的输入信号,其频率不能超过2MHz,否则长时间使用,芯片过热,容易烧毁8253初始化使用8253前,要进行初始化编程。初始化编程的步骤是:向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。向使用的计数器端口写入计数初值。8253控制字图一:8253控制字说明:D7D600:使用0号计数器D7D601:使用1号计数器D7D610:使用2号计数器D7D611:无效D5D400:锁存当前计数值D5D401:只写低8位(高8位为0),读出时只读低8位D5D410:

5、只写高8位(低8位为0),读出时只读高8位D5D411:先读/写低8位,后读/写高8位计数值D3D2D1000:选择方式0D3D2D1001:选择方式1D3D2D1X10:选择方式2D3D2D1X11:选择方式3D3D2D1100:选择方式4D3D2D1101:选择方式5D00:计数初值为二进制D01:计数初值为BCD码数注意事项测试:在Debug状态下,用“O”命令测试8353的发生功能,3组通道工作是否正常。 电路连接:8253的CS接译码器输出Y1其地址为EE20-EE27H8253的OUT接蜂鸣器的BELL端8253的门控信号GATE接+5V8253的CLK端接Q7(32KHz)清零复

6、位电路中的T/C端接地(或接RESET端)注意:由于8253计数速率应小于2MHz,CLK0的输入信号必须由8MHz经393分频到小于2MHz后使用。393分频之后,Q0输出为4MHz,Q1输出为2MHzQ7输出32KHz。恥諤銪灭萦欢煬鞏鹜錦。编程提示:8253控制端口地址为E823H定时器0地址为E820H定时器1地址为E821H定时器2地址为E822H定时器可工作在方式3下2、实验内容基本功能完成一个音乐发生器,通过蜂鸣器放出音乐,并在数码管上显示乐谱。图二:音符频率对照表拓展功能利用小键盘实现弹琴功能,并显示弹奏的乐谱。 3、硬件连接图及程序流程图1、硬件连接图8253定时器图三:82

7、53定时器数码管图四:数码管译码器图五:译码器扬声器图六:扬声器分频器图七:分频器2、程序流程图图八:程序流程图4、源程序;do re mi fa so la si do;7d 6f 64 5e 53 4b 43 3edata segment ;数据段song db 7dh,7dh,6fh,7dh,5eh,64h db 7dh,7dh,6fh,7dh,53h,5eh db 7dh,7dh,3eh,4bh,5eh,64h,6fh db 43h,43h,4bh,5eh,53h,5eh ;音乐音符count equ $-songnum db 21h,21h,0f4h,21h,39h,0f1h db

8、21h,21h,0f4h,21h,0d9h,39h db 21h,21h,0fdh,0ddh,39h,0f1h,0f4h db 61h,61h,0ddh,39h,0d9h,39h ;数码管字符a equ 0e800h ;A端口地址,数码管段选b equ 0e801h ;B端口地址,数码管位选c equ 0e803h ;8255A控制字地址control equ 0e823h ;8253控制字地址clk0 equ 0e820h ;定时器0地址data endsstack segment stack stack db 100 dup(?)stack endscode segment assume

9、cs:code,ds:data,ss:stackstart: mov ax,data mov ds,ax mov si,offset song ;将音符数据首地址偏移量赋给si mov di,offset num ;将数码管字符数据首地址偏移量赋给di mov dx,control mov al,16h out dx,al ;设置8253控制字 mov dx,c ;将8255A控制字地址赋给dx mov al,80h out dx,al ;设置8255控制字loop1: mov cx,count ;将音符个数赋给cx,用于计数,此处$=42鯊腎鑰诎褳鉀沩懼統庫。loop2: mov dx,cl

10、k0 ;将定时器0地址赋给dx mov al,si ;将音符数据赋给al out dx,al ;?蜂鸣器响,是否会一直发声? mov dx,b ;数码管位选地址赋给dx mov al,01h out dx,al ;最左边数码管亮 mov dx,a ;数码管段选地址赋给dx mov al,di out dx,al ;数码管显示数据di call far ptr delay ;延时 mov dx,clk0 ;将定时器0地址赋给dx mov al,0 ;将音符数据赋给al out dx,al ;?蜂鸣器响,是否会一直发声? mov dx,b ;数码管位选地址赋给dx mov al,01h out d

11、x,al ;最左边数码管亮 mov dx,a ;数码管段选地址赋给dx mov al,di out dx,al ;数码管显示数据di call far ptr delay2 inc di inc si mov ah,0bh ;检测键盘按键 int 21h cmp al,0ffh jz stop dec cx jz loop1 jnz loop2stop: mov ah,4ch int 21hdelay proc far ;延时子程序 push cx ;入栈保护 push ax push bx mov cx,0ffffh ;2的8次方=65536 ;0ffffhloop3: nop ;CPU空操

12、作 mov bx,0f5eh ;cx*bx可以控制分频为1000Hz ;5f5eh硕癘鄴颃诌攆檸攜驤蔹。loop4: dec bx ;?内层循环是否需要空操作 jnz loop4 ;当dx0时,继续减一 loop loop3 ;当cx0时,继续空操作 pop bx ;出栈恢复 pop ax pop cx retdelay endpdelay2 proc far ;延时子程序 push cx ;入栈保护 push ax push bx mov cx,0ffffh ;2的8次方=65536 ;0ffffhloop5: nop ;CPU空操作 mov bx,055eh ;cx*bx可以控制分频为10

13、00Hz ;5f5eh阌擻輳嬪諫迁择楨秘騖。loop6: dec bx ;?内层循环是否需要空操作 jnz loop6 ;当dx0时,继续减一 loop loop5 ;当cx0时,继续空操作 pop bx ;出栈恢复 pop ax pop cx retdelay2 endpcode ends end start 5、实验结果完成基本要求。蜂鸣器按照生日快乐歌的简谱:“112143,112154,1116432,776454”演奏,最左边的数码管实时的显示该音符。音符与音符之间的间隔与音符本身的长度相等。最后键盘按键触发程序终止,数码管全灭,蜂鸣器不发声。氬嚕躑竄贸恳彈瀘颔澩。没有完成提高要求。

14、6、实验总结1、都是不认真听课惹的祸有一次我们运行程序发现错误,但是单步调试却始终发现不了错误。纠结了许久之后终于发现原来是端口地址写错了!因为指导书上的地址是错误的,而上课的时候又没有认真听老师讲课,导致我们浪费了这么多时间釷鹆資贏車贖孙滅獅赘。2、难听的曲子在程序测试伊始,我们为方便起见,设计的是每个音符之间没有停顿,结果发现一旦两个相同音符连在一起,那么根本听不出来两个音符的味道,到了无法忍受的地步。于是,我们修改了程序,在每个音符演奏完之后再次调用延时子程序,给予扬声器一个与音符同等时间长度的不发声时间,其实现效果良好。怂阐譜鯪迳導嘯畫長凉。7、实验收获与心得体会此次实验是最后一次微原硬件实验,是我们第一次在课堂上完成实验,当然,也是唯一一次了。在程序的调试过程中,渐渐发现了自身存在的许多问题。比如有一次发现程序不执行循环,对程序进行单步调制之后才发现,原来仅仅是一个数字写错了,到时条件转移到错误的地方,程序出错。由此可见,编程时马虎不得的事情,对细节的注重是每一个合格的程序员的必修课。谚辞調担鈧谄动禪泻類。八、思考题问:写出8253 计数初值、输入频率和输出频率的关系。答:输出频率=输入频率/计数初值

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1