51单片机动态数码管显示数字

“51单片机动态数码管显示数字”相关的资料有哪些?“51单片机动态数码管显示数字”相关的范文有哪些?怎么写?下面是小编为您精心整理的“51单片机动态数码管显示数字”相关范文大全或资料大全,欢迎大家分享。

数码管动态显示的51单片机时钟设计

标签:文库时间:2024-09-29
【bwwdw.com - 博文网】

一看就会,适合初学者参考

T0,T1同时开中断,和别人的有点不一样

源程序如下

//数码管设计的可调电子钟 //K1,K2分别调整小时和分钟 #include #include

#define uchar unsigned char #define uint unsigned int

uchar code DSY_CODE[]={0xC0,0xF9,0xA4,0xB0,0x99, //共阳段码 0x92,0x82,0xF8,0x80,0x90,0xFF}; uchar DSY_BUFFER[]={0,0,0xBF,0,0,0xBF,0,0}; //显示缓存 ucharScan_BIT; //扫描位,选择要显示的数码管 uchar DSY_IDX; //显示缓存索引 ucharKey_State; //P1端口按键状态 uchar h,m,s,s100; //十分秒 ,1/100s void DelayMS(uchar x) //延时 {

uchar i;

while(x--) for(i=0;i<120;i++);

}

void Increase_Hour() //小时处理函数 {

if(++h>23)h=0;

DSY_BUF

51单片机不加锁存器数码管动态显示0-999

标签:文库时间:2024-09-29
【bwwdw.com - 博文网】

51单片机不加锁存器数码管动态显示0-999

使用STC89C52RC单片机,数码管为共阳数码管PNP驱动,P3.4-P3.6控制位选,P0口控制段选信号,图中P8接到有上拉电阻的P0口,P9接到P3.4-P3.6,附上图和程序!

#include

sbit wei1=P3^6; /*百位*/ sbit wei2=P3^4; /*个位*/ sbit wei3=P3^5; /*十位*/

unsigned char code LedChar[] = { //数码管显示字符转换表 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E };

void delay(int z);

unsigned char i=0; //动态扫描的索引 unsigned int cnt=0; //记录 T0 中断次数 void main() {

unsigned long sec=0; //记录经过的秒数 EA=1; //使能总中断

TMOD=0x01; //设置 T0 为模式 1

TH0=0xB8; //为 T0 赋初值 0

51单片机不加锁存器数码管动态显示0-999

标签:文库时间:2024-09-29
【bwwdw.com - 博文网】

51单片机不加锁存器数码管动态显示0-999

使用STC89C52RC单片机,数码管为共阳数码管PNP驱动,P3.4-P3.6控制位选,P0口控制段选信号,图中P8接到有上拉电阻的P0口,P9接到P3.4-P3.6,附上图和程序!

#include

sbit wei1=P3^6; /*百位*/ sbit wei2=P3^4; /*个位*/ sbit wei3=P3^5; /*十位*/

unsigned char code LedChar[] = { //数码管显示字符转换表 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E };

void delay(int z);

unsigned char i=0; //动态扫描的索引 unsigned int cnt=0; //记录 T0 中断次数 void main() {

unsigned long sec=0; //记录经过的秒数 EA=1; //使能总中断

TMOD=0x01; //设置 T0 为模式 1

TH0=0xB8; //为 T0 赋初值 0

51单片机数码管电子时钟程序

标签:文库时间:2024-09-29
【bwwdw.com - 博文网】

这是一个以8位数码管做的电子时钟程序,包括整点报时

#include<reg52.h>

#define uint unsigned int #define uchar unsigned char

uchar miao,fen,shi,m,f,s,num,num2,num1,num4;

uchar code table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; sbit beep=P3^7; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }

void xiansi( uchar aa,uchar bb,uchar cc) { P2=0xdb; P0=0xbf; delay(1); P0=0xff; // num2++;

if(num1==1&num2==0|num1==1&num2==1) { P2=0xff; P0=table1[aa%10]; delay(1); P0=0xff; P2=0xff;

单片机按键扫描数码管显示C语言程序

标签:文库时间:2024-09-29
【bwwdw.com - 博文网】

单片机按键扫描数码管显示C语言程序

按键扫描数码管显示程序共定义了6个键的功能:K1、K2、K3、K4以及K5、K8组成的一对复合键,其中K2,K3为连击键,K5为上档键。在正常工作模式下按K1则切换至状态,在设定模式下按K1键循环选择4个数码管中的某个,被选中的数码管闪烁,此时单按K2键显示数值加1;常按K2显示数值以一定速度递增,同时数码管停止闪烁,当K2松开,数码管恢复闪烁,显示数值停留在K2松开前的值上。K3完成的功能和K2类似。其完成减操作。这2个键只有在设定状态才有效,可以有效防止误操作。K4为确认键,按下该键回到正常显示状态,所有指示灯熄灭,数码管显示刚刚设定的数值。K5+K8这对复合键执行复位操作,任何情况下同时按下K5和K8或先按下K5再按下K8,所有数码管的显示全为0,指示灯全灭,进入正常显示状态。同时程序还对如下几个异常操作进行了处理: 1. 2个或多个功能键同时按下

2. 一个功能键按下未释放,又按另一个功能键,然后再松开其中一个功能键 3. 先按下功能键再按下上档键

4. 多个上档键和一个功能键同时按下,此时不做处理。等到松开其他上档键,只剩下一个上

5. 档键和一个功能键时才执行这对复合键;或松开所有上档

基于51单片机的DS18B20数码管显示程序

标签:文库时间:2024-09-29
【bwwdw.com - 博文网】

///////共阳数码管////////////////

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include \#include \

#define DuanPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换 #define WeiPort P2 //定义数据端口 程序中遇到DataPort 则用P2 替换

sbit duan=P3^0;//定义锁存使能端口 段锁存 sbit wei=P3^1;// 位锁存 sbit LED=P3^7;

bit ReadTempFlag;//定义读时间标志 unsigned int num=0,num1=0;

//////************数码管共阳****************///////////

unsigned char code DuanMa[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};// 显示段码值0~9

unsigned char code WeiMa[]={0x01,0x02,0x04,0x08,0x10,0

数码管动态显示EDA实验三

标签:文库时间:2024-09-29
【bwwdw.com - 博文网】

数码管动态显示

实验三 数码管动态显示

姓名:赵佳伟 学号:1002100449 一、实验目的

l、实现实现0~9十个数的动态显示。 2、掌握数码管的工作状态。

二、实验的硬件要求

1、输入:CLK时钟信号 2、输出:LED灯

3、主芯片:ALTERA下载板

三、实验内容

用VHDL语言输入法设计一个数码管动态显示电路,要求能够使之在0~9循环显示。

四、实验步骤

(1)进入windows操作系统,打开MAX+PLUSⅡ10.0。

1、启动File/Project Name菜单,输入设计项目的名字。点Assign/Device菜单,选择器件(本设计全选用EPM7128) 。见图2.2.1。

2、启动菜单File/New,选择Text Editor file,打开编程编辑器,进行原理图设计输入。

图2.2.1

数码管动态显示

(2)输入代码(下图2.2.2)

数码管动态显示

3、保存

单击保存按钮,扩展名为.vhd,本实验中取名为:p4_5.vhd。

(3)编译

启动MAX+PLUS II\COMPILER菜单,按START开始编译,生成.SOF和.POF等文件,以便硬件下载和编程时调用,同时生成.RPT文件,如图2.2.3。

图2.2.3 (4)仿真

1、创建波形文件:

单片机按键扫描数码管显示C语言程序

标签:文库时间:2024-09-29
【bwwdw.com - 博文网】

单片机按键扫描数码管显示C语言程序

按键扫描数码管显示程序共定义了6个键的功能:K1、K2、K3、K4以及K5、K8组成的一对复合键,其中K2,K3为连击键,K5为上档键。在正常工作模式下按K1则切换至状态,在设定模式下按K1键循环选择4个数码管中的某个,被选中的数码管闪烁,此时单按K2键显示数值加1;常按K2显示数值以一定速度递增,同时数码管停止闪烁,当K2松开,数码管恢复闪烁,显示数值停留在K2松开前的值上。K3完成的功能和K2类似。其完成减操作。这2个键只有在设定状态才有效,可以有效防止误操作。K4为确认键,按下该键回到正常显示状态,所有指示灯熄灭,数码管显示刚刚设定的数值。K5+K8这对复合键执行复位操作,任何情况下同时按下K5和K8或先按下K5再按下K8,所有数码管的显示全为0,指示灯全灭,进入正常显示状态。同时程序还对如下几个异常操作进行了处理: 1. 2个或多个功能键同时按下

2. 一个功能键按下未释放,又按另一个功能键,然后再松开其中一个功能键 3. 先按下功能键再按下上档键

4. 多个上档键和一个功能键同时按下,此时不做处理。等到松开其他上档键,只剩下一个上

5. 档键和一个功能键时才执行这对复合键;或松开所有上档

8个数码管动态显示

标签:文库时间:2024-09-29
【bwwdw.com - 博文网】

南昌大学实验报告

学生姓名:王崇伙学号: 6103413026专业班级:生医131 实验类型:□ 验证 □ 综合 ? 设计□ 创新 实验日期:2015/10/9实验成绩:

实验二、8个数码管动态显示1~8

一、实验目的

1、掌握汇编查表法实现动态数码管显示。 2、熟练使用proteus仿真工具。

二、实验工具

1、PC机 2、keil程序编辑工具 3、proteus仿真工具

三、实验原理

八路七段数码管动态显示原理其实和一个数码管显示0~F原理相同,不同在于显示数字的数码管有一个一次变成八个显示0~8,P0控制段选,P1控制位选,由本次实验使用八路共阴极数码管(如下图),当P0=0x7F (8)时,位码P1=0xfe既选通第八个数码管其余位选高电平不导通,结果就为第八个数码管显示8,依次P0段选‘1’时P1位选第一个数码管结果就为第一个数码管显示‘1’,延时0.2s再依次循环输入1~8位选依次选一~八达到八位数码管循环显示1~8。

四、实验程序框图

开始 初始化端口 设置断码表、位码表 设定i=0,i++ N 显示i指向的内容 Y i<8? 五、实验程序

#include #include #include

#define

动态数码管不用译码器显示

标签:文库时间:2024-09-29
【bwwdw.com - 博文网】

动态数码管不用译码器显示

#include

#define GPIO_DIG P0 //段选 #define GPIO_PLACE P1 //位选

//--定义全局变量--//

unsigned char code DIG_PLACE[8] = {

0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位选控制 查表的方法控制 unsigned char code DIG_CODE[17] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码 unsigned char DisplayData[8];

void DigDisplay(); //动态显示函数 void main(void) { unsigned char i; for(i=0; i<8; i++) { DisplayData[i] = DIG_CODE[i]; } while(1) { DigDisplay(); } }

void DigDisplay() { unsigned char i; unsigned int j; for(i=0; i<8; i++) { GPIO_PLACE = DIG_PLACE[i]; //发送位选 GPIO_DIG = DisplayData[i]; //发送段码 j = 10; //扫描间隔时间设定 while(j--); GPIO_DIG = 0x00;//消隐 } }