




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验题目:数字频率计的设计1.设计目的 通过数字频率计的设计,使同学们进一步掌握:(1) 8086/8088汇编语言程序的设计和调试;(2) 信号频率的数字测量方法;(3) 定时计数器8253的基本工作原理和应用;(4) 微机基本应用系统的设计方法;2.设计内容利用微机原理实验装置,设计并实现一个信号频率测试系统,要求频率测量范围不小于5HZ50HZ,测量误差不大于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,转换为十进制显示在数码管上。4.1.1计时部分 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 二进制4.1.2计数部分用8253的CT2产生计数。CLK2是待测信号脉冲的输入端。OUT2悬空不接线。初值定为65535,即从65535开始,每一个脉冲周期自减一。控制字如下:CT2:10110000定时计数器2 先低8位再高8位读写 工作方式0 二进制4.1.3片选寻址部分实验中用了8253和8259两片芯片。故需要进行地址的片选。8259的地址是FFE0H FFE3H。对应的各地址线如下:A19A9A8A7A6A5A4A3A2A1A0地址11111100000FFE0H11111100001FFE1H11111100010FFE2H11111100011FFE3H对应的片选接74LS138的Y0口8253的地址是FFF8H FFFBH。对应的各地址线如下:A19A9A8A7A6A5A4A3A2A1A0地址11111111000FFF8H11111111001FFF9H11111111010FFFAH11111111011FFFBH对应的片选接74LS138的Y6口4.1.4中断部分将8253的OUT0的计时信号给8259的IR7口产生中断。写入控制字令接收到上升沿产生中断。通过实验箱的内部已接好的输出电路给数码管显示。4.1.5硬件线路图(1)电路原理图D0-D7 A1A0 A2A3A4 D0-D7 GATE1 CLK1 OUT1A1 A0 CLK0 GATE0 OUT0 CLK2CS OUT2 GATE2AB Y6C Y0CS IR7数码管显示待测信号+5V+5V+5V80888253825974LS138(2)完整电路图(见附页)TT1=18432TT2=100T1T2=1000T1每10s上升沿产生中断每1s上升沿产生中断每次中断之内经过的脉冲个数M,则被测频率F=M4.1.6操作时序图 CLK1:(时基信号)OUT1:(10ms方波 )OUT0:(1S方波)OUT0:(10S方波)INTR1:(1S中断)INTR2:(10S中断)CLK2:(被测信号)4.2软件电路设计软件部分共划分为如下几个模块:1. 8253芯片定时模块2. 8253芯片计数模块3. 8259芯片中断模块4. 显示模块4.2.1软件流程图主程序: 开始数码管初始化8259初始化8253初始化关中断定时计数初值开中断等待中断显示结束开始写初始命令ICW1写初始命令ICW2写OCW1RET 8259初始化子程序开始8253初始化子程序写CT0控制字置CT0初值写CT1控制字置CT1初值RET8259中断子程序开始关中断读取CT2锁存值并得到对应频率值高频显示模式 N YAX2000AX2000N Y N Y高频模式转为低频模式低频模式转为 高频模式高频模式显示低频模式显示关中断循环显示断点恢复开中断结束二进制-十进制转化子是否除尽?RET初始化清零SI SI-1SI SI+5程序(高频)开始AX/10 余数存入SI N Y二进制十进制转化子程序(低频)开始初始化清零SI SI+5AX/10 余数存入SISI SI-1AX/10 余数带小数点存入SISI SI-1AX/10 余数存入SI是否除尽?RET N Y4.2.2源程序代码(见附页)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 的调试环境,使我能更好地将在课本上学到的的理论知识与实践相结合,同时在课设过程中查阅了许多资料从而更加拓宽了我的知识面,在这次课设中也使我更加熟练地掌握了示波器的运用,同时也学会了函数发生器的使用。 在这次课设中也使我更加明白了团队合作的重要性,在课设过程中我们遇到了许多问题但经过与组员们探讨都一一解决了,课设的成功离不开组员们的配合与指导老师的悉心指导,在此感谢各位组员的配合与老师的悉心指导。附页:源程序代码CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3400HH8: JMP P8259ZXK EQU 0FFDCHZWK EQU 0FFDDHLED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;09 DB 040H,079H,24H,30H,19H,12H,02H,78H,00H,10H,0FFH ;0.9.BUF1 DB ? ;定义缓冲区用于存放高低频的选择值BUF DB ?,?,?,?,?,? ;定义缓冲区存放数码管要显示的频率值Port0 EQU 0FFE0H ;8259首地址Port1 EQU 0FFE1H ;8253首地址P8259: CLI ;关中断 CALL WP ;数码管初始状态为0 MOV AX,OFFSET INT8259;获得中断服务程序入口地址 MOV BX,003CH MOV BX,AX MOV BX,003EH MOV AX,0000H MOV BX,AX ;以上是写中断向量表 CALL FOR8259 ;对8259初始化设置 CALL FOR8253 ;对8253初始化设置 CALL FOR8253X ;对频率范围进行设置 MOV SI,OFFSET BUF1 MOV AL,01H MOV SI,AL ;默认为高频 STI PPP: CALL DIS JMP PPP ;循环显示等待中断;8259初始化;-FOR8259:MOV AL,13H ;上升沿产生中断(ICW1) MOV DX,Port0 OUT DX,AL MOV AL,08H ;ICW2的设置 MOV DX,Port1 OUT DX,AL MOV AL,09H ;ICW4的设置 OUT DX,AL MOV AL,07FH ;设置IR7为中断源,并且屏蔽其它的中断源 OUT DX,ALRET;-;8253初始化(一秒信号);-FOR8253: MOV DX,0FFFBH MOV AL,36H ;0011 0110 CT0,方式3 OUT DX,AL MOV AL,76H ;0111 0110 CT1,方式3 , OUT DX,AL MOV DX,0FFF9H MOV AX,18432 ;CT1置初值 产生10ms方波 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,0FFF8H MOV AX,100 ;CT0置初值100产生1s定时信号 OUT DX,Al MOV AL,AH OUT DX,ALRET;-;8253初始化(十秒信号);-FOR8253b:MOV DX,0FFFBH MOV AL,36H ;CT0,方式3 OUT DX,AL MOV AL,76H ;CT1,方式3 OUT DX,AL MOV DX,0FFF9H MOV AX,18432 ; CT1置初值产生10ms方波 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,0FFF8H MOV AX,1000 ; CT0置初值1000产生10S定时信号 OUT DX,AL MOV AL,AH OUT DX,AL RET;-;控制CT2计数,设置频率范围;-FOR8253X: MOV DX,0FFFBH ;控制口地址 MOV AL,0B0H ;CT2,方式0 OUT DX,AL MOV DX,0FFFAH ;CT2地址 MOV AX,65535 ;T2计数的最大值 OUT DX,AL MOV AL,AH OUT DX,AL MOV CX,10 ;延时GOOD: LOOP GOODRET;-;二 十进制转化(高频无小数点,利用了M法测量);-BTRO: MOV CL,6 XOR CH,CH XOR DX,DX MOV BX,10 MOV SI,OFFSET BUF ADD SI,5 ;从低位到高位存储NEXT: DIV BX MOV SI,DL ;除以10的余数存放低位 DEC SI AND AX,AX JZ STOP ;判断是否除尽 MOV DL,0 ;将存放余数的清零 LOOP NEXTSTOP: RET;- ;二 十进制转化(低频有小数点,利用了T法测量);-BTROb:MOV CL,3 XOR CH,CH XOR DX,DX MOV BX,10 MOV SI,OFFSET BUF ADD SI,5 ;使其从数码管的低位开始显示 DIV BX MOV SI,DL DEC SI MOV DL,0 ;将存放余数的清0 DIV BX ADD DL,10 ;查表将该位的小数点显示出来 MOV SI,DL DEC SI AND AX,AX ;检测商是否为0,若为0程序跳出,否则继续 JZ STOP1 MOV DL,0NEXT1: DIV BX MOV SI,DL DEC SI AND AX,AX JZ STOP1 MOV DL,0 LOOP NEXT1 ;由于数码管只能显示5位,则CL=3STOP1: RET;-;8259的中断子程序;-INT8259: PUSH AX PUSH DX PUSH BX ;断点保护 CLI MOV DX,0FFFBH MOV AL,80H OUT DX,AL ;锁存CT2的值,方便下面读取CT2接口的值 MOV DX,0FFFAH IN AL,DX MOV Bl,AL IN AL,DX MOV BH,AL ;读取CT2的值,此时值为剩余的计数值 MOV AX,BX MOV DX,65535 SUB DX,AX ;将读取CT2的值转化为频率值 MOV AX,DX PUSH AX ;保护频率值 MOV SI,OFFSET BUF1 MOV BL,SI CMP BL,1 ;判断新频率进来之前的显示模式 JNZ DIPIN ;低频跳转,高频继续向下执行 CMP AX,2000 JB OTHER ;若小于2000,测的频率为低频,跳转,否则继续向下GOM: CALL FOR8253X CALL WP POP AX CALL BTRO ;将频率值转化为十进制,无小数 JMP X59DIPIN: CMP AX,20000 ;低频时,判断是否为高频 JNB OTHER2 ;大于20000则为高频,跳转GOM2: CALL FOR8253X CALL WP POP AX ;出栈 CALL BTROb ;将频率值转化为十进制,此时带有小数 JMP X59OTHER: CALL ANTHER ;调用高频转低频程序,设定标志位和中断时间(10s) JMP GOMOTHER2: CALL ANTHER2 ;调用低频转高频程序,设定标志位和中断时间(1s) JMP GOM2X59: MOV AL,20H MOV DX,Port0 OUT DX,AL ;中断响应后,将ISR相应位清0 MOV CX,0050H ;置循环显示的次数XX59: PUSH CX CALL DIS ;调用显示程序,将频率值显示在数码管上 POP C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 装饰公司收楼活动方案
- 焊锡考试题目及答案
- 歌曲写作考试题及答案
- 防水卷材考试题及答案
- 宾语从句详解:八年级英语中级语法课程
- 大学美学考试题及答案
- 项目风险管理分析与应对措施表
- 企业节用能源承诺书4篇
- 出口商品代理协议
- 人力资源培训需求分析表模板
- 蓝藻治理打捞管理制度
- 苏州市建设工程档案立卷程序与标准
- 2025年上半年湖北十堰竹山招募三支一扶高校毕业生聘用为事业单位人员12人易考易错模拟试题(共500题)试卷后附参考答案
- 餐饮服务明厨亮灶建设工作方案
- 兽医化验员专业知识考试题及答案
- 福建台湾海峡大桥建设工程可行性研究报告
- (完整)注册安全工程师考试题库(含答案)
- 高考作文素材积累与写法总结27 自知与知人作文审题指导及素材积累
- 电子政务概论-形考任务5(在线测试权重20%)-国开-参考资料
- 2024年贵州省贵阳市中考生物地理合卷试题(含答案逐题解析)
- DNDC模型使用手册
评论
0/150
提交评论