久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
STC8A8K64單片機(jī)+H1838紅外解碼程序
[打印本頁(yè)]
作者:
heryyy
時(shí)間:
2022-1-19 15:22
標(biāo)題:
STC8A8K64單片機(jī)+H1838紅外解碼程序
1.png
(27.38 KB, 下載次數(shù): 30)
下載附件
2022-1-19 17:07 上傳
/*
此次開發(fā) 利用STC8A平臺(tái)全面方面 實(shí)現(xiàn)了51單片機(jī) 學(xué)習(xí) 實(shí)驗(yàn) 設(shè)計(jì) 等功能
下面是接口整體介紹
TFT驅(qū)動(dòng)IC為 ILI9341
tft
控制線:RS-P3^5; WR-P3^6; RD-P3^7; CS-P4^4; RST-P4^3
數(shù)據(jù)線: P7口低八位數(shù)據(jù)端口 P0口高八位數(shù)據(jù)端口(兩個(gè)數(shù)據(jù)口都以選用 不可做其他)
觸摸xpt2046
SPI總線 MOSI-P2^3 MISO-P2^4 SCLK-P2^5
CS-P6^2 PENIRQ-P6^3
紅外解碼實(shí)驗(yàn)
紅外采用P3.2中斷0口 讀取H1838傳來(lái)的紅外信息并將其進(jìn)行解碼
NEC 碼的位定義:一個(gè)脈沖對(duì)應(yīng)560us 的連續(xù)載波,
邏輯1 應(yīng)該是560us 低+1680us 高,
邏輯0 應(yīng)該是560us 低+560us 高。
NEC 遙控指令的數(shù)據(jù)格式為:同步碼頭、地址碼、地址反碼、控制碼、控制反碼。
同步碼 由一個(gè)9ms 的低電平和一個(gè)4.5ms 的高電平組成,地址碼、地址反碼、控制碼、
控制反碼均是 8 位數(shù)據(jù)格式。
具體解碼過(guò)程請(qǐng)參考資料
*/
#include "stc8.h" //STC頭文件
#include "def.h" //宏定義 常用函數(shù)
#include "delay.h" //延時(shí)函數(shù)
#include "tft.h" //TFT IC底層驅(qū)動(dòng)
#include "gui.h"
#include "xpt2046.h"
#include "spi.h"
#include "h1838.h"
//真對(duì) STC8A系列 IO口初始化
//除P3 P5口外 其他IO默認(rèn)準(zhǔn)雙向IO口 所以當(dāng)用的P3 P5口是要進(jìn)行初始化一下
void IO_init(void)
{
P3M0 = 0X00;
P3M1 = 0X00;
P5M0 = 0X00;
P5M1 = 0X00;
}
void main()
{
IO_init(); //IO口初始化
Lcd_Init(); //tft初始化
Init_SPI(); //SPI初始化
GUI_Clear(White); //白色清屏
GUI_sprintf_hzstr16x(0,0,"infrared decoding test",White,1);
GUI_sprintf_hzstr16x(0,18,"IR-CODE: --H",Red,White);
hongw(); //紅外解碼測(cè)試函數(shù)
}
復(fù)制代碼
#include "stc15f2k60s2.h"
#include "delay.h"
#include "tft.h"
#include "gui.h"
#include "xpt2046.h"
#include "h1838.h"
#include "gui.h"
u8 ma[2]; //紅外解碼數(shù)據(jù)
u8 hong=0; //紅外 標(biāo)志位
void hongw(void)
{
IT0=1; //邊沿觸發(fā)
EX0=1; //外部中斷0 P3.2口
EA = 1; // 開總中斷
while(1)
{
if(hong==1) //判斷標(biāo)志位 是否數(shù)據(jù)更新
{
GUI_sprintf_char(73,16,ma[0],White,Blue,0); //顯示解碼值
GUI_sprintf_char(81,16,ma[1],White,Blue,0);
hong=0; //清標(biāo)志位等待下一次接收
}
}
}
/////////////////////////////////
//////////////////////////////////
//紅外解碼 外部P32口邊沿觸發(fā)中斷
//同步碼 由一個(gè)9ms 的低電平和一個(gè)4.5ms 的高電平組成
//邏輯1 是560us 低+1680us 高,邏輯0 是560us 低+560us 高
void IR_IN() interrupt 0
{
u8 j,k,N=0;
u8 IRCOM[4];
EX0 = 0; //進(jìn)入中斷后關(guān)閉中斷 進(jìn)行解碼
delay_us(7700); //24M下大約7ms延時(shí) 9ms低電平前 檢測(cè)P32狀態(tài)
if (IRIN==1) //如果非0 說(shuō)明紅外錯(cuò)誤 返回
{ EX0 =1;
return;
}
//確認(rèn)IR信號(hào)出現(xiàn)
while(!IRIN); //等IR變?yōu)楦唠娖剑^(guò)9ms的前導(dǎo)低電平信號(hào)。
for (j=0;j<4;j++) //收集四組數(shù)據(jù)
{
for (k=0;k<8;k++) //每組數(shù)據(jù)有8位
{
while (IRIN); //等 IR 變?yōu)榈碗娖剑绻堑谝淮尾杉^(guò)4.5ms高電平信號(hào)。
while (!IRIN); //等 IR 變?yōu)楦唠娖?br />
while (IRIN) //計(jì)算IR高電平時(shí)長(zhǎng) 猶豫單片機(jī)的運(yùn)行 存在著計(jì)算時(shí)間
{
delay_us(280); //27M下大約300+us
N++;
if(N>=30)
{ EX0=1; //開中斷
return;} //0.14ms計(jì)數(shù)過(guò)長(zhǎng)自動(dòng)離開。
} //高電平計(jì)數(shù)完畢
IRCOM[j]=IRCOM[j] >> 1; //數(shù)據(jù)最高位補(bǔ)“0”
if (N>=6)
{IRCOM[j]=IRCOM[j] | 0x80;} //數(shù)據(jù)最高位補(bǔ)“1”
N=0;
}
}
if (IRCOM[2]!=~IRCOM[3]) //控制碼 控制反碼進(jìn)行比對(duì) 如果錯(cuò)誤跳出
{ EX0=1;return; }
ma[1]=IRCOM[2] & 0x0F; //取鍵碼的低四位
ma[0]=IRCOM[2] >> 4; //右移4位 取高四位值
if(ma[1]>9)
ma[1]=ma[1]+0x37; //A 從65開始 十六進(jìn)制為0x41
else
ma[1]=ma[1]+0x30;
if(ma[0]>9)
ma[0]=ma[0]+0x37;
else
ma[0]=ma[0]+0x30;
hong=1; //打開標(biāo)志位
EX0 = 1; //開中斷
}
Keil代碼下載:
紅外解碼.zip
(214.92 KB, 下載次數(shù): 35)
2022-1-19 15:21 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩精品在线一区二区
|
狠狠的操
|
色资源在线
|
亚洲精品无
|
中文字幕在线免费观看
|
久久久福利
|
自拍 亚洲 欧美 老师 丝袜
|
www.精品一区
|
一区二区三区四区在线播放
|
粉嫩一区二区三区四区公司1
|
国产精品中文字幕在线
|
天天操夜夜操免费视频
|
久久久久久美女
|
亚洲精品68久久久一区
|
老司机午夜性大片
|
国产成人精品久久二区二区
|
国产日韩一区二区
|
国产成人精品一区二区三
|
日韩精品一区二区三区中文在线
|
欧美黄视频
|
91一区
|
国产人成精品一区二区三
|
国产精品久久久久久久久免费软件
|
无吗视频
|
午夜三区
|
日韩在线大片
|
精品免费视频
|
国产成人精品免费视频大全最热
|
欧美亚州
|
中文字幕在线三区
|
国产精品一区二区三区四区
|
亚洲国产情侣
|
瑞克和莫蒂第五季在线观看
|
在线一区观看
|
中文字幕二区三区
|
欧美一级毛片久久99精品蜜桃
|
国产精品欧美一区二区
|
激情国产在线
|
麻豆精品久久久
|
日韩中文在线观看
|
日韩在线观看一区二区三区
|