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

单片机课设

来源:欧得旅游网


嵌入式系统基础

课程设计

题目: 班级: 姓名: 学号: 同组人:

嵌入式系统基础

课程设计

题目:交通信号灯实时控制系统设计 班级:通信0701 姓名: 学号: 同组人:

一、 设计题目:交通灯的控制 二、设计要求

交通灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮或熄灭。用8051做输出口,控制十二个发光二极管亮灭,模拟交通灯管理。

三、设计内容

因为本课程设计是交通灯的控制设计,所以要了解实际交通灯的变化情况和规律,假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后状态1南北红灯,东西绿灯通车。过一段时间转状态2东西绿灯灭,黄灯闪烁几次,南北仍然红灯。再转状态3,南北绿灯通车,东西红灯。过一段时间转状态4,南北绿灯灭,闪几次黄灯,南东西仍然红灯。最后循环至状态1。

四、方案论证

本实验可以有好几种方案实现交通灯的模拟控制。 方案一:对8255A接口芯片进行编程,使红绿黄灯发光二极管按照十字路口交通灯的形式点亮或熄灭。

方案二:利用8051芯片对串行口P1口进行编程控制,使红绿灯发光二极管按照十字路口交通灯的形式点亮或熄灭。

8255A是一个通用的可编程的并行I/O接口芯片。它无内部地址锁存器功能,因此,需要借助地址锁存芯片所存来自单片机的地址信号。这对于硬件接口来说,增加了成本。而且,当8255A

工作在方式1或方式2时,都可能产生中断信号INTR,是否允许数据传送过程中产生中断信号,取决于用户程序对内部控制位INTR的控制,这恰好又增加了对程序的设计难度。

8051芯片就是一个单片机芯片,用8051进行交通灯模拟控制设计,除了二极管之外,无须再加其他硬件设备,直接对芯片的P1口进行编程控制,减少了成本。而且,8051片内有4KB的程序存储器。CPU访问存储器时,一是访问的地址空间在4KB范围内,CPU直接访问片内程序存储器;二是访问的地址超出4KB时,CPU将自动执行外部程序存储器的程序。利用8051芯片,可以简化程序的设计。

综上所述,本次课程设计采用8051芯片进行交通灯模拟系统控制设计。

五、设计原理

红绿灯变化规律:

设有一个十字路口,两组灯分别代表东西和南北两个方向,

1) 两个路口红灯亮;

2) 南北路口绿灯亮,东西路口红灯亮; 3) 南北路口绿灯灭,东西路口红灯亮; 4) 两个路口黄灯闪烁; 5) 两个路口红灯全亮;

6) 东西路口绿灯亮,南北路口红灯亮; 7) 东西路口绿灯灭,南北路口红灯亮; 8) 两个路口黄灯闪烁; 9) 转向2)循环。

状态 0 1 2 3 4 北 西 南 东 绿 黄 红 绿 黄 红 绿 黄 红 绿 黄 红 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 1 0 0 0 1 交通信号灯状态表

对于交通灯信号灯来说,应该有东西南北共四组灯,但由于同一道上的两组信号灯显示情况是相同的,所以只要有两组就行了,因此,采用单片机内部的I/O口上的P1口中的6个信号灯 通过编写程序,实现对发光二级管的控制,来模拟交通信号灯

的管理。每延时一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。

硬件资源及其分配:

主要用到的硬件:P1口、LED发光二级管、定时器T1. 硬件分配:P1口:作为输出口,与发光二极管相连接,且串行 口工作在方式0,延时为4秒。其状态对应的十六进制值如下:

方向状态 0 1 2 3 4 无 南 北 东 西 P1.7 P1.6 P1.5P1.4P1.3 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 十六进制说明 P1.2P1.1P1.0 值 0 0 1 09 H 全为红灯 1 0 0 0CH 0 1 0 0 0 1 0 0 1 0AH 21H 11H 东西绿南北红 东西黄南北红 东西红南北绿 东西红南北黄 状态对应的十六进制值表

六、交通信号灯模拟控制系统设计程序流程图

开始 初始化

东西红灯亮,南北绿灯亮,延时 东西黄灯亮,南北红灯亮,延时 东西绿灯亮,南北红灯亮,延时 四个路口红灯亮 延时

东西红灯亮,南北黄灯亮,延时

程序流程图

七、根据流程图进行分步设计:

1) 初始化

CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 CLR P1.7 2) 1秒延时系统设定

设定定时器T1工作在方式1,则TMOD=00010000B=10H,计数初值Count=2^16-Td/Tcy=65536-1000/Tcy=3CB0H。 程序如下:

DELAY: MOV R3,#20H ;定时一秒

MOV TMOD,#10H ;T1定时器,方式1 MOV TH1,#03CH ;设置加1计数器的计

;数

;初值高字节 MOV TL1,#0B0H ;设置加1计数器的

;计

;数初值低字节 SETB TR1 ;启动T1 SETB ET1 ;开T1中断 SETB EA ;开总允许中断 3) 全为红灯时的初态 由P1表格可设计程序如下:

MOV A,#09H ;置初态,东南西北都为红灯亮 MOV P1,A MOV R2,#4

4) 东西绿灯亮,南北红灯亮

根据P1口状态表格,设计程序如下:

MOV A,#0CH ;东西绿灯亮,南北红灯亮 MOV P1,A MOV R2,#10

5) 东西黄灯闪,南北红灯亮 根据P1口状态表格,设计程序如下:

MOV A,#0AH ;东西黄灯闪,南北红灯亮 MOV P1,A MOV R2,#2

6) 东西红灯亮,南北绿灯亮

根据P1口状态表格,可将程序设计如下:

MOV A,#21H ;东西红灯亮,南北绿灯亮

MOV P1,A MOV R2,#10

八、总程序为:

ORG 0000H

AJMP CHUSHIHUA ORG 00020H AJMP MAIN CHUSHIHUA:ORG 00030H

CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 CLR P1.7

MAIN: MOV SP,#60H MOV SCON,#00H CLR TI CLR RI

MOV A,#09H

0 ;初始化程序;设置串行口工作方式;置初态,东南西北都为红灯亮

MOV P1,A MOV R2,#4

L1: LCALL DELAY ;调用4次一秒的延时子程序 DJNZ R2,L1

H1: MOV A,#0CH ;东西绿灯亮,南北红灯亮 MOV P1,A MOV R2,#10 L2: LCALL DELAY DJNZ R2,L2

MOV A,#0AH MOV P1,A MOV R2,#2 L3: LCALL DELAY DJNZ R2,L3

H2: MOV A,#21H MOV P1,A MOV R2,#10 L4: LCALL DELAY DJNZ R2,L4

MOV A,#11H MOV P1,A MOV R2,#2

;东西黄灯闪,南北红灯亮 ;东西红灯亮,南北绿灯亮 ;东西红灯亮,南北黄灯闪 L5: LCALL DELAY DJNZ R2,L5

LJMP H1 ;循环 一秒的延时子程序

DELAY: MOV R3,#20H ;定时一秒

MOV TMOD,#10H ;T1定时器,方式 MOV TH1,#03CH MOV TL1,#0B0H SETB TR1 SETB ET1 SETB EA LOOP: JBC TF1,NEXT NEXT: MOV TL1,#080H MOV TH1,#3CH DJNZ R3,LOOP RET

八 交通信号灯模拟系统仿真电路图

1 D1LED-GREEND3LED-YELLOW19U1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718XTAL2D5LED-RED9RST293031PSENALEEAD2LED-GREEN12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.780C51D4LED-YELLOWD6LED-RED 九、调试

1) 打开仿真软件,创建文件 2) 选择芯片

3) 创建文档,把编好程序写入文档并保存在ASM文件 4) 把保存的文档加载到Source Group 5) 编译程序,设置为16进制 6) 运行程序结果

7) 把编写好的16进制文件装进单片机8051仿真,对其初始

8) 反复调试,直到达到预定目的。

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

Top