女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]// 用單片機(jī)進(jìn)行紅外遙控接收已經(jīng)是很平常的應(yīng)用了,基本上稍懂單片機(jī)就可以自己編// // 但往往很多人編的程序要么繁瑣,要么占用大量存儲器、CPU資源, // // 而且用于現(xiàn)場時(shí)還可能因?yàn)槭艿礁蓴_而不能正常工作 //

// 用單片機(jī)進(jìn)行紅外遙控接收已經(jīng)是很平常的應(yīng)用了,基本上稍懂單片機(jī)就可以自己編//
// 但往往很多人編的程序要么繁瑣,要么占用大量存儲器、CPU資源, //
// 而且用于現(xiàn)場時(shí)還可能因?yàn)槭艿礁蓴_而不能正常工作 //
// 真正試過的都會發(fā)現(xiàn),要想編個(gè)真正好用的接收程序不是那么簡單的 //

// 其實(shí),所有遙控芯片的編碼都是比較簡單的(有限的狀態(tài)),只要仔細(xì)分析它的編碼//
// 我們完全可以用狀態(tài)機(jī)的方式來處理各種可能的情況,甚至從被干擾的雜亂波形中找出正確的編碼//
// 下面是基于狀態(tài)機(jī)的SAA3010紅外遙控接收程序示例: //
//--------------------------------------------------------------------------//
// //
// (c) Copyright 2001-2003 xuwenjun //
// All Rights Reserved //
// V1.00 //
//--------------------------------------------------------------------------//
//標(biāo) 題: SAA3010遙控芯片接收程序 //
//文件名: ir_3010.c //
//版 本: V1.00 // //
//描 述: SAA3010遙控芯片接收程序 //
//--------------------------------------------------------------------------//
//老版本: 無 老版本文件名: //
//創(chuàng)建人: xuwenjun E-mail:xuwenjun@21cn.com //
//日 期: 03-06-14 //
//描 述: SAA3010遙控芯片接收程序 //
// 當(dāng)ykok=1時(shí),ykcode中的數(shù)據(jù)就是接收到的遙控碼(14位的最后8位) //
//--------------------------------------------------------------------------//
//占用以下資源: //
// 1. 遙控使用外部中斷0,接P3.2口 //
// 2. 遙控使用定時(shí)計(jì)數(shù)器1 //
// 3. 5.1字節(jié)data RAM //
// 4. 293字節(jié) code ROM //
//--------------------------------------------------------------------------//
//聲 明: //
// 以下代碼僅免費(fèi)提供給學(xué)習(xí)用途,但引用或修改后必須在文件中聲明出處. //
// 如用于商業(yè)用途請與作者聯(lián)系. E-mail:xuwenjun@21cn.com //
// 有問題請mailtoxuwenjun@21cn.com 歡迎與我交流! //
//--------------------------------------------------------------------------//

#i nclude
#define uchar unsigned char

// SAA3010存儲定義
uchar ykcode; //遙控碼(14位的最后8位)
bit ykok; //遙控?cái)?shù)據(jù)有效標(biāo)志

uchar ykbnum; //遙控已接收位數(shù)
uchar ykbtc; //遙控中斷時(shí) ykbtc=TH1
uchar ykdelay; //遙控延時(shí)接收
bdata uchar ykcodetemp; //遙控臨時(shí)碼
sbit ykcodetemp0=ykcodetemp^0;


// SAA3010端口定義
//sbit YKIO=P3^3; //遙控使用外部中斷0,接P3.2口

// SAA3010函數(shù)原型: 公用函數(shù)
void YkInit(void); //遙控接收初始化
unsigned char YkGetcode(void); //返回遙控碼
bit YkTest(void); //檢查有無遙控信號

/*
// SAA3010函數(shù)原型: 公用函數(shù)
extern void YkInit(void); //遙控接收初始化
extern unsigned char YkGetcode(void); //返回遙控碼
extern bit YkTest(void); //檢查有無遙控信號
*/

/*
// 外部引用四位LED顯示模塊 //
extern unsigned char code tab_duam[]; //位映射
extern void led_send(unsigned char d); //發(fā)送子程序
extern void led_cls(void); //清除顯示
extern void led_show(unsigned int n); //顯示數(shù)字子程序
extern void led_showhh(unsigned int n); //16進(jìn)制顯示數(shù)字子程序
extern void led_test(void); //4LED測試函數(shù)
extern void led_delay(unsigned char ms); //延遲函數(shù)
*/

// SAA3010函數(shù)內(nèi)容
void YkInit(void) //遙控接收初始化
{
TMOD=0x11; //TMOD T0,T1均選用方式1(16位定時(shí))
SCON=0x00;
TH1=0;
TL1=0;
IE|=0x89; //SETB EX0 0x1 外部中斷 0 允許
//SETB ET0 0x8 定時(shí)器 1 中斷允許
//SETB EA 0x80 開中斷
IP|=0x01; //SETB INT0 中斷優(yōu)先
TCON |= 0x41; //TCON EX0下降沿觸發(fā),啟動T1 //
ykbnum=0;
ykcodetemp=0;
ykdelay=0;

}

unsigned char YkGetcode(void) //返回遙控碼
{
return(ykcode);
}

bit YkTest(void) //檢查有無遙控信號
{
return(ykok);
}

void intx0() interrupt 0 using 2 //遙控使用外部中斷0,接P3.2口
{
ykbtc=TH1;TH1=0;TL1=0;TR1=1;ET1=1;
switch(ykbnum)
{
case(0):
ykbnum=1;
break;
case(1):
if(ykbtc==6)ykbnum=2;
else ykbnum=0;
break;
case(2):
if(ykbtc==6||ykbtc==9)ykbnum=3;
else ykbnum=0;
break;
case(3):
if(ykbtc==9||ykbtc==6){ykbnum=4;}
else ykbnum=0;
break;
default:
if(ykbnum<7)if(ykbtc==6)ykbnum++;
else ykbnum=0;
else
{
if(ykbtc==6){if(ykcodetemp0)ykcodetemp=ykcodetemp*2+1;
else ykcodetemp=ykcodetemp*2;
ykbnum++;
}
else if(ykbtc==9){ if(ykcodetemp0){ykbnum++;ykcodetemp=ykcodetemp*2;}
else {ykbnum+=2;ykcodetemp=ykcodetemp*2;ykcodetemp=ykcodetemp*2+1;}
}
else if(ykbtc>11&&ykbtc<15)
{ykbnum+=2;ykcodetemp=ykcodetemp*2;ykcodetemp=ykcodetemp*2+1;}
else if(ykbtc>30){EX0=1;}
else ykbnum=0;
}
}
}

void intt1() interrupt 3 using 3 //遙控使用定時(shí)計(jì)數(shù)器1
{
if(ykdelay){ykdelay--;EX0=0;} //ykdelay不為0暫停接收
else
{
if(ykbnum==13) //遙控碼最后一位為0,補(bǔ)0
{
ykcode=ykcodetemp*=2;
ykdelay=3;
EX0=0; //暫停接收
ykok=1; //遙控?cái)?shù)據(jù)有效
}
else if(ykbnum==14) //遙控碼最后一位為1,不用補(bǔ)
{
ykcode=ykcodetemp;
ykdelay=3;
EX0=0; //暫停接收
ykok=1; //遙控?cái)?shù)據(jù)有效
}
else EX0=1; //ykbnum不為13,14接收無效,繼續(xù)接收
ykbnum=0;
ykcodetemp=0;
}
}

/*
// SAA3010測試主函數(shù)內(nèi)容
main()
{
YkInit();
led_test(); //4LED測試函數(shù)
for(;1;) //主程序
{
if (YkTest())
led_showhh(YkGetcode());
led_delay(10);
}
}
*/

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

在嵌入式系統(tǒng)與底層軟件開發(fā)中,C語言的枚舉類型(enum)因其強(qiáng)大的語義表達(dá)能力,成為狀態(tài)機(jī)設(shè)計(jì)和位域操作的核心工具。本文將從底層原理出發(fā),解析枚舉類型在狀態(tài)機(jī)實(shí)現(xiàn)中的優(yōu)化策略,并探討其與位域(bit-field)的協(xié)同...

關(guān)鍵字: C語言 嵌入式系統(tǒng) 狀態(tài)機(jī)

為增進(jìn)大家對無線遙控開關(guān)的認(rèn)識,本文將對無線遙控開關(guān)的原理、種類、配對方法等內(nèi)容予以介紹。

關(guān)鍵字: 遙控 指數(shù) 紅外遙控

為增進(jìn)大家對紅外遙控的認(rèn)識,本文將對紅外遙控的特點(diǎn)以及紅外遙控和藍(lán)牙遙控之間的區(qū)別予以介紹。

關(guān)鍵字: 遙控 指數(shù) 紅外遙控

為增進(jìn)大家對紅外遙控的認(rèn)識,本文將對紅外遙控編碼技術(shù)、紅外遙控解碼技術(shù)予以介紹。

關(guān)鍵字: 遙控 指數(shù) 紅外遙控

在SIP終端在同一個(gè)函數(shù)中同時(shí)作為主叫方和被叫方的情況。即在RequestINVITE函數(shù)中,這個(gè)SIP終端需要能夠構(gòu)造INVITE請求(作為主叫方),同時(shí)還需要處理作為被叫方時(shí)的各種響應(yīng),比如發(fā)送100 Trying、...

關(guān)鍵字: INVITE 狀態(tài)機(jī)

在紅外遙控技術(shù)領(lǐng)域,紅外自學(xué)習(xí)芯片和紅外編解碼芯片扮演著重要角色,它們各自具備獨(dú)特的功能與特性,廣泛應(yīng)用于不同場景。理解這兩種芯片的區(qū)別,對于優(yōu)化紅外遙控系統(tǒng)設(shè)計(jì)、拓展應(yīng)用范圍具有關(guān)鍵意義。

關(guān)鍵字: 紅外遙控 自學(xué)習(xí)芯片 編解碼芯片

在嵌入式系統(tǒng)開發(fā)中,有限狀態(tài)機(jī)(FSM)是一種強(qiáng)大的工具,它能夠幫助開發(fā)者以清晰、結(jié)構(gòu)化的方式管理復(fù)雜的狀態(tài)轉(zhuǎn)換邏輯。FSM通過將系統(tǒng)行為劃分為一系列狀態(tài)和狀態(tài)之間的轉(zhuǎn)換,簡化了系統(tǒng)的設(shè)計(jì)和調(diào)試過程。在第一部分中,我們已...

關(guān)鍵字: 嵌入式系統(tǒng) 狀態(tài)機(jī) FSM C++

自動飲料售賣機(jī)作為一種自助式零售設(shè)備,近年來在國內(nèi)外得到了廣泛應(yīng)用。本文將詳細(xì)介紹一款功能完善、操作簡便的自動飲料售賣機(jī)的設(shè)計(jì)與實(shí)現(xiàn)過程,包括有限狀態(tài)機(jī)(FSM)的設(shè)計(jì)、Verilog編程、以及設(shè)計(jì)工程中可使用的工具及大...

關(guān)鍵字: Verilog 狀態(tài)機(jī) FSM

在現(xiàn)代電子系統(tǒng)中,同步信號處理和模式識別是至關(guān)重要的。特別是在通信、數(shù)據(jù)處理和控制系統(tǒng)等領(lǐng)域,對輸入信號進(jìn)行實(shí)時(shí)分析以檢測特定模式或字符串是常見的需求。本文將介紹如何使用Verilog語言設(shè)計(jì)一個(gè)有限狀態(tài)機(jī)(FSM),以...

關(guān)鍵字: Verilog 狀態(tài)機(jī)

在數(shù)字電路與系統(tǒng)設(shè)計(jì)領(lǐng)域,有限狀態(tài)機(jī)(Finite State Machine,F(xiàn)SM)是一種重要的設(shè)計(jì)工具。FSM能夠基于輸入信號和當(dāng)前狀態(tài),通過狀態(tài)轉(zhuǎn)移和輸出邏輯,實(shí)現(xiàn)復(fù)雜的時(shí)序控制功能。Moore狀態(tài)機(jī)和Mealy...

關(guān)鍵字: Moore Mealy 狀態(tài)機(jī)
關(guān)閉