8051的交通灯程序

发布者:Xiangsi最新更新时间:2016-08-06 来源: eefocus关键字:交通灯程序 手机看文章 扫描二维码
随时随地手机看文章
一个简单的交通灯的实验

 

#include
#define uchar unsigned char 
#define uint unsigned int
#define MAX 30    // 红灯亮的时间
#define YELLOW 6   // 黄灯亮的时间
uchar code num[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  //共阴级数码管的段选码
uchar data count=0;
void LED_display(uchar ,uchar);
void isr_T1(void);
uchar data i,j,x,t,time;
bit flag=0;

void main()
{
 TMOD=0x10;
 TH1=0x3c;           // 12 MHz 定时时间是 50 ms
 TL1=0x0b0;
 ET1=1;
 EA=1;
 TR1=1;
 time=MAX;
 P1=0x56;
 while(1)
 {
  i=time/10;     // 个位
  j=time%10;    // 十位   
  x=0x80;
  LED_display(x,i);
  x=x>>1;
  LED_display(x,j);  
 } 
}

 void LED_display(uchar wei,uchar digital)    // LED 数码管显示子程序
{          // wei 表示位选码,digital 表示要显示的数字
 uchar x,y,i;
 x=wei;
 y=num[digital];
 P2=x;           // 位选码输出
 P0=y;   // 段选码输出

 for(i=0;i<10;i++) {};     // 延时,等待数码管显示

}

void isr_T1(void) interrupt 3
{  
 TH1=0x3c; // 12 MHz 定时时间是 50 ms
 TL1=0x0b0;

 count++;
 if(count==20)
 {
  if(time>YELLOW) 
  {
   time--;
   if(flag==0)  P1=0x56;
   else P1=0x65; 
  }
  else if(time==1)  
   {
     time=MAX;
     flag=~flag;
   }
   else  
   {  
      time--;
     if(flag==0) P1=0x36;
     else  P1=0x63;
    }
    count=0;
 }
}  

 

经过测试,可以达到效果

关键字:交通灯程序 引用地址:8051的交通灯程序

上一篇:单片机通讯程序
下一篇:大神普及:单片机定时器的作用都有哪些?

推荐阅读最新更新时间:2024-03-16 15:04

基于C8051F340单片机和CPLD的红外温度监测系统的设计
0 引言 螺旋装药过程中,经常会因为内部药品温度分布不均匀导致在装药过程中药品内出现气泡的现象,这严重影响了弹体内的药品质量和弹药参数。因此,本文希望通过设计一种温度监测系统来实现对腔体内药品温度检测,寻找装药过程中温度与药品质量之间的关系。由于装药机结构的特殊性,我们无法通过传统的接触测温法获取药品的温度。因此本文设计了一种基于红外测温方法的系统来实现对药品温度的实时检测。 1 时分复用原理 复用方法的设计主要依据TN9红外传感器的信号特征及接口特点,TN9红外温度传感器具有5个接口,其中电源和地不需要接到CPLD上,其余三个接口分别为低电平有效的TN9工作使能接口,工作在主模式的SPI时钟接口和数据接口。采用复用模式是只
[单片机]
基于C<font color='red'>8051</font>F340单片机和CPLD的红外温度监测系统的设计
8051内核、兼容MCS-51的1T指令系统、通用IO型的8位芯片CMS8S5897介绍
概述: CMCMS8S589x 系列是 8051 内核、兼容 MCS-51 的 1T 指令系统、通用 IO 型的 8 位芯片,工作频率最高可达 48MHz,电压2.1V-5.5V,GPIO最多可达30个,支持内部和外部时钟。CMS8S589x系列MCU是中微半导体推出的基于8051内核的8位控制芯片。主频高达48MHz;工作电压2.1V至5.5V;提供64KB Flash Memory,4.25KB SRAM,4KB Data flash;多达30个GPIO;内置高精度12位 ADC;蜂鸣器驱动;5个16-bit通用定时器; 通信接口方面提供2路UART, 1路SPI, 1路I2C;工业级标准设计,可工作在-40℃至105℃; 提
[单片机]
<font color='red'>8051</font>内核、兼容MCS-51的1T指令系统、通用IO型的8位芯片CMS8S5897介绍
基于高速超微型C8051F300单片机的CCD驱动电路设计
1 常用的CCD驱动时序产生方法   CCD厂家众多,型号各异,其驱动时序的产生方法也多种多样,一般有以下4种:   (1)数字电路驱动方法   这种方法是利用数字门电路及时序电路直接构建驱动时序电路,其核心是一个时钟发生器和几路时钟分频器,各分频器对同一时钟进行分频以产生所需的各路脉冲。该方法的特点是可以获得稳定的高速驱动脉冲,但逻辑设计和调试比较复杂,所用集成芯片较多,无法在线调整驱动频率。   (2)EPROM驱动方法   这种驱动电路一般在EPROM中事先存放所有的CCD时序信号数据,并由计数电路产生EPROM的地址使之输出相应的驱动时序。该方法结构相对简单、运行可靠,但仍需地址产生硬件电路,所需EPR0M容量
[工业控制]
基于高速超微型C<font color='red'>8051</font>F300单片机的CCD驱动电路设计
C8051F与80C51系列单片机的不同初始化对比
1 引言 近30年来,世界各主要电子元器件生产厂商纷纷推出自己各具特色的单片机产品。而在百花齐放的单片机家族中,80C5l系列一直扮演着重要的角色。该单片机在教学、科研等领域已经成为入门单片机并成为单片机应用的首选,该产品以其易读性好、扩展能力强而著称,从而成为广大从事单片机开发者最熟悉、最具代表的机型。但人们往往在熟悉80C51单片机之后又选择别的系列单片机开发产品,这是因为80C51具有运算速度慢、功耗大、内部资源少等不足,所以限制了其使用范围。Cygnal公司推出的C805lF系列单片机既弥补了80C51系列的不足,又与MCS—5l指令集兼容。C805lFxxx系列单片机是完全集成的混合信号系统级芯片,具有与8051指令
[单片机]
C<font color='red'>8051</font>F与80C51系列单片机的不同初始化对比
8051单片机(STC89C52)之蜂鸣器发声
通过语句 sbit beep = P1 ^ 5 来指明蜂鸣器的驱动口: 当beep = 0时, 蜂鸣器不发生; 当beep = 1时, 蜂鸣器发声. 另外可通过改变驱动口电平翻转的时间来获得不同声调的声音, 还可通过改变高低电平在一个周期内的比例来获取不同音量的声音. 源代码: #include STC89C5xRC.H int tcount = 0; sbit beep = P1 ^ 5;// P1 xor 0000 0101 void TO_EXT() interrupt 1//50ms触发一次 { TR0 = 0; TH0 = 0xC3;//65536 - 50000 = 15536 = C350H
[单片机]
STC12C5A60S2引脚详解
  STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。   STC12C5A60S2是8051系列单片机,与普通51单片机相比有以下特点:   1、同样晶振的情况下,速度是普通51的8~12倍   2、有8路10位AD   3、多了两个定时器,带PWM功能   4、有SPI接口   5、有EEPROM   6、有1K内部扩展RAM   7、有WATCH_DOG   
[单片机]
STC12C5A60S2引脚详解
C8051振荡器相关事项解答
C8051F---振荡器 问:内部时钟振荡器是否稳定?是否可以用于产生波特率的时基? 答:不同器件的内部时钟振荡器的精度是不同的(±20%)。随电源电压变化,它也将发生变化(6.5%/V)。但基本不随温度变化( 1%温度变化范围-40℃~+85℃)。由于不同器件内部振荡器的离散性较大,所以不能用于产生波特率,应该外接标准晶体。而有些器件,如C8051F3xx/f12x/f04x/f06x内部振荡器精度为±2%,可用于产生波特率 。 问:片内/外振荡器如何配置? 答:正确步骤: 1、允许外部振荡器; 2、等待1ms; 3、查询XTLVLD '0'- '1' 4、切换到外部振荡器。 注意:振荡器频率的选
[单片机]
基于8051单片机的电机转速测量控制程序
以单片机8031为核心, 利用8279芯片实现按键输入和利用数码管显示所测转速,利用ADC0809将输入电压模拟量转化为数字量(实验箱内部已接好相关接口)控制电机转速的目的。然后利用DA0832将电机上的传感器配合DA0832的CKMOT接口将脉冲信号接到8031的INT0,利用外中断实现速度的测量,一次外中断会使速度计数器自动加一,利用定时器产生一秒的计时,得出一秒内速度计数器的值就可以得到电机的转速。另定时计数器每250MS产生一次定时器中断,利用中断来检测是否有新的控制信号输入,以达到实时控制转速的目的。 ORG 0000h ajmp main ORG 0003h ;外部中断0 AJMP ZS ORG 000BH
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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