51单片机数码管显示程序
“51单片机数码管显示程序”相关的资料有哪些?“51单片机数码管显示程序”相关的范文有哪些?怎么写?下面是小编为您精心整理的“51单片机数码管显示程序”相关范文大全或资料大全,欢迎大家分享。
51单片机数码管电子时钟程序
这是一个以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语言程序
单片机按键扫描数码管显示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. 档键和一个功能键时才执行这对复合键;或松开所有上档
单片机按键扫描数码管显示C语言程序
单片机按键扫描数码管显示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数码管显示程序
///////共阳数码管////////////////
#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
红外遥控键值解码数码管显示单片机程序
红外遥控键值解码数码管显示单片机程序
; 9012遥控键值读取器 *
;* 数码管显示, P0口为数码管的数据口 *
;* *
;* K17键按下,继电器吸合。K19键按下,继电器关闭。 *
;* *
;-----------------------------------------------
IRCOM EQU 20H ;20H-23H IR使用
IRIN EQU P3.2
BEEP EQU P2.4
RELAY EQU P2.6
;-------------------
数码管动态显示的51单片机时钟设计
一看就会,适合初学者参考
T0,T1同时开中断,和别人的有点不一样
源程序如下
//数码管设计的可调电子钟 //K1,K2分别调整小时和分钟 #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
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
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
单片机实验四 I O显示控制实验(数码管显示实验)
电子信息工程学系实验报告
课程名称:单片微型计算机与接口技术
成 绩: 实验项目名称: 实验四 I/O显示控制实验 实验时间: 2013.11.24 指导教师(签名): 班级: **** 姓名:**** 学号:********
一 、实 验 目 的:
1、熟悉keil仿真软件、proteus仿真软件、软件仿真板的使用。
2、了解并熟悉一位数码管与多位LED数码管的电路结构、与单片机的连接方法及其应用原理。
3、学习proteus构建LED数码管显示电路的方法,掌握C51中单片机控制LED数码管动态显示的原理与编程方法。 二、 实 验 环 境:
1、Windows XP系统;
2、Keil uVision2、proteus系列仿真调试软件 三 、实 验 原 理:
单片机实验报告 - LED数码管显示实验 - 图文
《微机实验》报告
LED数码管显示实验
指导教师: 专业班级: 姓名 : 学号 :
联系方式 :
一、 任务要求
实验目的:理解LED七段数码管的显示控制原理,掌握数码管与MCU的接口技术,能够
编写数码管显示驱动程序;熟悉接口程序调试方法。
实验内容:利用C8051F310单片机控制数码管显示器 基本要求:
利用末位数码管循环显示数字0-9,显示切换频率为1Hz。
提高要求:
在4位数码管显示器上依次显示当天时期和时间,显示格式如下: yyyy (年份) mm.dd(月份.日) hh.mm(小时.分钟)
思考题:
数码管采用动态驱动方式时刷新频率应如何选择?为什么?
二、
设计思路
C8051F310单片机片上晶振为24.5MHz,采用8分频后为3.0625MHz ,输入时钟信号采用48个机器周期。
0到9对应的断码为:FCH、60H、DAH、F2H、66H、B6H、BEH、E0H、FEH、F6H 基础部分:
由于只需要用末位数码管显示,不需要改变位码,所以只需要采用LED