红绿灯控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
昆明理工大学信息工程与自动化学院学生实验报告
(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、焊接电路板时没有搞清楚原理,就直接开始焊接,导致元器件的位置摆放的