当前位置:首页 > 单片机 > 单片机
[导读]//数码管显示//★★★★★★★★★数码管显示★★★★★★★★★★★\\\\ //单征机型号:PIC16F877A //功能描述:采用动态扫描方式,初始时显示123,当按下RB0时,数值加一,当按下RB1时,数值减一 //端口定义:RA0

//数码管显示

//★★★★★★★★★数码管显示★★★★★★★★★★★\
//单征机型号:PIC16F877A
//功能描述:采用动态扫描方式,初始时显示123,当按下RB0时,数值加一,当按下RB1时,数值减一
//端口定义:RA0,RA1,RA2数码管位控制脚,RD口数码管段控制口,RB0加一按键,RB1减一按键。


#include
__CONFIG(0XF73A); //芯片配置字节

const unsigned char disp[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0~9译码
char ba,sh,ge,keyb0,keyb1;
void dir();
void key();


//========================================================================
//功能描述:延时子程序
//函数名称:delay);
void delay()
{
int i;
for(i=200;i>0;i--);
}

//========================================================================
//功能描述:主程序
//函数名称:void main()
void main()
{
keyb0=0;
ba=1;
sh=2;
ge=3;
TRISA=0x00;
TRISD=0x00;
PORTA=0xff;
while(1)
{
key();
dir();
}
}


//========================================================================
//功能描述:判断按键程序
//函数名称:void key()
void key()
{
//------------------------------------------------------------------------
//判断RB0键是否作用,进行加一操作
if(RB0==0)
{
delay();
if(RB0==0)
{
if(keyb0==0)
{
keyb0=1;
ge++;
if(ge==10)
{
ge=0;
sh++;
if(sh==10)
{
sh=0;
ba++;
if(ba==10)
{ba=0;}
}
}
}
}
}
else keyb0=0;

//------------------------------------------------------------------------
//判断RB1键是否作用,进行减一操作
if(RB1==0)
{
delay();
if(RB1==0)
{
if(keyb1==0)
{
keyb1=1;
ge--;
if(ge==255)
{
ge=9;
sh--;
if(sh==255)
{
sh=9;
ba--;
if(ba==255)
ba=9;
}
}
}
}
}
else keyb1=0;
}

//========================================================================
//功能描述:显示程序
//函数名称:void dir()
void dir()
{
PORTA=0xfb; //选中个位数码管
PORTD=disp[ge]; //往个位数码管送数
delay(); //延时一段时间,保证亮度
PORTA=0xfd;
PORTD=disp[sh];
delay();
PORTA=0xfe;
PORTD=disp[ba];
delay();
}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

基于51单片机学习板。用S1键作为控制跑马灯的方向按键,S5键作为控制跑马灯方向的加速度按键,S9键作为控制跑马灯方向的减速度按键,S13键作为控制跑马灯方向的启动或者暂停按键。记得把输出线P0.4一直输出低电平,模拟独...

关键字: 51单片机 数码管显示 跑马灯

TM1637四位数码管模块是一个带时钟点的4位共阳数码管(0.36英寸)的显示模块,驱动芯片为TM1637,驱动方式为IIC,因此只需2根信号线即可使单片机控制4位8段数码管(数码管8级亮度可调)。 模块特点如下: 显示...

关键字: 显示模块 数码管显示

在学习了单片机驱动7段数码管显示电路后,了解实际应用中多是利用的专门的数码管显示驱动芯片,例如MAX7219多功能串行LED显示驱动芯片。MAX7219是一款串行共阴极数码管动态显示驱动芯片,其峰值段电流可达40mA,最...

关键字: max7219 数码管显示

用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用LED发光二极管亮一秒钟做为提示,同时发出“叮咚”声;若密码不正...

关键字: 数码管显示 电子密码锁 4×4键盘

单片机控制数码管显示

关键字: 单片机控制 数码管显示

数字时钟(数码管显示/键盘可调)

关键字: 数字时钟 数码管显示 键盘可调

这是一款数码管显示51单片机DS18B20温度测量源程序及仿真资料,特别适合单片机初学者学习参考,这款数码管显示51单片机DS18B20温度测量源程序使用模块化编程,方便移置,单片机使用AT89C51单片机,数码使用四位...

关键字: 51单片机 ds18b20 数码管显示 温度测量

单片机最小系统_按键控制数码管显示,这个项目,主要学习单片机的键盘工作原理与显示方面的知识,电子小制作的好课题。键盘电路作为单片机的输入部分,数码显示电路作为单片机的输出部分,由键盘电路通过单片机控制数码管显示电路的八路...

关键字: 单片机 按键控制 数码管显示 最小系统

//软件思路:选择RAO做为模拟输入通道; // 连续转换4次再求平均值做为转换结果 // 最后结构只取低8位 // 结果送数码管的低3位显示 #include //包含内部资源预定义...

关键字: ad转换 pic16f877a picc
关闭