⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 numled.c

📁 详细介绍M8两版间通讯
💻 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

#pragma data:code
const unsigned char seg_table[16]={0xc0,0xf9,0xa4,0xb0,
																	 0x99,0x92,0x82,0xf8,
																	 0x80,0x90,0x88,0x83,
																	 0xc6,0xa1,0x86,0x8e};
/*LED Code:定义在Flash中					 0,1,2,3,
																	 4,5,6,7,
																	 8,9,A,B,
																	 C,D,E,F
*/

#pragma data:data
unsigned char led_buff[4]={0x7F,0xFF,0xFF,0xFF};//首位为"."点,其他位没有显示
void ADCtoBCD(unsigned int temp)//16进制数值转换为BCD码,12精度
 {
	unsigned char i;
	static const unsigned char *pStr=seg_table;
	temp=(unsigned int)(((unsigned long)((unsigned long)temp*Vref))/0xfff);
	for(i=0;i<4;i++)
	 {
		led_buff[i]=*(pStr+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)
 {
	PORTB=led_buff[num];
	PORTD=0xf0&(~(1<<(num+4)));
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -