51单片机静态数码管显示数字程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
Delay10ms();
i++;
}
i=0;
}
GPIO_DIG=DIG_CODE[j];
}
}
/******************************************************************************
* *函数名 * 函数功能 *输 入
: Delay10ms : 延时函数,延时 10ms :无
验
*效果,最好把红外线先取下来。
*******************************************************************************
/
#include<reg51.h>
#include<intrins.h>
#define GPIO_DIG P0
void Delay10ms(); //延时 10ms
/******************************************************************************
* *函数名 * 函数功能 *输 入
: main : 主函数 :无
*输 出
:无
*******************************************************************************
if(K3==0)
{
j--; if(j>9)
j=9; } while((i<50)&&(K3==0)) {
Delay10ms(); i++; } i=0; }
if(K4==0)
//检测按键 K4 是否按下
{
Delay10ms();
if(K4==0)
{
j++;
if(j>9)
j=0;
}
while((i<50)&&(K4==0))
/
void main(void)
{
unsigned int i,j;
LSA=0;
LSB=0;
LSC=0;
while(1)
{
if(K1==0)
//检测按键 K1 是否按下
{ Delay10ms(); //消除抖动
if(K1==0)
{
j=0;
}
while((i<50)&&(K1==0)) //检测按键是否松开
{
Delay10ms();
i++;
}
i=0;
} if(K2==0)
//检测按键 K2 是否按下
{
Delay10ms();
if(K2==0)
{
j=9;
}
while((i<50)&&(K2==0))
{
Delay10ms();
i++;
}
i=0;
} if(K3==0)
//检测按键 K3 是否按下
{
Delay10ms();
//以下程序都是在 VC++6.0 上调试运行过的程序,没有错误,没有警告。 //单片机是 STC89C52RC,但是在所有的 51 52 单片机上都是通用的。51 只是一个学习的基础 平台,你懂得。 //程序在关键的位置添加了注释。 //用//11111111111111111 代表第一个程序。//2222222222222222222222222 代表第二个程序, 以此类推
*输 出
:无
*******************************************************************************
/ void Delay10ms(void) //误差 0us
{
unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--); }
//2222222222222222222222222222222222222222222222222222222222222222
//2222222222222222222222222222222222222222222222222222222222222222
/
void main(void)
{
LSA=0;
LSB=0;
LSC=0;//我们可以理解为打开某一个数码管打开
while(1)
{
GPIO_DIG=DIG_CODE[6];
}
}
*
* 实验名
: 静态数码管实验
* 使用的 IO
: 数码管使用 P0,键盘使用 P3.0、P3.1、P3.2、P3.3
* 实验效果
: 按下 K1 键,显示 0,按下 K2 键,显示 9,按下 K3 键,显示减 1,按
下 K4 键,
*显示加 1。
* 注意
:由于 P3.2 口跟红外线共用,所以做按键实验时为了不让红外线影响实
//1111111111111111111111111111111百度文库11111111111111111111111111111111111
//1111111111111111111111111111111111111111111111111111111111111111111
/******************************************************************************
//0:0011_1111
/******************************************************************************
* *函数名
: main
* 函数功能 *输 入
: 主函数 :无
*输 出
:无
*******************************************************************************
sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4;
sbit K1=P3^1; sbit K2=P3^0; sbit K3=P3^2; sbit K4=P3^3;
unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示 0~9 的值
/******************************************************************************
* *实验名
: 静态数码管实验
* 使用的 IO * 实验效果
: 数码管使用 P0, : 数码管显示数字
*注 意
:
*******************************************************************************
/
#include<reg51.h>
#define GPIO_DIG P0
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
//RAM,ROM
unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示 0~9 的值 //0~9 段码