


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北京邮电大学微机原理硬件实验报告实验三:8253计数器/定时器的应用专 业:信息工程学生姓名:XXX学号:XXX指导教师:XX完成时间:2013年11月29日3矚慫润厲钐瘗睞枥庑赖。3聞創沟燴鐺險爱氇谴净。3残骛楼諍锩瀨濟溆塹籟。3酽锕极額閉镇桧猪訣锥。3彈贸摄尔霁毙攬砖卤庑。3謀养抟箧飆鐸怼类蒋薔。 4厦礴恳蹒骈時盡继價骚。5茕桢广鳓鯡选块网羈泪。5鹅娅尽損鹤惨歷茏鴛賴。5籟丛妈羥为贍债蛏练淨。5預頌圣鉉儐歲龈讶骅籴。5渗釤呛俨匀谔鱉调硯錦。5铙誅卧泻噦圣骋贶頂廡。6擁締凤袜备訊顎轮烂蔷。7贓熱俣阃歲匱阊邺镓騷。7坛搏乡囂忏蒌鍥铃氈淚。8蜡變黲癟報伥铉锚鈰赘。9買鯛鴯譖昙膚遙闫撷凄。 10綾
2、镝鯛駕櫬鹕踪韦辚糴。 12驅踬髏彦浃绥譎饴憂锦。 13猫虿驢绘燈鮒诛髅貺庑。 13锹籁饗迳琐筆襖鸥娅薔。 13構氽頑黉碩饨荠龈话骛。 13輒峄陽檉簖疖網儂號泶。 13尧侧閆繭絳闕绚勵蜆贅。一、实验目的二、实验原理及内容1、实验原理 8253定时器介绍 8253初始化 8253控制字 注意事项 2、实验内容 基本功能 拓展功能三、硬件连接图及程序流程图 1、硬件连接图 8253定时器 数码管 译码器 扬声器 分频器2、程序流程图四、源程序五、实验结果六、实验总结1、都是不认真听课惹的祸 2、难听的曲子七、实验收获与心得体会 八、思考题亠、实验目的1、进一步熟悉汇编语言;2、学习掌握8253用作定
3、时器的编程原理。】、实验原理及内容1、实验原理8253定时器介绍I、微机系统使用的 8254,其3个通道均有固定的用途:0号计数器为系统时钟源,每隔55ms向系统主8259IR0提一次中断请求;1号计数器用于动态存储器的定时刷新控制;2号计数器为系统的发声源。用户在使用微机系统的时候,可以使用0号和2号计数器,但不能改变对1号计数器的初始化。识饒鎂錕缢灩筧嚌俨淒。H、实验箱上的 8253,其数据线 D7 D0,地址线A1、A0和控制线RD、WR通过总线驱 动卡和微机系统的三总线相连。除此之外,三个计数器的引出段和片选端都是悬空的,这意味着实验箱上的8253的三个计数器都归用户使用,你可以单独使
4、用其中的一个计数器,也 可以串联使用其中的 2个或3个计数器。凍鈹鋨劳臘错痫婦胫籴。川、8253计数器的输入信号,其频率不能超过2MHz,否则长时间使用,芯片过热,容易烧毁8253初始化使用8253前,要进行初始化编程。初始化编程的步骤是: 向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。 向使用的计数器端口写入计数初值。 8253控制字计数器选择1读写方式选择工柞方式选肆数制选择D7 D6D5D4D3 D3 D1DO图一:8253控制字说明:D7D6 = 00:使用0号计数器D7D6 = 01 :使用1号计数器D7D6 = 10:使用2号计数器D7D6 = 11:无效D5D4 =
5、00:锁存当前计数值D5D4 = 01:只写低8位(高8位为0),读出时只读低 8位D5D4 = 10:只写高8位(低8位为0),读出时只读高 8位D5D4 = 11 :先读/写低8位,后读/写高8位计数值D3D2D1 = 000:选择方式0D3D2D1 = 001 :选择方式 1D3D2D1 = X10 :选择方式 2D3D2D1 = X11 :选择方式 3D3D2D1 = 100:选择方式 4D3D2D1 = 101 :选择方式 5D0 = 0:计数初值为二进制D0 = 1 :计数初值为BCD码数注意事项测试:在Debug状态下,用“ O”命令测试8353的发生功能,3组通道工作是否正常。
6、 电路连接:8253的CS接译码器输出 Y1其地址为 EE20-EE27H8253的OUT接蜂鸣器的BELL端8253的门控信号 GATE接+5V8253的CLK端接Q7(32KHz)清零复位电路中的 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、
7、实验内容 基本功能完成一个音乐发生器,通过蜂鸣器放出音乐,并在数码管上显示乐谱。音符1 Cdo)2 Cre3 (mi)4 <fa)5 (so)6 (h)7 Csi)i (do)频率(Hz)256288320341384426 .6480512图二:音符频率对照表 拓展功能利用小键盘实现弹琴功能,并显示弹奏的乐谱。三、硬件连接图及程序流程图1、硬件连接图8253定时器8253kE时器2C1Di7D:6DjD44Dj3D6DrTIO23IO RA22CS21Al20AO192U1DOI KDO DIVCCD2CLKOD3OUTQD4GATEOD5D6CLK1D7OUTlGATE JTrRDC
8、LK2CSOUT2GATE;AtAOGNDS2530 JuF161071ISnT?OCLK0Q gateoCLKLOQ OUTlGATE1C CLK2OUT:GATE;127X图三:8253定时器数码管数码管4r±-一 MUL3C21O1A| -Uu ju U4m-1FT:DDLvccABlJUB2AjB3A4B*JUB:AlB4A*='AlBl=21«1*T2CT; OVT: xn an* 二_CIf : mABn D £ FT图四:数码管ABecdCC1I c PA s rCC D CC£onuii<1"Ml 译码器译码电路1
9、U1A5A6A7zV+5TABCOE1OE2AOE2BV+5V+5i£T1C10JuF -=o 1 3 4 5 6 7 YYY-YYYYYW DM74LS138N图五:译码器扬声器图六:扬声器分频器时钟与分频电路V-ITB-C2V+ST8C3彳匕0.1 oFIU3A *3R11C1HF71uFO UF寺BU2A勺 KEET QAQBOLE360SC4CZ360yjLSJ 丽 K ms卜耗d.dIfT*'I严加SK'iisaoNE.DOVM图七:分频器bLEEET qaQBCLK QCQP24L5393K屮Q5QtQ-1OC8U7BSr-JLS:iZXRESETSN
10、39;4LS0D8U2DTC2、程序流程图图八:程序流程图四、源程序;do re mi fa so la si do;7d 6f 64 5e 53 4b 43 3edatasegme nt;数据段song db 7dh,7dh,6fh,7dh,5eh,64hdb 7dh,7dh,6fh,7dh,53h,5ehdb 7dh,7dh,3eh,4bh,5eh,64h,6fhdb 43h,43h,4bh,5eh,53h,5eh;音乐音符countequ $-s ong num db 21h,21h,0f4h,21h,39h,0f1hdb 21h,21h,0f4h,21h,0d9h,39hdb 21h,
11、21h,0fdh,0ddh,39h,0f1h,0f4hdb 61h,61h,0ddh,39h,0d9h,39h;数码管字符aequ0e800hbequ0e801hcequ0e803hcontrol equ 0e823hclkOequ 0e820hdataendsstack segme nt stack 'stack'A端口地址,数码管段选 ;B端口地址,数码管位选 ;8255A控制字地址;8253控制字地址;定时器0地址db 100 dupstack endscodesegme ntassume cs:code,ds:data,ss:stack;将音符数据首地址偏移量赋给si;
12、将数码管字符数据首地址偏移量赋给diloop2: mov dx,clk0start: mov ax,data mov ds,ax mov si,offset song mov di,offset nummov al,16h out dx,al;设置8253控制字mov dx,c mov al,80h out dx,al;将8255A控制字地址赋给dx;设置8255控制字loop1: mov cx,co unt 統庫。;将音符个数赋给 ex,用于计数,此处$=42鯊腎鑰诎漣鉀沩懼mov dx,c ontrol;将定时器0地址赋给dxmov al,si out dx,al;将音符数据赋给al;?蜂
13、鸣器响,是否会一直发声?mov dx,b mov al,01h out dx,al;数码管位选地址赋给 dx;最左边数码管亮mov dx,a mov al,di out dx,al;数码管段选地址赋给dx;数码管显示数据dicall far ptr delay涎时mov dx,clkOmov al,0out dx,al;将定时器0地址赋给dx;将音符数据赋给al;?蜂鸣器响,是否会一直发声?mov dx,b mov al,01h out dx,al;数码管位选地址赋给dx;最左边数码管亮mov dx,a mov al,di out dx,al;数码管段选地址赋给dx;数码管显示数据dicall
14、 far ptr delay2inc diinc simov ah,0bhint 21h;检测键盘按键cmp al,0ffh jz stopdec cxjz loopljnz loop2stop:mov ah,4chint 21hdelay proc far;延时子程序push cxpush axpush bxmov cx,0ffffh;入栈保护;2 的 8 次方=65536 ;0ffffhloop3: nop;CPU空操作mov bx,0f5eh;cx*bx可以控制分频为loop4: dec bx;?内层循环是否需jnz loop4;当dx>0时,继续减一loop loop3;当cx&
15、gt;0时,继续空操作pop bx;出栈恢复pop axpop cxretdelay endpdelay2 proc far;延时子程序push cx;入栈保护push axpush bxmov cx,0ffffh;2 的 8 次方=65536 ;0ffffhloop5: nop;CPU空操作mov bx,055eh;cx*bx可以控制分频为loop6: dec bx;?内层循环是否需jnz loop6;当dx>0时,继续减一loop loop5;当cx>0时,继续空操作pop bx;出栈恢复WW1000Hz ;5f5eh硕癘鄴颃诌攆檸攜驤蔹。要空操作1000Hz ;5f5eh阌擻
16、輳嬪諫迁择植秘騖。要空操作pop ax pop ex retdelay2 endpcode endsend start五、实验结果完成基本要求。蜂鸣器按照生日快乐歌的简谱: “112143,112154,1116432,776454”演奏, 最左边的数码管实时的显示该音符。 音符与音符之间的间隔与音符本身的长度相等。最后键盘按键触发程序终止,数码管全灭,蜂鸣器不发声。氬嚕躑竄贸恳彈濾颔澩。没有完成提咼要求。六、实验总结1、都是不认真听课惹的祸有一次我们运行程序发现错误,但是单步调试却始终发现不了错误。 纠结了许久之后终 于发现原来是端口地址写错了! 因为指导书上的地址是错误的, 而上课的时候又没有认真听 老师讲课,导致我们浪费了这么多时间 釷鹆資贏車贖孙滅獅赘。2、难听的曲子在程序测试伊始,我们为方便起见,设计的是每个音符之间没有停顿,结果发现一旦两个相同音符连在一起,那么根本听不出来两个音符的味道,到了无法忍受的地步。于是,我们修改了程序,在每个音符演奏完之后再次调用延时子程序,给予扬声器一个与音符同等时间长度的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年毡呢、包装用织物制品项目发展计划
- 四年级数学(四则混合运算)计算题专项练习与答案汇编
- 陕西财经职业技术学院《电磁通史与技术前沿》2023-2024学年第二学期期末试卷
- 陕西青年职业学院《控制测量学》2023-2024学年第二学期期末试卷
- 集美大学诚毅学院《安全及认证》2023-2024学年第二学期期末试卷
- 青岛大学《解剖和生理(生理)》2023-2024学年第一学期期末试卷
- 青岛市胶州市2025年六年级下学期小升初招生数学试卷含解析
- 青岛滨海学院《装饰工程制图及AutoCAD应用》2023-2024学年第二学期期末试卷
- 青岛科技大学《商业美术插图》2023-2024学年第二学期期末试卷
- 青岛航空科技职业学院《戏曲戏剧鉴赏选修》2023-2024学年第二学期期末试卷
- 2023年安庆市迎江区社区工作者招聘考试真题
- 井控设备课件
- 苏州英文介绍
- 区块链导论配套课件
- 华为经营管理-华为供应链管理(6版)
- 产品系统设计 课件 叶德辉 第3-5章 产品系统设计要素、产品模块化系统设计、产品系列化系统设计
- 机械设备质量验收标准规范
- 2023成都都江堰投资发展集团有限公司招聘试题及答案解析
- 人教版八年级历史下册(部编版)全册完整课件
- 统编版必修下册第一单元检测卷(提升卷)(含解析)
- 幼儿园园长一日三巡记录表实用文档
评论
0/150
提交评论