#define LED_GLOBAL 1
#include "led.h"
/****************************************
*函数名称:delay_us(uint us)
*函数功能:实现微秒级的延时
*函数入口:us,延时函数循环后期数
*函数出口:无
****************************************/
void delay_us(uint us)
{
uint i;
while(us--)
{
for(i=0;i<100;i++);
}
}
/****************************************
*函数名称:led_init(void)
*函数功能:六位七段数码管显示初始化
*函数入口:无
*函数出口:无
****************************************/
void led_init(void)
{
LED=segLedCode[0];
LED_CS1=0;
LED_CS2=0;
LED_CS3=0;
LED_CS4=0;
LED_CS5=0;
LED_CS6=0;
LED_CS7=0;
LED_CS8=0;
}
/**********************************************
*函数名称:ledWrite(uchar c,uchar n,uchar mod)
*函数功能:对一组数码管的某一位进行短暂显示
*函数入口:c,要显示的数据;n,显示一组数码管中的
第n位;mod,c的数据形式
*函数出口:无
*说明:当mod==DIGITAL时,c为数字0~9的ANCII码形式,
此时在n位数码管上显示想用数字
当mod==CHARACTER,直接将c输出数据口
***********************************************/
void ledWrite(uchar c,uchar n,uchar mod)
{
if(CHARACTER==mod)
{
LED=c;
}
else if(DIGITAL==mod)
{
if((c-'0')<0x0a)
{
LED=segLedCode[c-'0'];
}
else
{
LED=segLedCode[0];
}
}
switch(n)
{
case 0x01:
{
LED_CS1=0;
delay_us(10);
LED_CS1=1;
break;
}
case 0x02:
{
LED_CS2=0;
delay_us(10);
LED_CS2=1;
break;
}
case 0x03:
{
LED_CS3=0;
delay_us(10);
LED_CS3=1;
break;
}
case 0x04:
{
LED_CS4=0;
delay_us(10);
LED_CS4=1;
break;
}
case 0x05:
{
LED_CS5=0;
delay_us(10);
LED_CS5=1;
break;
}
case 0x06:
{
LED_CS6=0;
delay_us(10);
LED_CS6=1;
break;
}
case 0x07:
{
LED_CS7=0;
delay_us(10);
LED_CS7=1;
break;
}
case 0x08:
{
LED_CS8=0;
delay_us(10);
LED_CS8=1;
break;
}
default:
break;
}
}
/***************************************************************************
*函数名称:ledSweepDisplay(uchar *segCode,uchar segCodeMod,uchar segNumber)
*函数功能:循环在数码管上显示缓冲区中的数据
*函数入口:segCode,指向显示缓冲区中的指针;segCodeMod,0~7位为1或0标示1~8位数码管
显示的数据的类型(DIGITAL或者CHARACTER);segNumber,代表要显示数码管的
位数
*函数出口:无
*说明:本函数主要实现将显示缓冲区中的数据在数码管上显示出来
****************************************************************************/
void ledSweepDisplay(uchar *segCode,uchar segCodeMod,uchar segNumber)
{
uchar segCount;
for(segCount=0;segCount<segNumber;segCount++)
{
if(segCodeMod&0x01) /*1代表此处显示任意字符 */
{
ledWrite(segCode[segCount],segCount+1,CHARACTER);
}
else
{
ledWrite(segCode[segCount],segCount+1,DIGITAL);
}
segCodeMod=segCodeMod>>1;
}
}
荣华富贵8
- 粉丝: 217
- 资源: 7653
最新资源
- burp24-jdk-21.0.2
- 施工人员检测38-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- burp-proxy-tools
- 施工人员检测37-YOLOv7、COCO、CreateML、Darknet、Paligemma、VOC数据集合集.rar
- 嵌入式系统课程设计:基于51单片机的温度检测系统实现
- BurpLoaderKeygen
- 工具变量-A股上市公司企业盟浪esg评级数据(2018-2022年).xlsx
- 施工人员检测26-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- springboot靓车汽车销售网站(代码+数据库+LW)
- java区块链项目模块代码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈