当前位置:文档之家› 红绿灯控制

红绿灯控制

昆明理工大学信息工程与自动化学院学生实验报告
(20 16—2017学年第二学期)
课程名称:嵌入式系统在生医中的应用开课实验室:信自111
实验日期:2017.5.9
一、实验内容、原理
主体电路红绿灯自动控制模块。

本电路利用单片机的P3.2,P3.3,P3.4作为输出口,分别控制红、黄、绿三个灯亮的顺序及时间,红灯亮4秒,黄灯亮1秒,绿灯亮5秒,重复执行。

二、相关知识
1、芯片STC8951
AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。

主要特性:与MCS-51 兼容,4K字节可编程FLASH存储器,寿命:1000写/擦循环,数据保留时间:10年,全静态工作:0Hz-24MHz,三级程序存储器锁定128×8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。

2、单片机I/O端口
(1)特点
锁存器加引脚结构。

I/O复用结构:P0口作并行扩展时为三态双向口;P3口为功能复用I/O口,由内部控制端控制。

准双向结构:P0-P3口作普通I/O口使用时均为准双向口,典型结构如P1口。

输入时读引脚,输出时为写锁存器。

(2) I/O端口应用特性
端口的自动识别:P0、P2总线复用、P3功能复用,内部资源自动选择。

端口锁
存器的读、改、写操作:都是一些逻辑运算、置位/清除、条件转移等指令。

读引脚的操作指令:I/O端口被指定为源操作数即为读引脚操作。

例如,执行“MOV A,P1”时,P1口的引脚状态传送到累加器中;而相对应的“MOV P0, A”指令则是将累加器的内容传送到P1口锁存器中。

准双向口的使用:端口作输入时,读入时应先对端口置“1”,然后再读引脚。

P0口作普通口使用;此时必须加上拉电阻。

I/O驱动特性:P0口可驱动8个LSTTL输入端,P1-P3口可驱动4个LSTTL 输入端。

三、程序设计及说明
1、主程序
ORG 0000H ;以下程序从0单元开始
AJMP MAIN
ORG 0030H
MAIN:
clr p3.2 ;红灯亮4秒
setb p3.3 ;黄灯不亮
setb p3.4 ;绿灯不亮
lcall delay1s ;延时1秒
lcall delay1s ;延时1秒
lcall delay1s;延时1秒
lcall delay1s ;延时1秒
setb p3.2 ;红灯不亮
clr p3.3 ;黄灯亮1秒
setb p3.4 ;绿灯不亮
lcall Delay1s ;延时1秒
setb p3.2 ;红灯不亮
setb p3.3 ;黄灯不亮
clr p3.4 ;绿灯亮5秒
lcall Delay1s ;延时1秒
lcall Delay1s ;延时1秒
lcall Delay1s ;延时1秒
lcall Delay1s ;延时1秒
lcall Delay1s ;延时1秒
AJMP MAIN ;跳转到MAIN处
delay1s: ;1秒延时子程序
mov r5,#9
mov r7,#0
mov r6,#195
LOOP:
LOP:
djnz r7,$ ;延时256×2μs=512(μs)
djnz r6,lop ;延时(512+2)×R6(μs)
djnz r5,loop
RET
END
2、延时子程序时间计算:
如果延时1S=1000ms=1000000μs;则上段程序R6的取值为:
1000000
μs=1945.5253μs
R6只能取整数,取1946,则上段程序延时总时间为:
(512+2)×1946μs=1000244μs=1000.244ms=1.000244s
四、Keil 编译
1、运行Keil uVision5进入编辑界面,如图1-1所示。

图1-1 Keilc51编辑界面
2、首先进入菜单project/new project建立一个新工程,如图1-2所示。

图1-2 建立新工程
3、选择要保存的路径,输入工程文件的名字,如图1-3所示。

图1-3 保存路径
4、根据使用的单片机选择相应的型号,如图1-4所示。

图1-4 选择单片机型号
5、单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,弹出如图1-5所示界面加入源文件。

如还没有源文件请先进入菜单File/New生成一个*.asm格式的文件。

图1-5 加入源文件界面
6、进行输出文件设置,进入菜单project/options for target选择OUTPUT选项卡,勾选Crest HEX File项,如图1-6所示。

图1-6 输出文件设置
7、程序编写完成后进入菜单Project/Build target编译工程,如图1-7所示。

生成的*.HEX文件即可作为下载程序使用。

图1-7 生成文件
五、主要困难与解决办法:
1、在编译过程中,试了许多次都没有编译成功,最后发现是由于字母拼写错误,改正之后才正确了。

2、程序编译运行通过后,加载进入仿真原理图中运行,红黄绿三个灯没有亮,进行程序的编辑调试后再次加载入仿真原理图中,此次只有红灯亮。

解决办法:通过检查程序和询问同学,改变了main程序中的延时子程序,重新运行了程序之后,仿真通过,原理图运行正常。

3、焊接电路板时没有搞清楚原理,就直接开始焊接,导致元器件的位置摆放的
不够准确,以至于焊接时,难度加大。

同时对于直接在万用板上焊接电路比在PCB板上焊接难度更大。

要学会脱锡和使用飞线连接元器件。

以及焊接9针RS-232串口弯座时,由于引脚过大无法插入电路板。

解决方法:看课本,弄清楚原理图。

已经焊上的元器件可以取得将其取下,找到合适位置,重新焊接。

不能取的元器件就想办法,利用飞线将其连接。

或者询问老师和其他同学来找到解决的方法。

脱锡不会的就多练习,所谓熟能生巧,经过不断的失败与尝试,我们逐渐掌握住了技巧。

将电路板使用镊子将其孔变大,使9针RS-232串口弯座可以插入电路板。

六、Proteus仿真的过程与结果
图1-8 仿真原理图
图1-9 加载程序
图1-10 红灯亮4秒
图1-11 黄灯亮1秒
图1-12绿灯亮5秒
七、串口通信板制作
1、元件清单
表1-1 元件清单及用途
2、RS-232串接口选择弯座,便于安装在模块板上,选择母头便于与计算机相连,计算机的外部串口大多数是公头。

图1-13 串口通信模块电路元器件图
3、电路原理图,图中有四个电容,作为电平转换
图1-15 串口通信模块电路通信原理图
4、元件在模块万用板上的布局,串口母头尽量靠右,用于单片机与计算机之间通信。

图1-16
5、布线与焊接:
焊接芯片时,只焊芯片座,整个电路完成后,才把芯片插上。

焊接电容时,注意正负极。

有跨接线的地方,应加绝缘管。

图1-17
八、程序下载
使用软件stc-isp-15xx-v6.85I与实物板进行数据通信。

图1-18stc-isp-15xx-v6.85I软件界面
1、选择单片机的型号为STC89C51RC
图1-19 选择型号
2、在实物板与计算机联通之后选择该单片机的串口号
图1-20 选择串口号
3、打开程序文件,找到程序的所在位置,加载文件
图1-21 加载文件
4、下载编程,将上述程序下载实物板上
图1-22 下载编程
九、总结体会
在设计红绿灯的过程中,我了解红绿灯管理的基本工作原理,基本掌握STC89C51的工作原理和应用编程,熟悉STC89C51单片机并行接口的各种工作方式和应用。

通过这次红绿灯的实验,使我得到了一次用专业知识、专业技能分析和解决现实问题的能力。

使我在单片机的基本原理、单片机应用学习过程中,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步。

综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更深层次的理解和认识。

在此,由于自身能力有限,在课程设计中碰到了很多的问题。

例如,对于通信板的电路原理图与万用板二者无法联系到一起,导致元器件的位置安放不是很合理,最终焊接过程变得更加艰难。

许多地方都得用到飞线,但由于对于第一次使用飞线的我来说,不了解其使用性能,使其大部分裸露在外,导致短路现象。

在其他同学的帮助下,才改变了这个状况,最终,通信板可以与计算机进行通信。

上大学后,很多同学都没有过深入的交流,在焊接电路板的过程中,我们用了分工与合作的方式,每个人互责一定的部分,同时在一定的阶段共同讨论,以解决分工中个人不能解决的问题,在交流中大家积极发言,和提出意见,同时我们还向别的同学请教。

在此过程中,每个人都想自己的方案得到实现,积极向同学说明自己的想法。

能过比较选出最好的焊接方案。

11。

相关主题