- 博客(0)
- 资源 (2)
- 收藏
- 关注
用LED数码显示器循环显示数字0~9
下面是是是源代码和注释,解释的很详细,我就不赘述了,附件含有仿真文件和源码,如果感觉延时太短可以自己设置参数进行修改
//用LED数码显示器循环显示数字0~9
#include // 包含51单片机寄存器定义的头文件
/**************************************************
函数功能:延时函数,延时一段时间
***************************************************/
void delay(void)
{
unsigned char i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++)
;
}
/**************************************************
函数功能:主函数
***************************************************/
void main(void)
{
unsigned char i;
unsigned char code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//数码管显示0~9的段码表,程序运行中当数组值不发生变化时,
//前面加关键字code ,可以大大节约单片机的存储空间
P2=0xfe; //P2.0引脚输出低电平,数码显示器DS0接通电源工作
while(1) //无限循环
{
for(i=0;i<10;i++)
{
P0=Tab[i]; //让P0口输出数字的段码92H
delay(); //调用延时函数
}
}
}
2018-09-27
方式0控制流水灯循环点亮
1、一盏一盏:第一盏灯先亮--延时--熄灭--延时--下一盏灯;
2、利用数组方法点亮:定义一个数组(即0xfe,0xfd,0xfb,0xf7,0xef,oxdf,0xbf,0x7f:依次代表只有第一盏灯,第二盏灯....亮),再利总线,按顺序点亮八盏灯;
3、利用移位方法点亮:(1)、利用移位运算和按位或运算,依次点亮八盏灯;
(2)、包含intrins头文件(里面含有移位函数),使用相应的左移或右移函数进行移位,
下面是代码和注释,详细解释了点亮流水灯的思路,附件含有源代码和仿真文件,有需要的可以下载
//方式0控制流水灯循环点亮
#include //包含51单片机寄存器定义的头文件
#include //包含函数_nop_()定义的头文件
unsigned char code Tab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};//流水灯控制码,该数组被定义为全局变量
sbit P17=P1^7;
/**************************************************************
函数功能:延时约150ms
**************************************************************/
void delay(void)
{
unsigned char m,n;
for(m=0;m<200;m++)
for(n=0;n<250;n++)
;
}
/**************************************************************
函数功能:发送一个字节的数据
**************************************************************/
void Send(unsigned char dat)
{
P17=0; //P1.7引脚输出清0信号,对74LS164清0
_nop_(); //延时一个机器周期
_nop_(); //延时一个机器周期,保证清0完成
P17=1; //结束对74LS164的清0
SBUF=dat; //将数据写入发送缓冲器,启动发送
while(TI==0) //若没有发送完毕,等待
;
TI=0; //发送完毕,TI被置“1”,需将其清0
}
/*******************************************
函数功能:主函数
******************************************/
void main(void)
{
unsigned char i;
SCON=0x00; //SCON=0000 0000B,使串行口工作于方式0
while(1)
{
for(i=0;i<8;i++)
{
Send(Tab[i]); //发送数据
delay(); //延时
}
}
}
2018-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人