




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机课程设计数字音频频率测试仪班级:电气0705姓名:杨军学号:U200712316日期:2010年10月29日 目录一、课程设计要求1软硬件设计要求1二、设计思路2.1.程序设计基本思路12.2.使用HIS输入并测量信号周期12.3.测量结果处理和显示部分1三硬件和软件设计21.硬件部分21.1硬件部分21.2程序流程图32.软件部分42.1程序运行结果92.2误差分析9四总结与感想10五参考资料11一 课程设计要求题目:数字音频频率测试仪:能测试频率范围2020000Hz的信号,误差小于0.1%,实时在LED显示测试结果(保留五位有效数据)。具体设计要求:1完成规定的设计内容,包括相应的硬件电原理图和设计的软件。2四次上机要求完成程序。效果是先在仿真机的LED上显示自己学号的后8位,然后再输入显示要测量的频率。二 设计思路1. 程序设计基本思路根据设计的要求,首先进行学号后八位的显示,然后进行频率测量。在学号显示程序段中设计读键子程序,判断是否有键按下,一旦扫描出有按键被按下,则程序立即跳转到频率测量程序段。2.使用HIS高速输入测量信号周期本设计中的主要是应用高速输入HIS进行周期(频率)测量,设置HIS.1端口每发生一次正跳变触发一个事件,同时HIS时间寄存器记下该正跳变事件的触发时间,根据两次触发事件之间的触发时间的差值计算出被测周期信号一个周期内所经历的状态周期个数。再根据单片机的主频(已给定)计算出一个状态周期的时间,进而计算出被测周期信号的周期,进一步转化为频率。3.测量结果处理和显示部分接下来是对所得频率的处理和显示,根据设计要求,无论是高频率段还是低频率段,最终的显示结果均要保持5为有效数字。因此对于低频段的测量,便涉及到了小数点后有效数字的计算。那么该如何对小数点后数字进行有效处理呢?我们都知道,整数部分相除,所得余数部分与被除数相除即为整个除法运算的小数部分,由于本设计中并不需要完全地显示测量结果,而是仅需要显示小数点后1位到3位数字,这样我们便可以采用简单的算法。即让整数部分相除所得余数部分乘以10再除以被除数,所得商即为第一位小数;让第二次相除所得余数再乘以10再除以被除数,所得商即为第二位小数以此类推便可得到测量结果的小数部分。最后将所得六位数值放到固定的存储单元,在显示部分测量结果的每位数值都作为偏移量叠加到表格首地址上,读取表格相应存储单元,并输出到接口芯片的相应端口进行段选,显示相应位的测量结果,用循环控制数码管的位选,便可显示完整的测量结果。三、硬件和软件设计1、 硬件部分根据软件设计要求,将硬件实现部分分为学号显示、键盘扫描并跳转、HIS测量、对测量结果进行处理并显示测量结果。1.1硬件电路设计:硬件电路及连线如下图所示:1.2程序流程图:START学号循环显示及扫描键盘N判断是否有键按下Y进行频率测量频率99Hzf=999Hz判断频率范围频率999Hzf=9999Hz 频率20Hzf9999Hz 结果处理4结果处理1结果处理2结果处理3循环显示测量结果END2、 软件部分;-C8255 EQU 0C006H ;8255命令口地址P8255A EQU 0C000H ;8255 PA口地址P8255B EQU 0C002H ;8255 PB口地址P8255C EQU 0C004H ;8255 PC口地址;-AX EQU 1CH AL EQU 1CH AH EQU 1DHBX EQU 1EHBLEQU1EHBHEQU1FHCXEQU20HCLEQU20HCHEQU21HDX EQU 22HDL EQU 22HDHEQU23HEXEQU24HFXEQU26HGLEQU28HEL EQU 30H;- ORG 2080H LD SP,#00C0H LCALL DELAY LDB AL,#82H ;PB口输入,PA,PC口输出 STB AL,C82550 SH_NO: LDB AL,#00H LDB BL,#0E0HSH1: SCALL DISP SCALL DELAY INCB AL LDB GL,#08H ;键盘扫描第一行 STB GL,P8255C0 SKIP SKIP LDB EL,P8255B0 ;读键值 XORB EL,#0FFH JNE START CMPB AL,#08H JNE SH1 SCALL DELAY SJMP SH_NODISP: STB BL,P8255C0 ;位选 LD CX,#NO EXTB AX ADD CX,AX LDB DL,CX STB DL,P8255A0 ;段选 SUBB BL,#20H RET;-NO: DB 3FH,3FH,07H,06H,5BH,4FH,06H,7DH ;学号00712316;- START: LDB IOC0,#04H ;允许HSI.1输入 LDB HSI_MODE,#04H ;每次正跳变触发一个事件 ;-TEST: JBC IOS1,7,TEST LDBX,HSI_TIME TEST1: JBC IOS1,7,TEST1 LDCX,HSI_TIMESUBEX,CX,BXJNCTEST ;定时器有溢出 LD 30H,EX ;8T=1.44678us,f=11.059MHZ EXT 30HMULU30H,#0FFFFH ; 65535/45297(原始0FFFF/BOF1)DIVU30H,#0B0E2H LD EX,30HLD30H,#4240H ;1000 000=0F4240HLD32H,#000FHDIVU 30H,EX;除法运算后,字30H中存储频率值整数部分,保留5位有效数字 CMP 30H,#270FH JNC LOOP1 DIVUB30H,#64H ;分别得到万千百位,和十个位LDBZE36H,30HDIVUB36H,#0AH LDB42H,37H ;百位42H LDBZE38H,36H DIVUB38H,#0AH LD40H,38H ;万位40H ,千位41HLDBZE36H,31H DIVUB36H,#0AH LDB43H,36H LDB44H,37H ;十位和个位值分别存43H和44H LDB45H,#10H ;显示小数点,存于45H SJMP SH_FREQLOOP1: CMP 30H,#03E7H JNC LOOP2 DIVUB 30H,#64H ;分别得到千百位,和十个位LDBZE 36H,30HDIVUB 36H,#0AH LD40H,36H ;千位40H,百位41H LDBZE 36H,31H DIVUB 36H,#0AH LD42H,36H ;十位和个位值分别存42H和43H LDB44H,#10H ;显示小数点,存于44H MULUB32H,#0AH ;乘以10,除以除数,得到第一位小数 LD 34H,32H EXT 34H DIVU34H,EX LDB45H,34H ;小数点后第一位存于45H , 小数点后需一位 SJMP SH_FREQ LOOP2: CMP 30H,#63H JNC LOOP3 DIVUB 30H,#64H ;分别得到百位,和十个位LDBZE 36H,30HDIVUB 36H,#0AH LDB 40H,37H ;百位40H LDBZE 36H,31H DIVUB 36H,#0AH LDB 41H,36H LDB42H,37H ;十位和个位值分别存41H和42H LDB43H,#10H ;显示小数点,存于43H MULUB32H,#0AH ;乘以10,除以除数,得到第一位小数 LD 34H,32H EXT 34H DIVU34H,EX LDB44H,34H ;小数点后第一位存于44H MULUB36H,#0AH ;乘以10,除以除数,得到第二位小数 LD 38H,36H EXT 38H DIVU38H,EX LDB45H,38H ;小数点后第二位存于45H , 小数点后需二位 SJMP SH_FREQLOOP3: DIVUB 30H,#64H ;分别十个位 LDBZE 36H,31H DIVUB 36H,#0AH LD40H,36H ;十位和个位值分别存40H和41H LDB42H,#10H ;显示小数点,存于42H MULUB32H,#0AH ;乘以10,除以除数,得到第一位小数 LD 34H,32H EXT 34H DIVU34H,EX LDB43H,34H ;小数点后第一位存于43H MULUB36H,#0AH ;乘以10,除以除数,得到第二位小数 LD 48H,36H EXT 48H DIVU48H,EX LDB44H,48H ;小数点后第二位存于44H MULUB4AH,#0AH ;乘以10,除以除数,得到第三位小数 LD 4CH,4AH EXT 4CH DIVU4CH,EX LDB 45H,4CH ;小数点后第三位存于45H , 小数点后需三位 ;-SH_FREQ: LDBAL,#00H LDBBL,#0A0H LD 50H,#40HSH2: SCALLDISP1 ;可以增加延时 LCALL DELAY INCBAL CMPBAL,#06H JNESH2 LJMPSH_FREQDISP1:STBBL,P8255C0 ;位选LDCX,#DATAO CLRB 1BH LDB 1AH,50HADD CX,1AHLDB DL,CX ;段选STB DL,P8255A0INCB 50HSUBB BL,#20HRET;- DELAY: LD DX,#00FFH ;延时子程序DELAY1: DEC DX JNE DELAY1 RET ;- DATAO: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0,1,2,3,4,5,6,7 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H,80H ;8,9,A,B,C,D,E,F,.;- END1. 程序运行结果:测量结果显示,该软件设计能够有效的对低频信号进行测量,且测量误差较小,满足设计要求(即误差小于0.1%);而在进行大频率测量时,存在着较为明显测量误差,误差范围在1%左右,结果不十分理想。2. 误差分析:1.算法的问题。由于编写程序的时候在低的频率时对于小数位的处理没有做的很好,故导致在测量低频时误差会较大,而高频时不会出现这样的情况。2.单片机的主频误差。由于主程序的编写,特别是频率处理部分的运算的准确度和主频的精确度紧密相关。若单片机实际主频率与给定频率存在较大的实际偏差,就会给运算部分带来较为严重的误差,最终的显示结果误差便不可消除。3.信号发生器本身显示频率的准确度。信号发生器本身的输出频率与显示频率之间存在误差,导致两次测量的误差累计,很容易造成误差变大。四、总结与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5G通信科技公司内部股权分割与转让合同
- 高效离婚协议范本:财产分割与子女抚养细节解析
- 离婚财产分割协议:车辆使用与归属权清晰约定
- 离婚财产分割协议书:详述房产、车辆等财产分配合同
- 农田土地租赁与农业生态环境保护合同协议书
- 物业项目经理聘用合同范本(含安全管理)
- 硅藻泥装饰工程安全施工与环境保护责任合同
- 离婚财产分割协议中的人寿保险合同权益处理合同
- 离婚双方财产全权放弃及分割的专项执行与清算协议
- 离婚后子女监护权调整协议书修订与履行要求
- 《分子生物学基础知识》课件
- GB/T 45147-2024道路车辆总质量大于3.5 t的车辆气制动系统试验使用滚筒制动试验台获取和使用参考值
- 食管纵隔瘘护理
- 建筑项目水泥采购合同
- 华为ICT大赛网络赛道考试题库(786题)
- 水果采购协议样本
- 中职英语(高教版2021基础模块1)Part01-Unit2-Transportation
- 哲学与人生 第二课 树立科学的世界观2.1
- 2024-2030年中国止痛药品市场供需形势及未来前景动态研究研究报告
- 风电110KV升压站土建工程施工方案
- 2018低压电力线高速载波通信互联互通技术规范第3部分:检验方法
评论
0/150
提交评论