📄 numled._c
字号:
/* 目标MCU:MEGA8 晶振:内部RC(INT) 8MHZ,该模块中使用了seg_table[16]数组
来表示LED的16个字符0~F,led_buff[4]表示4个LED的字符代码*/
#include<iom8v.h>
#include <macros.h>
#define Vref 4995
const unsigned char seg_table[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
/*LED Code:0,1,2,3,4,5
6,7,8,9,A,B,C,D,E,F*/
unsigned char led_buff[4]={0b01111111,0b01111111,0b01111111,0b01111111};//首位为点,其他没有显示
void ADCtoBCD(unsigned int temp)//16进制数值转换为BCD码,12精度
{unsigned char i;
temp=(unsigned int)(((unsigned long)((unsigned long)temp*Vref))/0xfff);
for(i=0;i<4;i++)
{led_buff[i]=seg_table[temp%10];
temp=temp/10;}
led_buff[3]&=0x7f;}
void led_init(void)
{DDRB|=0xff;//方向:输出
PORTB|=0xff;//LED数据-
DDRD|=0xf0;//D口高位输出,单只选通4个LED功能
PORTD|=0xf0;}//高位输出高电平,LED全部熄灭.低位输入,全部为高阻态,如果为1,则带上拉电阻
void spark(unsigned char num)
{DDRB|=0xff;//方向:输出
PORTB=led_buff[num];
PORTD=(1<<(num+4));}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -