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

📄 main.c

📁 使用isis模拟的红外编解码实验
💻 C
字号:
/*红外遥控器解码仿真*/
/*作者:田开坤*/
/*时间:2009年2月*/

#include <reg52.h>
#include "irm_int.h"   

extern void led_disp(unsigned int number);

/*数码管地址定义*/
#define SEG_Q XBYTE[0xffec]//千位,LEFT
#define SEG_B XBYTE[0xffed]//百位
#define SEG_S XBYTE[0xffee]//十位
#define SEG_G XBYTE[0xffef]//个位,RIGHT

void main()
{	
	irm_int2_init();
	led_disp(2009);

	while(1)
		if(irm_code!=0xff) {
			led_disp(irm_code);
			irm_code=0xff;
		} 	
}

//通用数码管显示函数,传入数据0~9999
void led_disp(unsigned int number)
{
	unsigned char code tab1[20]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
	unsigned char temp,flag=0;

	if(number < 10000)
	{		
		//千位数码管
		temp = number/1000%10;
		if (temp) {
			SEG_Q = tab1[temp];
			flag = 1;	
		}
		else {
			SEG_Q = 0xff;//数码管熄灭
			flag = 0;	
		}

		//百位数码管
		temp = number/100%10;	
		if(flag | temp)	{
			SEG_B = tab1[temp];
			flag = 1;	
		}
		else {
			SEG_B = 0xff;//数码管熄灭
			flag = 0;	
		}					
		
		//十位数码管
		temp = number/10%10;
		if(flag | temp) SEG_S = tab1[temp];		
		else SEG_S = 0xff;//数码管熄灭		
		
		//个位数码管
		temp = number%10;	
		SEG_G = tab1[temp];
	}
	else {
		SEG_Q = 0xbf;//"-"
		SEG_B = 0xbf;
		SEG_S = 0xbf;
		SEG_G = 0xbf;	
	} 
}

⌨️ 快捷键说明

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