1 / 23
文档名称:

单片机交通灯实训报告.docx

格式:docx   大小:151KB   页数:23页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机交通灯实训报告.docx

上传人:pppccc8 2022/6/30 文件大小:151 KB

下载得到文件列表

单片机交通灯实训报告.docx

相关文档

文档介绍

文档介绍:机电工程学院课程设计报告
课程名称: 单片机课程设计
系 部: 机电工程学院
专业班级:
学生姓名:
指导教师:
完成时间:
报告成绩:
评阅意见:
日期
评阅教师
目录
一、 设计任务与要求
I>4> H)5<AI)5) rO6<AD6, rOAD” Wpp ALEPROCi PShN P27<ADIS} P2MADU} 6 — P2 5(ADI3> S — ) 4 — P2NADI1) ' —F2 2(AI)I(H 2—P2 l(AF)9) 1 — P2(MAD«)
: RXD,串行通信输入
: TXD,串行通信输出
: INTO,外部中断0输入
: INT1,外部中断1输入
: TO,计时计数器0输入
: T1,计时计数器1输入
:WR:外部数据存储器的写入信号
: RD,外部数据存储器的读取信号
2)时钟震荡电路
单片机的时钟信号用来提供单片机内各种微操作的时间其准,这个时钟信号可由 单片机内时钟电路产生。可以直接使用外部时钟信号。因此,单片机时钟电路通 常可以有两种形式内部振荡方式和外部振荡方式。
a) 外部振荡方式就是把外部自己有时钟信号引入单片机内。这种方式是用来使单 片机的时钟与外部信号保持同步。外部振荡方式电路如图所示。
b) 内部振荡方式
MCS单片机内存有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和 XTAL2分别是此大器的输入端和输出端。把放大器与作为反馈原件的晶体振 荡器或陶瓷振荡器连接就构成了内部自激振荡器并产生振荡时钟脉冲,这种 方式为内部振荡方式,如图所示。
^cc
外部时钟信弓
XTAL1
o-
o
XTAL\
MCS-51
MCS-51
XTAL2
至内部时钟电路
XTALX
内部振荡方式
外部振荡方式
晶振两边的电容主要以下作用:晶振后面的电容是负载电容,可以用来微调晶体
震荡频率。电容的取值一般来说是30pF或33pF
的瓷片电容。本次用30pF的瓷片电容
3)复位电路
复位操作可以使单片机初始化,也可以使死机状态下得单片机重新启动,计算机 在启动时,都需要复位,使CPU和系统中其它部件都处于一个确定的初始状态。 从这个状态开始工作,在振荡器正在运行的情况下。复位是靠在RST引脚处至少 保持2个机器周期(24个振荡器周期)的高电平而实现的。可以分为上电自动 复位和按键手动复位
a) 上电自动复位
对于MCS-51系列来说,最简单的上电复位电路如图所示,就是由一个电阻和一 个电容构成的。在系统上电时,经C1与R1充电,使RST端为高电平,持续时间 大于两个机器周期完成复位。电容充电结束后,系统复位结束,开始正常工作。
b) 按键手动复位
按键手动复位有电平方式和脉冲方式两种。在本系统中采用按键手动电平自动复 位如图如下。
上电自动复位方式
手动电平复位电路
位电容的作用主要如下:单片机复位电路要求有一个持续时间,加上电容可 以利用其两端电压不能突变的特性,使复位电平维持一定时间,使单片机复位。 单片机复位电平在其手册里可以看到。另外这个电容还可以去除一些杂波的干 扰,防止单片机被错误复位。本次取4. 7uF的电解电容。
四、软件设计
硬件平台上构成,完成各部分硬件的控制和协调,系统功能是由软件硬件共 同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。 因此软件是本系统的灵魂。软件采用模块化设计方法,不仅易于编程和调试,也 可减少软件故障率和提高软件的可靠性。同时对软件进行全方面的测试也是检查 错误排除故障的重要手段。流程图如下:
程序如下:
#include<> 〃声明头文件
#define uint unsigned int
#define uchar unsigned char
sbit redl=P2A0; 〃~7
sbit yellowl=P2Al;
sbit greenl=P2A2;
sbit red2=P2A5;
sbit yellow2=P2A4;
sbit green2=P2A3;
〃模式选择键
sbit keyl=P3A0;
sbit key2=P3Al; 〃数值+
sbit key3=P3A2; 〃数值-
sbit key4=P3A3; 〃暂停开始键
uchar aa,qian,bai,shi,ge,bb,shul,shu2;
uint num,keylnum,key4num;
〃定义数组0~9
uchar code table[]={
0xc0