基于51的数码管计数器

发布者:乐呵的挑最新更新时间:2020-04-05 来源: eefocus关键字:数码管  计数器 手机看文章 扫描二维码
随时随地手机看文章

/***********************************************/

/***********************************************/

 

#include "reg52.h"  

 

typedef unsigned int u16;   

typedef unsigned char u8;

#define N 2500

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

u8 code smgduan[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f};//显示0~9的值

 

u16 number[9];     

u16 minute,sec,mse,i,a;     //这里的minute是分计时部分,sec是秒部分,mse是毫秒部分

 

void _time();

void timedeal();

void display();

 

void main()

{

minute=0;sec=0;mse=0;

i=0;a=0;

_time();

timedeal();

while(1)

{

timedeal();

display();

    }

}

void timedeal()

{

  number[0]=mse%10;  //时,分,秒每个两位

number[1]=mse/10;

 

number[3]=sec%10;

number[4]=sec/10;

 

number[6]=minute%10;

number[7]=minute/10;

}

void display()

{

if(a==5)

{

mse++;

a=0;

}

if(mse>99)

{

mse=0;

sec++;

}

if(sec>60)

{

sec=0;

minute++;

}

if(minute>60)

{

minute=0;

sec=0;

mse=0;

}

}

void _time()

{

TMOD=0x01;//定义为定时器0为方式1,16位

TH0=(65536-N)/256; //计时到65536则溢出 ,则N多少为时间,也可以TH0=(-5000)<<8

TL0=(65536-N)%256;

EA=1;//总中段

ET0=1;//开定时器0的中断

TR0=1;//启动

}

void T0_time() interrupt 1

{

TH0=(65536-N)/256; //计时到65536则溢出 ,则N多少为时间,也可以TH0=(-5000)<<8

TL0=(65536-N)%256;

P2=i<<2;            //因为位选定义的是P2^2 ,P2^3,  P2^4,所以i要左移两位对P2口进行操作

if(i==1)

{

P0=smgduan[number[i]]|0x80;

}  //这个是毫秒部位的的那个小数点

else if(i==2||i==5) // 当扫描到两个单位之间的分隔 “-”时就不是显示时间数了

{      //要显示“——“,所以是要数码管的g段亮,因为开发板板数码 

  P0=0x40; //管是共阴的,所以是0x40,就是 0100 0000 

}         

else{

P0=smgduan[number[i]];}    

i++;

if(i==8)

i=0;

a++;

}

关键字:数码管  计数器 引用地址:基于51的数码管计数器

上一篇:proteus 数码管动态显示问题解决
下一篇:51单片机入门教程(3)——数码管显示

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

51单片机蜂鸣器演奏《我和我的祖国》
由于同学的需要,于是用51单片机的蜂鸣器功能谱了一首《我和我的祖国》,下面是全部的代码: #include reg52.h sbit beep = P1^5; unsigned char timer0H, timer0L, time; //单片机晶振采用11.0592MHz // 频率-半周期数据表 高八位 本软件共保存了四个八度的28个频率数据 code unsigned char FREQH = { 0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, //低音1234567 0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,//
[单片机]
<font color='red'>51</font>单片机蜂鸣器演奏《我和我的祖国》
基于C8051F021的定位和报警移动终端设计
摘要:C8051F021是美国Cygnal公司生产的单片机。具有双串口、低功耗、高速度等优点。本文以GSM的数据业务,设计一种具有报警和定位的移动终端,并介绍该终端的结构框图、工作原理以及I/O配置和初始化程序。 关键词:C8051F021 GSM模块 GPS模块 移动终端 定位报警 引言 GSM网是目前移动通信体制中最成熟、最完善、应用最广的一种系统。数据业务作为GSM网络的一种基本业务,已得到越来越多的系统运营商和开发商的重视,基于这种业务的各种应用也蓬勃发展起来。以GSM网络作为无线数据传输网络,可开发出多种前景极其乐观的应用,如无线远程检测和控制、无线自动警报等。本文基于GSM的数据业务设计一种实时性比较强、数据率
[单片机]
基于W78E516B的液晶显示控制器显示系统设计
   引言   液晶显示屏(LCD)具有损耗低、价格低、寿命长、接口方便等优点,因此广泛应用于工业产品中,液晶显示驱动方案多种多样。目前中小型单色液晶屏控制方案多是基于CPLD液晶显示控制和液晶显示控制器SED1335,液晶显示控制模块功能简单,快速显示时会出现“雪花”现象。针对上述两种弊端,这里采用具有带ISP功能的Flash EPROM低功耗8位微控制器W78E516B单片机和液晶显示控制器SID13700构成一个320×240(DMF-50840NF液晶屏)的单色液晶显示系统,整个设计过程中,通过不断改进硬件和调试软件,得到了预期效果。该系统模块显示速度快、功能复杂、性能稳定,且已在产品中得以运用。    2 系统整体方
[单片机]
基于嵌入式器件AT89C51SNDlC的电子治疗仪设计
1 引言   目前采用两个电极片对称覆盖治疗人体部位的电子治疗仪,是通过电极片上的脉动电压与治疗人体部位电阻产生作用,在治疗部位产生人体能够感知的脉动电流,刺激神经肌肉,使其收缩和舒张,产生运动效应,以达到治疗目的。但目前市场上此类型治疗仪产生的脉动电压只有少数几种,由于脉动电流频率周期固定,如果某治疗部位长期接受其脉动,就会产生抗疗作用,引起自发性紧张,从而降低治疗效果。为了解决这一问题,将MP3发出的随机音乐信号引入治疗仪,使音频信号与2.4 kHz的中频治疗频率进行调制,产生多种脉动电压和频率周期不断变换的脉动电流。它们随音乐信号起伏变化而发生作用,使患者一边欣赏着喜欢的音乐一边接受治疗,分散注意力,缓解紧张情绪,从而有助
[医疗电子]
基于嵌入式器件AT89C<font color='red'>51</font>SNDlC的电子治疗仪设计
基于8051单片机的频率测量技术
0 引言 随着无线电技术的发展与普及,"频率"已经成为广大群众所熟悉的物理量。而单片机的出现,更是对包括测频在内的各种测量技术带来了许多重大的飞跃,然而,小体积、价廉、功能强等优势也在电子领域占有非常重要的地位。为此.本文给出了一种以单片机为核心的频率测量系统的设计方法。 1 测频系统的硬件结构 测量频率的方法一般分为无源测频法、有源测频法及电子计数法三种。无源测频法(又可分为谐振法和电桥法),常用于频率粗测,精度在1%左右。有源比较法可分为拍频法和差频法,前者是利用两个信号线性叠加以产生拍频现象,再通过检测零拍现象进行测频,常用于低频测量,误差在零点几Hz;后者则利用两个非线性信号叠加来产生差频现象,然后通过检测零差现象进
[应用]
用MCS-51单片机实现温度的检测
1 引 言   断相与相序保护是较大功率三相交流电动机及不可逆转传动设备中的交流电机起动设备中不可缺少的部分,通常使用模拟的断相与相序保护继电器,随着数字技术,尤其是微计算机技术的发展,数字式断相与相序保护技术就成为现实,它具有体积小、能耗低、准确可靠、便于计算机控制系统接口的优点,并逐渐成为三相交流电动机起动保护的主流。 2 断相与相序保护系统简介 2.1 三相交流电动机控制系统     三相交流电动机电源控制回路如图2—1所示。按下QA按钮,若电源A、B、C三相正常时,电动机就能正常起动工作;若三相电源中任何一相熔断器开路或供电电源与原认定相序错相时,控制系统发出报警信号,切除CJ主回路电源,三相交流电动机不能起动,从而达到
[单片机]
用MCS-<font color='red'>51</font>单片机实现温度的检测
MSP430控制AD9851产生扫频波
#include msp430xG43x.h #include DDS_DA TA.H #define uchar unsigned char #define uint unsigned int #define DDS_CONTROL_PORT P5OUT #define DDS_CONTROL_DIR_PORT P5DIR #define DDS_DA TA_PORT P4OUT #define DDS_DA TA_DIR_PORT P4DIR #define DDS_FQUD 0x20 #define DDS_WCLK 0x40 #define DDS_RES
[单片机]
51单片机STC89C52】ESP8266 ESP-01S模块使用
一、部分AT指令 注意:AT指令,控制类勾选发送新行,传输数据时不需要 二、建立TCP服务器 注:ESP-01S和主机要在同一wifi网络下 三、编程实现设备模式接入路由器配置 1、编程分析 ESP-01S连接网络后重启自动连接网络,并且返回WIFI GOT IP。 这里暂不考虑联网失败,后面再通过AT指令再次联网就可以。 以设备模式接入路由器配置,发送AT+CWJAP= OnePlus9R , qwertyuiop 指令 入网成功返回WIFI GOT IP等,最终返回值为OK 入网失败返回值为FAIL 连接到 TCP server,发送AT+CIPSTART= TCP , 192.168.6
[单片机]
【<font color='red'>51</font>单片机STC89C52】ESP8266 ESP-01S模块使用
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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