资源简介

/*内含交通灯课程设计报告,程序设计,题目要求以及proteus仿真电路设计。资源齐全,代码简洁,之前做课程设计写的,现分享出来供初学者学习*/ 提示:之前忘记上传课设报告了,由于不能删除修改,请下载此压缩文件!

资源截图

代码片段和文件信息

#include //包含头文件

#define uint unsigned int //预处理命令
#define uchar unsigned char

sbit du = P2^6;//段选
sbit we = P2^7;//位选

sbit d0 = P1^2;//南北红灯
sbit d1 = P1^3;//南北黄灯
sbit d2 = P1^4;//南北绿灯
sbit d3 = P1^7;//东西红灯
sbit d4 = P1^6;//东西黄灯
sbit d5 = P1^5;//东西绿灯

uchar table[] = {0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x77};//共阴数码管断码

uint count = 10count1=14;
//初始绿灯10S,红灯14S
uchar k;//50MS置位
uchar mode_flag;//显示模式

void T0_Init(void)//定时器0模式1
{
TMOD = 0x01;
TH0 = (65536 - 50000)/256;
TL0 = (65536 - 50000)%256;
EA = 1;
ET0 = 1;
TR0 = 1;
}

void delay_1MS(uint xms)//1MS延时
{
uint jk;
for(j = 0;j < xms;j++)
for(k = 0;k < 114;k++);
}

void display(uchar abcd)//数码管显示函数
{
P0 = 0x00;du = 1;P0 = table[a];du = 0;
we = 1;P0 = 0xfe;we = 0;delay_1MS(2);
P0 = 0x00;du = 1;P0 = table[b];du = 0;
we = 1;P0 = 0xfd;we = 0;delay_1MS(2);
P0 = 0x00;du = 1;P0 = table[c];du = 0;
we = 1;P0 = 0xfb;we = 0;delay_1MS(2);
P0 = 0x00;du = 1;P0 = table[d];du = 0;
we = 1;P0 = 0xf7;we = 0;delay_1MS(2);
}

void display_mode()//交通灯显示模式函数
{
switch(mode_flag)
{
case 0:d0=0;d1=0;d2=1;d3=1;d4=0;d5=0;break;//南北绿灯亮黄灯红灯灭,东西红灯亮绿灯黄灯灭
case 1:d0=0;d1=1;d2=0;d3=1;d4=0;d5=0;break;//南北黄灯亮绿灯红灯灭,东西红灯亮绿灯黄灯灭
case 2:d0=1;d1=0;d2=0;d3=0;d4=0;d5=1;break;//南北红灯亮绿灯黄灯灭,东西绿灯亮黄灯红灯灭
case 3:d0=1;d1=0;d2=0;d3=0;d4=1;d5=0;break;//南北红灯亮绿灯黄灯灭,东西黄灯亮绿灯红灯灭
}
}

void control()
{
if(k == 20)//1S时间到
{
k = 0;
count--;//南北数码管倒计时
count1--;//东西数码管倒计时
if(count==0&&mode_flag==0)//南北绿灯时间到转黄灯
{
count = 4;   //南北黄灯赋值4S
mode_flag = 1;   //模式1
}
if(count==0&&mode_flag==1)//南北黄灯时间到转红灯
{
count = 9; //南北红灯辅助9S
count1 = 5;//东西绿灯赋值5S
mode_flag = 2;//模式2
}
if(count1==0&&mode_flag==2)//东西绿灯时间到转黄灯
{
count1 = 4;//东西黄灯赋值4S
mode_flag = 3;//模式3
}
if(count==0||count1==0&&mode_flag==3)//南北红灯东西黄灯时间到南北转绿灯灯东西转红灯
{
count = 10;//南北绿灯赋值10S
count1 = 14;//东西红灯赋值14S
mode_flag = 0;//模式0
}

}

}

void main()
{
T0_Init();
while(1)
{
display_mode();//交通灯显示模式函数
display(count/10count%10count1/10count1%10);//数码管显示函数
control();//交通灯数码管控制函数
}
}

void timer0(void)interrupt 1
{

TH0 = (65536 - 50000)/256;
TL0 = (65536 - 50000)%256;
k++;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-27 10:35  交通灯\
     文件       63664  2019-01-05 13:31  交通灯\交通灯控制要求.doc
     文件      514767  2019-01-27 10:34  交通灯\交通灯课程设计报告.docx
     目录           0  2019-01-22 18:41  交通灯\程序设计及电路\
     文件      104916  2018-12-29 08:59  交通灯\程序设计及电路\Last Loaded 仿真图.DBK
     文件        5115  2002-04-16 14:32  交通灯\程序设计及电路\STARTUP.A51
     文件       11665  2018-12-29 09:49  交通灯\程序设计及电路\STARTUP.LST
     文件         758  2018-12-29 09:49  交通灯\程序设计及电路\STARTUP.OBJ
     文件        6763  2018-12-29 09:49  交通灯\程序设计及电路\交通灯
     文件        2137  2018-12-28 10:49  交通灯\程序设计及电路\交通灯 (2).bak
     文件        1079  2018-12-28 08:39  交通灯\程序设计及电路\交通灯 (3).Bak
     文件        2137  2018-12-28 08:39  交通灯\程序设计及电路\交通灯 (4).Bak
     文件       57378  2018-12-29 09:56  交通灯\程序设计及电路\交通灯 (5).bak
     文件        5969  2018-12-29 09:49  交通灯\程序设计及电路\交通灯.LST
     文件       10172  2018-12-29 09:49  交通灯\程序设计及电路\交通灯.M51
     文件        7187  2018-12-29 09:49  交通灯\程序设计及电路\交通灯.OBJ
     文件         951  2018-12-28 10:49  交通灯\程序设计及电路\交通灯.bak
     文件        2611  2019-01-22 18:40  交通灯\程序设计及电路\交通灯.c
     文件        2045  2018-12-29 09:49  交通灯\程序设计及电路\交通灯.hex
     文件          45  2018-12-29 09:49  交通灯\程序设计及电路\交通灯.lnp
     文件         191  2019-01-22 18:33  交通灯\程序设计及电路\交通灯.plg
     文件       57376  2019-01-22 18:40  交通灯\程序设计及电路\交通灯.uvopt
     文件       13410  2018-12-28 11:41  交通灯\程序设计及电路\交通灯.uvproj
     文件      104916  2018-12-29 09:00  交通灯\程序设计及电路\仿真图.DSN
     文件        1052  2018-12-29 09:56  交通灯\程序设计及电路\仿真图.PWI
     文件        1465  2018-12-24 14:12  交通灯\程序设计及电路\新建 文本文档.txt

评论

共有 条评论