基于单片机的方波信号发生器课程设计
微型计算机技术专业方向课程设计
任务书
题目名称:基于单片机的方波信号发生器
专业 自动化 班级 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)系统设计
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
的提出、分析
(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
4
第一章 前言
本文是以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 系统结构框图
复位电路
方波信号输出 51单片机 晶振电路
开关信号采
集系统
5
第三章 硬件电路
3.1硬件设计思想
由于只要求四种不同频率方波输出档位,只需要四个开关的状态信息的采集,考虑到系统结构的成本,采用四个开关直接51单片机的P2.0—P2.3口相连的硬件设计,这样的系统结构简单,稳定,易于实现。
本系统总共有开关信号采集,复位电路,晶振单路,方波输出模块。
其中单片机VCC接+5V电源
3.2开关信号采集
采用四个单刀单掷开关和51单片机直接相连
6
7
3.3复位电路及晶振电路
C1:30pF的无极性电容
C2:30pF的无极性电容
C3:1uF的电解电容
R1:10KΩ的电阻
3.4方波输出
第四章 软件系统
4.1软件系统概述
8
4.1.1如何输出方波
由于只是要求频率可调,不要求电平,并且在P1.0口输出,可以用P1.0口的高地电平输出方波的上下限电平。
4.1.2如何采集开关状态
因为只要求四档不同频率的方波,只有四个开关状态要采集,所以可以直接把四个开关连接到P2.0到P2.3口上,可以采用对四个口的遍历的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
查询状态。 4.1.3程序总述
主程序先对中断定时器T0进行相关设置,并对开关第一次信息采集,根据开关信息的不同状态对定时器T0进行赋值,然后开启定时,等待中断。因为题目要求频率最低为1Hz,定时器T0选择方式一,TMOD控制字设置为#01H。 S1按下时:要求频率1Hz,周期为1s,定时器要求500ms,采用方式一,最大定时时间为:
162=×1us=65.536ms, Tmax
这里采用定时50ms,溢出10次改变一次电平重
162 装值的计算公式为:TC=-50ms/1us=3CB0H
S2按下时:要求频率10Hz,周期50ms,采用方式一
162 装值的计算公式为:TC=-50ms/1us=3CB0H
S3按下时:要求频率1KHz,周期500us,采用方式一
162 装值的计算公式为:TC=-500us/1u=FEFBH
S3按下时:要求频率10KHz,周期50us,采用方式一
162 装值的计算公式为:TC=-50us/1us=FFCDH
9
主程序
设置T0
根据开关状态的不同,设置相
应的T0初值,等待中断
再次判断开关
状态
进入相应开关状态的子程
序
程序流程图
10
4.2各部分程序
4.2.1主程序
主要进行T0中断设置,对开关状态的初次响应,并根据不同的开关状态进
行不同的赋值给T0,然后等待中断。
ORG 0000H
LJMP 0A00H
ORG 0A00H
SETB EA
SETB ET0
SETB PT0
MOV TMOD,#01H
LOOP:MOV P2,#0FFH
CLR TR0
JNB P2.0,SS1
JNB P2.1,SS2
JNB P2.2,SS3
JNB P2.3,SS4
SJMP LOOP
SS1:MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
MOV R0,#10
SJMP $
SS2:MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
SJMP $
SS3:MOV TH0,#0FEH
MOV TL0,#0FBH
SETB TR0
SJMP $
SS4:MOV TH0,#0FFH
MOV TL0,#0CDH
SETB TR0
SJMP $
11
开始
设置T0
循环扫描开关状态
根据开关状态的不同,进行不
同的装初值给T0
等待中断
主程序流程图
4.2.2中断程序
在T0溢出是进入本程序,本程序初始地址为000BH,本程序开始就进行了一次扫描,来确定是哪一个开关按下,然后跳转到相应的程序。
ORG 000BH
12
LJMP NEXT
ORG 0100H NEXT:JNB P2.0,S1
JNB P2.1,S2
JNB P2.2,S3
JNB P2.3,S4
SJMP NEXT
S1:DJNZ R0,NS1
CPL P1.0
MOV R0,#10
NS1:MOV TH0,#3CH
MOV TL0,#0B0H
RETI
S2:CPL P1.0
MOV TH0,#3CH
MOV TL0,#0B0H
RETI
S3:CPL P1.0
MOV TH0,#0FEH
MOV TL0,#0FBH
RETI
S4:CPL P1.0
MOV TH0,#0FFH
MOV TL0,#0CDH
RETI
END
13
中断程序
采集开关状态
跳转进入相
应的程序
返回中断,
等待中断
对电平取反
再次响应
重装初值给T0
中断程序流程图
14
第五章 总结
在进行课程设计的过程中,我发觉,对资料的获取是一个很重要的部分。制作过程中,我查阅了不少有关设计问题的资料,并从中获取自己所需要的东西。同时为了使得自己的设计更加完善,在参考众多资料的同时,我也与同学进行讨教。这一个过程,让我体会到了许多新颖有趣的观点,收获不少。
虽然单片机是我们专业的一个重要的专业课,但是我起初对它兴趣并不是很大,而且还觉得枯燥无味。然而,通过这一次的课程设计,我发现,单片机并没有想象中那么枯燥。在制作成品的过程中,我对单片机的兴趣也在增加。同时,我也了解到了自己理论上的不足和缺陷,对于自我认知上面有很大的帮助。总的来说,这一次课设,我收获良多。
参 考 文 献
《单片机原理及其接口技术》(第三版) 胡汉才 主编
《数字电子技术基础》(第五版) 清华大学电子学教研室组 编 阎石 主编 引用百度百科
15
附录
附录一:原理图、PCB图以及PROTEUS仿真图
输出频率为1HZ的方波信号图
16
输出频率为10HZ的方波信号图
输出频率为10HZ的方波信号图
17
输出频率为10000HZ的方波信号图
附录二:程序代码
主程序:
ORG 0000H
18
LJMP 0A00H
ORG 0A00H
SETB EA ;开总中断
SETB ET0 ;开T0中断
SETB PT0 ;设置T0为
高中
高中语文新课程标准高中物理选修31全套教案高中英语研修观课报告高中物理学习方法和技巧高中数学说课稿范文
断优先级
MOV TMOD,#01H ;设置T0工作在定时器方式1状态下 LOOP:MOV P2,#0FFH ;P2口作为输入输出端口时,要先写1
JNB P2.0,SS1 ;依次扫描是哪个开关闭合
JNB P2.1,SS2 ;
JNB P2.2,SS3 ;
JNB P2.3,SS4 ;
SJMP LOOP ;若没有开关闭合则重新扫描
SS1:MOV TH0,#3CH ;当开关1闭合,则给T0赋初值,并打开T0定时器
MOV TL0,#0B0H ;
SETB TR0 ;
MOV R0,#10 ;
SJMP $ ;等待T0中断响应
SS2:MOV TH0,#3CH ;当开关1闭合,则给T0赋初值,并打开T0定时器
MOV TL0,#0B0H ;
SETB TR0 ;
SJMP $ ;等待T0中断响应
SS3:MOV TH0,#0FEH ;当开关1闭合,则给T0赋初值,并打开T0定时器
MOV TL0,#0FBH ;
SETB TR0 ;
SJMP $ ;等待T0中断响应
SS4:MOV TH0,#0FFH ;当开关1闭合,则给T0赋初值,并打开T0定时器
MOV TL0,#0CDH ;
SETB TR0 ;
SJMP $ ;等待T0中断响应
中断服务程序:
ORG 000BH
LJMP next
ORG 0100H
next:JNB P2.0,S1 ;再次判断是哪个开关闭合
JNB P2.1,S2 ;
JNB P2.2,S3 ;
JNB P2.3,S4 ;
SJMP next ;若没有开关按下,则重新扫描
S1:DJNZ R0,NS1 ;若定时时间不到,则转入NS1
CPL P1.0 ;定时时间已到,输出电平取反
19
MOV R0,#10 ; NS1:MOV TH0,#3CH ;
MOV TL0,#0B0H ;
RETI ;中断返回
S2:CPL P1.0 ;电平取反
MOV TH0,#3CH ;
MOV TL0,#0B0H ;
RETI ;中断返回
S3:CPL P1.0 ;电平取反
MOV TH0,#0FEH ;
MOV TL0,#0FBH ;
RETI ;中断返回
S4:CPL P1.0 ;电平取反
MOV TH0,#0FFH ;
MOV TL0,#0CDH ;
RETI ;中断返回
SJMP $ ;停机等待
END ;结束
20