课程设计基于单片机的方波信号发生器.docx
- 文档编号:9368086
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:21
- 大小:620.14KB
课程设计基于单片机的方波信号发生器.docx
《课程设计基于单片机的方波信号发生器.docx》由会员分享,可在线阅读,更多相关《课程设计基于单片机的方波信号发生器.docx(21页珍藏版)》请在冰点文库上搜索。
课程设计基于单片机的方波信号发生器
微型计算机技术专业方向课程设计
任务书
题目名称:
基于单片机的方波信号发生器
专业自动化班级122
姓名学号
学校:
指导教师:
2014年12月9日
课程设计任务书
课程名称:
微型计算机技术
设计题目:
基于单片机的方波信号发生器系
统硬件要求:
从P1.0口输出方波,分四个档:
按下S1时输出1HZ,按下S2时输出10HZ,按下S3时输出1KHZ,按下S4时输出10KHZ的方波,要求误差少于1%,
软件设计:
1)主程序设计
2)各功能子程序设计
其他要求:
1、每位同学独立完成本设计。
2、依据题目要求,提出系统设计方案。
3、设计系统电路原理图。
1、调试系统硬件电路、功能程序。
2、编制课程设计报告书并装订成册,报告书内容(按顺序)
(1)报告书封面
(2)课程设计任务书
(3)系统设计方案的提出、分析
(4)系统中典型电路的分析
(5)系统软件结构框图
(6)系统电路原理图
(7)源程序
(8)课设字数不少于2000字
成绩
评语
摘要
本实验是基于AT89C51单片机单片机所设计的,可以实现四种频率不同的方波信号的发生。
本实验方波输出在89C51的P1.0口,分为四档,按下S1时输出1HZ,按下S2时输出10HZ,按下S3时输出1KHZ,按下S4时输出10KHZ的方波。
关键词:
51单片机;方波;四档
第一章前言.......................................................5
第二章系统总体设计
2.1系统介绍......................................................5
2.2硬件简介......................................................5
2.3软件简介......................................................5
2.4系统结构框图..................................................5
第三章硬件电路
3.1硬件设计思想...................................................6
3.2开关信号采集...................................................6
3.3复位电路及晶振电路.............................................8
3.4方波输出.......................................................8
第四章软件系统
4.1软件系统概述...................................................8
4.2各部分程序.....................................................10
第五章总结.......................................................15
附录..............................................................16
第一章前言
本文是以MCS-51单片机系统为基础的,通过四个单刀单掷开关控制单片机的P1.0口输出四种不同频率的方波信号。
即分为四个档,闭合开关S1时输出1HZ方波信号,闭合开关S2时输出10HZ方波信号,闭合开关S3时输出1KHZ方波信号,闭合开关S3时输出10KHZ方波信号,并且每组方波信号的误差不大于1%。
第二章系统总体设计
2.1系统介绍
根据开关按键的不同,在51单片机的P1.0输出不同频率的方波,在无按键按下的时候,保持当前电平输出。
2.2硬件简介
硬件核心为51单片机以及周围电路,主要有51的复位电路,晶振电路,在加上四个单刀单掷开关。
2.3软件简介
本实验软件编程使用的51系列的汇编语言。
2.4系统结构框图
第三章硬件电路
3.1硬件设计思想
由于只要求四种不同频率方波输出档位,只需要四个开关的状态信息的采集,考虑到系统结构的成本,采用四个开关直接51单片机的P2.0—P2.3口相连的硬件设计,这样的系统结构简单,稳定,易于实现。
本系统总共有开关信号采集,复位电路,晶振单路,方波输出模块。
其中单片机VCC接+5V电源
3.2开关信号采集
采用四个单刀单掷开关和51单片机直接相连
3.3复位电路及晶振电路
C1:
30pF的无极性电容
C2:
30pF的无极性电容
C3:
1uF的电解电容
R1:
10KΩ的电阻
3.4方波输出
第四章软件系统
4.1软件系统概述
4.1.1如何输出方波
由于只是要求频率可调,不要求电平,并且在P1.0口输出,可以用P1.0口的高地电平输出方波的上下限电平。
4.1.2如何采集开关状态
因为只要求四档不同频率的方波,只有四个开关状态要采集,所以可以直接把四个开关连接到P2.0到P2.3口上,可以采用对四个口的遍历的方法查询状态。
4.1.3程序总述
主程序先对中断定时器T0进行相关设置,并对开关第一次信息采集,根据开关信息的不同状态对定时器T0进行赋值,然后开启定时,等待中断。
因为题目要求频率最低为1Hz,定时器T0选择方式一,TMOD控制字设置为#01H。
S1按下时:
要求频率1Hz,周期为1s,定时器要求500ms,采用方式一,最大定时时间为:
=
×1us=65.536ms,
这里采用定时50ms,溢出10次改变一次电平重
装值的计算公式为:
TC=
-50ms/1us=3CB0H
S2按下时:
要求频率10Hz,周期50ms,采用方式一
装值的计算公式为:
TC=
-50ms/1us=3CB0H
S3按下时:
要求频率1KHz,周期500us,采用方式一
装值的计算公式为:
TC=
-500us/1u=FEFBH
S3按下时:
要求频率10KHz,周期50us,采用方式一
装值的计算公式为:
TC=
-50us/1us=FFCDH
程序流程图
4.2各部分程序
4.2.1主程序
主要进行T0中断设置,对开关状态的初次响应,并根据不同的开关状态进行不同的赋值给T0,然后等待中断。
ORG0000H
LJMP0A00H
ORG0A00H
SETBEA
SETBET0
SETBPT0
MOVTMOD,#01H
LOOP:
MOVP2,#0FFH
CLRTR0
JNBP2.0,SS1
JNBP2.1,SS2
JNBP2.2,SS3
JNBP2.3,SS4
SJMPLOOP
SS1:
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
MOVR0,#10
SJMP$
SS2:
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
SJMP$
SS3:
MOVTH0,#0FEH
MOVTL0,#0FBH
SETBTR0
SJMP$
SS4:
MOVTH0,#0FFH
MOVTL0,#0CDH
SETBTR0
SJMP$
主程序流程图
4.2.2中断程序
在T0溢出是进入本程序,本程序初始地址为000BH,本程序开始就进行了一次扫描,来确定是哪一个开关按下,然后跳转到相应的程序。
ORG000BH
LJMPNEXT
ORG0100H
NEXT:
JNBP2.0,S1
JNBP2.1,S2
JNBP2.2,S3
JNBP2.3,S4
SJMPNEXT
S1:
DJNZR0,NS1
CPLP1.0
MOVR0,#10
NS1:
MOVTH0,#3CH
MOVTL0,#0B0H
RETI
S2:
CPLP1.0
MOVTH0,#3CH
MOVTL0,#0B0H
RETI
S3:
CPLP1.0
MOVTH0,#0FEH
MOVTL0,#0FBH
RETI
S4:
CPLP1.0
MOVTH0,#0FFH
MOVTL0,#0CDH
RETI
END
中断程序流程图
第五章总结
在进行课程设计的过程中,我发觉,对资料的获取是一个很重要的部分。
制作过程中,我查阅了不少有关设计问题的资料,并从中获取自己所需要的东西。
同时为了使得自己的设计更加完善,在参考众多资料的同时,我也与同学进行讨教。
这一个过程,让我体会到了许多新颖有趣的观点,收获不少。
虽然单片机是我们专业的一个重要的专业课,但是我起初对它兴趣并不是很大,而且还觉得枯燥无味。
然而,通过这一次的课程设计,我发现,单片机并没有想象中那么枯燥。
在制作成品的过程中,我对单片机的兴趣也在增加。
同时,我也了解到了自己理论上的不足和缺陷,对于自我认知上面有很大的帮助。
总的来说,这一次课设,我收获良多。
参考文献
《单片机原理及其接口技术》(第三版)胡汉才主编
《数字电子技术基础》(第五版)清华大学电子学教研室组编阎石主编
引用XX百科
附录
附录一:
原理图、PCB图以及PROTEUS仿真图
输出频率为1HZ的方波信号图
输出频率为10HZ的方波信号图
输出频率为10HZ的方波信号图
输出频率为10000HZ的方波信号图
附录二:
程序代码
主程序:
ORG0000H
LJMP0A00H
ORG0A00H
SETBEA;开总中断
SETBET0;开T0中断
SETBPT0;设置T0为高中断优先级
MOVTMOD,#01H;设置T0工作在定时器方式1状态下
LOOP:
MOVP2,#0FFH;P2口作为输入输出端口时,要先写1
JNBP2.0,SS1;依次扫描是哪个开关闭合
JNBP2.1,SS2;
JNBP2.2,SS3;
JNBP2.3,SS4;
SJMPLOOP;若没有开关闭合则重新扫描
SS1:
MOVTH0,#3CH;当开关1闭合,则给T0赋初值,并打开T0定时器
MOVTL0,#0B0H;
SETBTR0;
MOVR0,#10;
SJMP$;等待T0中断响应
SS2:
MOVTH0,#3CH;当开关1闭合,则给T0赋初值,并打开T0定时器
MOVTL0,#0B0H;
SETBTR0;
SJMP$;等待T0中断响应
SS3:
MOVTH0,#0FEH;当开关1闭合,则给T0赋初值,并打开T0定时器
MOVTL0,#0FBH;
SETBTR0;
SJMP$;等待T0中断响应
SS4:
MOVTH0,#0FFH;当开关1闭合,则给T0赋初值,并打开T0定时器
MOVTL0,#0CDH;
SETBTR0;
SJMP$;等待T0中断响应
中断服务程序:
ORG000BH
LJMPnext
ORG0100H
next:
JNBP2.0,S1;再次判断是哪个开关闭合
JNBP2.1,S2;
JNBP2.2,S3;
JNBP2.3,S4;
SJMPnext;若没有开关按下,则重新扫描
S1:
DJNZR0,NS1;若定时时间不到,则转入NS1
CPLP1.0;定时时间已到,输出电平取反
MOVR0,#10;
NS1:
MOVTH0,#3CH;
MOVTL0,#0B0H;
RETI;中断返回
S2:
CPLP1.0;电平取反
MOVTH0,#3CH;
MOVTL0,#0B0H;
RETI;中断返回
S3:
CPLP1.0;电平取反
MOVTH0,#0FEH;
MOVTL0,#0FBH;
RETI;中断返回
S4:
CPLP1.0;电平取反
MOVTH0,#0FFH;
MOVTL0,#0CDH;
RETI;中断返回
SJMP$;停机等待
END;结束
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 基于 单片机 方波 信号发生器