📄 led._c
字号:
#include "config.h"
const led_data[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x63,0x79,0x71,0x00};
void led_init(void)
{
led_ddr = 0xFF; //abcdefg dpi 各位设为输出
led_contrl_ddr |= (1<<led_a)|(1<<led_b)|(1<<led_c)|(1<<led_d); //ABCD四个控制设为输出
}
/***********************
** 显示一位
** 输入:count显示在第几位(3210),data 要显示的数(0~f)
************************/
void display_one(uint8 count, uint8 data)
{
led_port = led_data[data]; //显示的数
led_contrl_port &= ~(1<<count); //选中对应要显示的位,从右至左,0123
//如果对位进行了调整,就不在是0123,而是对应的值
}
/***********************
** 显示四位整数
** 输入:要显示的四位数data,显示模式mode,1为补零显示模式,默认不显示零
** 说明:可以小于四位数,mode=1时 自动补零
************************/
void display(uint16 data)
{
uint8 temp;
if(data>1000) //千位
{
temp=data/1000;
display_one(0,temp);
delay_ms(1); //是个经验值,刚好无闪烁,并且亮度较高
led_contrl_port |= (1<<0);
}
else
{
display_one(0,16);
delay_ms(1);
led_contrl_port |= (1<<0);
}
if(data>100) //百位
{
temp=(data%1000)/100;
display_one(1,temp);
delay_ms(1);
led_contrl_port |= (1<<1);
}
else
{
display_one(1,16);
delay_ms(1);
led_contrl_port |= (1<<1);
}
if(data>10) //十位
{
temp=(data%100)/10;
display_one(2,temp);
delay_ms(1);
led_contrl_port |= (1<<2);
}
else
{
display_one(2,16);
delay_ms(1);
led_contrl_port |= (1<<2);
}
//个位
temp=data%10;
display_one(3,temp);
delay_ms(1);
led_contrl_port |= (1<<3);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -