单片机课设报告.docx
《单片机课设报告.docx》由会员分享,可在线阅读,更多相关《单片机课设报告.docx(9页珍藏版)》请在冰点文库上搜索。
单片机课设报告
单片机原理与应用
实验报告
姓名:
班级:
学号:
指导老师:
实验交通信号灯控制实验
一、实验目的
1.学习P1口的使用方法。
2.学习延时子程序的编写。
3.熟悉单片机的开发环境及流程。
二、实验内容
以P1口作为输出口,控制6个发光二极管,模拟交通信号灯的管理。
在实验仪上选择两组红、黄,、绿指示灯,代表交通信号灯。
实验电路
根据实验要求与列写的程序框图,可得实验电路如下图所示;
设计要求:
十字路口交通灯变化规律:
设有一个十字路口为东西南北方向,其中东西方向为支路,南北方向为主路。
(1)初始状态为4个路口的红灯全亮。
(2)南北路口的绿灯亮,东西路口的红灯亮。
南北路口方向通车,延时20秒后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁5次后红灯亮。
(3)同时东西方向路口的绿灯亮,东西方向开始通车,延时10秒后,东西路口的绿灯熄灭,而黄灯开始闪烁。
闪烁5次后,再切换到南北路口的绿灯亮,东西路口的红灯亮。
(4)转
(1)重复
电路图如下图1:
三、实验分析:
1.步骤:
(1)连接单片机实验装置与计算机,并插好通信插头;
(2)打开单片机实验装置电源使其进入待命状态;
(3)按实验要求进行硬件连线;
(4)打开计算机电源,启动计算机;
(5)在计算机上运行与单片机试验装置配套的编辑调试软件;
(6)按实验要求输入编辑源程序,其扩展名为.ASM;
(7)编译、调试源程序;
(8)下载monitor51监控程序;
(9)关闭烧写程序,配置keil中的工程选项,开启调试模式;
2.实验流程图:
3.由实验要求设计程序:
ORG4000H
MAIN:
MOVP1,#11011110B;初始状态为全红
ACALLDL500
LOOP3:
MOVP1,#11011011B;南北绿,东西红
MOVR6,#40;延时20s,要进行40次500ms延时
LOOP2:
ACALLDL500
DJNZR6,LOOP2
MOVR5,#5;南北路口黄灯5次闪烁,每次闪烁亮500ms暗1s
LOOP4:
MOVP1,#11011101B
ACALLDL500
MOVP1,#11011111B
ACALLDL500
ACALLDL500
DJNZR5,LOOP4
MOVP1,#01111110B;南北红灯亮,东西绿灯亮
MOVR6,#20;延时10s,进行20次500ms延时
LOOP5:
ACALLDL500
DJNZR6,LOOP5
MOVR5,#5;东西路口黄灯5次闪烁
LOOP6:
MOVP1,#10111110B
ACALLDL500
MOVP1,#11111110B
ACALLDL500
ACALLDL500
DJNZR5,LOOP6
JMPLOOP3;回到南北绿,东西红
;500ms延时子程序:
DL500
;作用调用后延时500ms
;用到的寄存器:
R7
DL500:
MOVR7,#10;进行10次50ms定时
LOOP1:
MOVTMOD,#01H;将T0设为工作方式1
MOVTH0,#3CH;初值为65536-50000=3CB0H
MOVTL0,#0B0H
SETBTR0
JNBTF0,$
CLRTF0
CLRTR0
DJNZR7,LOOP1
RET
ENDMAIN
四.现象分析。
现象:
初始状态为4个路口的红灯全亮;南北路口的绿灯亮,东西路口的红灯亮。
南北路口方向通车,延时20秒后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁5次后红灯亮;同时东西方向路口的绿灯亮,东西方向开始通车,延时10秒后,东西路口的绿灯熄灭,而黄灯开始闪烁。
闪烁5次后,再切换到南北路口的绿灯亮,东西路口的红灯亮。
分析:
程序运行正确,但是由于20秒的时间过长,在试验中不宜采取,所以都按比例进行了放小,使试验不会因这长时间亮灯而误了程序调试。
五、调试程序
1、建立keil工程,添加程序
(1)单击桌面上的KeilC51快捷方式,进入开发环境。
(2)点击工具栏的Project选项,选择NewProject命令,输入工程名,确定会弹出器件选择窗口,本实验选择的是PhilipsP80/P87C52X2。
(3)选择工具栏的File选项,选择New命令,编写程序,以asm后缀保存。
(4)选中工作目录里的SourceGroup1,点击右键,选择“AddFiletoGroup‘SourceGroup1’”,把所编写的源程序文件添加到项目中。
2、调试
调试前准备:
(1)正确连接室验仪的RS-232串行通讯电缆、电源及电路图,将工作模式开关SX拨至“LOAD”位置,按下“RESET”复位键。
(2)关闭Keil软件,打开DPFlash软件,点击文件选择装载,打开桌面单片机文件里的MON51-DP51.hex文件。
点击编程命令,选择其他编程选择栏的编程文件夹,单击编程命令按钮。
(3)关闭DPFlash软件,打开Keil软件,单击Project项,选择Optionfortarget‘target1’,其设置如下:
Target属性:
在Memory中选Small…在CodeRomSize中选Large…,在Operating中选None。
在Off-chipCodememory选项下,start为0X4000H,Size为0XA000H。
Off-chipXdatamemory选项下,start为0X0000H,Size为0X4000H。
C51属性:
在Defined中输入monitor51,选上Interruptvectorsata选项,并输入0X4000。
Debug属性:
Use选择KeilMonitor-51Driver,然后单击Setting按钮,打开一个窗口,选择串口1,波特率选9600,其余的选项都选上。
调试:
(1)编译、连接。
(2)调试,选择工具栏内的Debug选项,选择Start/StopDebugSession调试命令,这样即可把用户程序下载到实验仪的SRAM中,程序指针PC指向第一命令语句0X0000,然后点击Run(全速运行),PC指向0X4000程序初始语句,并等待用户输入调试命令。
常用的调试命令有:
单步跟踪、单步运行、执行返回、执行到光标所在的行命令及全速运行等。
(3)调试完成后,选择工具栏内的Debug选项,选择Start/StopDebugSession调试命令即可停止调试。
3、运行
(1)单击Project项,选择Optionfortarget‘target1’,其设置如下:
Target属性:
在Off-chipCodememory选项下,start为0X0000H,Size为0X4000H。
Off-chipXdatamemory选项下,start为0X0000H,Size为0XA000H。
Output属性:
选中CreateHEXFile。
(2)编译、连接,这时会生成一个.hex文件。
(3)将工作模式开关SX拨至“LOAD”位置,按下“RESET”复位键,系统复位后,即可进入下载状态。
(4)点击文件选择装载,打开桌面单片机文件里的MON51-DP51.hex文件。
点击编程命令,选择其他编程选择栏的编程文件夹,单击编程命令按钮。
(5)点击文件选择装载,选择所建工程文件中生成的.hex文件。
点击编程命令,选择其他编程选择栏的编程文件夹,单击编程命令按钮。
(6)将工作模式开关SX拨至“RUN”位置,按下“RESET”复位键。
此时实验仪就可自动运行程序。
运行程序后,试验箱上的LED灯按照实验要求依次亮灭。
六、实验总结
对于本实验,在编程方面,上学期的《微机原理与接口技术》这门课上已经编写过了,只需对其进行简单的修改,就可以使用到单片机上。
所以,这次实验在变成方面并不难。
关于编程,利用到P1口的输出,故只需对P1口的输出信号进行控制,便可以达到实验效果。
然后在每个状态间加入适当的延时,便可以实现交通灯控制。
在实验过程中,最难也是比较麻烦的是调试程序的过程,从上面的报告也可以看出,在进行程序调试前,需要做很多的准备工作。
而在我们实验过程中,Keil调试软件经常会出问题,有时候不得不再次一步步的重新进行设定,再次运行一遍。
一遍又一遍的,最后总算成功了。
熟悉了Keil调试软件的使用。