当前位置: 首页 > java >正文

51单片机实验三:数码管动态显示

目录

 

一、实验环境与实验器材

二、实验内容及实验步骤

1. 数码管动态扫描0-5

2. 利用余辉效应使单片机数码管“同时显示”0-5。

3. B站小仿真(动态原理显示hello)


 

一、实验环境与实验器材

环境:KeliSTC-ISP烧写软件,Proteus.        

器材:TX-1C单片机(STC89C52RC)、电脑。

图1.1 工具

二、实验内容及实验步骤

1. 数码管动态扫描0-5

#include <reg52.h>
sbit dula=P2^6;		//段选信号的锁存器控制
sbit wela=P2^7;		//位选信号的锁存器控制unsigned char code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};//数码管各位的码表
unsigned char code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d};//0-5的码表
void delay(unsigned int i)
{unsigned int m,n;for(m=i;m>0;m--)for(n=90;n>0;n--);
}void main()
{unsigned char num;while(1){for(num=0;num<6;num++){P0=wei[num];	   wela=1;wela=0;P0=duan[num];	  dula=1;dula=0;delay(1000);	}}
}

 

STC烧写至单片机

图 2.1.1 烧写

 图2.1.2 硬件效果

Proteus 仿真(将延时加长)

仿真反应反应更快

视频:(降速处理)

数码管动态扫描0-5

2. 利用余辉效应使单片机数码管“同时显示”0-5。

其实就是时间间隔短,这是关键(所谓的同时显示,只是间隔较短而已,利用人眼的余辉效应,觉得每个数码管都一直在亮

#include <reg52.h>sbit dula=P2^6;		//段选信号的锁存器控制
sbit wela=P2^7;		//位选信号的锁存器控制unsigned char code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};//数码管各位的码表
unsigned char code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d};//0-5的码表
void delay(unsigned int i)
{unsigned int m,n;for(m=i;m>0;m--)for(n=90;n>0;n--);
}void main()
{unsigned char num;while(1){for(num=0;num<6;num++){P0=wei[num];	   wela=1;wela=0;P0=duan[num];	  dula=1;dula=0;delay(2);	 //时间间隔短,这是关键(所谓的同时显示,只是间隔较短而已,利用人眼的余辉效应,觉得每个数码管都一直在亮)。}}
}

 

图2 .2.1 烧写

图2.2.2 硬件效果

proteus仿真效果:

图2.2.3 画法1

图2.2.3 画法2

3. B站小仿真(动态原理显示hello)

Proteus仿真图

图2.3.1 Proteus仿真图 

代码:

也是利用短延时,使得hello字样看起来同时显示

#include "reg52.h"
unsigned char s[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共阴0-9
unsigned char str[]={0x76,0x79,0x38,0x38,0x3F}; //HELLO
unsigned char wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};void delay(unsigned int n)
{unsigned int i=0,j=0;for(i=0;i<n;i++){for(j=0;j<120;j++);}
}void seg()
{int i=0;for(i=0;i<5;i++){P3=~wei[i];P2=str[i];    //0011 1111delay(5);}
}void main()
{while(1){seg();}}

简单电路: 

图3.3.1 proteus 电路图显示hello字样 

 

http://www.xdnf.cn/news/205.html

相关文章:

  • Oracle 19c新特性:OCP认证考试与职业跃迁的关键?
  • 如何选择适合您的过程控制器?
  • VSCODE插值表达式失效问题
  • 4.18学习总结
  • CNN与VGG16的关系:从基础到经典模型的通俗解析
  • 【前沿】成像“跨界”测量——扫焦光场成像
  • 【AI部署】腾讯云GPU -—SadTalker的AI数字人访问web服务—未来之窗超算中心
  • 2025mathorcup妈妈杯数学建模挑战赛C题:汽车风阻预测,详细思路,模型,代码更新中
  • 专精特新政策推动,B端UI设计如何赋能中小企业创新发展?
  • 使用VHDL语言实现TXT文件的读写操作
  • 【LeetCode】大厂面试算法真题回忆(61)--组装新的数组
  • 7.Rust+Axum:打造高效 RESTful API 的最佳实践
  • FastGPT安装前,系统环境准备工作?
  • AI Agent系列(十) -Data Agent(数据分析智能体)开源资源汇总
  • Qt QTimer 详解与使用指南
  • PHP最新好看UI个人引导页网页源码
  • Flash存储器(二):SPI NAND Flash与SPI NOR Flash
  • 基于linux 设置无线网卡Monitor模式 sniffer抓包
  • 经济指标学习(二)
  • 神经网络优化 - 小批量梯度下降之批量大小的选择
  • ChatGPT-o3辅助学术写作的关键词和引言效果如何?
  • 鸿蒙NEXT开发键值型数据工具类(ArkTs)
  • PyTorch快速入门
  • 《软件设计师》复习笔记(12.1)——范围管理、进度管理
  • 全栈架构设计图
  • 浅谈验证(Verification)和确认(Validation)
  • 基于C++(MFC)图形编辑界面工具
  • 数据驱动、精准协同:高端装备制造业三位一体生产管控体系构建
  • QT中栅格模式探索
  • mybatisFlex各种链式sql写法