设为首页 加入收藏

TOP

模拟红外协议C程序――发送模块
2014-11-23 19:01:48 来源: 作者: 【 】 浏览:1
Tags:模拟 红外 协议 程序 发送 模块

目的:方便程序的调试,提供效率,减少工作累,可以不在线调试编程时显示实时数据,特别产品不带显示的或者MCU是OPT的,有很大的帮助。

过程:将要看的数据发送出来,另一个板(一个带有显示的就OK了,显示就看个人的了,我之前用12864显示,后面坏了,就用4位数码管了)接收显示出来。

资源:通讯口只要2个IO(接收一个,发送一个),定时器2个(接收一个,发送一个)。

以下是发送模块:

//carry_pin 为发送IO,设置为输出
void send_ird(void)
{
static uint8 tx_ram2=0,tx_ram1=0,tx_ram0=0,us100_timer=0,bits_count=0;

	++us100_timer;	  
	
	 if(send_enable_flag)//100ms更新一次数据
		{
			if(!f_endcode)//=0********=1发完数据
			{
				if(bits_count<1)
				{
					if(us100_timer<30)
					{
						carry_pin=0;
					}
					else
					{
						if(us100_timer>=45)
						{
							us100_timer=0;
							++bits_count;
							carry_pin=0;
						}
						else
						{
							   carry_pin=1;
						}

					}
				}
				else
				{
					if(us100_timer<3)//前导
					{
						carry_pin=0;
					}
					else
					{
						if(tx_ram0&0x01)
						{
							if(us100_timer<12)//位为1
							{
								carry_pin=1;
							}
							else
								B_nextbit=1;
							//{goto judge_bit;}
						}
						else
						{
							if(us100_timer<6)//位为0
							{
								carry_pin=1;
							}
							else 
								B_nextbit=1;
								//{goto judge_bit;}
						}
					}
				}
			}
			else//发完数据
			{
				if(us100_timer>=3)
				{
					send_enable_flag=0;
					f_endcode=0;
					carry_pin=1;
				}
				else
				{
					carry_pin=0;
				}
			}
			
		}
		else//准备发送数据
		{
			
		
			tx_ram1=Ad_val1/256;
			tx_ram2=Ad_val1%256;
			tx_ram0=Ad_val1%256;
	

			us100_timer=0;
			bits_count=0;
			carry_pin=1;
		}
if(B_nextbit)
{
	B_nextbit=0;
	us100_timer=0;
	temp=tx_ram2&0x01;
	tx_ram2=tx_ram2>>1;
	temp1=tx_ram1&0x01;
	tx_ram1=tx_ram1>>1;
	tx_ram0=tx_ram0>>1;
	temp=temp<<7;
	tx_ram1|=temp;
	temp1=temp1<<7;
	tx_ram0|=temp1;
	++bits_count;
	if(bits_count>25)
	{
		f_endcode=1;
	}

		carry_pin=0;

	
} 
}

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇CodeForces 245B――Internet Add.. 下一篇POJ 3261 Milk Patterns(后缀数..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python 教程 - W3Sch (2025-12-26 12:00:51)
·Python基础教程,Pyt (2025-12-26 12:00:48)
·神仙级python入门教 (2025-12-26 12:00:46)
·“我用Java 8”已成 (2025-12-26 11:19:54)
·下载 IntelliJ IDEA (2025-12-26 11:19:52)