51单片机 定时器 流水灯 数码管计时

发布者:Harmonious88最新更新时间:2015-10-30 来源: eefocus关键字:51单片机  定时器  流水灯  数码管计时 手机看文章 扫描二维码
随时随地手机看文章
    这个就是前面的历程的一个综合定时器T0控制流水灯,T1控制时间,通过数码管显示出来。

    代码如下:

    //Led流水灯,五位数码管100000秒计时
#include               //头文件
#include             //循环左旋函数所在头文件
#define uint unsigned int       //宏定义无符号整形
#define uchar unsigned char     //宏定义无符号字符型
sbit weixuan=P2^7;              //声明P2.7为位选端口
sbit duanxuan=P2^6;             //声明P2.6为段选端口
uint number1,number2,aa,number; //number1:T0计满次数;number2:T1计满次数;number:显示的秒数;aa:P0端口显示赋值
uint no1,no2,no3,no4,no5;       //分别代表五个数码管显示的数字(字符断码数字序号)
void delay(uint);               //声明延时函数
void display(uint,uint,uint,uint,uint);  //声明数码管显示函数
uchar code table[]={            //字符断码
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};           //C语言编码定义

void main()             //主函数入口
{
  aa=0xfe;              //aa初始化,点亮第一的LED
  //定时器初始化
  TMOD=0x11;            //TMOD赋值,确定T0/T1工作方式
  TH0=(65536-46080)/256;//TH0/TL0;TH1/TL1计算初值
  TL0=(65536-46080)%6;
  TH1=(65536-46080)/256;
  TL1=(65536-46080)%6;
  EA=1;                 //总中断打开
  ET0=1;                //开T0/T1中断
  ET1=1;
  TR0=1;                //TR0/TR1置位,启动定时器
  TR1=1;
  while(1)              //不可少的大循环
  {
    display(no1,no2,no3,no4,no5);  //数码管显示
  }
}
//延时函数主体
void delay(uint s) 
{
  uint i,j;
  for(i=s;i>0;i--)
  {
    for(j=110;j>0;j--)
 {
 }
  }
}
 //显示数码管显示函数主体
void display(uint no1,uint no2,uint no3,uint no4,uint no5)  //数码管显示函数主体
{
  //数码管1显示  ①送断码;②选择要显示数码管
  duanxuan=1;        //打开段选锁存器 
  P0=table[no5];     //送断码
  duanxuan=0;        //关闭(锁住)锁存器
  P0=0xff;           //必不可少的清屏
  weixuan=1;         //打开位选锁存器
  P0=0xfe;           //选择数码管
  weixuan=0;         //关闭锁存器
  delay(2);          //延时
  //数码管2显示
  duanxuan=1;
  P0=table[no4];
  duanxuan=0;
  P0=0xff;
  weixuan=1;
  P0=0xfd;
  weixuan=0;
  delay(2);
  //数码管3显示
  duanxuan=1;
  P0=table[no3];
  duanxuan=0;
  P0=0xff;
  weixuan=1;
  P0=0xfb;
  weixuan=0;
  delay(2);
  //数码管4显示
  duanxuan=1;
  P0=table[no2];
  duanxuan=0;
  P0=0xff;
  weixuan=1;
  P0=0xf7;
  weixuan=0;
  delay(2);
  //数码管5显示
  duanxuan=1;
  P0=table[no1];
  duanxuan=0;
  P0=0xff;
  weixuan=1;
  P0=0xef;
  weixuan=0;
  delay(2);
}
//定时器T0方式一中断服务程序
void T0_time_no1() interrupt 1
{
  TH0=(65536-46080)/256;  //预装初始值
  TL0=(65536-46080)%6;
  number1++;              //number1判断计满次数,4次为200ms
  if(number1==4)
  {
    number1=0;
 aa=_crol_(aa,1);      //循环左旋函数,把aa左旋之后赋值给aa
 P1=aa;                //P1显示流水灯
  }
}
//定时器T1方式一中断服务程序
void T1_time_no1() interrupt 3
{
  TH1=(65536-46080)/256;      //预装初始值
  TL1=(65536-46080)%6;
  number2++;                  //用于判断T1计满次数
  if(number2==4)             //number2=20,就是1s时间
  {
    number2=0;
 number++;                 //用于装总数字
 no5=number/10000;         //把一个5位数分离出来给五个数码管显示
 no4=number000/1000;
 no3=number00/100;
 no2=number0/10;
 no1=number;
 if(number==1000000)       //达到最大值100000,重新开始计时
 {
   number=0;
 }
  }
}

 

    以上,结束。

关键字:51单片机  定时器  流水灯  数码管计时 引用地址:51单片机 定时器 流水灯 数码管计时

上一篇:51单片机 独立键盘控制
下一篇:51单片机 定时器T0方式1 控制流水灯

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

单片机学习笔记外部中断,定时器,串口中断
CPU收到中断请求,停下正在处理的工作A,去处理事件B,处理完后继续回到中断的地方继续执行事件A的过程,称为中断 51有5个中断源 外部中断0 定时计数中断0 外部中断1 定时继续中断1 串口中断 MCS-51单片机中断系统的结构: 5个中断源的符号、名称及产生的条件如下。 INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。 INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。 T0:定时器/计数器0中断,由T0计满回零引起。 T1:定时器/计数器l中断,由T1计满回零引起。 TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。
[单片机]
单片机学习笔记外部中断,<font color='red'>定时器</font>,串口中断
S3C2440 的定时器的设置
在前面的几篇文章中,每当程序需要延时时,我们是利用循环语句来实现。这种方法的延时简单,但不是很精确,就是说不能得到确切的一段时间的延时。因此当需要精确延时时,就不能采用这种方法了。一般是利用定时器来实现。在这里,我们就介绍一下s3c2440定时器的使用方法。 在讲解之前,先介绍一下s3c2440时钟系统。一般来说,MCU的主时钟源主要是外部晶振或外部时钟,而用的最多的是外部晶振。在正确情况下,系统内所使用的时钟都是外部时钟源经过一定的处理得到的。由于外部时钟源的频率一般不能满足系统所需要的高频条件,所以往往需要PLL(锁相环)进行倍频处理。在s3c2440中,有2个不同的PLL,一个是MPLL,另一个是UPLL。UPLL是给U
[单片机]
AT89C2051单片机对双路路灯照明控制器的设计
通常我们常见的路灯、通道灯、广告灯箱等公共场所用照明灯具往往彻夜通明,或者说在白天不应照明时工作了,造成了电能的浪费。还有些因为采用了定时控制方式,随着季节的变化未能及时设置好控制器,造成了控制不适时,如天已暗灯未明等现象,影响了照明效果。本文介绍采用AT89C2O5l单片机制作的双路路灯照明控制器,仍然采用光控式,但与一般的光控开关相比由于采用了单片机,具有较强  的抗干扰性能,一路为夜间全明,另一路可设置晚上照明时间,到时自动关闭。 硬件电路介绍 本路灯控制器原理图如下图所示,它主要由光敏电阻、8421数码开关、AT89C2051单片机、输出继电器等几部分组成。 3W微型变压器T、整流桥IC2、三端稳压器78LO5等构
[单片机]
AT89C20<font color='red'>51单片机</font>对双路路灯照明控制器的设计
STM32单片机串口接收不定长无标志位字符串定时器判断结束
写在前面的话,以警示所有程序员。 你们或许还没有发现,随着我们深入编程领域的时间越久,我们程序员的思维越来越简单,情商也越来越低,这就是编程行业对我们自身的影响。整体跟逻辑的东西打交道,思维当然会固化。如何避免呢?想知道的话留个言,我会在下一篇博文中更新。 还要警示的是:做一个程序员的能力是有限的,一个程序员团队才可以做成大事。无论哪种语言,哪种程序,都不重要,重要的是我们的思路和逻辑,语言只是工具,不是目的! //串口1中断服务程序 void USART1_IRQHandler(void) { u8 rec_data; u8 i=0; if(USART_GetITStatus(USART1, USART_IT_RXNE
[单片机]
基于51单片机的交通灯控制系统课程设计
一、设计要求: 1,十字路口的交通控制系统指挥着人和各种车辆的安全运行,对交叉口实行科学的管理与控制是交通控制工程的重要研究课题,是保障交叉口的交通安全和充分发挥交叉口的通行能力的重要措施,是解决城市交通问题的有效途径。交通灯信号灯的出现是人类历史上的一次重大改革,使人类的聚居生活,产生了深远的影响。使交通得以有效管制,对于疏导交通流量,提高道路通行能力,减少交通事故有明显效果。如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。
[单片机]
基于<font color='red'>51单片机</font>的交通灯控制系统课程设计
第47节:操作AT24C02利用定时器延时改善数码管的闪烁
开场白: 上一节在按键更改参数时,会出现短暂明显的数码管闪烁现象。这节通过教大家使用新型延时函数可以有效的改善闪烁现象。要教会大家三个知识点: 第一个:如何编写一气呵成的定时器延时函数。 第二个:如何编写检查EEPROM芯片是否存在短路,虚焊或者芯片坏了的监控程序。 第三个:经过网友 cjseng 的提醒,我建议大家以后在用EEPROM芯片时,如果单片机IO口足够多,WP引脚应该专门接一个IO口,并且加一个上拉电阻,需要更改EEPROM存储数据时置低,其他任何一个时刻都置高,这样可以更加有效地保护EEPROM内部数据不会被意外更改。 具体内容,请看源代码讲解。 (1)硬件平台: 基于朱兆祺51单片机学习板。旧版的朱兆祺51学
[单片机]
【单片机】【学习日志】51单片机学习日志[Day2、2022.1.10]
第一部分:数码管 一、基础知识 1、数码管引脚定义(单个数码管) 上方的为 共阴极连接 下方的为 共阳极连接 把 “8”分为 8个段,分别为“A、B、C、D、E、F、G、DP(顺时针) ,正好对应寄存器的 8个字节。 引脚定义 1.1引脚类型 若其为共阴极连接 A、B、C、D、E、F、G、DP 段 的阴极均接 3、8号引脚 A段 阳极接 7号引脚 B段 阳极接 6号引脚 C段 阳极接 4号引脚 D段 阳极接 2号引脚 E段 阳极接 1号引脚 F段 阳极接 9号引脚 G段 阳极接 10号引脚 DP段 阳极接 5号引脚 共阳极则反过来即可。 2、数码管引脚定义(多个数码管)(
[单片机]
【单片机】【学习日志】<font color='red'>51单片机</font>学习日志[Day2、2022.1.10]
基于51单片机的温控风扇
设计要求: 1.本设计基于STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机 • 2.采用DS18B20温度传感器测温(0-99.9°C),三极管驱动数码管显示温度和风扇的档位。 • 3.共3个按键:设置、加、减。按一下设置可以设置上限,再按下设置下限,均可以按键加减调整。 • 4.利用PWM调速,当温度低于下限时,风扇不转动,当温度处于上、下限之间时1档转动(50%的转速),当温度超过上限时,全速转动。 使用说明: 一共3个按键:设置、加、减 按下设置键的时候才可以加减。 按一下设置键,是设置温度的上限,再按下设置键,是设置温度的下限,再按下设置键是退出并保存。 部分程序: #include
[单片机]
基于<font color='red'>51单片机</font>的温控风扇
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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