51单片机-数码管模块-计数器

发布者:水手谷水手最新更新时间:2020-03-08 来源: eefocus关键字:51单片机  数码管模块  计数器 手机看文章 扫描二维码
随时随地手机看文章

#include


#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long


sbit DULA = P2^6;

sbit WELA = P2^7;


unsigned char code WETable[8] = 

{

~0x80,~0x40,~0x20,~0x10,

~0x08,~0x04,~0x02,~0x01

};


unsigned char code DUTable[16] = 

{

0x3F,0x06,0x5B,0x4F,

0x66,0x6D,0x7D,0x07,

0x7F,0x6F,0x77,0x7C,

0x39,0x5E,0x79,0x71

};


unsigned char LedBuff[8] = 

{

0x3F,0x3F,0x3F,0x3F,

0x3F,0x3F,0x3F,0x3F

};


bit flag = 0;


void Timer0Init(void); //1毫秒@11.0592MHz


void main(void)

{

unsigned long sec = 0;


Timer0Init();


while(1)

{

if(1==flag)

{

flag = 0;


sec++;


LedBuff[0] = DUTable[sec/1%10];

LedBuff[1] = DUTable[sec/10%10];

LedBuff[2] = DUTable[sec/100%10];

LedBuff[3] = DUTable[sec/1000%10];

LedBuff[4] = DUTable[sec/10000%10];

LedBuff[5] = DUTable[sec/100000%10];

LedBuff[6] = DUTable[sec/1000000%10];

LedBuff[7] = DUTable[sec/10000000%10];

}

}

}


void Timer0Init(void) //1毫秒@11.0592MHz

{

EA = 1;

ET0 = 1;

//AUXR &= 0x7F; //定时器时钟12T模式

TMOD &= 0xF0; //设置定时器模式

TMOD |= 0x01; //设置定时器模式

TL0 = 0x66; //设置定时初值

TH0 = 0xFC; //设置定时初值

TF0 = 0; //清除TF0标志

TR0 = 1; //定时器0开始计时

}


void LedScan(void)

{

static unsigned char i = 0;


P0 = 0x00;

DULA = 1;

DULA = 0;


P0 = WETable[i];

WELA = 1;

WELA = 0;

P0 = LedBuff[i];

DULA = 1;

DULA = 0;


if(i<7)

{

i++;

}

else

{

i = 0;

}

}


void InterruptTimer0(void) interrupt 1

{

static unsigned int cnt = 0;


TL0 = 0x66; //设置定时初值

TH0 = 0xFC; //设置定时初值


LedScan();


cnt++;

if(cnt>=1000)

{

cnt = 0;

flag = 1; 

}

}

关键字:51单片机  数码管模块  计数器 引用地址:51单片机-数码管模块-计数器

上一篇:51单片机-点阵模块-横向移动-i love u
下一篇:51单片机-LED模块-来回流水灯

推荐阅读最新更新时间:2024-11-08 09:21

第三节 趣讲51单片机之P1P2P3口深入讲解
一、P1口 P1口是4组Parallel Ports中最简单的。其结构图如下: 与P0口的区别是:由于没有端口复用功能,所以,P0口的V1变成了一个上拉电阻。 由于内部就有上拉电阻,所以,作为GPIO时,P1口不需要接上拉电阻,当然,您接了也没关系啦,就相当于两个上拉电阻并联嘛。 读端口、读引脚、写功能在P0中已经讲得非常详细了,此处略个一万字。 二、P2口 P2口的原理图如下图: 咋一看,和P0口有点像,都有控制信号,选择作为 地址/数据 总线还是作为GPIO;又和P0口有些不同,P2口没有推挽式输出的结构,即没有V1 MOS管。 我们说过,P0在作为 地址/数据 总线时
[单片机]
第三节 趣讲<font color='red'>51单片机</font>之P1P2P3口深入讲解
51单片机中断允许寄存器IE
在MCS-51中断系统中,中断的允许或禁止是由片内可进行位寻址的8位中断允许寄存器IE来控制的。见下表 EA - - ES ET1 EX1 ET0 EX0 其中EA是总开关,如果它等于0,则所有中断都不允许。 ES-串行口中断允许 ET1-定时器1中断允许 EX1-外中断1中断允许。 ET0-定时器0中断允许 EX0-外中断0中断允许。 如果我们要设置允许外中断1,定时器1中断允许,其它不允许,则IE可以是 EA - - ES ET1 EX1 ET0 EX0 1 0 0 0 1 1 0 0 即
[单片机]
关于51单片机晶振详解
晶振是什么?全称是石英晶体振荡器,是一种高精度和高稳定度的振荡器。通过一定的外接电路来,可以生成频率和峰值稳定的正弦波。而单片机在运行的时候,需要一个脉冲信号,做为自己执行指令的触发信号,可以简单的想象为:单片机收到一个脉冲,就执行一次或多次指令。 在初学51单片机的时候,总是伴随很多有关与晶振的问题,其实晶振就是如同人的心脏,是血液的是脉搏,把单片机的晶振问题搞明白了,51单片机的其他问题迎刃而解。 一、为什么51单片机爱用11.0592MHZ晶振? 其一:因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,
[单片机]
51单片机温控风扇
1.本设计基于STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机 2.采用DS18B20温度传感器测温,74HC573驱动数码管显示温度和风扇的档位。 3.共3个按键:设置、加、减。按一下设置可以设置上限,再按下设置下限,均可以按键加减调整。 4.利用PWM调速,当温度低于下限时,风扇不转动,当温度处于上、下限之间时1档转动(50%的转速),当温度超过上限时,全速转动。 使用说明: 一共3个按键:设置、加、减 按下设置键的时候才可以加减。 按一下设置键,是设置温度的上限,再按下设置键,是设置温度的下限,再按下设置键是退出并保存。 元件清单: 1)7*9万用板 2)风扇 3)STC89C
[单片机]
<font color='red'>51单片机</font>温控风扇
51单片机入门-点亮第一个LED灯
安装烧录软件和添加单片机 由于笔者所用的芯片为STC89C52,keil软件中没有集成STC系列的单片机,需要自己添加,于是登录STC官网http://www.stcisp.com下载最新的stc-isp软件。 然后打开stc-isp,选择Keil仿真设置,点击添加型号和头文件到Keil中 选择安装文件夹(文件夹下需包括C51和UVx,也就是keil软件的安装目录) 点击确定,显示STC MCU型号添加成功,点击确定,关闭软件。 了解原理 查看开发板原理图 笔者所用开发板LED原理图如下,于是所知D1连接P20接口。 LED点亮原理 不同发光二极管正向导通电压不同,具体压降根据二极管查询,但同一特点是二极管发光
[单片机]
<font color='red'>51单片机</font>入门-点亮第一个LED灯
4个独立式按键控制LED移位
程序源代码: /* 4个独立式按键控制LED移动 */ #include reg51.h typedef unsigned char uint8; typedef unsigned int uint16; void delay(uint16 x) { uint16 i,j; for(i = x; i 0; i --) for(j = 114; j 0; j --); } uint8 i = 0,j = 0; void Move_LED() { if ((P1 & 0x01) == 0x00) i = (i - 1) & 0x07; else if((P1 & 0x02) == 0x00) i = (i
[单片机]
4个独立式按键控制LED移位
MAX813L工作原理及其在51单片机系统抗干扰中的应用
  近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。   本文在分析MAX813L工作原理的基础上,结合实践给出了其在51单片机系统中的具体抗干扰应用实例。详细介绍了硬件电路的工作原理和相应的系统程序抗干扰编程方法。 1 MAX813L芯片及其工作原理 1.1 芯片特点       ·加电、掉电以及供电电压下降情况下的复位输出,复位脉冲宽度典型值
[单片机]
基于VHDL的多功能可变模计数器设计方案
   0 引 言   随着电子技术、计算机技术和EDA技术的不断发展,利用FPGA/CPLD进行数字系统的开发已被广泛应用于通信、航天、 医疗电子 、 工业控制 等领域。与传统电路设计方法相比,FPGA/CPLD具有功能强大,开发周期短,投资少,便于追踪市场变化及时修改产品设计,以及开发工具智能化等特点。近年来,FPGA/CPLD发展迅速,随着集成电路制造工艺的不断进步,高性价比的FPGA/CPLD器件推陈出新,使FPGA/CPLD成为当今硬件设计的重要途径。在FPGA/CPLD的应用设计开发中,VHDL语言作为一种主流的硬件描述语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务
[嵌入式]
基于VHDL的多功能可变模<font color='red'>计数器</font>设计方案
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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