首页 > 其他分享 >51单片机实现数码管显示

51单片机实现数码管显示

时间:2024-10-12 14:35:13浏览次数:5  
标签:P3 数码管 51 unsigned 单片机 proteus

51单片机实现数码管显示

本次的实现效果方式采用模拟进行,芯片为AT89C51,开发软件为keil5,proteus

目录

上代码

代码如下:

#include <REGX51.H>//引用库文件

#define key P3_0//按键引脚
#define key2 P3_1

unsigned int c=0,q=0,a=0;
unsigned char shu[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//数码管0-9

void delay(unsigned int t)//延时函数
{
	for(c=0;c<t;c++);
}

void keydown()//当按键按下
{
	if(key2==0)
	{
		delay(100);
		if(key2==0)
		{
			while(key2==0);
			if(q==0){q=9;P2=shu[q];}else{q--;P2=shu[q];}//如果减到0则变成九,否则每次按下数码管数字减一
		}
	}
}

void main()
{
	while(1)
	{
		keydown();
		if(key==0)//如果有按键二按下
		{
			delay(100);
			if(key==0)
			{
				while(key==0);
				for(a=0;a<10;a++){q=a;P2=shu[a];delay(30000);}//for循环显示0-9数码管显示
			}
		}
	}
}

效果展示

keil5开发界面
在这里插入图片描述

在这里插入图片描述
proteus界面:
在这里插入图片描述

介绍

本次采用数码管端口为P2,按键为P3_0,P3_1,通过for循环和减法实现预期效果。

标签:P3,数码管,51,unsigned,单片机,proteus
From: https://www.cnblogs.com/helloyi/p/18460472

相关文章

  • Newtec MDM2510 REST API
    NewtecMDM2510RESTAPI SatOct1214:37:112024<--L10SatOct1214:37:112024<--A15SatOct1214:37:112024<--W15SatOct1214:37:112024<--S172.0000000.0000000.000000SatOct1214:37:112024......
  • oracle 19c dgbroker 报错ORA-16664 with ORA-12514如何解决
    alert中一堆这个保存一新***********************************************************************FatalNIconnecterror12504,connectingto:(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=)(INSTANCE_NAME=hrz)(CID=(PROGRAM=oracle)(HOST=sd4)(USER=oracle)))(ADDRESS......
  • 代码随想录算法训练营 | 完全背包,518. 零钱兑换 II,377. 组合总和 Ⅳ,70. 爬楼梯 (进阶)
    完全背包题目链接:完全背包文档讲解︰代码随想录(programmercarl.com)视频讲解︰完全背包日期:2024-10-11想法:dp数组设置思路跟01背包一样,不同在遍历上,完全背包遍历背包大小是从weight[i]开始的(背包空间小于weight[i]就没有意义,不用考虑,直接用之前的对应数值就行了),从前往后遍历就能......
  • Arduino UNO R3自学笔记24 之 Arduino如何使用MAX7219控制多个数码管?
    注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。前言:前面学习了单个数码管的控制,但是在大多场合一个数码管是满足不了使用场景的,因此对于数码管的学习,应该学会用尽可能少的端口去驱动更多的数码管,在此情况下,MAX7219比较适合我们使用。1.MAX7219引脚及功能介绍......
  • 洛谷 P7517 [省选联考 2021 B 卷] 数对
    题目传送门解题思路其实你只要知道:这题你就秒了。我们发现 ,于是开一个桶来统计每个数出现的数量。我们只需要枚举每一个数的倍数,然后统计。最后,如果一个数出现了多次,再特判一下即可。代码#include<bits/stdc++.h>usingnamespacestd;intn;intcnt[500001];......
  • 2024.10.10 1514版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......
  • 单片机复位详解
    单片机复位详解单片机复位介绍单片机复位是确保单片机能够稳定、正确地从头开始执行程序的重要机制。复位电路的作用是使单片机的状态处于初始化状态,包括让时钟处于稳定状态、各种寄存器和端口处于初始化状态等。单片机复位分为高电平复位和低电平复位两种方式。基本上所有单......
  • 51c嵌入式分享~三极管相关1
    一、PNP与NPN两种三极管使用方法  分享这篇文章总结下关于NPN和PNP两种型号三极管的使用和连接方法。    在单片机应用电路中三极管主要的作用就是开关作用。PNP与NPN两种三极管使用方法    上图中,横向左侧的引脚叫做基极b,有一个箭头的是发射极e,剩下的一个引脚就是集电......
  • Arduino UNO R3自学笔记23 之 Arduino如何使用4511控制数码管?
    注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。前言:因为7段数码管控制需要用到7个IO,这会严重占用Arduino的IO口,因此我们采用现有IC来节省Arduino的IO口。1.CD4511介绍        CD4511是一款用于驱动共阴极LED(数码管)显示器的BCD码-七段码译码器。它具......
  • 51单片机中断与定时器
    一.中断源  INT0  外部中断0    P3^2引脚低电平或者下降沿信号  INT1  外部中断1    P3^3引脚低电平或者下降沿信号  T0    定时器0中断   定时器/计数器0计数回0溢出  T1    定时器1中断   定时器/计数器1计数......