//********************************
//定时器T1计数并将计数值实时显示至数码管
//T0定时(数码管动态扫描用);T1计数
//作者:曾宪阳
//网址:http://hi.baidu.com/zxymcu
//********************************
#include
#define uchar unsigned char
#define uint unsigned int
unsigned int i=0;
uchar x=0;
uchar code Duan[]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
uchar code Wei[]={0x01,0X02,0X04,0x08,0x10,0X20};
uchar Disp[5];
void Time0(void) interrupt 1 using 3
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%6;
P2=0X00; //关闭显示
P0=Duan[Disp[x]];
P2=Wei[x];
x++;
if(x==5)x=0;
}
void InitT0(void)
{
TMOD=0X51; //T0定时(动态扫描显示);T1计数
TH0=(65536-1000)/256;
TL0=(65536-1000)%6;
EA=1;ET0=1;
TR0=1;TR1=1;
}
void main(void)
{
InitT0();
while(1)
{
i=0; //读数前清零i
i=(((i|TH1)<<8)|TL1); //读取T1的值至i
Disp[4]=i/10000;//拆分各位数据后保存至显示缓冲区
Disp[3]=i000/1000;
Disp[2]=i00000/100;
Disp[1]=i000000/10;
Disp[0]=i000000;
}
}
关键字:定时器计数 计数值 实时显示 数码管
引用地址:
定时器计数并将计数值实时显示在数码管
推荐阅读最新更新时间:2024-03-16 14:35
51单片机+18B20显示程序+74HC164扩展显示数码管
51 单片机 +18B20显示程序+74HC164扩展显示数码管 #include stc.h #include intrins.h //_nop_();延时函数用 #define uchar unsigned char #define uint unsigned int //================18b20数据口定义=============== uint temp; // 定义一个16位变量用于COPY数据 sbit DQ = P2^6; char flash,presence; uint temp1,temp2; //读出温度暂放 uchar s1,s2,s3,s4
[单片机]
独立按键控制数码管位移
独立按键控制数码管位移 代码: #include reg52.h #define uchar unsigned char #define uint unsigned int uchar code DSY_CODE = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff }; uchar code DSY_Index = { 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01 }; uchar Display_Buffer = { 0,10,10,10,10,10,10,10 }; void DelayMS(uint
[单片机]
基于DS1302的简易数码管电子钟
#include reg51.h #include intrins.h #include"DS1302.h" #include"KEY.h" #include"IIC.H" #define uchar unsigned char #define uint unsigned int #define LEDIO P0 #define LEDCHIP P2 sbit BEEP=P3^7; /*************************数码管定义**************************************/ //段码 0 1 2 3 4 5 6 7 8 9 A B - P d uch
[单片机]
SPI主机实验---7段数码管显示
1、功能:在7段数码管上显示一些字符 2、原理图: 3、程序清单: /****************************************Copyright (c)************************************************** **--------------File Info------------------------------------------------------------------------------- ** File name: main.c ** Last modified Date: 2011-04-24 ** Last Version:
[单片机]
74HC595 数码管程序
74HC595 数码管程序 #include reg51.h //51芯片管脚定义头文件 #include intrins.h //内部包含延时函数 _nop_(); #define uchar unsigned char #define uint unsigned int uchar code DAT ={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共阴数码管显示码 sbit HC595_SRCLR=P1^0; // 清空移位寄存器 sbit HC595_sRCLK=P1^1; // 寄存器输出时钟 sbit HC595_RCLK =P1^2; // 移
[单片机]
利用外部中断和时间中断计数0-999显示在数码管上
要求:数码管从0开始显示,按一次按键(和内部中断,每隔一秒就自然进入中断一次),进入一次中断,数码管上数字加1,直到999,又从0开始。 连线:P10连L7 电位器连直流电机 脉冲输出连P32 CS1连数码管CS #include reg51.h typedef unsigned char uchar; xdata uchar LED_CS _at_ 0x9000; xdata uchar LED_OUTSEG _at_ 0x9004; xdata uchar LED_OUTBIT _at_ 0x9002; sbit P10=P1^0; uchar n=0; unsigned int Count=0; code unsign
[单片机]
PLC中编写定时器和计数器的自复位功能
CTU:加法计数器 分析:当计数值达到5,Q输出M300.0=1,在下一周期时执行复位 指令,使得计数值清零,之后Q输出M300.0=0,实现自复位计数器 并产生脉冲。M300.0有一个从1变0的过程。 计数器自复位程序 CTD减法计数器 了解内容:减计数器和加减计数器。要先装载LD,再减。每当0.0从“0”变为“1”, CV减少1;当MD4=0时,Q=1,此后每当CD从“0”变为“1”, Q保持输出“1”,CV继续减少1直到达到计数器指定的整数类型的最小值。 在任意时刻,只要I0.2=1时,Q输出“0”,CV立即停止计数并回到PV值。 C TD减法计数器 TON:接通延时 定时器 按下启动按钮, 电机 运行5秒自动停
[嵌入式]
基于74hc595芯片数码管独立按键的应用
#include reg52.h #define uint unsigned int #define uchar unsigned char sbit rck=P0^0; sbit sck=P0^1; sbit si=P0^2; sbit key1=P1^0;//按键接在P1^0口 sbit key2=P1^1;//按键接在P1^1口 uint b=0,a=0,c=0;//全局定义并赋初值 uchar code num ={0x80,0xed,0x42,0x48,0x2c,0x18,0x10,0xcc,0x00,0x08}; void write_date(uchar temp) { uint i; for(i=0;i 8;i
[单片机]