《逗比小憨憨51单片机Proteus仿真系列》第26期基于单片机的MAX7221数码管动态显示

发布者:PeacefulSoul最新更新时间:2025-10-29 来源: bilibili关键字:51单片机  Proteus仿真  MAX7221  数码管动态 手机看文章 扫描二维码
随时随地手机看文章

代码

#include <reg51.h>

#include <intrins.h>

sbit Max7221CS  = P3^1;

sbit Max7221DIN = P3^0;

sbit Max7221CLK = P3^2;

unsigned char code DisplayBuffer[8]={0,1,2,3,4,5,6,7};

void WriteMax7221(unsigned char Address,unsigned char Data)

{

unsigned char i;

Max7221CS = 0;

for (i=0;i<8;i++)

{

Max7221CLK = 0;

Max7221DIN = (Address&(0x80>>i)) ? 1:0;

_nop_();

_nop_();

Max7221CLK = 1;

_nop_();

_nop_();

}

for (i=0;i<8;i++)

{

Max7221CLK = 0;

Max7221DIN = (Data&(0x80>>i)) ? 1:0;

_nop_();

_nop_();

Max7221CLK = 1;

_nop_();

_nop_();

}

Max7221CS = 1;

}

void InitialMax7221(void)

{

WriteMax7221(0x0A,0x07);

WriteMax7221(0x0B,0x07);

WriteMax7221(0x0C,0x01);

WriteMax7221(0x09,0xFF);

}

void Max7221Display(unsigned char *buffer)

{

unsigned char i;

for(i=0;i<8;i++)

{

WriteMax7221(i+1,*(buffer+i));

}

}

void main(void)

{

InitialMax7221();

Max7221Display(&DisplayBuffer[0]);

while(1);

}



关键字:51单片机  Proteus仿真  MAX7221  数码管动态 引用地址:《逗比小憨憨51单片机Proteus仿真系列》第26期基于单片机的MAX7221数码管动态显示

上一篇:51单片机矩阵键盘.代码
下一篇:51单片机100例实例之18例

推荐阅读最新更新时间:2026-03-19 17:18

C51单片机四位数码管动态显示2020
电路原理图 元件清单 程序(C语言) #include reg51.h unsigned char smg ={0x5b,0x3f,0x5b,0x3f};//2020字形码(共阳极) void delay(unsigned int time); void main() { unsigned char i,W; while(1) { W=0x01; for(i=0;i 4;i++) { P1=W; W =1; P0=smg ; delay(10); } } } void delay(unsigned int time) {
[单片机]
C<font color='red'>51单片机</font>四位<font color='red'>数码管</font><font color='red'>动态</font>显示2020
51单片机——共阳数码管动态显示
数码管的原理图及基本原理 原理图 怎么工作的我就不介绍了 基本原理 动态显示实质上就是轮流点亮单个数码管实现多位数码管整体显示的效果。在轮流显示过程中,每位数码管点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。 例题(附代码) 代码如下 #include reg52.h sbit HC138_A = P2^5; sbit HC138_B = P2^6; sbit HC138_C = P2^7; //相当于时
[单片机]
<font color='red'>51单片机</font>——共阳<font color='red'>数码管</font>的<font color='red'>动态</font>显示
51单片机动态数码管显示(新字符串思路)
新思路 对于数码管的动态显示,已经有了很多的基础教学,教学中多用数组的形式储存数据来进行动态显示,便于理解。对于纯数据来说,数组是一个很好的选择,但是如果有的特殊符号或者字母,数组似乎就没这么方便,总是需要记忆特殊字符所对应的数组下标。如果一定要用数组显示,也可以通过宏定义或枚举来减轻记忆的负担,但是总觉得没这么流畅。倘若能把所有需要显示的内容写成一个字符串,再对字符串进行处理,那么应该能够使程序更加可读,并可以简化操作。 字符串的处理 若想对字符串进行处理,那么第一步就是将字符串中的内容转化成数码管的段码。这里展示共阳极数码管的转化函数代码: #ifndef U8 #define U8 typedef unsigned
[单片机]
【自学51单片机】6 ---数码管动态显示、中断系统介绍
1、数码管的动态显示 1.1 动态显示基本原理 静态显示:通过三八译码器控制一个数码管显示数值。 动态显示:又称动态扫描,通过轮流点亮数码管(一个时刻只有一个点亮),利用人眼视觉的余晖效应,让人看数码管看起来全部点亮。 如何实现动态显示? 把数码管的整体扫描时间(整体扫描时间 =单个数码管点亮时间*数码管个数)限定在10ms以内即可。当刷新频率大于100HZ,即刷新时间小于10ms,就可做到无闪烁。设计程序时选一个接近10ms,又比较规整的值就可。 1.2 数码管动态显示秒表(0~999999) 程序流程图 程序 #include reg52.h sbit ADDR0 = P1^0; sbit ADDR1 = P1
[单片机]
【自学<font color='red'>51单片机</font>】6 ---<font color='red'>数码管</font><font color='red'>动态</font>显示、中断系统介绍
51单片机开发之动态数码管
3.8 动态数码管 3.8.1 数码管原理图 图3-8-1 注意:使用排线连接时,排线有金属触点的一片必须朝右 开发板连线说明: J21跳线帽接左边、JP165跳线帽断开、JP10(P0)接J12、JP16(右排)接JP8。 (数码管控制线)JP10接线详细说明: P0.0-- A P0.1--- B ……. (数码管片选线)JP16接线详细说明:P1.0--- 1 P1.1 --- 2 ……….. 3.8.2 数码管动态显示介绍 LED显示器工作方式有两种:静态显示方式和动态显示方式。 静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新
[单片机]
<font color='red'>51单片机</font>开发之<font color='red'>动态</font><font color='red'>数码管</font>
51单片机教程(五):单片机动态扫描驱动数码管
简介:上一讲介绍了单片机外接键盘的原理,并给出了应用实例。本讲将介绍单片机动态驱动段式数码管。通过该讲,读者可以掌握段式数码管的工作原理和如何通过动态驱动的方法设计电路以及程序。 一、本文内容提要 上一讲介绍了单片机外接键盘的原理,并给出了应用实例。本讲将介绍单片机动态驱动段式数码管。通过该讲,读者可以掌握段式数码管的工作原理和如何通过动态驱动的方法设计电路以及程序。 二、原理简介 常用的段式数码管有七段式和八段式,八段比七段多了一个小数点,其他的基本相同。所谓的几段就是指数码管里有相应的几个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出不同的字形(见图1(a))。从各发光二极管的电极连接方式又可以分为共阳极和
[单片机]
<font color='red'>51单片机</font>教程(五):单片机<font color='red'>动态</font>扫描驱动<font color='red'>数码管</font>
51单片机-数码管动态显示
昨天说的是数码管的静态显示,和静态显示对应的就是动态显示。什么是动态显示? 先来考虑一个问题,用静态显示的方法驱动一位数码管用了多少资源? 一个锁存器控制段选,另一个锁存器的一个引脚控制位选。也就是9个引脚,如果用这种方式控制两位数码管要占用多少资源?18个引脚!8位数码管呢?不敢想了。所以要另一种方式来解决这个问题。于是就出现了动态显示的方法。 我不知道大家对于动态显示的原理是不是能透彻理解,先插播一个故事。我小的时候很爱玩,喜欢看动画片(海尔兄弟)。当得知动画片里的人物动作发生的原理时,很兴奋,自己画了两个小人,一个笔直站立,另一个摆出踢腿的动作,然后叠在一起,两张纸片快速来回翻动,竟然就出现了动画的效果。这么高科
[单片机]
学<font color='red'>51单片机</font>-<font color='red'>数码管</font>的<font color='red'>动态</font>显示
51单片机】静态与动态点亮数码管
静态: span style= font-family:Microsoft YaHei;font-size:18px; #include reg52.h sbit dula=P2^6; //数码管寄存器 sbit wela=P2^7; //位寄存器 void main() { wela=1; P0=0xf8; wela=0; //确定几位数码管亮,且使其状态保持 dula=1; P0=0x3f; //显示的数字 dula=0; while(1); //保持常亮 } /span 动态: span style= font-family:Microsoft YaHei;font-si
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved