首页 > 其他分享 >AT89C52+74LS138数码管(8段4角共阴极)显示Proteus仿真

AT89C52+74LS138数码管(8段4角共阴极)显示Proteus仿真

时间:2024-10-13 15:49:05浏览次数:9  
标签:P2 case 角共 void unsigned break 数码管 Proteus

文章可以从下往上浏览(一个数码管开始,8段4角共阴极为江科大版本),有用点个赞哦

Keil uVision5开发环境

#include <REGX52.H>

//数码管段码表
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

//延时子函数
void Delay(unsigned int xms)
{
    unsigned char i, j;
    while(xms--)
    {
        i = 2;
        j = 239;
        do
        {
            while (--j);
        } while (--i);
    }
}

//数码管显示子函数
void Nixie(unsigned char Location,Number)
{
    switch(Location)        //位码输出
    {
        case 1:P2_4=1;P2_3=1;P2_2=1;break;
        case 2:P2_4=1;P2_3=1;P2_2=0;break;
        case 3:P2_4=1;P2_3=0;P2_2=1;break;
        case 4:P2_4=1;P2_3=0;P2_2=0;break;
        case 5:P2_4=0;P2_3=1;P2_2=1;break;
        case 6:P2_4=0;P2_3=1;P2_2=0;break;
        case 7:P2_4=0;P2_3=0;P2_2=1;break;
        case 8:P2_4=0;P2_3=0;P2_2=0;break;
    }
    P0=NixieTable[Number];    //段码输出
    Delay(1);                //显示一段时间
    P0=0x00;                //段码清0,消影
}

void main()
{
    while(1)
    {
        Nixie(1,1);        //在数码管的第1位置显示1
//        Delay(20);
        Nixie(2,2);        //在数码管的第2位置显示2
//        Delay(20);
        Nixie(3,3);        //在数码管的第3位置显示3
//        Delay(20);
    }
}


江科大代码动态数码管代码

 proteus 8  protessional仿真

数码管:7SEG-MPX4-CC(共阴)

未加入74hc245,加入后不显示,可能DIR引脚出错

 

数码管的abcdefg口是要高电平有效,COM共阴低电平有效

以上是动态数码管,加入了延时函数,消除重影代码中delay(20)注释掉了。

静态的话,代码与动态就一个delay未加入

#include <REGX52.H>

//数码管段码表
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

//数码管显示子函数
void Nixie(unsigned char Location,Number)
{
	switch(Location)		//位码输出
	{
		case 1:P2_4=1;P2_3=1;P2_2=1;break;
		case 2:P2_4=1;P2_3=1;P2_2=0;break;
		case 3:P2_4=1;P2_3=0;P2_2=1;break;
		case 4:P2_4=1;P2_3=0;P2_2=0;break;
		case 5:P2_4=0;P2_3=1;P2_2=1;break;
		case 6:P2_4=0;P2_3=1;P2_2=0;break;
		case 7:P2_4=0;P2_3=0;P2_2=1;break;
		case 8:P2_4=0;P2_3=0;P2_2=0;break;
	}
	P0=NixieTable[Number];	//段码输出
}

void main()
{
	Nixie(2,5);	//在数码管的第2位置显示3
	while(1)
	{
		
	}
}

控制一个数码管

#include <REGX52.H>




void main()
{
	
	P0=0x7D;//0111 1101
	while(1)
	{
		
	}
}

数码管的abcdefg口是要高电平有效,COM共阴低电平有效

标签:P2,case,角共,void,unsigned,break,数码管,Proteus
From: https://blog.csdn.net/2301_76617986/article/details/142871589

相关文章

  • AT89C52流水灯Proteus
    keil5   开发环境江科大流水灯代码#include<REGX52.H>#include<INTRINS.H>voidDelay500ms() //@12.000MHz{ unsignedchari,j,k; _nop_(); i=4; j=205; k=187; do { do { while(--k); }while(--j); }while(--i);}voidmain......
  • proteus-7.8的安装教程+安装产生的问题+创建桌面快捷方式
    20241012,记录一下老师教的Proteus7.8的安装过程,以及自己在安装过程中产生的问题目录安装过程1-21出现Nolicencekeyisinstalled的问题解决方法,请看8proteus的破解方法,请看17-20寻找proteus,创建桌面快捷方式,请看211.新建一个文件夹,Proteus(建议放在D盘)2.解压Proteus-......
  • 51单片机实现数码管显示
    51单片机实现数码管显示本次的实现效果方式采用模拟进行,芯片为AT89C51,开发软件为keil5,proteus目录上代码效果展示介绍上代码代码如下:#include<REGX51.H>//引用库文件#definekeyP3_0//按键引脚#definekey2P3_1unsignedintc=0,q=0,a=0;unsignedcharshu[10]={......
  • Arduino UNO R3自学笔记24 之 Arduino如何使用MAX7219控制多个数码管?
    注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。前言:前面学习了单个数码管的控制,但是在大多场合一个数码管是满足不了使用场景的,因此对于数码管的学习,应该学会用尽可能少的端口去驱动更多的数码管,在此情况下,MAX7219比较适合我们使用。1.MAX7219引脚及功能介绍......
  • Arduino UNO R3自学笔记23 之 Arduino如何使用4511控制数码管?
    注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。前言:因为7段数码管控制需要用到7个IO,这会严重占用Arduino的IO口,因此我们采用现有IC来节省Arduino的IO口。1.CD4511介绍        CD4511是一款用于驱动共阴极LED(数码管)显示器的BCD码-七段码译码器。它具......
  • 51单片机的自动烘手器【proteus仿真+程序+报告+原理图+演示视频】
    1、主要功能 该系统由AT89C51/STC89C52单片机+LCD1602显示模块+温度传感器+红外传感器+时钟模块+继电器+LED和按键等模块构成。适用于智能干手器、智能烘干器、自动感应烘干器等相似项目。可实现功能:1、LCD1602实时显示当前日期、时间和环境温度2、温度传感器DS18B20采......
  • 20 基于STM32的温度、电流、电压检测proteus仿真系统(OLED、DHT11、继电器、电机)
    目录一、主要功能二、硬件资源三、程序编程四、实现现象一、主要功能基于STM32F103C8T6采用DHT11读取温度、滑动变阻器模拟读取电流、电压。通过OLED屏幕显示,设置电流阈值为80,电流小阈值为50,电压阈值为60,温度阈值为30随便哪个超过预祝,则继电器切断,LED灯灭掉,若电流......
  • 3.资源《Arduino UNO R3 proteus 电机测速仿真工程文件(含驱动代码)》说明。
     资源链接: ArduinoUNOR3proteus电机测速仿真工程文件(含驱动代码)1.文件明细:2.文件内容说明包含:proteus工程、原理图、仿真程序。3.内容展示4.简述该文件为Proteus工程。用于电机测速验证。5.演示视频proteus仿真电机测速......
  • 【Proteus仿真】【32单片机】DHT11温湿度检测系统设计
    目录一、主要功能二、使用步骤三、硬件资源四、软件设计五、实验现象联系作者一、主要功能1、温湿度检测与LCD显示2、超过上限,降温除湿模块启动3、低于下限,升温增湿模块启动4、温湿度阈值设置5、超限报警二、使用步骤系统运行后,LCD1602显示传感器检测的温湿度......
  • 14【Proteus仿真】基于51单片机的五种信号发生器(梯形波、正弦波、三角波、方波、锯齿
    目录一、主要功能二、硬件资源三、程序编程四、实现现象一、主要功能该项目旨在基于51单片机,采用Proteus设计一款多波形发生器,能够产生正弦波、方波、三角波、梯形波、锯齿波等不同波形。通过五个开关(K1-K5)的选择,用户可以灵活切换并观察各种波形的输出。项目融合了硬......