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

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){
      P3_0 = 0;P0 = 0x01;P3_0 = 1;P3_0 = 0;P0 = seven_seg[0];delay(150);P0=0xff;
        P3_0 = 0;P0 = 0x02;P3_0 = 1;P3_0 = 0;P0 = seven_seg[1];delay(150);P0=0xff;
        P3_0 = 0;P0 = 0x04;P3_0 = 1;P3_0 = 0;P0 = seven_seg[2];delay(150);P0=0xff;
        P3_0 = 0;P0 = 0x08;P3_0 = 1;P3_0 = 0;P0 = seven_seg[3];delay(150);P0=0xff;
        P3_0 = 0;P0 = 0x10;P3_0 = 1;P3_0 = 0;P0 = seven_seg[4];delay(150);P0=0xff;
        P3_0 = 0;P0 = 0x20;P3_0 = 1;P3_0 = 0;P0 = seven_seg[5];delay(150);P0=0xff;
        P3_0 = 0;P0 = 0x40;P3_0 = 1;P3_0 = 0;P0 = seven_seg[6];delay(150);P0=0xff;
        P3_0 = 0;P0 = 0x80;P3_0 = 1;P3_0 = 0;P0 = seven_seg[7];delay(150);P0=0xff;
    }
}

3、运行结果:

以前需要两个端口来实现的显示功能,现在只需要一个P0口就可以实现数码管的显示,大大减少了端口的占用,电路的设计更加合理。

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

时间: 2024-10-14 03:53:42

数码管动态显示——锁存器的相关文章

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

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

单片机第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

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:

数码管动态显示——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 =

利用定时器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,

数码管的使用方法

数码管是嵌入式开发中比较常用的一个模块,本篇文章根据本人近期查阅的资料以及学习笔记整理成文,尽可能详尽的讲解常用数码管原理和使用方法.有不足和疏忽的地方,请不吝指正. 目录 1.工作 原理 2.电气特性 3.驱动方式 4.开发实例 5.亮度和锁存器 6.使用中注意事项 一.工作原理 数码管 是一种半导体发光器件,其基本单元是发光二极管.能显示4位数字的叫四位数码管,当然也有多位和只有一位的数码管,他们的电气原理相同.数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单