基于51单片机 红绿灯数码管程序

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换

#define CtrlPort P1 //定义控制端口

unsigned char code DuanMa[10]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8,0x80,0x90};// 显示段码值0~9

unsigned char code WeiMa[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//分别对应相应的数码管点亮,即位码

unsigned char TempData[8]; //存储显示值的全局变量

void Delay(unsigned int t); //函数声明

void Display(unsigned char FirstBit,unsigned char Num);

unsigned char j,k,flag=1,flag1=1,flag2=1,aa=1,bb=1,cc=1,flag22=1;

unsigned char num=25,num1=30,num11=30,num22=25;

void init()

{

TMOD=0x11;

TH1=(65536-50000)/256;

TL1=(65536-50000)%6;

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;

EA=1;

ET1=1;

ET0=1;

TR1=1;

TR0=1;

}

void main()

{

init();

while(1)

{

if(aa==1)

{

if(flag==1)

{

if(j==20)

{

j=0;

num--;

}

TempData[0]=DuanMa[num];

TempData[1]=DuanMa[num/10];

Display(0,2);

Display(2,2);

}

else

{

num=0;

TempData[0]=DuanMa[num];

TempData[1]=DuanMa[num/10];

Display(0,2);

Display(2,2);

if(j==120)

{

j=0;

num=25;

flag=1;

flag1=1;

aa=0;

}

}

}

if(num==0)

{

if(flag1==1)

{

TR0=0;

flag=0;

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;

TR0=1;

flag1=0;

}

}

if(aa==0)

{

if(j==20)

{

j=0;

num11--;

}

TempData[0]=DuanMa[num11];

TempData[1]=DuanMa[num11/10];

Display(0,2);

Display(2,2);

if(num11==-1)

{

num11=30;

aa=1;

}

}

if(bb==1)

{

if(k==20)

{

k=0;

num1--;

}

TempData[0]=DuanMa[num1];

TempData[1]=DuanMa[num1/10];

Display(4,2);

Display(6,2);

if(num1==-1)

{

bb=0;

num1=30;

}

}

if(bb==0)

{

if(cc==1)

{

if(flag22==1)

{

if(k==20)

{

k=0;

num22--;

}

TempData[0]=DuanMa[num22];

TempData[1]=DuanMa[num22/10];

Display(4,2);

Display(6,2);

}

else

{

num22=0;

TempData[0]=DuanMa[num22];

TempData[1]=DuanMa[num22/10];

Display(4,2);

Display(6,2);

if(k==120)

{

k=0;

flag22=1;

num22=25;

flag2=1;

bb=1;

}

}

}

if(num22==0)

{

if(flag2==1)

{

TR1=0;

flag22=0;

TH1=(65536-50000)/256;

TL1=(65536-50000)%6;

TR1=1;

flag2=0;

}

}

}

}

}

void Delay(unsigned int t)

{

while(--t);

}

void Display(unsigned char FirstBit,unsigned char Num)

{

unsigned char i;

for(i=0;i  {

DataPort=0;   //清空数据,防止有交替重影

CtrlPort=WeiMa[i+FirstBit]; //取位码

DataPort=TempData[i]; //取显示数据,段码

Delay(100); // 扫描间隙延时,时间太长会闪烁,

//太短会造成重影

}

}

void exter0() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;

j++;

}

void exter1() interrupt 3

{

TH1=(65536-50000)/256;

TL1=(65536-50000)%6;

k++;

}

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换

#define CtrlPort P1 //定义控制端口

unsigned char code DuanMa[10]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8,0x80,0x90};// 显示段码值0~9

unsigned char code WeiMa[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//分别对应相应的数码管点亮,即位码

unsigned char TempData[8]; //存储显示值的全局变量

void Delay(unsigned int t); //函数声明

void Display(unsigned char FirstBit,unsigned char Num);

unsigned char j,k,flag=1,flag1=1,flag2=1,aa=1,bb=1,cc=1,flag22=1;

unsigned char num=25,num1=30,num11=30,num22=25;

void init()

{

TMOD=0x11;

TH1=(65536-50000)/256;

TL1=(65536-50000)%6;

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;

EA=1;

ET1=1;

ET0=1;

TR1=1;

TR0=1;

}

void main()

{

init();

while(1)

{

if(aa==1)

{

if(flag==1)

{

if(j==20)

{

j=0;

num--;

}

TempData[0]=DuanMa[num];

TempData[1]=DuanMa[num/10];

Display(0,2);

Display(2,2);

}

else

{

num=0;

TempData[0]=DuanMa[num];

TempData[1]=DuanMa[num/10];

Display(0,2);

Display(2,2);

if(j==120)

{

j=0;

num=25;

flag=1;

flag1=1;

aa=0;

}

}

}

if(num==0)

{

if(flag1==1)

{

TR0=0;

flag=0;

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;

TR0=1;

flag1=0;

}

}

if(aa==0)

{

if(j==20)

{

j=0;

num11--;

}

TempData[0]=DuanMa[num11];

TempData[1]=DuanMa[num11/10];

Display(0,2);

Display(2,2);

if(num11==-1)

{

num11=30;

aa=1;

}

}

if(bb==1)

{

if(k==20)

{

k=0;

num1--;

}

TempData[0]=DuanMa[num1];

TempData[1]=DuanMa[num1/10];

Display(4,2);

Display(6,2);

if(num1==-1)

{

bb=0;

num1=30;

}

}

if(bb==0)

{

if(cc==1)

{

if(flag22==1)

{

if(k==20)

{

k=0;

num22--;

}

TempData[0]=DuanMa[num22];

TempData[1]=DuanMa[num22/10];

Display(4,2);

Display(6,2);

}

else

{

num22=0;

TempData[0]=DuanMa[num22];

TempData[1]=DuanMa[num22/10];

Display(4,2);

Display(6,2);

if(k==120)

{

k=0;

flag22=1;

num22=25;

flag2=1;

bb=1;

}

}

}

if(num22==0)

{

if(flag2==1)

{

TR1=0;

flag22=0;

TH1=(65536-50000)/256;

TL1=(65536-50000)%6;

TR1=1;

flag2=0;

}

}

}

}

}

void Delay(unsigned int t)

{

while(--t);

}

void Display(unsigned char FirstBit,unsigned char Num)

{

unsigned char i;

for(i=0;i  {

DataPort=0;   //清空数据,防止有交替重影

CtrlPort=WeiMa[i+FirstBit]; //取位码

DataPort=TempData[i]; //取显示数据,段码

Delay(100); // 扫描间隙延时,时间太长会闪烁,

//太短会造成重影

}

}

void exter0() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;

j++;

}

void exter1() interrupt 3

{

TH1=(65536-50000)/256;

TL1=(65536-50000)%6;

k++;

}


相关文章

  • 基于单片机的交通信号灯控制系统设计完整版
  • 重庆大学网络教育学院 毕业设计(论文) 题目 基于单片机的交通信号灯 控制系统设计 学生所在校外学习中心 四川南充校外学习中心 批次 层次 专业 092 专科起点本科 电气工程及其自动化 学 号 W09205801 学 生 邓力 指 导 教 ...查看


  • 基于单片机的交通灯设计实训报告
  • 重庆三峡学院 课 程 设 计 报 告 书 题目:基于单片机的交通灯设计 学院(系): 学 号: 学生姓名: 指导教师: 教师职称: 制作日期 2011年12月25日 目录 1. 设计要求--------------------------- ...查看


  • 基于51单片机汇编语言设计的交通灯毕业论文设计
  • (此文档为word格式,下载后您可任意编辑修改! ) 交通灯的控制 摘 要:本设计以AT89C51单片机为主控模块,主要由按钮开关,数码管,发光二极管组成,利用汇编语言编写程序来模拟对十字路口的交通管理,系统包括左右拐,直行,人行道四个基本 ...查看


  • 基于单片机的交通灯控制器设计
  • The traffic light controller design based on single chip microcomputer Abstract This design is designed for intersection ...查看


  • 嵌入式系统基础课程设计报告模板
  • 嵌入式系统基础课程设计报告 系 部: 电子通信工程系 专 业: 班 级: 学生姓名: 学 号: 2012年6月15号 嵌入式系统基础课程设计任务书 1.时间:2012年06月11日-2012年06月15日 2. 课程设计单位:河南机电高等专 ...查看


  • 杭电毕业设计开题报告--高峰期智能绿波带交通信号灯控制系统的设计 冯廷松
  • 杭州电子科技大学 毕业设计(论文)开题报告 题 目 系 专 业 姓 名 班 级 学 号 指导教师 下沙6号大街高峰期智能信号灯控制系统设计 电子通信系 电子信息工程 冯廷松 12091811 12918107 查丽斌 一.综述本课题国内外研 ...查看


  • 基于单片机的交通灯设计毕业论文
  • 毕业论文 题目:基于单片机的交通灯设计系别:姓名: 指导教师: 单片机交通灯设计 摘要: 近年来随着科技的飞速发展,一个以微电子技术.计算机技术和通信技术为先导的信息革命正在蓬勃发展.计算机技术作为三者之一,怎样与实际应用更有效的结合并发挥 ...查看


  • 基于单片机的智能交通灯控制器设计
  • JIANGSU UNIVERSITY OF TECHNOLOGY 电子系统设计综合训练 智能交通灯控制系统设计与实现 学院名称: 专 业: 电子信息工程 班 级: 姓 名: 学 号: 指导教师: 2014年03月 智能交通灯控制器系统设计 ...查看


  • 交通灯毕业论文
  • 广州城建职业学院 毕业设计 题目_____________交通灯模型_______________ 所 在 系____ 信息系___________ _ 专业班级___09嵌入式技术班___________ 学生姓名 ___ 李源佳____ ...查看


热门内容