数码管动态显示——74HC04

1、电路设计:

p0实现段选,p2实现位选,74hc04是反相器,有反向和放大的双重作用。

2、程序设计:

#include<reg52.h>
code unsigned char seven_seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
sbit P2_0 = P2^0;
sbit P2_1 = P2^1;
sbit P2_2 = P2^2;
sbit P2_3 = P2^3;
sbit P2_4 = P2^4;
sbit P2_5 = P2^5;
void delay(unsigned int x){
while(x--);
}
int main(){
    while(1){
        P2 = 0x01;P0 = seven_seg[0];delay(300);
        P2 = 0x02;P0 = seven_seg[1];delay(300);
        P2 = 0x04;P0 = seven_seg[2];delay(300);
        P2 = 0x08;P0 = seven_seg[3];delay(300);
        P2 = 0x10;P0 = seven_seg[4];delay(300);
        P2 = 0x20;P0 = seven_seg[5];delay(300);
        P2 = 0x40;P0 = seven_seg[6];delay(300);
        P2 = 0x80;P0 = seven_seg[7];delay(300);

    }
}

3、运行结果:

静态显示虽然具有亮度高(有持续电压)的优点,但是浪费引脚。动态显示虽然节省了引脚但是亮度较低,完成基本的显示功能还是没问题的。

本实验通过p2口实现循环段选,每一位数字实现轮流显示。

原文地址:https://www.cnblogs.com/zhai1997/p/11623497.html

时间: 2024-10-11 07:03:50

数码管动态显示——74HC04的相关文章

单片机 之 基于原板的 数码管动态显示

题目要求: 数码管动态显示:已采集的数据存放在数据缓冲器内data[0]-data[3],每个数据为一个字节的长度(0-255),对应外部物理量为0-100度,要求利用动态显示对data的多个数据进行动态循环显示,精度为2位小数. 编码工具:keil 代码暂时不开源! /**/ #include<reg51.h> //头文件 另一种解决办法:(未使用中断和定时器机制,而是直接采用循环来延时), 功能是循环输出256个数,如果想要按要求存到 数据缓冲器,只需要声明一个数组,只存4个数即可 #in

51单片机实现数码管动态显示

-------------------------------------------- 设计要求: 在8位8端的数码管上动态显示76543210,快速显示时人眼看到的效果为同时亮起 -------------------------------------------- 实现目标: -------------------------------------------- 数码管编码计算: -------------------------------------------- 实现代码: 1

FPGA六位共阳极数码管动态显示

1 `timescale 1ns/1ps 2 module adc_dis( 3 clk , 4 rst_n , 5 sm_seg , 6 sm_bit 7 ); 8 9 input clk;//50HZ 10 input rst_n; 11 output[7:0] sm_seg;//段选 12 output[5:0] sm_bit;//位选 13 14 reg [7:0] sm_seg; 15 reg [5:0] sm_bit; 16 reg [31:0] count; 17 reg [31:

单片机第4课:共阴极数码管动态显示之定时器

上面是电路图,J16和J15相连,J6的321对应P2^0--P2^2,这样连有利于节省单片机的资源.其中P1^0和LE相连,段选(决定数码管显示什么东东),位选(哪一个数码管亮)由138译码器决定.我们先写程序吧: #include<reg51.h> #define uint unsigned int #define uchar unsigned char //加上code表示将这个存放在ROM当中,否则存放在RAM当中 //RAM存储空间很小,51的只有128Byte uchar code

数码管动态显示——锁存器

1.电路设计: LE接P3.0来实现段选或位选,OE接地,当LE为高电平的时候,锁存器为通路. 2.程序设计: #include<reg52.h> sbit P3_0 = P3^0; code unsigned char seven_seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff}; void delay(unsigned int x){ while(x--); } int main(){ while(1){

利用定时器0模式1中断消除4位数码管动态显示闪烁问题的项目工程

1 /******************************************************************************** 2 定时器定时1ms,数码管以秒钟计时,加上定时器0中断可消除数码管刷新时的闪烁问题, 3 闪烁问题是由while语句中分离数字时计算造成的,因为每次1s时间到,在数码管刷新前 4 都要进行计算,耽误了时间,导致闪烁,加了中断以后则是先刷新数码管再分离数字. 5 **********************************

数码管动态显示(51单片机)续上篇

#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charuchar temp,aa,numwe,numdu;sbit dula=P2^6;sbit wela=P2^7;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71

Verilog实现4位数码北京快乐8平台出租管动态显示(FPGA)

本文北京快乐8平台出租haozbbs.comQ1446595067 提供了在Basys2开发板上实现4位数码管动态显示的代码,并在ISE13.4_1上调试通过,下载到开发板后可实现将8个SW输入的两位十六进制数对应的8421BCD码,显示在数码管上. 首先,是以十六进制数显示.比如,在8个开关SW上输入2FH,四个数码管从左到右显示0215. 以下为代码: module x7seg_1( input wire [3:0] high_data, input wire [3:0] low_data,

AC620教程 第十五节 8位7段数码管驱动设计与验证

本章导读 电子系统中常用的显示设备有数码管.LCD液晶以及VGA显示器等.其中数码管又可分为段式显示(7段.米字型等)以及点阵显示(8*8.16*16等),LCD液晶的应用可以分为字符式液晶(1602.12864等)以及真彩液晶屏,VGA显示器一般是现在的电脑显示器.芯航线开发板对以上三种设备均提供了硬件接口. 本章将实现FPGA驱动数码管动态显示并提取出实现的电路结构,从电路结构入手编写代码,仿真对设计进行验证.最终板级调试时使用In system sources and probes edi