数码管基本属性:
1.采用2片595驱动数码管,需要单片机3路IO口,根据数码管动态扫描原理进行显示;
2.宽工作电压3.3V到5V;
3.PCB板尺寸:71mm*22mm
4.数码管型号:0.36 4位共阳
商家给的基本资料:最新八位串行595数码管资料.rar

8位数码管的连接原理图

#include <AT89X51.H>
#include <intrins.h> // 函数原形定义
#define uchar unsigned char
#define uint unsigned int void main (void); // 主函数
void LED_OUT (uchar X); // LED单字节串行移位函数
void LED_print (uchar p, uchar x) ; unsigned char code LED_0F[]; // LED字模表 sbit DIO = P1^0; //串行数据输入
sbit RCLK = P1^1; //时钟脉冲信号——上升沿有效
sbit SCLK = P1^2; //打入信号————上升沿有效 uchar Buffer[4] = {0}; //从串口接收的数据 void Init(void)
{
TMOD = 0x20; //8 位自动重装计数
PCON &= 0x7f;
SCON = 0x50;//串行口控制寄存器 SM1=1,SM0=0方式一波特率可变
TH1 = 0xFD; //设置波特率 9600
TL1 = 0xFD;
TR1 = 1; //启动定时器1
TI = 0;
RI = 0;
ES = 1; //开串口中断
EA = 1; //开总中断
} // 主程序
void main (void)
{
Init();//初始化 LED_print (0x80, 0x0F); //显示启动信息 while(1)
{
switch(Buffer[0])
{
case 0x30: LED_print (0x01, 0); break;
case 0x31: LED_print (0x01, 1); break;
case 0x32: LED_print (0x01, 2); break;
case 0x33: LED_print (0x01, 3); break;
case 0x34: LED_print (0x01, 4); break;
default : LED_print (0x80, 0x0E); break;
}
}
} void Com_Int(void) interrupt 4
{
EA = 0;
if (RI == 1) //当硬件接收到一个数据时,RI会置位
{
Buffer[0] = SBUF ; //这里减去48是因为从电脑中发送过来的数据是ASCII码。// Buffer[0] = SBUF-48 ;
RI = 0;
}
EA = 1;
} void LED_print (uchar p, uchar x)
{
unsigned char code *led_table; // 查表指针
uchar i;
unsigned long loop; led_table = LED_0F + x;
i = *led_table; LED_OUT(i);
LED_OUT(p); RCLK = 0;
RCLK = 1; for(loop = 0; loop < 230; loop++);
} void LED_OUT(uchar X)
{
uchar i;
for(i=8;i>=1;i--)
{
if (X&0x80) DIO=1; else DIO=0;
X<<=1;
SCLK = 0;
SCLK = 1;
}
} unsigned char code LED_0F[] =
{
//0 1 2 3 4 5 6 7 8 9 A b C d E F -
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E, 0xbf
};

#51单片机#8位数码管(74HC595芯片)的使用方法的更多相关文章

  1. AVR单片机8位数码管显示的程序实现

    AVR单片机8位数码管显示的程序实现 转载:http://www.sohu.com/a/117255149_119709   2016-10-26 16:30 我们接着来完成 数码管的显示实验.现在我 ...

  2. #51单片机#蓝牙模块(ATK-SPP-HC06从机串口)的使用方法

    #include <AT89X51.H> #include <intrins.h> // 函数原形定义 #define uchar unsigned char #define ...

  3. [51单片机] EEPROM 24c02 + 数码管 + 中断 [统计开机次数]

    >_<:24c02的SCL连P2.0;SDA连P2.1;WP接GND;P0接8位数码管的8针;P2.2连段码;P2.3连位码; >_<:delay.c #include &qu ...

  4. 单片机项目中使用新IC芯片的调试方法

    前两天,一位小伙伴咨询我一款新IC芯片怎么使用,借此机会我顺便把我日常工作中经常用到的一种调试方法介绍给小伙伴们,希望对对大家有所帮助.准备仓促,文中难免有技术性错误,欢迎大家给予指正,并给出好的建议 ...

  5. 51单片机学习笔记(清翔版)(13)——LED点阵、74HC595

    如图3,点阵屏分单色和彩色,点阵屏是由许多点组成的,在一个点上,只有一颗一种颜色的灯珠,这就是单色点阵屏,彩色的在一个点上有三颗灯珠,分别是RGB三原色. 图4你可能没看出来,那么大块黄色的就是点阵屏 ...

  6. 51单片机的TXD、 RXD 既接了 232 又接了 485芯片 ,会导致通信失败!

    51单片机的TXD. RXD 既接了 232 又接了 485 ,会导致通信失败! 下面是绘制电路板用的部分电路图: 通信现象: 1.我使用了USB-232的下载模块,把它接到P4上,发现单片机只能发送 ...

  7. [新概念51单片机C语言教程·郭天祥] 1、 基础知识必备

    目录: 单片机的大致介绍         1-1.通俗定义         1-2.51系列产品         1-3.标号意思         1-4.引脚介绍         1-5.用C语言开 ...

  8. 基于51单片机IIC通信的PCF8591学习笔记

    引言 PCF8591 是单电源,低功耗8 位CMOS 数据采集器件,具有4 个模拟输入.一个输出和一个串行I2C 总线接口.3 个地址引脚A0.A1 和A2 用于编程硬件地址,允许将最多8 个器件连接 ...

  9. [学习笔记]15个QA让你快速入门51单片机开发

    一.C语言相关 Q1:sbit与sfr代表是什么?有什么作用? Q2:#define OSC_FREQ  22118400L这句宏命令里的“L”是什么意思? Q3:我粘贴了别人的代码,怎么发现没有un ...

随机推荐

  1. NOIP 选择客栈

    描述 丽江河边有n家很有特色的客栈,客栈按照其位置顺序从1到n编号.每家客栈都按照某一种色调进行装饰(总共k种,用整数0~ k-1表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费. 两 ...

  2. Java学习笔记50:JSONObject与JSONArray的使用(转)

    Java不像PHP解析和生产JSON总是一个比较痛苦的过程.但是使用JSONObject和JSONArray会让整个过程相对舒服一些. 需要依赖的包:commons-lang.jar commons- ...

  3. JAVA基础补漏--继承

    子类的对象在创建时,首先调用父类的构造函数,再调用子类自己的构造函数. 子类的构造函数中,有一个默认的super(),为一个无参调用,这个不显示,但会被首先调用,所有才会有父类构造函数被调用的情况. ...

  4. spring security使用数据库验证的逻辑处理

    前面做了多个示例,包括使用jdbc和hibernate两种方式访问数据库获取用户信息和权限信息,其中一些关键步骤如下:   我们在SecurityConfig中配置覆盖configure方法时候,可以 ...

  5. SSD: Single Shot MultiBox Detector 编译方法总结

    SSD是一个基于单网络的目标检测框架,它是基于caffe实现的,所以下面的教程是基于已经编译好的caffe进行编译的. caffe的编译可以参考官网 caffe Installation Instal ...

  6. PasswordHasher 算法

    public override PasswordVerificationResult VerifyHashedPassword(string hashedPassword, string provid ...

  7. eclipse里启动rabbitmq报错 java.net.SocketException: Connection reset

    RabbitMQ学习之Java客户端连接测试(二) https://blog.csdn.net/roc1029/article/details/51249412 使用guest用户远程连接Rabbit ...

  8. 删除读取失败的服务 <读取描述失败错误代码2>

    1.以管理员身份运行命令提示符 2.sc delete 服务名

  9. LeetCode第[3]题(Java):Longest Substring Without Repeating Characters 标签:Linked List

    题目中文:没有重复字符的最长子串 题目难度:Medium 题目内容: Given a string, find the length of the longest substring without ...

  10. CMD下利用subst命令将一个文件夹镜像成本地的一个虚拟磁盘

    我们都知道net use可以建立网络驱动器映射,这里不说了. 我今天刚看到这命令的,叫镜像虚拟磁盘subst命令,这个命令可以简化好多操作,比如一个常用的文件放在一个路径很深的文件夹中,每次我们想要操 ...