四位数码管显示计时分钟和秒(单片机代码)

这篇具有很好参考价值的文章主要介绍了四位数码管显示计时分钟和秒(单片机代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

8051系列单片机有两个定时器:T0和T1,分别称为定时器和定时器T1,这两个定时器都是16位的定时器/计数器;8052系列单片机增加了第三个定时器/计数器T2;它们都有定时或事件计数功能,常用于时间控制、延时、对外部时间计数和检测等场合。

8051单片机的两个定时器T0和T1分别都由两个特殊功能寄存器组成;T0由特殊功能寄存器TH0和TL0构成,而T1则是由TH1和TL1构成。

TF0是定时/计数器0的溢出指示,平时为0,溢出时为1.

TR0是定时/计数器0的运行控制位,只有当TR0置1时,定时/计数器0才会工作。TF0响应中断程序后,该标志位自动清零,如果不用中断则需要手动清零。

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit we = P2^7;
sbit du = P2^6;
uchar counter,time_counter,gg;
uchar code leddata[] = {	   //数码管显示数字数组			(这是共阴极的数码管表达方式)
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x76,0x38,0x37,0x3E,0x73,0x5C,0x40,0x00
};

void delay(int z) {			 //设置延时函数
	int x ,y;
	for(x=z;x>0;x--)
	for(y=114;y>0;y--) ;
}
void display(uchar i,uchar gg) {		 //用i来代替   time_counter
    uchar shi,ge;			//定义个位和十位   (其实用uchar和char都可以,这是我认为的)
	shi = i/10; //求模	 十位
	ge = i%10; //求余	 个位
	
	P0 = 0xff;		 //1111 1111   
	we = 1;			  //设置位选
	P0=0xbf;//1011 1111点亮第七位数码管
	we = 0;

	du = 1;				  //设置段选
	P0=leddata[shi];   //设置第七位数码管作为十位数的摆放位置
	du=0;
	delay(1);      //肉眼分辨不出来(因为速度太快)  所以会同时数码管会同时显示)

	P0 = 0xff;
	we = 1;
	P0 = 0x7f; //0111  1111   点亮第八位数码管
	we = 0;

	du = 1;
	P0 = leddata[ge];
	du = 0;
	delay(1);

	P0 = 0xff;
	we = 1;
	P0 = 0xdf; 	   //1101 1111  点亮第六位数码管 作为分钟的摆放位置
	we = 0;
  


	du = 1;
	P0 = leddata[gg]|0X80;		//点亮第六位的小数点位置!!!
	du = 0;
	delay(1);
		
}

void main(){


	TMOD = 0x01;
	TR0  = 1;
	TH0 = (65536-46080)/256;	    //50ms
	TL0 = (65536-46080)%256;

	while(1) {
	

		if(TF0 == 1){
			TF0 = 0;
			TH0 = (65536-46080)/256;	    //50ms
	TL0 = (65536-46080)%256;
			counter++;
		}
		if(counter == 20){	     //如果时间达到50ms*20=1000ms=1s的时候则计数清零
			counter = 0;
			time_counter++;
		}
		if(time_counter == 60)	{
		time_counter = 0;
		gg++;			     //若达到了一分钟 则gg++   (依次循环下去)
	
		}
		
		display(time_counter,gg);   //在调用display这个函数
	}

	
}

 四位数码管显示分和秒,单片机,stm32,嵌入式硬件

ps:如果不清楚46080怎么来 可以参考:http://t.csdn.cn/kAgd8文章来源地址https://www.toymoban.com/news/detail-517651.html

到了这里,关于四位数码管显示计时分钟和秒(单片机代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【单片机】【数码管】数码管显示

      1. 数码管的显示器及其接口 单片机系统中 常用的显示器有: 发光二极管LED显示器、液晶LCD显示器、TFT液晶显示器。本文主要是关于LED显示器的说明。 LED显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5x8、8x8点阵等)。 LED数码管根据接法可以分为共阴和共

    2024年02月08日
    浏览(54)
  • 单片机STC89C52倒计时、数码管和蜂鸣器控制

    鱼弦:CSDN内容合伙人、CSDN新星导师、全栈领域创作新星创作者 、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen) 单片机选用STC89C52,实现倒计时60秒,控制两个数码管分别显示时间的十位和个位;当计时完毕时,显示\\\"-”,

    2024年02月04日
    浏览(46)
  • 51单片机(四)静态数码管和动态数码管显示

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月09日
    浏览(47)
  • 单片机——数码管显示

    LED数码管:数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成“ 8” 字型的器件 一位数码管 八段LED各有名字,八位 引脚定义;和下图序号相对应  阴极连接在同一个端口上——阴极连接    我们单片机上的数码管引脚连接方式是阴极连接,假使要在数

    2024年02月04日
    浏览(59)
  • 单片机——数码管动态显示

    1.头文件和定义,代码还使用了 sbit 定义来声明了两个变量 duan 和 wei,它们实际上是 P2.6 和 P2.7 端口的别名,用于控制数码管的段选和位选信号。这种方法可以使代码更具可读性,并提高代码的可维护性。定义无符号整数便于后面应用。 2.使用一个 16 个元素的数组 table,该数

    2024年02月11日
    浏览(43)
  • 单片机数码管显示原理

    1、数码管的基本介绍 先给大家提供一张原理图看一下,如图1所示。 图1 数码管原理图 这是比较常见的数码管的原理图,我们板子上一共有6只数码管。前边有了LED小灯的学习,数码管学习就会轻松的多了。从图1能看出来,数码管共有a,b,c,d,e,f,g,dp这8个段,而实际上,这8个段

    2024年02月07日
    浏览(41)
  • C51单片机-共阳极数码管循环显示数字0至9,共阴极数码管循环显示5201314(动态)

    keil uVision4界面: proteus仿真界面:

    2024年02月06日
    浏览(58)
  • 【51单片机-数码管】:用51单片机写一个八个数码管中选用任意相邻两个数码管,用来循环显示0-99之间的数据,数据显示间隔为0.5s

             用普中51单片机写一个八个数码管中选用任意相邻两个数码管,用来循环显示0-99之间的数据,数据显示间隔为0.5s。         随机数码管 00-99  循环0.5s  显示。        数码管是一种数字显示器件,它由多个发光二极管(LED)组成,可以显示数字、字母、符号等

    2024年02月07日
    浏览(55)
  • 学习笔记|认识数码管|控制原理|数码管实现0-9的显示|段码跟位码|STC32G单片机视频开发教程(冲哥)|第九集:数码管静态显示

    数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP)这个小数点可以更的表示数码管想要显示的内容;按能显示多少个(8)可分为1位、2位、3位、4位、5位、6位、7位等数码管。 按发光二极管单元连接方

    2024年02月10日
    浏览(53)
  • 单片机数码管滚动显示学号

    单片机数码管滚动显示学号 在这篇文章中,我们将学习如何使用单片机控制数码管实现学号的滚动显示效果。通过这个项目,我们将展示如何编程控制数码管,以及如何使用循环和延时函数来创建滚动显示效果。下面是代码示例和详细说明。 硬件准备: 单片机开发板(如

    2024年02月03日
    浏览(120)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包