搜索
您的当前位置:首页正文

交通灯实验报告

来源:爱够旅游网


X X X X 大 学

实验报告

课程名称: 单片机原理及应用 实验名称: 交通灯管制系统设计 专业班级: 学生姓名: 日 期: 2012-6-26

电气信息工程学院实验中心

1

一、课程名称:

单片机原理及应用

二、实验名称

交通灯管制系统设计

三、实验目的:

1.熟练焊接的技巧

2.熟悉AT89S52可编程的特性 3.学会使用Keil软件和串口烧制 4. 了解单片机的基本原理和应用系统开发

5.综合运用多学知识发现、提出、分析和解决问题,锻炼实践能力

四、实验时间及地点:

时间:2012年6月 地点:单片机实验室

五、实验设备:

电源、剪线钳、电烙铁、焊锡、PCB板、芯片等元器件

六、实验内容:

6.1 系统组成原理:

AT89S52单片机 数码管 电容 电阻 发光二极管等, 采用数码管

2

显示。这种方案只显示有限的符号和数码字符,简单,方便。以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块,LED倒计时模块模块接受输出。单片机接通电源后,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。在此过程在此过程中随时调用急停按键和时间调节中断

6.2 系统电路设计:

AT89S52 晶振电路 复位电路 数码管显示 驱动电路 键控电路 交通灯状态 显示电路

6.3系统程序设计:

备注:其系统程序设计图见下一页

3

开始 东西、南北红灯亮 东西行、南北停 延时显示80秒 东西黄灯亮 南北行、东西停 延时显示80秒 南北黄灯亮

七、实验步骤:

7.1 系统理论设计: 依据AT89S52可编程的特性

延时显示开始 设延时80秒初值 延时计数 延时到? 返回 4

7.2 系统原理图设计:

7.3 PCB图绘制:

5

7.4 电路板加工、安装焊接、调试:

利用电烙铁、松香、焊锡等依次按照图纸来完成焊接

系统的软件调试借助于TKS仿真器,在进行系统软件的连续调试之前要先进行软件的初调,就是要使各个子程序模块运行正确,程序的运行流程正确

7.5 系统软件、硬件联调:

使用Keil软件和串口烧制,软件调试主要分以下几个步骤进行: ◆功能子程序的调试。能子程序的调试包括运算、采样、数字滤波以及PID运算等子程序的调试。在调试功能子程序时,许多参数都是未知的,要根据其所需的条件,给出假定的数据,使其运行,如果能完成预定的处理功能或与手工计算的结果相符,就说明该子程序己调试通过。调试时由小到大,由里到外。

◆程序流程的调试。序流程的调试主要是查看程序运行的步骤是否正确,在某时刻程序运行所处的位置是否正确,是否能正确运行各个中断服务程序。在调试过程中,先将PID算法子程序屏蔽,输出可控硅导通时间用一个固定的常数代替,在各个中断服务子程序设置断点,然后运行程序,查看程序是否能运行到所有的断点,若所有断点都能运行到,则程序流程基本正确。去掉所有断点,再一次运行程序,查看可控硅状态,从而判断程序流程正确,反之,若程序流程不正确,做相应的修改后,重新调试; ◆功能程序与算法程序的通调。完成整个程序流程的调试后,将PID等算法子程序加入,在算法子程序前或后设置断点,运行整个程

6

序。当程序在断点处暂停时,查看PID计算的控制量与手工计算的值是否相同。多运行几次,若每次的结果都正确,则说明程序各个部分互相没有矛盾,反之,则说明算法子程序和其它子程序之间有影响,需要做相应的修改后重新调。 系统编程: ORG 0000H LJMP START ORG 000BH LJMP TIMER0

SHIWEI BIT P1.1 GEWEI BIT P1.0 KEYADD BIT P3.2 KEYSUB BIT P3.3 START: MOV R0,#80 ;定义秒数 INIT: MOV P1,#00H MOV R4,#0 MOV DPTR,#LEDCODE MOV TMOD,#01H

7

MOV TH0,#(65536-50000)/256 MOV TL0,#(65536-50000) MOD 256 SETB EA SETB ET0 LOOP_1: MOV P0,#21H MOV A,R0 MOV R5,A

LCALL LED_DISPLAY MOV P0,#11H MOV R5,#3 LCALL LED_DISPLAY MOV P0,#0CH MOV A,R0 MOV R5,A

LCALL LED_DISPLAY MOV P0,#0AH MOV R5,#3 LCALL LED_DISPLAY JMP LOOP_1 DELAY: MOV R3,#1

8

D2: MOV R2,#20 D1: MOV R1,#248 DJNZ R1,$ DJNZ R2,D1 DJNZ R3,D2 RET TIMER0:

MOV TH0,#(65536-50000)/256 MOV TL0,#(65536-50000) MOD 256 INC R4 MOV A,R4 CJNE A,#20,EXIT MOV R4,#0 DEC R5 EXIT: RETI LED_DISPLAY: SETB TR0 LOOP_2: MOV A,R5 MOV B,#10 DIV AB

9

MOV R6,A MOV R7,B

MOV DPTR,#LEDCODE

MOV A,R6 MOVC A,@A+DPTR CLR GEWEI MOV P2,A

SETB SHIWEI LCALL DELAY

MOV A,R7 MOVC A,@A+DPTR CLR SHIWEI MOV P2,A

SETB GEWEI LCALL DELAY LCALL KEYDOWN CJNE R5,#0,LOOP_2 CLR TR0 RET

10

KEYDOWN:

JNB KEYADD,KEYADD_HANDLE JNB KEYSUB,KEYSUB_HANDLE RET

KEYADD_HANDLE: ;加时间处理 JB KEYADD,LOOP_2 LCALL DELAY

JB KEYADD,LOOP_2 ; JNB KEYADD,$ INC R0 CLR TR0 JMP INIT RET

KEYSUB_HANDLE: ; JB KEYSUB,LOOP_2 LCALL DELAY JB KEYSUB,LOOP_2 JNB KEYSUB,$ DEC R0 CLR TR0 JMP INIT RET

消抖 减时间处理 11

LEDCODE: DB 0xc0,0xf9,0xa4,0xb0,0x99 DB 0x92,0x82,0xf8,0x80,0x90 END 7.6 系统优化:

尽可能把设计电路图的连线加粗,这样可以减小电阻。

八、总结

首要要感谢老师能够给我提供这样一个平台,通过这次课程设计,使我得到了一次用专业知识和专业技能去分析问题、解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及用汇编语言设计程序的思路技巧等方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。在焊接过程中,我学会应先合理的布局,并认真检查每个元器件,确保无误后再焊接。还有,不能急于求成,要焊接一个模块,检查一个模块,免得整个版子焊完后再在一大堆线中检查,这样不仅效率低且耗时。自然,我也学会如何去发现问题与解决问题的一些方法。

软件设计与调试,我觉得它主要考验你的思维逻辑能力及你对指令的熟悉程度。可以说再整个软件设计过程中,我不仅学会了延时的两种方法,即软件延时和硬件延时,还掌握数码管的两种显示方式(即动态显示与静态显示)及其如何选择。当然,通过几次反复调试过程,使得我对汇编指令有了更深刻的理解。

通过本次的课程设计,充分意识到自己所学的东西还是非常有限

12

的,不过通过设计,还是学到了一些书本上没有学到的东西,为自己以后的学习起了很大的帮助。就我个人而言,很深刻地体会到一点,那就是我们在设计过程中一定要有一个整体的清晰的思路,知道自己的设计的对象的基本功能和核心器件的适用及其作用,只要把握住这些主要方面,一些小问题都将围绕着这些主要问题而逐步得到解决。 在整个设计过程中,生活中也一样,一定要意志坚定,克服自己的畏难情绪,这样才能将事情做好,才能干出一番成就。

13

因篇幅问题不能全部显示,请点此查看更多更全内容

Top