首页 > 领导讲话 > 企业讲话 / 正文
单片机原理及应用课程设计
2020-12-21 09:51:18 ℃
单片机课程设计 数字音频频率测试仪
班级:电气 姓名:
学号:
日期:2010年X月X日
目录 一、课程设计要求···········································1 软硬件设计要求············································1 二、设计思路
2.1.程序设计基本思路······································1 2.2.使用HIS输入并测量信号周期·······························1 2.3.测量结果处理和显示部分···································1 三.硬件和软件设计········································2 1.硬件部分························································2 1.1硬件部分·····················································2 1.2程序流程图···················································3 2.软件部分························································4 2.1程序运行结果···············································9
2.2误差分析···················································9
四.总结与感想···········································10 五.参考资料··············································11
一. 课程设计要求
题目:数字音频频率测试仪:能测试频率范围20~20000Hz的信号,误差小于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
进行频率测量
频率99Hz<f<=999Hz 判断频率范围 频率999Hz<f<=9999Hz
频率20Hz<f<=99Hz
频率f>9999Hz
结果处理4 结果处理1
结果处理2
结果处理3
循环显示测量结果
END
2、 软件部分 ;-------------------------------------------------------------- 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
1DH BX
EQU
1EH BL EQU 1EH BH EQU 1FH CX EQU 20H CL EQU 20H CH EQU 21H DX
EQU
22H DL
EQU
22H DH EQU 23H EX EQU 24H FX EQU 26H GL EQU 28H EL
EQU
30H ;---------------------------------------------------------------
ORG
2080H
LD
SP,#00C0H
LCALL
DELAY
LDB
AL,#82H
;PB口输入,PA,PC口输出
STB
AL,C8255[0]
SH_NO: LDB
AL,#00H
LDB
BL,#0E0H SH1:
SCALL
DISP
SCALL
DELAY
INCB
AL
LDB
GL,#08H
;键盘扫描第一行
STB
GL,P8255C[0]
SKIP
SKIP
LDB
EL,P8255B[0]
;读键值
XORB
EL,#0FFH
JNE
START
CMPB
AL,#08H
JNE
SH1
SCALL
DELAY
SJMP
SH_NO DISP:
STB
BL,P8255C[0]
;位选
LD
CX,#NO
EXTB
AX
ADD
CX,AX
LDB
DL,[CX]
STB
DL,P8255A[0]
;段选
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
LD BX,HSI_TIME
TEST1:
JBC
IOS1,7,TEST1
LD CX,HSI_TIME
SUB EX,CX,BX
JNC TEST
;定时器有溢出
LD
30H,EX
;8T=1.44678us,f=11.059MHZ
EXT
30H
MULU 30H,#0FFFFH
; 65535/45297(原始0FFFF/BOF1)
DIVU 30H,#0B0E2H
LD
EX,30H
LD 30H,#4240H
;1000 000=0F4240H
LD 32H,#000FH
DIVU
30H,EX ;除法运算后,字30H中存储频率值整数部分,保留5位有效数字
CMP
30H,#270FH
JNC
LOOP1
DIVUB 30H,#64H
;分别得到万千百位,和十个位
LDBZE 36H,30H
DIVUB 36H,#0AH
LDB 42H,37H
;百位42H
LDBZE 38H,36H
DIVUB 38H,#0AH
LD 40H,38H
;万位40H ,千位41H
LDBZE 36H,31H
DIVUB 36H,#0AH
LDB 43H,36H
LDB 44H,37H
;十位和个位值分别存43H和44H
LDB 45H,#10H
;显示小数点,存于45H
SJMP
SH_FREQ
LOOP1:
CMP
30H,#03E7H
JNC
LOOP2
DIVUB
30H,#64H
;分别得到千百位,和十个位
LDBZE
36H,30H
DIVUB
36H,#0AH
LD 40H,36H
;千位40H,百位41H
LDBZE
36H,31H
DIVUB
36H,#0AH
LD 42H,36H
;十位和个位值分别存42H和43H
LDB 44H,#10H
;显示小数点,存于44H
MULUB 32H,#0AH
;乘以10,除以除数,得到第一位小数
LD
34H,32H
EXT
34H
DIVU 34H,EX
LDB 45H,34H
;小数点后第一位存于45H , 小数点后需一位
SJMP
SH_FREQ
LOOP2:
CMP
30H,#63H
JNC
LOOP3
DIVUB
30H,#64H
;分别得到百位,和十个位
LDBZE
36H,30H
DIVUB
36H,#0AH
LDB
40H,37H
;百位40H
LDBZE
36H,31H
DIVUB
36H,#0AH
LDB
41H,36H
LDB 42H,37H
;十位和个位值分别存41H和42H
LDB 43H,#10H
;显示小数点,存于43H
MULUB 32H,#0AH
;乘以10,除以除数,得到第一位小数
LD
34H,32H
EXT
34H
DIVU 34H,EX
LDB 44H,34H
;小数点后第一位存于44H
MULUB 36H,#0AH
;乘以10,除以除数,得到第二位小数
LD
38H,36H
EXT
38H
DIVU 38H,EX
LDB 45H,38H
;小数点后第二位存于45H , 小数点后需二位
SJMP
SH_FREQ
LOOP3:
DIVUB
30H,#64H
;分别十个位
LDBZE
36H,31H
DIVUB
36H,#0AH
LD 40H,36H
;十位和个位值分别存40H和41H
LDB 42H,#10H
;显示小数点,存于42H
MULUB 32H,#0AH
;乘以10,除以除数,得到第一位小数
LD
34H,32H
EXT
34H
DIVU 34H,EX
LDB 43H,34H
;小数点后第一位存于43H
MULUB 36H,#0AH
;乘以10,除以除数,得到第二位小数
LD
48H,36H
EXT
48H
DIVU 48H,EX
LDB 44H,48H
;小数点后第二位存于44H
MULUB 4AH,#0AH
;乘以10,除以除数,得到第三位小数
LD
4CH,4AH
EXT
4CH
DIVU 4CH,EX
LDB
45H,4CH
;小数点后第三位存于45H , 小数点后需三位
;-------------------------------------------------------------- SH_FREQ:
LDB AL,#00H
LDB BL,#0A0H
LD
50H,#40H SH2:
SCALL DISP1
;可以增加延时
LCALL
DELAY
INCB AL
CMPB AL,#06H
JNE SH2
LJMP SH_FREQ
DISP1: STB BL,P8255C[0]
;位选
LD CX,#DATAO
CLRB
1BH
LDB
1AH,[50H]
ADD
CX,1AH
LDB
DL,[CX]
;段选
STB
DL,P8255A[0]
INCB
50H
SUBB
BL,#20H
RET ;---------------------------------------------------------------
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,. ;---------------------------------------------------------------
END 1. 程序运行结果:
测量结果显示,该软件设计能够有效的对低频信号进行测量,且测量误差较小,满足设计要求(即误差小于0.1%);而在进行大频率测量时,存在着较为明显测量误差,误差范围在1%左右,结果不十分理想。
2. 误差分析:
1.算法的问题。由于编写程序的时候在低的频率时对于小数位的处理没有做的很好,故导致在测量低频时误差会较大,而高频时不会出现这样的情况。
2.单片机的主频误差。由于主程序的编写,特别是频率处理部分的运算的准确度和主频的精确度紧密相关。若单片机实际主频率与给定频率存在较大的实际偏差,就会给运算部分带来较为严重的误差,最终的显示结果误差便不可消除。
3.信号发生器本身显示频率的准确度。信号发生器本身的输出频率与显示频率之间存在误差,导致两次测量的误差累计,很容易造成误差变大。
四、总结与感想
单片机的课程设计一直是难点,虽然给了10个题目,但是每个题目都会有其对应的难点,我选得是个自己觉得比较简单的题目,不过自己在处理低频时没有很好的处理好,这导致了低频是误差比较大,另外一个不足就是不能连续测量频率,虽然本人努力的想加上那个延时刷新的程序,不过最后还是没能成功,这算是一个遗憾。
五、参考资料 (1)MCS-96系列单片机原理及应用技术
汪建
华中科技大学出版社
2004 (2)MCS-96系列单片机实验指导书 (3)单片机原理及应用教程(刘瑞新等主编)
猜你喜欢
- 2023-11-02 2023年企业的暑期实践总结4篇
- 2023-11-01 有关企业诚信承诺书5篇
- 2023-10-30 企业调研报告1100字7篇
- 2023-10-24 企业中层干部的个人工作总结12篇
- 2023-10-24 2023年供热企业绩效考核总结5篇(范文推荐)
- 2023-10-19 企业致客户的感谢信9篇(精选文档)
- 2023-10-16 企业行政部门年度工作总结4篇(范文推荐)
- 2023-10-10 2023年企业的暑期实践总结4篇
- 2023-09-26 2023年度有关在企业的实习报告7篇
- 2023-08-26 企业单位讣告3篇(范例推荐)
- 搜索
-
- 【辈分】胡家仙家谱全部名字 01-19
- 实现伟大中国梦,我们应该怎么做 06-05
- 学习2020第三次中央新疆工作座谈会精神 10-15
- 国家开放大学电大专科《品牌管理》2021 11-14
- 最新党风廉政以违纪违法典型案例“以案 03-12
- 2020基层党员干部学习中央第三次新疆工 11-14
- 2020年关于节约粮食的倡议书六篇 10-05
- 14篇学习新民主主义革命时期历史发言提 04-28
- 党校小组鉴定评语100字_班主任评语大全 11-27
- 防范打击电信网络诈骗宣传工作方案 08-05
- 网站分类
-
- 标签列表
-