交通灯控制系统设计与仿真(4)

2019-04-13 23:04

图如图所示。

开 始 设置定时,显示初南北绿灯亮,东西红灯亮,南北黄灯闪烁,东西红灯 南北红灯亮,东西绿灯亮,南北红灯亮,东西黄灯闪

图3-1 主程序框图

3.3 软件设计 交通灯定时器模块

AT89S52单片机内部有3个定时器T0,T1和T2,本次设计中使用T0工作在方式1,即16位定时器,定时50ms,20次中断产生秒信号,从而控制红绿灯的点亮时间。

工作方式寄存器TMOD用来设置T0、T1的工作方式。这次实习中设置TMOD=0x01,即T0工作于方式0(16位定时器)。

内部定时器/计数器用作定时器时,是对机器周期计数,每个机器周期的长度是12个振荡周期。定时常数的设置可用一下方式计算:

机器周期=12/12MHz=1us

(65536-定时常数)*1.0us=50ms 所以定时常数是50000。

第四章 调试

调试图:

实物图:

第五章 体会

值此论文完成之际,谨向我们的导师老师表示衷心的感谢!我们六个同学分工合作,在整个项目中学会了multisim,keil等电路相关软件的使用,大致掌握了电路设计的基本方法。在项目进行中由于所学课程限制,遇到了诸多困难,通过自学也客服了许多。

总之,在整个项目中,学到的不仅仅是制作一个电子产品,更多的是对电子设计的兴趣和学到的创新精神。

附件一:源程序代码

#include //调用单片机头文件

#define uchar unsigned char //宏定义\代替\。 #define uint unsigned int

#include \

//数码管段选定义 0 1 2 3 4 5 //

uchar dis_smg[8] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; uchar smg_i = 4; //显示数码管的个位数

//数码管位选定义

sbit smg_we1 = P2^0; //数码管位选定义 sbit smg_we2 = P2^1; sbit smg_we3 = P3^6; sbit smg_we4 = P3^7;

char dx_s = 0; //东西 南北 倒计时变量 sbit dx_red = P2^4; //东西红灯 sbit dx_green = P2^3; sbit dx_yellow = P2^2;

sbit nb_red = P2^7; sbit nb_green = P2^6; sbit nb_yellow = P2^5;

uchar flag_jtd_mode; //交通灯的模式 根据时间 bit flag_1s = 0; bit flag_500ms; bit flag_dx_nb; uchar i;

uchar flag_alarm; //模式

uchar dx_time = 30,nb_time = 20; //东西、南北的时间 uchar flag_jdgz ; //交通管制

/***********************数码位选函数*****************************/ void smg_we_switch(uchar i)

//宏定义\用来定义无符号整型数。

6 7 8 9 不显示

//断码

uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,

A

B

C D E F

0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};

//东西绿灯 //东西黄灯 //南北红灯 //南北绿灯 //南北黄灯

//东西南北模式

uchar flag_5m_value;

{ }

/******************把数据保存到单片机内部eeprom中******************/ void write_eeprom() { }

/******************把数据从单片机内部eeprom中读出来*****************/ void read_eeprom() { }

/**************开机自检eeprom初始化*****************/ void init_eeprom() ///开机自检eeprom初始化 { }

switch(i) { }

case 0: smg_we1 = 0; smg_we2 = 1; smg_we3 = 1; smg_we4 = 1; break; case 1: smg_we1 = 1; smg_we2 = 0; smg_we3 = 1; smg_we4 = 1; break; case 2: smg_we1 = 1; smg_we2 = 1; smg_we3 = 0; smg_we4 = 1; break; case 3: smg_we1 = 1; smg_we2 = 1; smg_we3 = 1; smg_we4 = 0; break;

SectorErase(0x2000); byte_write(0x2000, dx_time); byte_write(0x2001, nb_time); byte_write(0x2058, a_a);

dx_time = byte_read(0x2000); nb_time = byte_read(0x2001); a_a = byte_read(0x2058);

read_eeprom(); if(a_a != 1) { }

a_a = 1; dx_time = 30;

//先读

//新的单片机初始单片机内问eeprom

nb_time = 20; //东西、南北的时间 write_eeprom();

//保存数据


交通灯控制系统设计与仿真(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:oSIP协议桟浅析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: