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

发布者:婉如Chanel最新更新时间:2016-01-22 来源: eefocus关键字: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++;
}
关键字:51单片机  红绿灯  数码管 引用地址:基于51单片机 红绿灯数码管程序

上一篇:51单片机指令系统分析
下一篇:基于51单片机家具门屉耐用性自动检测装置程序设计

推荐阅读最新更新时间:2024-03-16 14:45

51单片机—AT24C1024(带程序解析!)—07
昨天晚上没弄好,明天老哥也要结婚了~shit,上午只是知道很忙,现在没事了~发~~ 我依稀还记得昨天用Keil的时候让人蛋疼~差点让我崩溃~我擦,就是那么一点点,就是编译不通过(这个不就是没事找事啊,本来这几天就心烦意乱了 )~~ 首先今天说的AT24C1024在以前的文章中我有过详细的介绍(那是相当的详细,所以我写这个程序就是东拼西凑的 ),我这里就不说了,我只是重点把源程序上出来,里边有详细解析~~ 要是感兴趣的话,你可以做个LCD显示的数码锁什么的,还有那个什么什么~~(万年历~~程序太多也是可以的 ,EEPROM就是强大~),那是相当的简单的~~只要在源程序的基础上加加就哦了~ 今天我这个程序就是存放我预先设置好
[单片机]
<font color='red'>51单片机</font>—AT24C1024(带程序解析!)—07
8051单片机的串行通信
计算机的数据交换有两种方式,分别是串行通信和并行通信。 并行通信:我们以8位(一个字节)的数据为例,在并行通信下,8位数据是同时传输的,同时发送,同时接受。所以通信的双方需要一个公共的时钟信号。并行传输速度快,效率高。但是传输需要的数据线多,传输距离近。 串行通信:仍然以8位的数据为例,每一位数据都是分时发送的,接收方也是一位一位的接受。串行通信只需要一根数据线就可以,成本低。适用于大规模和远距离的数据传输。 异步传输模式:每个传输的字符都用起始位和终止位包装起来,在字符间允许有长短不一的间隙。 同步传输模式:一个数据块包含着许多连续的字符,在字符之间没有空闲。同步传输可以方便的实现某一通信协议要求的格式。 波
[单片机]
42-基于51单片机的电子密码锁设计
具体实现功能 系统由AT89S52单片机+AT24C02数据存储模块+按键模块+LCD1602显示+报警模块等构成。 具体功能: 1、输入密码,且输入的密码显示在液晶显示屏上; 2、按下“DorBell”后,会响起门铃声; 3、初始密码为“1234”,输入正确后,显示“OK”,并且LED灯闪烁,表示开门; 4、输入密码错误后,显示“Eror”,三次输入错误后会报警; 5、按下“DELE”,清除输入的密码。 设计背景 电子密码锁在当前市场运用较为广泛,其主要通过对外接密码输入来实现对系统或电路的控制,并进一步控制系统机械开关的操作。相关电子产品通过系统编程控制能够以电子密码锁的形式来实现系统的开关,尤
[单片机]
42-基于<font color='red'>51单片机</font>的电子密码锁设计
AT89C51单片机游戏(推箱子)
一、电路设计 此电路由AT89C51最小系统、LCD12864显示模块、74LS08芯片和四个独立按键组成。 LCD12864显示模块 带中文字库的128X64 是一种具有4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体 中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192 个1616 点汉字,和128 个168 点ASCII 字符 集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4 行16×16 点 阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶 显示模块相比,不论硬件电
[单片机]
AT89C<font color='red'>51单片机</font>游戏(推箱子)
基于51单片机的电子导游系统设计
引言 随着生活水平的提高,越来越多的人把旅游当成了一种时尚的消费方式,而有些问题也随之产生,如导游人员的缺乏及其素质不高,加之大批喜欢独立自由的旅游者的出现,这些促使了电子导游系统的产生。电子导游系统发展有个过程,最开始时是一种半自动化系统,功能是把景点信息以语音文件格式存储在导游机里,一般通过键盘直接键入景点代码,选择播放。这种类型的导游机,缺点是要输入景点代码,很不方便。发展到现在,出现了全自动化的导游机,它在景点先安放无线发射模块,这些发射模块可以控制工作范围,这样在各个景点就有不同的编码信号。游客到达景点后,游客手上的导游机会自动接收编码信号,经过解码后,由控制中心控制语音播放即可。本文介绍了这一全自动化导游机的设计,采
[单片机]
基于<font color='red'>51单片机</font>的电子导游系统设计
51汇编学习-51单片机汇编写40%占空比pwm
LJMP MAIN; ORG 000BH; LJMP ITP0; ORG 0100H; MAIN: ACALL PT0M0; MOV A,#00; MOV 30H,#4; PT0M0: MOV TMOD,#02H;Initialize FANGSHI ER mode MOV TL0,#0CEH;Timing 50Us MOV TH0,#0CEH; SETB ET0; SETB EA; SETB TR0; RET ITP0: PUSH PSW; INC A; CJNE A ,30H,AAA; MOV A,#0; MOV
[单片机]
51汇编学习-<font color='red'>51单片机</font>汇编写40%占空比pwm
51单片机简单易懂矩阵式键盘程序
;30H存列号31H存行号32H装键值,要改键盘的值排列可以通过改变后面TAB的值。 ;程序构思,先给键盘的接入口p1赋0F0H,通过检测p1.4-p1.7那个出现低电平,举例如果是p1.4那列有键按 ;下则p1.4出现低电平,则跳到y0得到列号为0,接下来分别给p1.4-p1.7赋0,看什么时候p1.4在那出现低电 ;平,则可以得到行号,最终计算行号*4+列号就可以得到键盘的值,如果要修改矩阵键盘键值排列,则可以 ;通过查表,计算出的前期键值只是作为一个地址。不知表述是否清楚了 SCAN:MOV P1,#0F0H ;键盘扫描程序 JNB P1.4,Y0
[单片机]
基于80C51单片机和AD526运放实现防腐电源监控节点的设计
金属发生腐蚀的现象随处可见。腐蚀给金属材料造成的直接和间接损失是巨大的,以至造成灾难性的破坏事故,引起严重的环境污染。研究表明,因腐蚀造成的损失一般占国民生产总值的3%~4%,其中约有15%是可以通过现有的防腐技术避免的,而阴极保护技术的发展又是与防腐技术的进步分不开的。 防腐电源是阴极保护技术中最为关键的设备。由于易腐蚀的金属构件大部分分布在野外或者地下,并且分布范围广,如石油管道、输电线路、海上平台等,所以必然要求发展可靠性高、智能化的新型防腐电源,并且要求通过工业网远程采集现场数据,进行计算分析,实现远程控制,从而提高现场设备的可靠性,实现无人管理。 1、防腐电源系统的结构组成 阴极保护技术简单地说就是测量被保护金属
[单片机]
基于80C<font color='red'>51单片机</font>和AD526运放实现防腐电源监控节点的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved