久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
msp430單片機紅外解碼 12864顯示
[打印本頁]
作者:
路滑小心
時間:
2018-7-19 09:39
標題:
msp430單片機紅外解碼 12864顯示
紅外解碼的代碼,但是還是有一些瑕疵沒有解決
單片機源程序如下:
MSP430紅外解碼.txt35溫馨是大自然的一抹色彩,獨具慧眼的匠師才能把它表現(xiàn)得盡善盡美;溫馨是樂譜上的一個跳動音符,感情細膩的歌唱者才能把它表達得至真至純#include "msp430x14x.h" //xt1 32768KHZ xt2 8MHZ ,紅外接收頭接于P1.0
#include<12864-9.h>
//**********************************************************************
#define HONGWAI_1 0x01//紅外接收頭接于P1.0
#define HONGWAI_0 0xfe
#define HONGWAI_IN (P1IN&HONGWAI_1) //P1.0輸入
//**********************************************************************
char IRcode[4]={0,0,0,0}; //定義一個4字節(jié)的數(shù)組用來存儲代碼
void int_timer(void)
{
TACTL|=TASSEL1+TACLR;//選擇SMCLK作為定時器的時鐘
TACTL|=MC0;//增加模式,并且使能中斷
TACCR0=9999;//中斷周期
}
void int_ex(void) //初始化P1.0口外部中斷
{
P1DIR&=HONGWAI_0;//輸入口
P1SEL&=HONGWAI_0; //使用普通IO
P1IE|=HONGWAI_1;//外部中斷允許
P1IES|=HONGWAI_1;//下降沿觸發(fā)中斷
P1IFG= 0x00; // 清除P1口中斷標志
}
void sent_byte2(char dat)
{
while((IFG2&UTXIFG1)==0);//判斷發(fā)送緩沖區(qū)是否結束
U1TXBUF=dat;
}
#pragma vector=UART1RX_VECTOR
__interrupt void UART1_RX_ISR(void)
{
char data=0;
data=U1RXBUF; //讀取接受到的數(shù)據(jù)并且發(fā)送到PC機
P1OUT=data;
sent_byte2(data+1);
}
void int_UART2(void)
{
P3SEL |= 0xc0; // P3.6,7 = USART0 TXD/RXD
UCTL0 |= SWRST; //復位串口
ME2 |= UTXE1 + URXE1; // 允許接收、發(fā)送
UCTL1 |= CHAR; // 8位數(shù)據(jù)
UTCTL1 |= SSEL0; // UCLK = ACLK
UBR01 = 0x03; // 波特率9600
UBR11 = 0x00; //
UMCTL1 = 0x4A; // 波特率小數(shù)部分
UCTL1 &= ~SWRST; // 串口停止復位,正常工作
IE2 |= URXIE1; // 使能接收中斷
_EINT(); //系統(tǒng)中斷允許
}
void int_clk()
{
char i;
BCSCTL1&=~XT2OFF; //打開XT振蕩器
BCSCTL2|=SELM1+SELS+DIVS_2+DIVS_1;//MCLK 8M and SMCLK 1M 8分頻
do
{
IFG1 &= ~OFIFG; //清除振蕩錯誤標志
for(i = 0; i < 100; i++)
_NOP(); //延時等待
}
while ((IFG1 & OFIFG) != 0); //如果標志為1繼續(xù)循環(huán)等待
IFG1&=~OFIFG;
}
void delay_07ms(char h)//0.7ms
{
char p;
for(p=h;p>0;p--)
{
int_timer();
while(TAR<=700);
TACTL=0; //停止計數(shù)器
TAR=0;
}
}
void delay_1ms(void)//1ms
{
int_timer();
while(TAR<=1000);
TACTL=0; //停止計數(shù)器
TAR=0;
}
#pragma vector=PORT1_VECTOR
__interrupt void PORT1_ISR(void)
{
char m,n,k,CodeTemp;
int j;
P1IE&=HONGWAI_0;//禁止P1.0中斷
if(P1IFG&HONGWAI_1==HONGWAI_1)
{
P1IFG=0;//清中斷標志
for(k=0;k<10;k++)
{
delay_07ms(1);
if (HONGWAI_IN) //如果0.7ms后HONGWAI_IN=1,說明不是引導碼
{
k=10;break;
}
else
if(k==9) //如果持續(xù)了10×0.7ms=7ms的低電平,說明是引導碼
{
while(HONGWAI_IN==0);
delay_07ms(5); //跳過持續(xù)4.5ms的高電平
for(m=0;m<4;m++) //分別讀取4個字節(jié)
{
for(n=1;n<=8;n++) //每個字節(jié)8個bit的判斷
{
while(HONGWAI_IN==0); //等待上升沿
delay_07ms(1); //從上升沿那一時刻開始延時0.9ms,再判斷IRsignal
if(HONGWAI_IN) //如果IRsignal是"1",則向右移入一位"1"
{
delay_1ms(); //延時1ms
CodeTemp=CodeTemp|0x80;
if(n<8) CodeTemp=CodeTemp>>1;
}
else
if(n<8)CodeTemp=CodeTemp>>1;//如果IRsignal是"0",則向右移一位,自動補"0"
}
IRcode[m]=CodeTemp;
CodeTemp=0;
}
// sent_byte2(IRcode[3]);
for(j=50;j>0;j--)
delay_1ms(); //延時1ms
}
}
}
P1IE|=HONGWAI_1;//外部中斷允許
}
int main( void )
{
WDTCTL = WDTPW + WDTHOLD;
int_clk(); //初始化時鐘
lcd_init();
lcd_full_disp(0);//清屏
int_ex(); //初始化P1.0口外部中斷
_BIS_SR(GIE);
//int_UART2();
while(1)
{ d_hz(1,0,0,0);
d_hz(3,0,1,0);
d_hz(5,0,2,0);
dchar_16(7,0,':',0);
dchar_16(8,0,IRcode[0]/100+48,0);
dchar_16(9,0,IRcode[0]%100/10+48,0);
dchar_16(10,0,IRcode[0]%10+48,0);
d_hz(1,1,0,0);
d_hz(3,1,1,0);
d_hz(5,1,2,0);
d_hz(7,1,3,0);
d_hz(9,1,2,0);
dchar_16(11,1,':',0);
dchar_16(12,1,IRcode[1]/100+48,0);
dchar_16(13,1,IRcode[1]%100/10+48,0);
dchar_16(14,1,IRcode[1]%10+48,0);
d_hz(1,2,4,0);
d_hz(3,2,5,0);
d_hz(5,2,2,0);
dchar_16(7,2,':',0);
dchar_16(8,2,IRcode[2]/100+48,0);
dchar_16(9,2,IRcode[2]%100/10+48,0);
dchar_16(10,2,IRcode[2]%10+48,0);
d_hz(1,3,4,0);
d_hz(3,3,5,0);
d_hz(5,3,2,0);
d_hz(7,3,3,0);
d_hz(9,3,2,0);
dchar_16(11,3,':',0);
dchar_16(12,3,IRcode[3]/100+48,0);
dchar_16(13,3,IRcode[3]%100/10+48,0);
dchar_16(14,3,IRcode[3]%10+48,0);
// _BIS_SR(LPM1_bits+ GIE); //打開低功耗模式1、打開系統(tǒng)中斷允許
}
}
const uchar HZ[16*96]={
//用(0) 戶(1) 碼(2) 反(3) 操(4) 作(5)
0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,
0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,/*"用",0*/
0x00,0x00,0x00,0xF8,0x88,0x88,0x88,0x89,0x8A,0x8E,0x88,0x88,0x88,0xF8,0x00,0x00,
0x80,0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"戶",1*/
0x02,0x82,0xE2,0x5E,0x42,0xC2,0x00,0x02,0xFA,0x82,0x82,0x82,0xFE,0x80,0x00,0x00,
0x01,0x00,0x7F,0x10,0x10,0x3F,0x00,0x04,0x04,0x04,0x44,0x84,0x40,0x3F,0x00,0x00,/*"碼",2*/
0x00,0x00,0xFE,0x12,0x72,0x92,0x12,0x12,0x12,0x11,0x91,0x71,0x01,0x00,0x00,0x00,
0x40,0x30,0x4F,0x40,0x20,0x21,0x12,0x0C,0x0C,0x12,0x11,0x20,0x60,0x20,0x00,0x00,/*"反",3*/
0x08,0x08,0xFF,0x88,0x48,0x00,0xF0,0x97,0xF5,0x05,0xF5,0x95,0x97,0xF0,0x00,0x00,
0x42,0x81,0x7F,0x00,0x40,0x42,0x22,0x12,0x0A,0xFF,0x06,0x0A,0x32,0x62,0x22,0x00,/*"操",4*/
0x80,0x40,0x20,0xF8,0x07,0x22,0x18,0x0C,0xFB,0x48,0x48,0x48,0x68,0x48,0x08,0x00,
0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0xFF,0x04,0x04,0x04,0x04,0x06,0x04,0x00,/*"作",5*/
};
復制代碼
所有資料51hei提供下載:
MSP430紅外解碼.doc
(35 KB, 下載次數(shù): 14)
2018-7-19 09:39 上傳
點擊文件名下載附件
紅外解碼
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久精品视频播放
|
三级在线免费
|
日韩在线播放一区
|
欧美精品免费观看二区
|
欧美在线一区二区三区
|
国产精品久久九九
|
中文字幕国产精品
|
福利一区视频
|
91久久精品国产
|
99精品在线
|
日韩综合在线视频
|
国产精品视频导航
|
国产伦一区二区三区
|
九九国产在线观看
|
一级毛片免费
|
99久久精品免费
|
久久成人18免费网站
|
国产免费视频在线
|
国产高清一区二区三区
|
亚洲区一区二区
|
91精品国产一区二区
|
一级做a毛片
|
草b视频
|
拍真实国产伦偷精品
|
爱爱视频在线观看
|
成人日韩
|
九色av
|
日韩久久在线
|
亚洲精品日韩视频
|
黄视频在线网站
|
国产精品乱码一区二区三区
|
午夜伦理影院
|
毛片黄片免费看
|
国产日韩欧美
|
999精品视频
|
亚洲一区二区三区观看
|
久久久久久91香蕉国产
|
国产在线播
|
天天碰夜夜操
|
91精品国产综合久久香蕉922
|
欧洲一级毛片
|