版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z实验题目:数字频率计的设计1.设计目的通过数字频率计的设计,使同学们进一步掌握:(1)8086/8088汇编语言程序的设计和调试;(2)信号频率的数字测量方法;(3)定时计数器8253的根本工作原理和应用;(4)微机根本应用系统的设计方法;2.设计内容利用微机原理实验装置,设计并实现一个信号频率测试系统,要求频率测量*围不小于5HZ~50HZ,测量误差不大于1HZ,并将测得的频率显示在LED数码显示器上。3.设计要求(1)针对实验装置已有条件,设计频率测量原理线路;(2)编制相应的测试软件,实现频率测量;(3)实际上机调试,完成综合实验;(4)编写设计说明书〔含原理图,程序及说明,实验方法,过程及结果〕。4.方案设计及其说明4.1硬件电路设计在硬件电路局部我们主要采用的芯片有8088,8253,8259,74LS138等。根本工作原理如下:首先由8253芯片的定时/计数器CT1的OUT1端产生10ms的方波再将OUT1与定时/计数器CT0的CLK0端级联使OUT0端产生1s〔测高频〕或10s〔测低频〕方波计时,定时/计数器CT2的CLK2端接收待测信号进展计数,OUTO端口将计时信号输出到8259芯片的IR7口使8259芯片产生中断。中断产生后,CPU将从CT2中读出计数值并转化为频率值并在数码管显示该频率值。具体测量方法如下:当CLK2接收到的待测信号为高频率的脉冲信号时,令计时为1s,即每秒产生一次中断,即OUT1生成10ms的方波,OUT0出来的便是1s的方波。利用M法可以知道,在下一个1s到来的时候可以测出1s经过的CLK2的根本脉冲数为M,则被测频率f=M,此时将M转换为十进制显示在数码管上即可。当CLK2接收到的待测信号为低频率的脉冲信号时,此时设定中断定时时间为10s,即OUT1生成的依旧是10ms的方波,OUT0生成10s方波脉冲。在下一个中断降临时,记下CLK2经过的脉冲数M个,利用T法可以知道所测的频率f=M/10,转换为十进制显示在数码管上。计时局部8253的CT0和CT1级联产生出1秒的方波。基准时钟信号是CT1的CLK1自带的内部晶振1.8432MHZ。当CT1写入初值18432时,OUT1即可输出10ms的方波信号再输入给CLKO。CT0写初值100〔1000〕从OUT0输出1s〔10s〕的脉冲时钟信号。控制字如下:CTO:00110110定时/计数器0先低8位再高8位读写工作方式3二进制CT1:01110110定时/计数器1先低8位再高8位读写工作方式3二进制计数局部用8253的CT2产生计数。CLK2是待测信号脉冲的输入端。OUT2悬空不接线。初值定为65535,即从65535开场,每一个脉冲周期自减一。控制字如下:CT2:10110000定时/计数器2先低8位再高8位读写工作方式0二进制片选寻址局部实验中用了8253和8259两片芯片。故需要进展地址的片选。8259的地址是FFE0H~FFE3H。对应的各地址线如下:A19~A9A8A7A6A5A4A3A2A1A0地址1…1111100000FFE0H1…1111100001FFE1H1…1111100010FFE2H1…1111100011FFE3H对应的片选接74LS138的Y0口8253的地址是FFF8H~FFFBH。对应的各地址线如下:A19~A9A8A7A6A5A4A3A2A1A0地址1…1111111000FFF8H1…1111111001FFF9H1…1111111010FFFAH1…1111111011FFFBH对应的片选接74LS138的Y6口中断局部将8253的OUT0的计时信号给8259的IR7口产生中断。写入控制字令接收到上升沿产生中断。通过实验箱的内部已接好的输出电路给数码管显示。硬件线路图〔1〕电路原理图D0-D7D0-D7A1A0A2A3A4D0-D7GATE1CLK1OUT1A1A0CLK0GATE0OUT0CLK2CSOUT2GATE2ABY6CY0CSIR7数码管显示待测信号+5V+5V+5V80888253825974LS138〔2〕完整电路图〔见附页〕TT1=18432TT2=100T1TT1=18432TT2=100T1T2=1000T1每10s上升沿产生中断每1s上升沿产生中断每次中断之内经过的脉冲个数M,则被测频率F=MCLK1:CLK1:(时基信号)OUT1:OUT1:〔10ms方波〕OUT0:OUT0:(1S方波)OUT0:OUT0:(10S方波)INTR1:INTR1:(1S中断)INTR2:INTR2:(10S中断)CLK2CLK2:(被测信号)4.2软件电路设计软件局部共划分为如下几个模块:8253芯片定时模块8253芯片计数模块8259芯片中断模块显示模块软件流程图主程序:开场开场数码管初始化8259初始化8253初始化关中断定时/计数初值开中断等待中断显示完毕开场开场写初始命令ICW1写初始命令ICW2写OCW1RET8259初始化子程序开场开场8253初始化子程序写CT0控制字写CT0控制字置CT0初值置CT0初值写CT1控制字写CT1控制字置CT1初值置CT1初值RETRET8259中断子程序开场开场关中断关中断读取CT2锁存值读取CT2锁存值并得到对应频率值高频显示模式NY高频显示模式A*>2000A*>2000A*<2000A*<2000NYNY高频模式转为低频模式高频模式转为低频模式低频模式转为高频模式高频模式显示低频模式显示高频模式显示低频模式显示关中断关中断循环显示循环显示断点恢复断点恢复开中断开中断完毕完毕二进制-十进制转化子是否除尽.RET初始化清零SISI-1SISI+5程序〔高频〕是否除尽.RET初始化清零SISI-1SISI+5开场开场A*/10余数存入SIA*/10余数存入SINY二进制—十进制转化子程序〔低频〕开场开场初始化清零SISI+5A*/10余数存入SISISI-1A*/10余数带小数点存入SISISI-1A*/10余数存入SI是否除尽.RETNY源程序代码〔见附页〕5.试验中出现问题及解决方法在实验硬件接线成功将完整程序装载后进展测试时候发现测试不出来数据,经过小组成员讨论认为可能是上下频计算转换算法有问题,于是我们决定不管上下频都用M法测量定时一秒发现测量结果是正确的,但误差过大,于是将定时时间设为十秒,采用有小数点显示算法测量结果发现测量结果都是乱码,经过小组成员讨论认为是实验箱有问题于是换了一台试验箱测试,结果发现当送给CT2的待测信号是由74LS393的T6、T7给出的时,测量结果是正确的,但当由函数发生器给出待测信号时测量结果是乱码,经过教师知道我们知道了函数发生器产生的方波信号是由负值的需要调整才可产生正确的信号,经调整函数发生器产生正确方波信号后测得正确的结果。6.实验结果及分析用函数发生器给频率计输入方波信号,可较准确的测得信号频率。测量*围为0.1Hz~65534Hz,经与函数发生器比拟,测量误差为高频1Hz,低频0.1Hz。局部测量结果如下表:高频待测〔Hz〕4450531165259222036实测〔Hz〕4450631166259232035低频待测〔Hz〕7.832.8121.91034.9实测〔Hz〕7.732.7121.81035.07.课程设计心得体会为期两周的微机原理课程设计完毕了,在这两周的时间里使我学到了许多东西,首先通过此次课设,加强了我们的动手、思索和解决问题的能力,也加深了对在课本上所学理论知识的理解,特别是更加熟悉了对常用芯片比方8253,8259,74LS138等的应用,同时在这次课设中也加深了我对汇编语言的理解更掌握了8086的调试环境,使我能更好地将在课本上学到的的理论知识与实践相结合,同时在课设过程中查阅了许多资料从而更加拓宽了我的知识面,在这次课设中也使我更加熟练地掌握了示波器的运用,同时也学会了函数发生器的使用。在这次课设中也使我更加明白了团队合作的重要性,在课设过程中我们遇到了许多问题但经过与组员们探讨都一一解决了,课设的成功离不开组员们的配合与指导教师的悉心指导,在此感谢各位组员的配合与教师的悉心指导。附页:源程序代码CODESEGMENTASSUMECS:CODE,DS:CODE,ES:CODEORG3400HH8:JMPP8259Z*KEQU0FFDCHZWKEQU0FFDDHLEDDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;0~9DB040H,079H,24H,30H,19H,12H,02H,78H,00H,10H,0FFH;0.~9.BUF1DB?;定义缓冲区用于存放上下频的选择值BUFDB?,?,?,?,?,?;定义缓冲区存放数码管要显示的频率值Port0EQU0FFE0H;8259首地址Port1EQU0FFE1H;8253首地址P8259:CLI;关中断CALLWP;数码管初始状态为0MOVA*,OFFSETINT8259;获得中断效劳程序入口地址MOVB*,003CHMOV[B*],A*MOVB*,003EHMOVA*,0000HMOV[B*],A*;以上是写中断向量表CALLFOR8259;对8259初始化设置CALLFOR8253;对8253初始化设置CALLFOR8253*;对频率*围进展设置MOVSI,OFFSETBUF1MOVAL,01HMOV[SI],AL;默认为高频STIPPP:CALLDISJMPPPP;循环显示等待中断;8259初始化;--------------------------------FOR8259:MOVAL,13H;上升沿产生中断(ICW1)MOVD*,Port0OUTD*,ALMOVAL,08H;ICW2的设置MOVD*,Port1OUTD*,ALMOVAL,09H;ICW4的设置OUTD*,ALMOVAL,07FH;设置IR7为中断源,并且屏蔽其它的中断源OUTD*,ALRET;--------------------------------;8253初始化〔一秒信号〕;------------------------------------FOR8253:MOVD*,0FFFBHMOVAL,36H;00110110CT0,方式3OUTD*,ALMOVAL,76H;01110110CT1,方式3,OUTD*,ALMOVD*,0FFF9HMOVA*,18432;CT1置初值产生10ms方波OUTD*,ALMOVAL,AHOUTD*,ALMOVD*,0FFF8HMOVA*,100;CT0置初值100产生1s定时信号OUTD*,AlMOVAL,AHOUTD*,ALRET;------------------------------------;8253初始化〔十秒信号〕;------------------------------------FOR8253b:MOVD*,0FFFBHMOVAL,36H;CT0,方式3OUTD*,ALMOVAL,76H;CT1,方式3OUTD*,ALMOVD*,0FFF9HMOVA*,18432;CT1置初值产生10ms方波OUTD*,ALMOVAL,AHOUTD*,ALMOVD*,0FFF8HMOVA*,1000;CT0置初值1000产生10S定时信号OUTD*,ALMOVAL,AHOUTD*,ALRET;------------------------------------;控制CT2计数,设置频率*围;-------------------------------------FOR8253*:MOVD*,0FFFBH;控制口地址MOVAL,0B0H;CT2,方式0OUTD*,ALMOVD*,0FFFAH;CT2地址MOVA*,65535;T2计数的最大值OUTD*,ALMOVAL,AHOUTD*,ALMOVC*,10 ;延时GOOD:LOOPGOODRET;-------------------------------------;二——十进制转化〔高频无小数点,利用了M法测量〕;-----------------------------------BTRO:MOVCL,6*ORCH,CH*ORD*,D*MOVB*,10MOVSI,OFFSETBUFADDSI,5;从低位到高位存储NE*T:DIVB*MOV[SI],DL;除以10的余数存放低位DECSIANDA*,A*JZSTOP;判断是否除尽MOVDL,0;将存放余数的清零LOOPNE*TSTOP:RET;-----------------------------------;二——十进制转化〔低频有小数点,利用了T法测量〕;-----------------------------------BTROb:MOVCL,3*ORCH,CH*ORD*,D*MOVB*,10MOVSI,OFFSETBUFADDSI,5;使其从数码管的低位开场显示DIVB*MOV[SI],DLDECSIMOVDL,0;将存放余数的清0DIVB*ADDDL,10;查表将该位的小数点显示出来MOV[SI],DLDECSIANDA*,A*;检测商是否为0,假设为0程序跳出,否则继续JZSTOP1MOVDL,0NE*T1:DIVB*MOV[SI],DLDECSIANDA*,A*JZSTOP1MOVDL,0LOOPNE*T1;由于数码管只能显示5位,则CL=3STOP1:RET;-----------------------------------;8259的中断子程序;------------------------------------INT8259:PUSHA*PUSHD*PUSHB*;断点保护CLIMOVD*,0FFFBHMOVAL,80HOUTD*,AL;锁存CT2的值,方便下面读取CT2接口的值MOVD*,0FFFAHINAL,D*MOVBl,ALINAL,D*MOVBH,AL;读取CT2的值,此时值为剩余的计数值MOVA*,B*MOVD*,65535SUBD*,A*;将读取CT2的值转化为频率值MOVA*,D*PUSHA*;保护频率值MOVSI,OFFSETBUF1MOVBL,[SI]CMPBL,1;判断新频率进来之前的显示模式JNZDIPIN;低频跳转,高频继续向下执行CMPA*,2000OTHER;假设小于2000,测的频率为低频,跳转,否则继续向下GOM:CALLFOR8253*CALLWPPOPA*CALLBTRO;将频率值转化为十进制,无小数JMP*59DIPIN:CMPA*,20000;低频时,判断是否为高频JNBOTHER2;大于20000则为高频,跳转GOM2:CALLFOR8253*CALLWPPOPA*;出栈CALLBTROb;将频率值转化为十进制,此时带有小数JMP*59OTHER:CALLANTHER;调用高频转低频程序,设定标志位和中断时间(10s)JMPGOMOTHER2:CALLANTHER2;调用低频转高频程序,设定标志位和中断时间(1s)JMPGOM2*59:MOVAL,20HMOVD*,Port0OUTD*,AL;中断响应后,将ISR相应位清0MOVC*,0050H;置循环显示的次数**59:PUSHC*CALLDIS;调用显示程序,将频率值显示在数码管上POPC*LOOP**59;循环显示,直至下一次中断POPB*POPD*POPA*;断点回复LAST:STIIRET;------------------------------------;DIS是显示子程序;-------------------------------DIS:MOVCL,20H;准备好数码管位MOVB*,OFFSETBUFDIS1:MOVAL,[B*]PUSHB*MOVB*,OFFSETLED*LAT;换码,在LED表里面换取数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年贵州省清镇市高一化学上册期末考试考试卷及完整答案(夺冠)
- 2026年湖北省仙桃市高三生物下册期末考试模拟测试卷及答案
- 洛阳市西工区2025届数学四年级第二学期期末综合测试试题(含解析)
- 泰安市2025届三年级数学第二学期期末调研模拟试题含答案
- 铸造造型(芯)工变更管理测试考核试卷含答案
- 露天采矿吊斗铲司机标准化测试考核试卷含答案
- 磨具制造工道德能力考核试卷含答案
- 锅炉清洗工安全生产规范考核试卷含答案
- 电石生产工岗位责任担当考核试卷含答案
- 紧固件制造工QC管理水平考核试卷含答案
- 新疆维吾尔自治区初中级档案职称考试(档案基础)手机备考题库及答案(2026年)
- 肿瘤心理干预沟通护理课件
- 2026年校招:中国银行试题及答案
- 2026年物业管理条例考核试题及答案
- 公共娱乐场所电气消防安全培训
- 2026秋新版道德与法治五年级上册教学课件:第七课第1课时 社会主义好-自力更生结硕果 有多个微课视频
- 《土地管理法》与《城乡规划法》实务操作培训
- 医疗器械全生命周期法律合规
- 《口腔临床药物学》教学大纲
- 抖店客服培训大纲
- 郭沫若《女神》作品解析课件
评论
0/150
提交评论