单片机课程设计.docx
- 文档编号:10517263
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:14
- 大小:50.69KB
单片机课程设计.docx
《单片机课程设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计.docx(14页珍藏版)》请在冰点文库上搜索。
单片机课程设计
单片机课程设计
设计题目:
交通信号灯模拟控制系统设计
系别:
电气工程系
专业:
班级:
学号:
学生姓名:
指导教师:
职称:
2010年3月9日
目录
课程设计任务书…………………………………………3
一.设计任务………………………………………………5
二.硬件线路设计及描述…………………………………5
三.交通灯的设计程序框图………………………………6
四.交通灯程序的主程序…………………………………7
五.系统硬件电路的设计………………………………10
六.8255芯片介绍………………………………………10
课程设计任务
课程名称:
单片机原理及应用
系别:
电气工程系
专业:
班级:
学号:
学生姓名:
指导教师:
职称:
2010年3月9日
单片机课程设计任务书
一、题目:
交通信号灯模拟控制系统设计
二、设计任务:
1、完成交通灯的变化规律,即一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
5s后转状态1南北绿灯通车,东西红灯。
30s后转状态2,南北绿灯闪几次转亮黄灯,延时5秒,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
30s后转状态4,东西绿灯闪几次转亮黄灯,延时5秒,南北仍然红灯。
最后循环至状态1。
2、用四个LED数码管(东西方向和南北方向各两个LED数码管,分别表示各位是和十位)显示倒计时等待时间。
可以选用BCD码译码器
三、设计内容要求:
硬件设计:
做出单片机主电路、交通灯接口电路和LED数码管显示电路
软件设计:
程序流程图各功能程序
一.设计任务
(一)、功能及技术指标要求
通过独立调试实现预定功能
(二)、设计内容
本设计为交通信号灯的模拟系统设计,即利用单片机定时器定时,使交通灯红绿灯能交替点亮和熄灭,并且用LED数码管显示时间。
要求:
在现有的研发装置上掌握相关硬件正确地进行连线,在计算机上编写汇编程序,调试,下载,配合外部电路进行系统功能调试,设计并实现上述要求的系统。
要求按设计制定方案,直至正确地实现系统功能,写出课程设计报告,理解设计方案后自己动手修改程序并连线,构成硬件电路,按设计技术指标进行交通灯的硬件和软件设计。
(三)设计思路及关键技术
一个完整的交通灯相当于一个简单的单片机系统,该系统有交通灯设置电路、单片机、显示电路等构成。
单片机是集成的IC芯片,只需根据实际设计要求选型。
其他部分都需要根据应用要求和性能指标自行设计。
基于单片机的交通灯的设计要充分的认识以下两个问题:
1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1南北绿灯通车,东西红灯。
过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。
最后循环至状态1。
2.该系统用8255做输出口,控制红黄绿四组12个发光二极管的亮灭,真实模拟双干线交通信号的管理,实现交通的安全畅通运行。
该系统设置东南西北四个方向的四组红黄绿灯,并设置两对两位LED显示器。
二、硬件线路设计及描述
该系统需要一个12位的输出口用于连接四个方向上的信号灯,需要扩展4位LED显示器,每两位一组,分别用于两个方向信号灯的持续时间,总体方案如图1所示。
图1总体方案框图
三.交通灯的设计程序框图
主程序流程图
按照上述流程图,内部数据存储器分配如下:
160H—7FH:
堆栈;
25CH—5FH:
显示缓冲区;
35BH:
定时溢出次数计数;
45AH:
秒计数器;
520H:
状态标志单位;
6R0R1:
存放闪烁次数
7其他:
其他数据缓冲区
状态标志位的定义如下:
00H为1时运行状态0
01H为1时运行状态1
02H为1时运行状态2
03H为1时运行状态3
04H为1时运行状态4
四.交通灯程序的主程序
程序如下:
ORG0000H
AJMPMAIN
ORG000BH
AJMPT0INT
MAIN:
MOVSP,#5FH;设置堆栈
MOVTMOD,#01H;定义T0工作方式,方式1
MOVTL0,#0B0H;设置定时100ms初始常数
MOVTH0,#3CH
SET00H;设置初始状态标志,首先运行于状态0
CLR01H;清零其他状态标志位
CLR02H
CLR03H
CLR04H
MOVP0,#0DBH;输出状态0,东西红,南北红
MOVP1,#06H
MOV5BH,#0;溢出次数计数单元清零
MOV5CH,#0;显示缓区赋初值
MOV5DH,#5
MOV5EH,#0
MOV5FH,#5
MOV5AH,#5;设置状态0持续时间
SETBTR0;启动定时器T0
MOVIE,#82H;允许T0溢出终断
M1:
ACCALLDIR;扫描显示
T0INT:
PUSHACC
PUSHPSW
MOVPSW,#08H;切换工作寄存区至1区
MOVTL0,0B0H;重置定时100ms初始常数
MOVTH0,#3CH
INC5BH;溢出次数计数单元加1
MOVA,5BH
CJNEA,#10,T0ED;1秒时间未到,返回
MOV5BH,#0;1秒到,清0溢出次数计数单元
DEC5AH;当前状态持续时间减1秒
MOVA,5AH;当前状态持续时间送显示
MOVB,#10
DIVAB
MOV5CH,A
MOV5DH,B
MOV5EH,A
MOV5FH,B
MOVA,5AH
JNZT0ED;持续时间未结束,返回
JNB00H,T01;当前不是状态0,转T01
CLR00H;是状态0,切换到状态1
SETB01H
MOVP0,#9FH;输出状态1,东西红灯亮,南北绿灯亮
MOVP1,#07H
MOV5CH,#3;状态1持续时间送显示
MOV5DH,#0
MOV5EH,#3
MOV5FH,#0
MOV5AH,#30;设置状态1持续时间
SJMPT0ED
T01:
JNB01H,T02;当前不是状态1,转T02
CLR01H;是状态1,切换到状态2
SETB02H
MOVP0,#5DH;输出状态2,东西红灯亮,南北黄灯闪亮
MOVP1,#07H
MOVR0,#5;设置闪烁次数5次
MOV5CH,#0;状态2持续时间送显示
MOV5DH,#5
MOV5EH,#0
MOV5FH,#5
MOV5AH,#5;设置状态2持续时间
DJNZR0,T01;闪烁次数未到继续
SJMPT0ED
T02:
JNB02H,T03
CLR02H
SETB03H
MOVP0,#0F3H;输出状态3,东西绿灯亮,南北红灯亮
MOVP1,#0CH
MOV5CH,#3;状态3持续时间送显示
MOV5DH,#0
MOV5EH,#3
MOV5FH,#0
MOV5AH,#30;设置状态3持续时间
SJMPT0ED
T03:
JNB03H,T04;当前不是状态3,转T04
CLR03H;是状态3,切换到状态4
SETB04H
MOVP0,#0EBH;输出状态4,东西黄灯闪亮,南北红灯亮
MOVP1,#0AH
MOVR1,#5;设置闪烁次数5次
MOV5CH,#0
MOV5DH,#5
MOV5EH,#0
MOV5FH,#5
MOV5AH,#5;设置状态4持续时间
DJNZR1,T01;闪烁次数未到继续
SJMPT0ED
T04:
CLR04H;是状态4,切换到状态1
SETB01H
MOVP0,#9FH;输出状态1,东西红灯亮,南北绿灯亮
MOVP1,#07H
MOV5CH,#3
MOV5DH,#0
MOV5EH,#3
MOV5FH,#0
MOV5AH,#30;设置状态1持续时间
T0ED:
POPPSW;恢复现场返回
POPACC
RETI
;显示子程序
DIR:
MOVR5,#4
MOVR2,#01H
MOVR0,#5CH
DIR1:
MOVA,@R0
ADDA,#OFH
MOVCA,@A+PC
MOVP2,A
MOVP3,R2
INCR0
MOVA,R2
RLA
MOVR2,A
ACALLDELY
DJNZR5,DIRI
RET
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,67H
DELY:
PUSH02H;延时
DEL2:
PUSH02H
DEL3:
PUSH02H
DEL4:
DJNZ5AH,DEL4
POP02H
DJNZ5AH,DEL3
POP02H
DJNZ5AH,DEL2
POP02H
DJNZ5AH,DELY
POP02H
RETURN
END
五.系统硬件电路的设计
本系统中,P0,P1口中的12条I/O线用作四组12个交通灯的输出口,P2口的8条I/O线用于LED显示器的段码输出,P3口中的4条I/O线用于LED显示器的位选输出,计时以倒计时的方式将剩余时间显示在LED显示器上。
交通灯的控制顺序从P0.0到P1.3的顺序依次是东绿黄红,南绿黄红,西绿黄红,北绿黄红。
单片机选用Intel生产的8255,由于其内存足够,因此,采用最小系统即慢走要求,不需要进行外部扩展。
晶振频率选择6MHZ,VCC的选择电压为24伏。
交通灯控制系统的原理图如图2所示。
图2交通灯管理系统电路
六.8255芯片介绍
1.主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
2.管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计