51单片机之数码管

该文详细介绍了数码管显示技术,包括静态数码管显示数字和时间,以及动态数码管如何实现数字和正方形的移动显示。实验中使用了STC89C52单片机、74HC138译码器和74HC245驱动器,通过编程实现了数码管的位选和段选操作,展示了数码管在数字和图形显示上的应用。
摘要由CSDN通过智能技术生成

目录

数码管简介

静态数码管显示

数码管显示数字

 数码管显示时间

 动态态数码管显示

数码管移动显示数字--666

数码管移动显示图形--正方形

结束语



数码管简介

 

 实验所用到的模块主要模块包括:数码管、单片机STC89C52、38译码器—74HC138译码器(用于位选):适用于数字电路中的 3—8 译码功能、74HC245(用于段选):适用于显示屏以及其他数字电路的驱动;

位选引脚:P2^2 P2^3 P2^4
段选引脚:P0^0 P0^1 P0^2 P0^3 P0^4 P0^5 P0^6 P0^7

静态数码管显示

数码管显示数字

实验现象 

 实验代码

#include "reg52.h"

typedef unsigned int u16;	//对系统默认数据类型进行重定义
typedef unsigned char u8;   //对系统默认数据类型进行重定义

#define DUAN_PORT	P0	//使用宏定义数码管段段口
#define WEI_PORT	P2	//使用宏定义数码管位选口

//位选数码管
u8 wei_code[9]={0xff,0xfa,0xf7,0xf3,0xef,0xea,0xe7,0xe3};

//段选共阴极数码管显示0~9数字
u8 duan_code[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
				0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

//延迟函数
void delay_10us(u16 ten_us)
{
	while(ten_us--);	
}

//数码管显示数字
void DsgShowNum()
{
	while(1)
	{
		
		WEI_PORT=wei_code[0];
		DUAN_PORT=duan_code[0];
		delay_10us(100);
		WEI_PORT=wei_code[1];
		DUAN_PORT=duan_code[1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值