教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

基于51单片机控制交通灯课程设计报告

来源:网络收集 时间:2026-10-01
导读: 基于51单片机控制交通灯课程设计报告 本设计课程使用STC89c52型号的芯片及相关元器件自己组装单片机最小系统,并编写程序用于控制交通信号灯。 1.STC89c52的芯片元器件的说明: STC89c52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(R

基于51单片机控制交通灯课程设计报告

本设计课程使用STC89c52型号的芯片及相关元器件自己组装单片机最小系统,并编写程序用于控制交通信号灯。

1.STC89c52的芯片元器件的说明:

STC89c52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,STC89c52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时

器、串行口和中断系统维

持其功能。掉电模式下,

保存RAM数据,时钟振

荡停止,同时停止芯片内其它功能,STC89c52在众多嵌入式控制应用系统中得到广泛应用。

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.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(计时器0外部输入) P3.5 T1(计时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)

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:来自反向振荡器的输出。

4 候黄灯没有闪,后来经过老师的指点和帮助我们修改了一下延时程序就成功的实现了延时提醒的功能。

5源程序代码:

#include <reg52.h>

sbit NBgreen_a=P1^0;//南北绿灯

sbit NByellow_a=P1^1;//南北黄灯

sbit NBred_a=P1^2;//南北红灯

sbit DXgreen_b=P1^3;//东西绿灯

sbit DXyellow_b=P1^4;//东西黄灯

sbit DXred_b=P1^5;//东西红灯

void delay(unsigned int a)

{

while(- -a!=0)

{

unsigned char i;

for(i=0;i<125;i++);

{;}

}

}

void main(void)

{ unsigned int k;

while(1)

{

NBgreen_a=0; NByellow_a=1; NBred_a=1;//南北绿灯亮10s

DXgreen_b=1; DXyellow_b=1; DXred_b=0;//东西红灯亮10s

delay(10000);

NBgreen_a=1;

DXred_b=1;

for(k=0;k<3;k++)

{

NByellow_a=0;

DXyellow_b=0;

delay(1000);

NByellow_a=1;//南北黄灯闪3s

DXyellow_b=1;//东西黄灯闪3s

delay(1000);

}

NBgreen_a=1; NByellow_a=1; NBred_a=0;//南北红灯亮10s

DXgreen_b=0; DXyellow_b=1; DXred_b=1;//东西绿灯亮10s

delay(10000);

DXgreen_b=1;

NBred_a=1;

for(k=0;k<3;k++)

{NByellow_a=0;

DXyellow_b=0;

delay(1000);

NByellow_a=1;//南北黄灯闪3s

DXyellow_b=1;//东西黄灯闪3s

delay(1000);

}

}

}

6.这次单片机大作业让我们设计一个利用单片机最小系统控制交通灯,让我加深了对单片机的认识,特别是内部资源的理解与应用。也让我的C语言编程技术更加熟练,另外就是提高了发现问题,分析问题,解决问题的能力,同时也让我体会到了团结协作的重要性。

7.流程图:

8.单片机实验要求的是一种思维的创新,而不是简单的重复老师所说的实验步骤。因此第一次实验,实验老师向我们讲解了keil编译器的大体情况及使用方法和技巧,并简单的向我们示例——如何在keil中编写一段程序。编完程序之后,知道我们如何使用stc达到将编好的程序输入到单片机中来使其运行。

之后老师让我们以组为单位合作编写一段程序,并使其运行。我们组想要编写一个交通灯的程序。在第一次运行keil,我们组就遇到了一个麻烦,我们在建立一个新project文件那里出现了错误。在保存这个新project文件的时候,我们单击了Save,而不是Generate, Save and Exit.因此它弹不出我们我们所需要的源程序。之后我们通过询问其他人解决了这个问题。在编程中,我们开始做的是6灯的控制,间隔时间是1000ms。

经过我们的不断努力,我们终于实现了简单的交通控制灯的运行,我们感到兴奋极了。但是我们并没有满足于当前,我们又编写了两个交通灯的控制。当我们一步步实现我们的目的时,我得到莫大成就感和自信。

在这次实验中,我体会到了合作的重要性。一个人也可能实现这一系列的过程,但是要花费很多精力和时间。群策群力,分工明确,可以使我们更好、更快地完成我们的工作。在此期间,你可以更好知道自己的不足和缺陷,来得到改正。还可以知道自己的优势所在,把握好自己的优势。

…… 此处隐藏:1694字,全部文档内容请下载后查看。喜欢就下载吧 ……
基于51单片机控制交通灯课程设计报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/92390.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)