课程设计—基于单片机的方波信号发生器汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微型计算机技术专业方向课程设计
任务书
题目名称:基于单片机的方波信号发生器
专业自动化班级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)源程序
摘要
本实验是基于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,采用方式一,最大定时时间为:
T=162×1us=65.536ms,
max
这里采用定时50ms,溢出10次改变一次电平重
装值的计算公式为:TC=16
2-50ms/1us=3CB0H
S2按下时:要求频率10Hz,周期50ms,采用方式一
装值的计算公式为:TC=16
2-50ms/1us=3CB0H
S3按下时:要求频率1KHz,周期500us,采用方式一
装值的计算公式为:TC=16
2-500us/1u=FEFBH
S3按下时:要求频率10KHz,周期50us,采用方式一
装值的计算公式为:TC=16
2-50us/1us=FFCDH
程序流程图
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 $