单片机学习(三)8位数码管显示8个字符的程序及详解
8位数码管逐位显示8个字符的程序及详解
1.(现象)
8位数码管从最低位开始到最高位,逐位显示字符0.1.2.3.4.5.6.7,并且不断循环显示
2.(程序说明)
程序在运行时,单片机从WMtable表格中选择第一个位码(i=0时),并从P0.7-P0.0引脚输出位码送到锁存器,位码从锁存器输出后送到8位数码管的位引脚,选中第一位,让他处于待显状态,然后单片机从P2.3引脚输出位码锁存信号送到位锁存器,锁定其输出端位码不变
下面直接上代码:::
#include<reg51.h>
#define WDM P0
sbit Duansuo=P2^2;
sbit Weisuo=P2^3;
void Delay (unsigned int t);
unsigned char code DMtable[]={0x3f,0x06,0x5b,0x4f0x66,0x6d,0x7d,0x07};
unsigned char code WMtable[]={0xfe,0xfd,0xfb,0xf70xef,0xdf,0xbf,0x7f};main(){unsigned char i=0;while(1){WDM=WMtable [i];
DuanSuo=1;
WeiSuo=0;WDM=DMtable [i];
DuanSuo=1;
WeiSuo=0;
Delay(60000);
i++;
if(i==8)
{
i=0;}
}
}
void Delay (unsigned int t)
{while(--t);
}
8位数码管同时显示8个字符的程序及详解
(1)现象
8位数码管同时显示字符01234567
(2)程序说明
与上面方法基本类似,仅是将Delay函数的输入参数t的值由60000改成100,这样显示一个字符后隔很短的时间就会显示下一个字符。
上代码::::
#include<reg51.h>
#define WDM P0
sbit Duansuo=P2^2;
sbit Weisuo=P2^3;
void Delay (unsigned int t);
unsigned char code DMtable[]={0x3f,0x06,0x5b,0x4f0x66,0x6d,0x7d,0x07};
unsigned char code WMtable[]={0xfe,0xfd,0xfb,0xf70xef,0xdf,0xbf,0x7f};main(){unsigned char i=0;while(1){WDM=WMtable [i];
DuanSuo=1;
WeiSuo=0;WDM=DMtable [i];
DuanSuo=1;
WeiSuo=0;
Delay(100);
i++;
if(i==8)
{
i=0;}
}
}
void Delay (unsigned int t)
{while(--t);
}
8为数码管动态显示8个字符以上1字符的程序及详解
1.(现象)
8位数码管依次显示01234567、12345678、23456789、.....89Abcdef 并且不断循环
(2)程序说明
程序先定义两个表格,一个表格按顺序存放0-F的段码,另一个表格按地位到高位的顺序存放8位数码管的各位位码
上代码!!!!
#include<reg51.h>
#define WDM P0
sbit Duansuo=P2^2;
sbit Weisuo=P2^3;
void Delay (unsigned int t);
unsigned char code DMtable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x7d,0x7c.0x39,0x5e,0x79,0x71};
unsigned char code WMtable[]={0xfe,0xfd,0xfb,0xf70xef,0xdf,0xbf,0x7f};main(){unsigned char i=0,num;unsigned int j;while(1){WDM=WMtable [i];
DuanSuo=1;
WeiSuo=0;WDM=DMtable [i];
DuanSuo=1;
WeiSuo=0;
Delay(100);
i++;
if(i==8)
{
i=0;}
if(j==600){
j=0;
num++;
if(num==9){num=0;}
}
}
}
void Delay (unsigned int t)
{while(--t);
}
单片机学习(三)8位数码管显示8个字符的程序及详解相关推荐
- 两位数码管30秒倒计时c语言,基于51单片机共阴两位数码管显示倒计时
<基于51单片机共阴两位数码管显示倒计时>由会员分享,可在线阅读,更多相关<基于51单片机共阴两位数码管显示倒计时(2页珍藏版)>请在人人文库网上搜索. 1.基于51单片机共阴 ...
- 单片机学习笔记 —— 8位数码管动态扫描
我们知道,依次只能让一个数码管/led灯亮起来,但是我们可以通过高频动态扫描得到8位数码管同时亮起来,这里介绍如何实现. 一.八位数码管 1.八位数码管原理图 下图为原理图: 段选信号:P0[7-0] ...
- 【蓝桥杯——单片机学习笔记】五.数码管显示(STC15F2K60S2)
一.原理图 二.原理图分析 如上图,U7锁存器控制数码管的段选(即每个数字的7个短横和1个点),U6锁存器控制数码管的位选(即8个数字).具体锁存器的输出端对应数码管的哪个输入端可看上图.控制锁存器的 ...
- python数码管倒计时程序_树莓派Python编程用1位数码管显示数字倒计时
用1位数码管显示数字倒计时 概述 上一篇 我们学习了使用 PWM 来控制 LED 的亮度,这次我们学习使用1位数码管显示个位数字倒计时. 通过本节课,我们能学习到: 1位数码管的显示原理 所需硬件 树 ...
- 第三篇:动态 8位数码管显示---亚龙236电路
第三篇:动态8位数码管显示 -亚龙236电路 上一篇中已经实现了数码管的静态显示,如果按照上一篇的思路89s52芯片最多可以驱动4位数码管.这一节我们来看看其它显示更多位数的方案. 目前最常用的是 5 ...
- 两个74HC595D驱动芯片控制三位数码管显示
两个74HC595D驱动芯片控制三位数码管显示 概述 一.数码管引脚及使用概述 1.1位数码管显示方式 2.3位数码管 3.3位数码管电路图 二.74HC595D引脚及使用概述 1. 74HC595引 ...
- 8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8。
8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8. 程序: #include<reg51.h> #include<absacc.h> #def ...
- 基于51单片机的8位数码管显示的可调时电子时钟
基于51单片机的8位数码管显示的可调时电子时钟 本人大二本科生,第一次发东西,功能比较简单,代码有点复杂,希望能有大神指正. 基于51单片机的不可调时间的时钟显示,晶振为11.0592MHZ,60H ...
- 使用定时器的中断方式。具体功能描述如下:使用定时器控制三位数码管显示时间,也可以轻易改为两位数码管显示时间
#include <REGX52.H> unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0 ...
- 单片机8位数码管时钟c语言汇编,基于8051单片机和DS12C8878位数码管显示的时钟.docx...
基于8051单片机和DS12C8878位数码管显示的时钟 #include #include #define sec XBYTE[0xed00]//秒寄存器地址 #define min XBYTE[0 ...
最新文章
- WebService – 3.后台调用WebService,根级别上的数据无效
- 学习 FPGA之前的基础知识
- JQuery学习笔记 [Ajax] (6-2)
- Shape Drawable Xml的background
- java 从数据库取值_JAVA操作数据库--从一张表中取值,经过判断,然后插入另一张表中。...
- TNN MatConvertParam参数scale和bias设置
- centos dhcp 服务器搭建 多vlan
- Java应用线上CPU飙高
- 漏洞挖掘利器-Fuzz技术介绍
- TypeScript和vuejs 搭建webpack,初次体验
- Centos 5.6 安装subversion总结
- Python模块安装:Python3安装pdfminer3k
- 第一届腾讯社招广告大赛总结
- 系统找不到指定路径,网络编程
- 如何修复win7蓝牙服务器,win7系统查看蓝牙的修复办法
- 学习Wolff关于分离镜面反射与漫反射的文章
- 一篇文章了解什么是增长黑客
- 【NOI OJ】4977 怪盗基德的滑翔翼
- Maven学习笔记__上篇
- 零基28岁自学python入坑ing