欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
簡單8數(shù)碼管顯示紅外編碼 單片機(jī)程序
[打印本頁]
作者:
Elison
時(shí)間:
2019-4-13 02:31
標(biāo)題:
簡單8數(shù)碼管顯示紅外編碼 單片機(jī)程序
無需復(fù)雜的電路,使用8個(gè)數(shù)碼管既可顯示出紅外遙控的編碼,電路簡單,代碼少,適合新手玩,不知道論壇有沒有人發(fā)過,新人新帖
單片機(jī)源程序如下:
/***************************************************************************
標(biāo)題: 紅外遙控解碼器數(shù)碼管顯示 使用12mhz晶振
管腳:P33紅外接收數(shù)據(jù),P0口數(shù)碼管數(shù)據(jù)口,P10數(shù)碼管千位,P11數(shù)碼管百位,P12數(shù)碼管十位,P13數(shù)碼管個(gè)位
效果: 運(yùn)行程序,按遙控器按鍵,在數(shù)碼管上顯示相應(yīng)的地址碼-控制碼(以16進(jìn)制顯示)
分兩段,前段是地址碼,后段為控制碼,用點(diǎn)隔開,顯示兩字節(jié),忽略反碼,使用共陰數(shù)碼管
******************************************************************************/
#include <reg51.h>
sbit SMG_0 = P1^0; //定義數(shù)碼管(千萬位)
sbit SMG_1 = P1^1; //定義數(shù)碼管(百萬位)
sbit SMG_2 = P1^2; //定義數(shù)碼管(十萬位)
sbit SMG_3 = P1^3; //定義數(shù)碼管(萬位)
sbit SMG_4 = P1^4; //定義數(shù)碼管(千位)
sbit SMG_5 = P1^5; //定義數(shù)碼管(百位)
sbit SMG_6 = P1^6; //定義數(shù)碼管(十位)
sbit SMG_7 = P1^7; //定義數(shù)碼管(個(gè)位)
/********數(shù)據(jù)定義*************************************************************/
sbit hwx=P3^3; //紅外接收數(shù)據(jù)引腳,
code unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //數(shù)碼管段值表 0-9 a-f
unsigned char ly_disdate[8]={0,0,0,0,0,0,0,0}; //顯示緩沖
unsigned char ly_lhj[4]; //保存NEC的四個(gè)字節(jié)數(shù)據(jù)
unsigned char ly_ct=0; //計(jì)數(shù)時(shí)間
bit ly_flag=1; //成功接收標(biāo)志
//函數(shù)聲明:
void display();//定義顯示函數(shù),直接顯示緩沖區(qū)數(shù)值
void delay(void);
void delay100us(void);
/***********外中斷1入口函數(shù),P33引腳,紅外線接收IC數(shù)據(jù)腳**************************/
void hongwai(void) interrupt 2
{
unsigned char i,ia;
/**************開始判斷是否為NEC波形引導(dǎo)碼的前9MS和后4.5MS******************************/
ly_ct=0; //計(jì)數(shù)時(shí)間清0
while(!hwx) //hwx紅外管腳
delay100us(); //調(diào)用0.1MS延時(shí)計(jì)數(shù),ly_ct每調(diào)用一次加1
if(ly_ct<80||ly_ct>100) //NEC引導(dǎo)碼前9MS,ly_ct約等于90,給個(gè)誤差值,用80-100之間來判斷
return;
ly_ct=0; //計(jì)數(shù)時(shí)間請0
while(hwx)
{
delay100us();
if(ly_ct>50) //NEC引導(dǎo)碼引導(dǎo)碼的后4.5MS,ly_ct約45
return;
}
if(ly_ct<40) //NEC引導(dǎo)碼引導(dǎo)碼的后4。5MS,ly_ct約45
return;
/***********開始接收四個(gè)字節(jié)內(nèi)容**************************************/
for(i=0;i<4;i++)
{
for(ia=0;ia<8;ia++)
{
while(!hwx); //低電平開始,不處理只等待高電平接收
ly_ct=0;
while(hwx) //高電平開始,
{
delay100us();
if(ly_ct>20)
return;
}
//高電平結(jié)束,判斷數(shù)據(jù)1或0向變量移入
ly_lhj[i]>>=1; //數(shù)據(jù)由高位移入低位
if(ly_ct>10) //時(shí)間量TH1高于10,即高于1MS判斷為1
ly_lhj[i]|=0x80;
}
}
ly_flag=1; //接收成功
TF1=0;
}
//顯示函數(shù),參數(shù)為顯示內(nèi)容,只顯示兩位數(shù)
void display()
{
SMG_0=0; //選擇千萬位數(shù)碼管
P0=table[ly_disdate[0]]; //
delay(); //
P0=0XFF; //
SMG_0=1; //
SMG_1=0; //選擇百萬位數(shù)碼管SMG_b
P0=table[ly_disdate[1]]|0x80; //加上小數(shù)點(diǎn)
delay(); //延時(shí)
P0=0XFF; //
SMG_1=1; //
SMG_2=0; //選擇十位數(shù)碼管
P0=table[ly_disdate[2]]; //
delay(); //
P0=0XFF; //
SMG_2=1; //
SMG_3=0; //選擇個(gè)位數(shù)碼管
P0=table[ly_disdate[3]]|0x80; //加上小數(shù)點(diǎn); //
delay(); //
P0=0XFF; //
SMG_3=1; //
SMG_4=0; //選擇千萬位數(shù)碼管
P0=table[ly_disdate[4]]; //
delay(); //
P0=0XFF; //
SMG_4=1; //
SMG_5=0; //選擇百萬位數(shù)碼管SMG_b
P0=table[ly_disdate[5]]|0x80; //加上小數(shù)點(diǎn)
delay(); //延時(shí)
P0=0XFF; //
SMG_5=1; //
SMG_6=0; //選擇十位數(shù)碼管
P0=table[ly_disdate[6]]; //
delay(); //
P0=0XFF; //
SMG_6=1; //
SMG_7=0; //選擇個(gè)位數(shù)碼管
P0=table[ly_disdate[7]]; //加上小數(shù)點(diǎn)
delay(); //
P0=0XFF; //
SMG_7=1; //
}
//延時(shí)子函數(shù),短暫延時(shí)
void delay(void)
{
unsigned char i=10;
while(i--);
}
void delay100us(void)
{
unsigned char i=15;
while(i--);
ly_ct++;
}
void main(void)
{
EA=1; //首先開啟總中斷
EX1=1; //開啟外部中斷1,紅外接收數(shù)據(jù)引腳
IT1=1; //設(shè)置成下降沿觸發(fā)方式
while(1)
{
if(ly_flag)
{ //接收成功處理顯示緩沖,以16進(jìn)制顯示
ly_flag=0;
ly_disdate[0]=ly_lhj[0]/16;
ly_disdate[1]=ly_lhj[0]%16;
ly_disdate[2]=ly_lhj[1]/16;
ly_disdate[3]=ly_lhj[1]%16;
ly_disdate[4]=ly_lhj[2]/16;
ly_disdate[5]=ly_lhj[2]%16;
ly_disdate[6]=ly_lhj[3]/16;
ly_disdate[7]=ly_lhj[3]%16;
}
display();//顯示緩沖內(nèi)容
}
}
復(fù)制代碼
所有資料51hei提供下載:
紅外遙控解碼8數(shù)碼管顯示.zip
(36.27 KB, 下載次數(shù): 30)
2019-4-13 02:30 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin
時(shí)間:
2019-4-13 03:13
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
作者:
村雨
時(shí)間:
2019-4-13 09:55
大佬,牛逼了
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1