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

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字样 

 

相关文章:

  • 游戏引擎学习第233天
  • 基于Redis的4种延时队列实现方式
  • AI数据分析与BI可视化结合:解锁企业决策新境界
  • HTML新标签与核心 API 实战
  • 杂记-LeetCode中部分题思路详解与笔记-HOT100篇-其四
  • LVGL学习(二)——控件
  • ArcPy工具箱制作(下)
  • 【Hot100】41. 缺失的第一个正数
  • 轻量还是全量?Kubernetes ConfigMap 与专业配置中心的抉择
  • 每日一题(8) 求解矩阵最小路径和问题
  • Debian服务器环境下env变量丢失怎么办
  • yocto编译使用共享缓存
  • gbdt总结
  • Mac 选择下载安装工具 x86 还是 arm64 ?
  • Git学习之路(Updating)
  • 多模态大语言模型arxiv论文略读(二十六)
  • mac上安装VMWare Fusion安装ubuntu系统问题
  • 微带线的损耗
  • pip 的包下载之后存放在哪?
  • CPU、GPU 并行加速
  • 孙颖莎4比1击败陈幸同,与蒯曼会师澳门世界杯女单决赛
  • 华夏幸福:累计未能如期偿还债务金额合计为227.91亿元
  • 经济日报:从三个变化看外贸破局之道
  • 黄仁勋时隔3个月再次到访北京
  • 山东海事局通报3起商渔船碰撞事故:将严打违反避碰规则等违法行为
  • 海外需求增长推动价格飙升,正丹股份去年净利润暴增119倍