实验目的:
- 学习模拟交通灯控制的实现方法;
- 掌握Proteus硬件仿真与调试。
任务:
- 根据要求编写程序,并写出原理性注释;
- 将检查程序运行的结果,分析一下是否正确;
- 完成所建工程的仿真及调试。
实验内容
按照电路要求在Protues中设计电路图。编程实现如下功能:
用单片机端口作输出口,控制四个方向共12个发光二极管亮灭,模拟交通灯管理。功能描述如下:初始态为四个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
交通灯控制流程图

Proteus 仿真原理图

代码
#include <reg51.h>
#include <absacc.h>
typedef unsigned char uchar;
typedef unsigned int uint;
#define CON XBYTE[0x0003] //控制寄存器端口地址
#define PA XBYTE[0x0000] //PA端口地址
#define PB XBYTE[0x0001] //PB端口地址
#define PC XBYTE[0x0002] //PC端口地址
uchar count=0;
uchar sum_time=0;
//定义一个数组,用来显示计时信息
uchar time[] = {
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10};
//定时器的初始化
void time_init(){
TMOD

该博客介绍了使用C51单片机进行交通灯控制的实验,包括实验目的、任务、控制流程图和Proteus仿真。通过编程,实现了四个方向12个发光二极管的亮灭控制,模拟交通灯交替放行的逻辑,以确保交通顺畅。在Proteus环境下进行了硬件仿真和调试,以验证程序的正确性。
最低0.47元/天 解锁文章
5694

被折叠的 条评论
为什么被折叠?



