单片机课程设计
数字音频频率测试仪
班级:电气
姓名:
学号:
日期:2010年X月X日
目录
课程设计求···········································1
软硬件设计求············································1
二设计思路
21程序设计基思路······································1
22HIS输入测量信号周期·······························1
23测量结果处理显示部分···································1
三.硬件软件设计········································2
1硬件部分························································2
11硬件部分·····················································2
12程序流程图···················································3
2软件部分························································4
21程序运行结果···············································9
22误差分析···················································9
四.总结感想···········································10
五.参考资料··············································11
. 课程设计求
题目:数字音频频率测试仪:测试频率范围20~20000Hz信号误差01实时LED显示测试结果(保留五位效数)
具体设计求:
1.完成规定设计容包括相应硬件电原理图设计软件
2.四次机求完成程序效果先仿真机LED显示学号8位然输入显示测量频率
二. 设计思路
1 程序设计基思路
根设计求首先进行学号八位显示然进行频率测量学号显示程序段中设计读键子程序判断否键旦扫描出键程序立跳转频率测量程序段
2HIS高速输入测量信号周期
设计中应高速输入HIS进行周期(频率)测量设置HIS1端口发生次正跳变触发事件时HIS时间寄存器记该正跳变事件触发时间根两次触发事件间触发时间差值计算出测周期信号周期历状态周期数根单片机频(已定)计算出状态周期时间进计算出测周期信号周期进步转化频率
3测量结果处理显示部分
接频率处理显示根设计求高频率段低频率段终显示结果均保持5效数字低频段测量便涉数点效数字计算该数点数字进行效处理呢?知道整数部分相余数部分数相整法运算数部分设计中需完全显示测量结果仅需显示数点1位3位数字样便采简单算法整数部分相余数部分10数商第位数第二次相余数10数商第二位数······类推便测量结果数部分六位数值放固定存储单元显示部分测量结果位数值作偏移量叠加表格首址读取表格相应存储单元输出接口芯片相应端口进行段选显示相应位测量结果循环控制数码位选便显示完整测量结果
三硬件软件设计
1 硬件部分
根软件设计求硬件实现部分分学号显示键盘扫描跳转HIS测量测量结果进行处理显示测量结果
11硬件电路设计:硬件电路连线图示:
12程序流程图:
START
学号循环显示扫描键盘
N
判断否键
Y
进行频率测量
频率99Hz
频率999Hz
频率20Hz
频率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口输入PAPC口输出
STB ALC8255[0]
SH_NO LDB AL#00H
LDB BL#0E0H
SH1 SCALL DISP
SCALL DELAY
INCB AL
LDB GL#08H 键盘扫描第行
STB GLP8255C[0]
SKIP
SKIP
LDB ELP8255B[0] 读键值
XORB EL#0FFH
JNE START
CMPB AL#08H
JNE SH1
SCALL DELAY
SJMP SH_NO
DISP STB BLP8255C[0] 位选
LD CX#NO
EXTB AX
ADD CXAX
LDB DL[CX]
STB DLP8255A[0] 段选
SUBB BL#20H
RET
NO DB 3FH3FH07H06H5BH4FH06H7DH 学号00712316
START
LDB IOC0#04H 允许HSI1输入
LDB HSI_MODE#04H 次正跳变触发事件
TEST JBC IOS17TEST
LD BXHSI_TIME
TEST1 JBC IOS17TEST1
LD CXHSI_TIME
SUB EXCXBX
JNC TEST 定时器溢出
LD 30HEX 8T144678usf11059MHZ
EXT 30H
MULU 30H#0FFFFH 6553545297(原始0FFFFBOF1)
DIVU 30H#0B0E2H
LD EX30H
LD 30H#4240H 1000 0000F4240H
LD 32H#000FH
DIVU 30HEX 法运算字30H中存储频率值整数部分保留5位效数字
CMP 30H#270FH
JNC LOOP1
DIVUB 30H#64H 分万千百位十位
LDBZE 36H30H
DIVUB 36H#0AH
LDB 42H37H 百位42H
LDBZE 38H36H
DIVUB 38H#0AH
LD 40H38H 万位40H 千位41H
LDBZE 36H31H
DIVUB 36H#0AH
LDB 43H36H
LDB 44H37H 十位位值分存43H44H
LDB 45H#10H 显示数点存45H
SJMP SH_FREQ
LOOP1 CMP 30H#03E7H
JNC LOOP2
DIVUB 30H#64H 分千百位十位
LDBZE 36H30H
DIVUB 36H#0AH
LD 40H36H 千位40H百位41H
LDBZE 36H31H
DIVUB 36H#0AH
LD 42H36H 十位位值分存42H43H
LDB 44H#10H 显示数点存44H
MULUB 32H#0AH 10数第位数
LD 34H32H
EXT 34H
DIVU 34HEX
LDB 45H34H 数点第位存45H 数点需位
SJMP SH_FREQ
LOOP2 CMP 30H#63H
JNC LOOP3
DIVUB 30H#64H 分百位十位
LDBZE 36H30H
DIVUB 36H#0AH
LDB 40H37H 百位40H
LDBZE 36H31H
DIVUB 36H#0AH
LDB 41H36H
LDB 42H37H 十位位值分存41H42H
LDB 43H#10H 显示数点存43H
MULUB 32H#0AH 10数第位数
LD 34H32H
EXT 34H
DIVU 34HEX
LDB 44H34H 数点第位存44H
MULUB 36H#0AH 10数第二位数
LD 38H36H
EXT 38H
DIVU 38HEX
LDB 45H38H 数点第二位存45H 数点需二位
SJMP SH_FREQ
LOOP3
DIVUB 30H#64H 分十位
LDBZE 36H31H
DIVUB 36H#0AH
LD 40H36H 十位位值分存40H41H
LDB 42H#10H 显示数点存42H
MULUB 32H#0AH 10数第位数
LD 34H32H
EXT 34H
DIVU 34HEX
LDB 43H34H 数点第位存43H
MULUB 36H#0AH 10数第二位数
LD 48H36H
EXT 48H
DIVU 48HEX
LDB 44H48H 数点第二位存44H
MULUB 4AH#0AH 10数第三位数
LD 4CH4AH
EXT 4CH
DIVU 4CHEX
LDB 45H4CH 数点第三位存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 BLP8255C[0] 位选
LD CX#DATAO
CLRB 1BH
LDB 1AH[50H]
ADD CX1AH
LDB DL[CX] 段选
STB DLP8255A[0]
INCB 50H
SUBB BL#20H
RET
DELAY LD DX#00FFH 延时子程序
DELAY1 DEC DX
JNE DELAY1
RET
DATAO DB 3FH06H5BH4FH66H6DH7DH07H 01234567
DB 7FH6FH77H7CH39H5EH79H71H80H 89ABCDEF
END
1 程序运行结果:
测量结果显示该软件设计够效低频信号进行测量测量误差较满足设计求(误差01)进行频率测量时存着较明显测量误差误差范围1左右结果十分理想
2 误差分析:
1算法问题编写程序时候低频率时数位处理没做导致测量低频时误差会较高频时会出现样情况
2单片机频误差程序编写特频率处理部分运算准确度频精确度紧密相关单片机实际频率定频率存较实际偏差会运算部分带较严重误差终显示结果误差便消
3信号发生器身显示频率准确度信号发生器身输出频率显示频率间存误差导致两次测量误差累计容易造成误差变
四总结感想
单片机课程设计直难点然10题目题目会应难点选觉较简单题目处理低频时没处理导致低频误差较外足连续测量频率然努力想加延时刷新程序没成功算遗憾
五参考资料
(1)MCS96系列单片机原理应技术 汪建 华中科技学出版社 2004
(2)MCS96系列单片机实验指导书
(3)单片机原理应教程(刘瑞新等编)
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档