单片机数码管显示数字为流水灯亮的个数

发布者:HarmoniousVibes最新更新时间:2015-04-30 来源: 51hei关键字:单片机  数码管显示  流水灯 手机看文章 扫描二维码
随时随地手机看文章
本程序所用的原理图下载: 点这里 ,单片机芯片使用的stc89c52;


/**
*Function:数码管显示数字为流水灯亮的个数
*Author:  徐冉
*Time:   2013-07-28
**/
/*************基于AT89C52-RC MCU************/
/************基于HL-1开发板****************/

#include
typedef unsigned int uint;
typedef unsigned char uchar;

/*数码管锁存器位声明*/
sbit wela = P2^7;
sbit dula = P2^6;

/*数码管编码表*/
uchar code table[] = {
0x3F,  //"0"
                0x06,  //"1"
                0x5B,  //"2"
                0x4F,  //"3"
                0x66,  //"4"
                0x6D,  //"5"
                0x7D,  //"6"
                0x07,  //"7"
                0x7F,  //"8"
                0x6F   //"9"
    };

/*全局变量定义*/
uchar num, counter;

/*延时子程序*/
void delay(uint xms)
{
uint x, y;
for(x = xms; x > 0; x--)
  for(y = 125; y > 0; y--);
}

/*定时器T0初始化程序*/
void Time0_init()
{
P1 = 0xff;//关闭led灯
TMOD = 0x01;//设置定时器T0工作方式0
TH0  = 0xB8;//设定T0定时20ms
TL0  = 0x00;
TR0  = 1;//打开定时器T0
EA   = 1;//开总中断
ET0  = 1;//开定时器T0中断
}

/*数码管显示子程序*/
void Display(uint num)
{
uchar shi, ge;

shi = num / 10 % 10;
ge  = num % 10;

dula = 1;
P0 = table[shi];
dula = 0;
P0 = 0xff;
wela = 1;
P0  = 0xfe;
wela = 0;
P0 = 0x00;
delay(5);

dula = 1;
P0 = table[ge];
dula = 0;
P0 = 0xff;
wela = 1;
P0 = 0xfd;
wela = 0;
P0 = 0x00;
delay(5);
}

/*主程序main()*/
void main(void)
{
Time0_init();
while(1)
{
if(num == 0)
{
P1 = 0xff;//1111 1111
}
else if(num == 1)
{
P1 = 0xfe;//1111 1110
}
else if(num == 2)
{
P1 = 0xfc; //1111 1100
}
else if(num == 3)
{
P1 = 0xf8;//1111 1000
}
else if(num == 4)
{
P1 = 0xf0;//1111 0000
}
else if(num == 5)
{
P1 = 0xe0;//1110 0000
}
else if(num == 6)
{
P1 = 0xc0;//1100 0000
}
else if(num == 7)
{
P1 = 0x80;//1000 0000
}
else if(num == 8)
{
P1 = 0x00;//0000 0000
}
Display(num);
}
}

/*定时器T0中断服务子程序*/
void Time0_int() interrupt 1
{
TH0 = 0xB8;
TL0 = 0x00;
counter++;
if(counter == 50)
{
counter = 0;
num++;
if(num > 8)
{
num = 0;
}
}
}

关键字:单片机  数码管显示  流水灯 引用地址:单片机数码管显示数字为流水灯亮的个数

上一篇:单片机程序-利用C52库函数实现左右流水灯
下一篇:单片机驱动点阵向上流动显示I Love U -Love漂亮的心形

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

单片机实现串口协议的网络化
   本文深入研究了使用单片机控制网卡,接入以太网Ethernet,即IEEE802.3协议网络,实现串口仪器的网络化。   1 硬件结构和电路设计   1.1 总体设计   整个系统设计采用ATMEL公司8位通用微控制器AT89C51作为主处理器,驱动REALTEK公司的10M以太网控制芯片RTL8019AS,实现串口数据和外部网络互连。   1.2 网卡接线设计   RTL8019AS为100管脚PQFP封装,工作电压5V。其接线原理图如图1所示。地址SA0-4接到单片机P2的低五位上;SA8和SA9接电源;其余SA5-7,SA10-19这13个管脚全部接地;IORB和IOWB分别接单片机的
[单片机]
<font color='red'>单片机</font>实现串口协议的网络化
基于单片机SPI器件的串口控制
简介:集成电路设计越来越向系统级的方向发展,并且越来越强调模块化的设计。SPI总线是Motorola公司提出的一个同步串行外设接口,容许CPU与各种外围接口器件以串行方式进行通信、交换信息。在此简述了SPI总线的特点,介绍了它的四条信号线及SPI串行总线接口的典型应用。重点描述SPI串行总线接口在DA芯片中的应用,并给出用C语言描述实现该接口通信的部分程序。该程序已经在AT89C2051中进行验证。 0 引 言 串行外设接口(Serial Peripheral Interface,SPI)是一种高速同步串行输入/输出端口,近年来广泛应用于移位寄存器、D/A转换器、A/D转换器、串行E2PROM、LED显示驱动器等外部设备的扩展
[单片机]
基于<font color='red'>单片机</font>SPI器件的串口控制
基于STM32单片机对HCSR04超声波的控制
注意:定义GPIOB2为超声输出;GPIOB10为输入,定时器用tim2 #include “HCSR04.h” #include “delay.h” #include “sys.h” int overcount; float length=0; void HCSR04_init() { GPIO_InitTypeDef GPIO_InitStructure; TIM_TImeBaseInitTypeDef TIM_TImeBaseInitStructer; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , EN
[单片机]
基于STM32<font color='red'>单片机</font>对HCSR04超声波的控制
80C51单片机的定时计数器的结构和工作原理
单片机怎么学,先从哪入手开始学,怎么开始入门 无论是对于新手还是已经在行内的朋友,学习单片机技术,实战动手能力十分重要,如果只知道从网络上的视频以及配套教材来入手开始学,很肯定的说,你永远也学不会。为何?单片机的学习最重要的一点是需要去动手实战实操,单单只看培训教材,也许看的时候能懂一些,但过了一段时间就会遗忘得一干二净,中国有句成语交“纸上谈兵”,经常用来嘲讽一些完全没有实践过的人,单凭从书上了解的知识就胸有成竹的长篇大论。 在这里建议大家,一定要给自己构建一个合适的动手实战试验场所,结合具体的实操对象就很容易理解单片机的电路组态原理,以及理解单片机的程序编制原理,对于入行不深的人,建议给自己出一道居家智能化的物联网课题,采
[单片机]
80C51<font color='red'>单片机</font>的定时计数器的结构和工作原理
AVR单片机学习(七)异步串行口UART
串行通讯技术概述 异步串行通讯原理 UART与电脑的通讯 M16的USART 中断方式使用USART步骤 一、串行通讯技术概述 串行通讯的通俗定义: 一位发送一位(相对与并行,)当然通过 位同步 帧同步 串行通讯的分类 同步串行通讯 时钟线、数据线、通过时钟保持数据同步 SPI,IIC 属于同步串口通讯 异步串口通信 只有一根数据线,通过波特率保证数据同步(顾名思义没有时钟线只有数据线) UART 无线通信一般均为异步串行通信(相对于无形之中只能有一根天线) 波特率 每秒发送码元时间宽度为(1/9600)S 大概是在100个微妙左右 发送方按照
[单片机]
AVR<font color='red'>单片机</font>学习(七)异步串行口UART
单片机小白学步(13) 点亮第一个LED——好的开始,成功的一半
前面介绍了很多概念知识,做了很多准备工作,从这一节开始,我们正式开始单片机的学习。我们将使用单片机完成一项非常简单的工作:点亮一个发光二极管(即LED:Light-Emitting Diode)。 LED简介 先简单介绍一下LED。LED是一种半导体器件,大家其实对LED并不陌生,各种电器的指示灯、手机键盘灯、LED液晶屏的背光、高亮LED手电筒等,都是通过LED发光的。LED有两种主要用途,一种是作为指示灯;另一种是照明。照明用的LED一般都是大功率LED,需要较大的电压电流才能正常工作。而这里我们要用到的则是用作指示灯的小功率LED。常见的小功率LED,在它的正负极加上3V左右的电压,就会发光,正常发光的时候,电流大概是2~5
[单片机]
<font color='red'>单片机</font>小白学步(13) 点亮第一个LED——好的开始,成功的一半
使用MSP430F133单片机改造老式测量仪表
摘要:采用单片机和电子技术相结合所设计的仪器仪表具有许多独特的性能以及在仪器结构和生产工艺等方面具有简单成本低的优点。本文使用美国TI公司的MSP430F133单片机提出了一种在老式仪表的基础上进行全新设计的方法。对所设计的仪表在系统的硬件结构、软件功能以及实现的方法等不同角度进行了分析。 概述 在核污染的环境评测中,最常用的仪表是X、γ 辐射空气吸收剂量率仪。在这类仪表中,使用的测量原理主要有以下两种:一种方法是使用脉冲计数的方法,在这类方法中使用光电倍增管或使用计数管对核辐射脉冲计数,通过计数量的多少反映核辐射剂量的大小。另一种方法是将测量的辐射脉冲进行积分、放大后显示输出。在后一种方法中,由于综合考虑了反映核辐射能量脉冲
[单片机]
使用MSP430F133<font color='red'>单片机</font>改造老式测量仪表
MSP430F149单片机能输出多少路PWM波?
在使用430的PWM波的时候,我一直有一个困惑,那就是它到底能输出几路PWM波?我想别的朋友可能也有相同的困惑,在我查找了好多资料之后最终搞懂了,下面分享一下学习经验。 首先,MSP430F149有两个16位的定时器Timer_A和Timer_B,其中TA有3个捕获比较单元,TB有7个捕获比较单元,产生PWM波需要将定时器配置在比较模式下,刚开始我以为既然TA有三个捕获比较模块,那么就应该有三个PWM波,结果怎么配置都无法产生TA1,后来在我仔细查看User's Guide才弄懂了,下面先上图: 上图说道:每个捕获、比较模块的输出可以产生PWM信号,每个输出根据EQU0和EQUX可以配置为8种模式。 我们知道
[单片机]
MSP430F149<font color='red'>单片机</font>能输出多少路PWM波?
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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