课程设计正文.docx
《课程设计正文.docx》由会员分享,可在线阅读,更多相关《课程设计正文.docx(8页珍藏版)》请在冰豆网上搜索。
课程设计正文
河南机电高等专科学校
课程设计论文
论文题目:
简易频率测量仪
系部机电工程系
专业机电一体化
班级机电091
学生姓名候秋月
学号090212109
成绩
2011年06月12日
目录
1设计任务1
2系统硬件设计2
2.1器件选择2
2.2硬件原理图2
3系统软件设计3
3.1软件流程图3
3.2软件清单6
4设计总结10
参考文献11
1设计任务
对800——1200HZ中频电源进行频率监控,测量精度不低于1%并用数码管实时显示被测脉冲频率值。
主要任务:
1.信号变送:
对被测信号实现两个变换:
强电→弱电;正弦→方波
2.频率计算:
计算频率并保存两位小数
3.频率显示:
十六进制→BCD码
2系统硬件设计
2.1器件选择
选用单片机的型号是AT89C52。
晶振用12MHZ,手动复位,引脚/EA接高电平P1口八个引脚接数码管的a,b,c,d,e,f,g,h。
P2.0-P2.3分别接数码管的四个COM端,P3.5接芯片CD4093B的3引脚。
2.2硬件原理图
图1系统硬件原理图
3系统软件设计
3.1软件流程图
3.2软件清单
ORG0000H
SJMPMAIN
ORG000BH
LJMPT0_S;定时器T0中断入口
ORG0030H
MAIN:
MOVSP,#60H;主程序
SETBET0
SETBEA
MOVTMOD,#51H;T1计数,T0定时,工作方式1
MOVR7,#04H
CLRA
MOVR0,#41H
CLEAR:
MOV@R0,A;将41H—42H清零
INCR0
DJNZR7,CLEAR
MOVTH0,#3CH;设T0初值,使其溢出20次为1秒
MOVTL0,#0B0H
MOVTH1,#00H;设T1初值
MOVTL1,#00H
MOV40H,#00H;40H用于存放溢出次数
MOVTCON,#50H;开启T0,T1
START:
LCALLH_BCD;无限循环
LCALLDISP
SJMPSTART
ORG0200H
T0_S:
PUSHACC;中断服务程序
MOVTH0,#3CH;重装初值
MOVTL0,#0B0H
INC40H
MOVA,40H
CJNEA,#14H,DONE;溢出满20次就顺序执行
MOVTCON,#0A0H;关T0,T1
MOV46H,TL1;保存脉冲数到46H,45H
MOV45H,TH1
MOV40H,#00H;将40H中的溢出次数清零
MOVTH1,#00H;重装计数器T1初值
MOVTL1,#00H
MOVTCON,#50H;开启T0和T1
DONE:
POPACC;ACC出栈
RETI
ORG0300H
H_BCD:
PUSHPSW;将PSW圧栈
SETBRS0;选第一组工作寄存器为当前
MOVR1,#41H
MOVR5,#03H
CLRA
HB1:
MOV@R1,A;将43H,42H,41H清零
INCR1
DJNZR5,HB1
MOVR7,#10H;循环16次才可将46H,45H中十六进制数转化为BCD码
HB2:
MOVR0,#45H
MOVR6,#02H
CLRC
HB3:
MOVA,@R0
RLCA;产生Cy
MOV@R0,A
INCR0
DJNZR6,HB3
MOVR1,#41H
MOVR5,#03H
NOP
HB4:
MOVA,@R1
ADDCA,@R1
DAA
MOV@R1,A
INCR1
DJNZR5,HB4
DJNZR7,HB2;减一为0顺序执行
POPPSW
RET
ORG0400H
DISP:
MOVR1,#41H;R1先指向41H单元
MOVR3,#02H
MOVR4,#0FEH;设片选信号,低位先亮
MOVDPTR,#TAB
LOP:
MOVA,@R1
ANLA,#0FH;屏蔽高四位
MOVCA,@A+DPTR;查表得字型码
MOVP1,A;显示
MOVP2,R4;片选
LCALLDELAY;显示一段时间
MOVA,R4;移位更改片选信号
RLA
MOVR4,A
MOVA,@R1
SWAPA;交换高低四位
ANLA,#0FH;屏蔽高四位
MOVCA,@A+DPTR;查表得字型码
MOVP1,A;显示
MOVP2,R4;片选
LCALLDELAY;显示一段时间
INCR1;R1指向42H单元
DJNZR3,LOP
RET
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH
ORG0500H
DELAY:
MOV31H,#200;延时一段时间
DL1:
NOP
NOP
NOP
DJNZ31H,DL1
RET
END
4设计总结
变压器的作用是将被测强电转化为弱电。
在频率显示中最低位到最高位依次对应41H和42H单元由低位到高位的四个BCD码。
使用用单片机内部集成的定时计数器,比较灵活方便。
利用软件程序而不是译码器将十六进制转化为十进制,这样节省了硬件成本,节约了单片机端口,但是程序复杂。
数码管采用动态显示,虽然程序复杂,数码管亮度不高,但节约了单片机端口,故设计合理。
程序中采用软件延时,延时准确,使用方便,却占用了CPU的时间。
通过本次设计,我学到了解决问题的途径,并通过解决问题学到了不少相关知识。
参考文献
[1]李文方.单片机原理与应用.哈尔滨:
哈尔滨工业大学出版社,2010.5