基于單片機的紅外發(fā)送程序(Infineon--XC866) 作者: 時間:2016-11-29 來源:網絡 加入技術交流群 掃碼加入和技術大咖面對面交流海量資料庫查詢 收藏 //****************************************************************************// @Function void main(void) ////----------------------------------------------------------------------------// @Description This is the main function.////----------------------------------------------------------------------------// @Returnvalue None////----------------------------------------------------------------------------// @Parameters None////----------------------------------------------------------------------------// @Date 2010-11-4////****************************************************************************// USER CODE BEGIN (MAIN_Main,1)void delay(uint z) //延時時間約為 1ms*X 晶振為12M{ uint x=0,y=0;for(x=z;x>0;x--)for(y=54;y>0;y--);}void Key_Scan(){uchar Key_Temp=0,i=0;if(P3_1!=1) { delay(10); if(P3_1!=1) { while(!P3_1); Key_Flag=1; for(i=1;i<4;i++)Table_Tx[i]=i+0xaa;}} }void Send_Code8(){uchar i=0; //循環(huán)變量for(i=0;i<8;i++) //8位數據,顧循環(huán)8次{Set_Count=0x002b;//準備發(fā)送長達0.56ms(13*43=560us)的方波Flag=1; //置標志位(通過該標志位控制高低電平的轉換),因為高電平器件,38K的波形不會改變 Count=0; //清零,準備計數 TR0=1; //啟動定時器 while(Count>1;//右移一位,準備發(fā)送 }}void Send_Code(){ uchar i=0;Set_Count=690;//準備產生9ms(13*690=9000)的高電平 Flag=1; //置標志位,取反(該標志位控制高低電平的轉換)Count=0; //定時器計數TR0=1; //啟動定時器while(Count 上一頁 1 2 下一頁
評論