好好学习,天天向上,一流范文网欢迎您!
当前位置:首页 >> 最新范文 内容页

汽车转弯灯单片机实习报告

汽车转弯灯单片机实习报告 本文关键词:单片机,转弯,实习报告,汽车

汽车转弯灯单片机实习报告 本文简介:汽车转弯灯单片机控制系统实习报告一、实习目的1、掌握51系列单片机的常用指令。2、熟练的编写51系列单片机的分支程序和一些子程序,如延时子程序。二、实习要求模拟汽车在驾驶中的左转弯、右转弯、刹车、合紧急开关、停靠等操作。在左转弯或右转弯时,通过转弯操作杆使左转弯或右转弯开关合上,从而使左头信号灯、仪

汽车转弯灯单片机实习报告 本文内容:

汽车转弯灯单片机控制系统实习报告

一、实习目的

1、掌握51系列单片机的常用指令。

2、熟练的编写51系列单片机的分支程序和一些子程序,如延时子程序。

二、实习要求

模拟汽车在驾驶中的左转弯、右转弯、刹车、合紧急开关、停靠等操作。在左转弯或右转弯时,通过转弯操作杆使左转弯或右转弯开关合上,从而使左头信号灯、仪表板的左转弯灯、左尾信号灯或右头信号灯、仪表板的右转弯信号灯、右尾信号灯闪烁;闭合紧急开关时以上六个信号灯全部闪烁;汽车刹车时,左右两个尾信号灯点亮;若正当转弯时刹车,则转弯时原闪烁的信号灯应继续闪烁,同时另一个尾信号灯点亮,以上闪烁的信号灯以1Hz频率慢速闪烁;在汽车停靠开关合上时左头信号灯、右头信号灯、左尾信号灯、右尾信号灯以10Hz频率快速闪烁。任何在下表中未出现的组合,都将出现故障指示灯闪烁,闪烁频率为10Hz。

数码管正常情况下显示操作功能的所写,故障情况显示“HELP”

在各种模拟驾驶开关作时,信号灯输出的信号如下表:

驾驶操作

输出信号

左转弯灯

右转弯灯

左头灯

右头灯

左尾灯

右尾灯

数码管显示

左转弯(合上左转弯开关)

闪烁

闪烁

闪烁

LZ--

右转弯(合上右转弯开关)

闪烁

闪烁

闪烁

RZ--

合紧急开关

闪烁

闪烁

闪烁

闪烁

闪烁

闪烁

JJ--

刹车

SC--

左转弯时刹车

闪烁

闪烁

闪烁

LZSC

右转弯时刹车

闪烁

闪烁

闪烁

RZSC

刹车时,合紧急开关

闪烁

闪烁

闪烁

闪烁

SCJJ

左转弯,刹车合紧急开关

闪烁

闪烁

闪烁

闪烁

闪烁

LSJJ

右转弯,刹车合紧急开关

闪烁

闪烁

闪烁

闪烁

闪烁

闪烁

RSJJ

停靠

闪烁

10Hz

闪烁

10Hz

闪烁

10Hz

闪烁

10Hz

TK

三、实习设计原理

1、8051单片机的功能

单片机是集CPU、

RAM、

ROM(或EPROM)、

I/O接口、

定时器/计数器、

中断系统为一体完整的计算机系统。

8051内部含有8位CPU、4KB的ROM和128B的RAM、4个8位I/O接口电路、一个全双工的异步接口、5个终端源和2个中断优先级。

2、单片机各引脚介绍

(1)

VCC:电源。

(2)

GND:接地。

(3)

P0口:是一个8位漏极开路的双向I/O口。

(4)

P1口:是一个具有内部上拉电路的8位双向I/O口。

(5)

P2口:是一个具有内部上拉电路的8位双向I/O口。

(6)

P3口:是一个具有内部上拉电路的8位双向I/O口,P3输出缓冲器能吸入/放出4个TTL输入。Flash编程及检验时,P3口也接收一些控制信号。

(7)

RST:复位端。当振荡器工作时,此时高电平将系统复位。

(8)

XTAL1:振荡器反向放大器输入端和内部时钟发生器的输入端。XTAL2:振荡器反相放大器输出端。

8051单片机的P3口各种专用功能表如下

引脚

替代的专用功能

P3.0

(串行输入口)

P3.1

(串行输出口)

P3.2

(外部中断0)

P3.3

(外部中断1)

P3.4

(定时器0的外部输入)

P3.5

(定时器1的外部输入)

P3.6

(外部数据存储器写选通)

P3.7

(外部数据存储器读选通)

3、开关状态检测

开关状态检测,对8051来说是输入关系,可轮流检测每个开关状态,以每个开关的状态让相应的发光二极管指示,采用JNB

P1.X,REL

指令来完成;也可以一次性检测五路开关状态,让它指示,可以用MOV

A,P1

指令一次把P1

端口的状态全部读入,取低5位的状态来指示。

4、输出控制

以发光二极管D0—D7来指示,此设计用SETB

P0.X

和CLR

P0.X

指令来完成,也可以用指令MOV

P0,#111XXXXXB

方法来实现。

5、汽车转弯灯显示

在汽车转弯或应急状态下,外部信号灯和仪表板它们指示灯的闪烁频率为1HZ,称低频信号。当停靠开关合上时,外部信号灯以30HZ频率闪烁此时为高频信号。

6、汽车转弯灯控制

汽车转弯灯设计5个按键控制信号灯的转向、停靠、应急等。按键安排见下:

S1(TK)键为停靠开关;

S2(TL)键为左转弯开关;

S3(TR)键为右转弯开关;

S4(JJ)键为紧急开关;

S5(SC)键为刹车开关;

汽车转弯灯主要有单片机、按键、复位、时钟、电源、故障检测电路、LED显示电路组成最基本的单片机系统。单片机本身的功能强大,汽车转弯灯的驱动用单片机本身的驱动来驱动。时钟电路由晶振及电容组成,复位电路由按键复位结构组成。对于键盘电路我们采用独立式键盘,可以具体实现可分为以下几种情况:①直接由并行I/O口来实现。②使用三极管驱动LED来实现。

7、时钟电路

采用单片机内部晶振。在MCS-51系列单片机内部有一个高增益反向放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。而在芯片外部XTAL1和

XTAL2之间跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。外接晶体振荡器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中,

C1和C2的大小会对振荡器频率的高低、振荡器的稳定性、起振的快速性和温度特性有一定的影响。因此建议在采用石英晶体振荡器时C=30+/-10pF,陶瓷振荡器时,C=40+/-10pF,典型值为40pF。在设计电路板时,振荡器和电容应尽量安装得与单片机靠近,以减小寄生电容的存在更好的保障振荡器稳定、可靠的工作。

图4.4

时钟振荡电路

8、信号灯电路

LED具有二极管的特性,但在导通之后会发光,称之为发光二极管。与普通的灯泡一样,LED导通后,随着其俩端电压的增加,电流急剧增加,所以,必须给LED串联一个限流电阻,否则一旦通电,LED会被烧坏。要用74LS373来控制LED,显然这个LED必须要与74LS373单片机的某个脚相连。这里把LED与74LS373单片机的P0脚相连。当74LS373单片机的第1脚是高电平时,LED不亮,当第1脚是低电平时,LED亮。但是在汽车转弯灯里要根据汽车方向来控制信号灯,而实现LED的亮与灭。

9

、软件设计

1.

主程序流程图

初始化

P1赋值给A

#0FEH=A?

#0FDH=A?

#0FBH=A?

#0F7H=A?

#0EFH=A?

#0FFH=A?

#04H=50H

,#1FH=P0

#04H=50H

,#0F8H=P0

#0DEH=P0

#04H=50H

,#9CH=P0

#01H=50H

,#18H=P0

#0FFH=P0

调用延时子程序

0FFH=P0

调用延时子程序

2.延时子程序流程图

#0FFH=R6,#0FFH=R7

50H=R5

R7-1≠0?

R6-1≠0?

R5-1≠0?

汽车转弯灯单片机控制系统接线图

电路原理图

四、实习步骤

1、使用汽车转弯信号灯控制实验模块。、

2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头。

3、启动计算机,打开伟福仿真软件,进入仿真环境。选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。

4、打开NIU.ASM源程序,编译无误后,全速运行程序,按表中的各种驾驶操作,打开相应开关,观察发光二极管的亮灭与闪烁,数码显示管的显示。

五、实习程序清单及注释

实现运行程序如下:

TEMP

EQU

30H

DIN

BIT

P1.6

CLK

BIT

P1.7

ORG

0000H

LJMP

BEGAIN

BEGAIN:

MOV

SP,#40H

MOV

TMOD,#01H

MOV

TH0,#3CH

MOV

TL0,#0B0H

CLR

EA

MOV

P3,#0FFH

MOV

R0,#10

MOV

A,P3

XRL

A,#0FFH

ANL

A,#1FH

MOV

DPTR,#TABLE

RL

A

JMP

@A+DPTR

TABLE:

AJMP

GO0

AJMP

GO1

AJMP

GO2

AJMP

GOX

AJMP

GO4

AJMP

GOX

AJMP

GOX

AJMP

GOX

AJMP

GO8

AJMP

GO9

AJMP

GO10

AJMP

GOX

AJMP

GO12

AJMP

GO13

AJMP

GO14

AJMP

GOX

AJMP

GO16

AJMP

GOX

AJMP

GOX

AJMP

GOX

AJMP

GOX

AJMP

GOX

AJMP

GOX

AJMP

GOX

AJMP

GOX

AJMP

GOX

AJMP

GOX

AJMP

GOX

AJMP

GOX

AJMP

GOX

AJMP

GOX

AJMP

GOX

GO0:

MOV

P1,#0FFH

LJMP

BEGAIN

GO1:MOV

P1,#11101010B

SETB

TR0

WAIT10:

JNB

TF0,WAIT10

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT10

MOV

R0,#10

CPL

P1.0

CPL

P1.2

CPL

P1.4

WAIT11:

JNB

TF0,WAIT11

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT11

MOV

TEMP,#40H

MOV

TEMP+1,#40H

MOV

TEMP+2,#05BH

MOV

TEMP+3,#38H

LCALL

DISPLAY

LJMP

BEGAIN

GO2:

MOV

P1,#11010101B

SETB

TR0

WAIT20:

JNB

TF0,WAIT20

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT20

MOV

R0,#10

CPL

P1.1

CPL

P1.3

CPL

P1.5

WAIT21:

JNB

TF0,WAIT21

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT21

MOV

TEMP,#40H

MOV

TEMP+1,#40H

MOV

TEMP+2,#05BH

MOV

TEMP+3,#77H

LCALL

DISPLAY

LJMP

BEGAIN

GO4:

MOV

P1,#11111111B

SETB

TR0

WAIT40:

JNB

TF0,WAIT40

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT40

MOV

R0,#10

CPL

P1.0

CPL

P1.1

CPL

P1.2

CPL

P1.3

CPL

P1.4

CPL

P1.5

WAIT41:JNB

TF0,WAIT41

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT41

MOV

TEMP,#40H

MOV

TEMP+1,#40H

MOV

TEMP+2,#0EH

MOV

TEMP+3,#0EH

LCALL

DISPLAY

LJMP

BEGAIN

GO8:MOV

P1,#11001111B

MOV

TEMP,#40H

MOV

TEMP+1,#40H

MOV

TEMP+2,#39H

MOV

TEMP+3,#6DH

LCALL

DISPLAY

LCALL

delay

LJMP

BEGAIN

GO9:MOV

P1,#11001010B

SETB

TR0

WAIT90:JNB

TF0,WAIT90

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT90

MOV

R0,#10

CPL

P1.0

CPL

P1.2

CPL

P1.4

WAIT91:JNB

TF0,WAIT91

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT91

MOV

TEMP,#39H

MOV

TEMP+1,#6DH

MOV

TEMP+2,#05BH

MOV

TEMP+3,#38H

LCALL

DISPLAY

LJMP

BEGAIN

GO10:MOV

P1,#11000101B

SETB

TR0

WAIT100:JNB

TF0,WAIT100

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT100

MOV

R0,#10

CPL

P1.1

CPL

P1.3

CPL

P1.5

WAIT101:JNB

TF0,WAIT101

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT101

MOV

TEMP,#39H

MOV

TEMP+1,#6DH

MOV

TEMP+2,#05BH

MOV

TEMP+3,#77H

LCALL

DISPLAY

LJMP

BEGAIN

GO12:MOV

P1,#11000000B

SETB

TR0

WAIT120:JNB

TF0,WAIT120

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT120

MOV

R0,#10

CPL

P1.0

CPL

P1.1

CPL

P1.2

CPL

P1.3

WAIT121:JNB

TF0,WAIT121

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT121

MOV

TEMP,#0EH

MOV

TEMP+1,#0EH

MOV

TEMP+2,#39H

MOV

TEMP+3,#6DH

LCALL

DISPLAY

LJMP

BEGAIN

GO13:

MOV

P1,#11000000B

SETB

TR0

WAIT130:JNB

TF0,WAIT130

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT130

MOV

R0,#10

CPL

P1.0

CPL

P1.1

CPL

P1.2

CPL

P1.3

CPL

P1.4

WAIT131:JNB

TF0,WAIT131

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT131

MOV

TEMP,#0EH

MOV

TEMP+1,#0EH

MOV

TEMP+2,#6DH

MOV

TEMP+3,#38H

LCALL

DISPLAY

LJMP

BEGAIN

GO14:MOV

P1,#11000000B

SETB

TR0

WAIT140:JNB

TF0,WAIT140

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT140

MOV

R0,#10

CPL

P1.0

CPL

P1.1

CPL

P1.2

CPL

P1.3

CPL

P1.5

WAIT141:JNB

TF0,WAIT141

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

DJNZ

R0,WAIT141

MOV

TEMP,#0EH

MOV

TEMP+1,#0EH

MOV

TEMP+2,#6DH

MOV

TEMP+3,#77H

LCALL

DISPLAY

LJMP

BEGAIN

GO16:MOV

P1,#11000011B

SETB

TR0

WAIT160:JNB

TF0,WAIT160

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

CPL

P1.2

CPL

P1.3

CPL

P1.4

CPL

P1.5

WAIT161:

JNB

TF0,WAIT161

CLR

TF0

MOV

TH0,#3CH

MOV

TL0,#0B0H

SETB

TR0

MOV

TEMP,#00H

MOV

TEMP+1,#00H

MOV

TEMP+2,#70H

MOV

TEMP+3,#78H

LCALL

DISPLAY

LJMP

BEGAIN

GOX:

MOV

TEMP,#73H

MOV

TEMP+1,#38H

MOV

TEMP+2,#79H

MOV

TEMP+3,#76H

LCALL

DISPLAY

LCALL

delay

LJMP

BEGAIN

DISPLAY:

MOV

R0,#TEMP

MOV

R3,#4

DP12:MOV

R7,#8

MOV

A,@R0

DP13:RLC

A

MOV

DIN,C

CLR

CLK

SETB

CLK

DJNZ

R7,DP13

INC

R0

DJNZ

R3,DP12

RET

Delay:

MOV

r5,#5

DLoop0:

MOV

r6,#0

DLoop1:

MOV

r7,#0

DLoop2:

NOP

NOP

DJNZ

r7,DLoop2

DJNZ

r6,DLoop1

DJNZ

r5,DLoop0

RET

END

四.总结

一周的单片机实训结束了,在我和我们组的组员的共同努力下,在老师的指导和同学的帮助下,我们成功的完成了汽车信号灯控制系统的设计任务。本学期我们学习了AT89C51单片机的编程设计,看似简单的题目自己动手编写却没想象的那么简单。刚拿到设计题目时,有种似曾相识的感觉,我们做的题目和以前实验课上做的实验很相似,通过调用几个实验的程序就能完成这个设计。我们先讨论了并决定了设计方案,但在自己编程时,却发现自己平时上课学习的知识掌握的不扎实的,在编写时常常出现这样那样的错误。调用时程序格式错误,子程序编写错误等等。最终,我们还是成功完成了本次设计,很有成就感。通过这次设计,我再一次学习了单片机的程序设计,特别是多分支程序的设计方法,对一些知识又加深了印象,加深了对所学理论知识的巩固和理解。本次实训虽然只有短短的一周,但在这一周中通过自己的努力完成的程序设计是这一学期课程学习的成果,是对自己本学期的肯定,同时又提高了自己的动手和动脑能力,更主要的是增强了对这门课程学习的信心。同时团队的合作也是十分重要的。了解到了单片机在平时日常生活中的应用是如此的广泛,在信息技术日益发达的现代社会,学习一门技术是多么的重要。在今后的学习生活中,我们要更加开阔视野,拓展自己的思路,活跃自己的大脑,锻炼自己的思维能力。认真学习知识,把学到的知识运用到日常的生活中,为以后的毕业工作打好扎实的基础。

-

14

-

TAG标签: