久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2629|回復: 4
打印 上一主題 下一主題
收起左側

求 將紅外的值送到lcd1602里面的程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:268289 發表于 2017-12-28 21:50 來自手機 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
紅外通信模塊與1602顯示模塊,顯示紅外遙控器的按鍵內容。0-9就顯示0-9  字符就顯示字符
   我現在弄好了大部分程序  可是不知道主程序怎么寫    不知道  怎么將1602和紅外遙控聯系起來



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:164602 發表于 2017-12-29 09:22 | 只看該作者
本帖最后由 HC6800-ES-V2.0 于 2017-12-29 10:55 編輯

我很久以前才學習紅外遙控時,編的程序,可能不是最好的,不過,正好對上你要的功能。
此程序對應硬件如圖所示:






/***************************************************************************
    程序功能:
        1、運行程序,按遙控器按鍵,在數碼管上顯示相應的控制碼(以16進制顯示);
        2、對特別的幾個鍵,有相應的現象出現:
        (1)電源鍵,使繼電器工作或斷開;
        (2)靜音鍵,使蜂鳴器響或不響;
        (3)快進鍵讓LED燈向右出現一次走馬燈現象;
        (4)快退鍵讓LED燈向左出現一次走馬燈現象;
        (5)按0~9,數碼管顯示所按的鍵號;
        (6)按其它鍵,不會改變已經按的數字鍵的顯示,表示看電視臺開關電源或靜音、快進快退,都不會改變臺號。
        (7)其它鍵沒想好怎么以現有板產生相應功能,所以按下后,沒有特別現象,只有顯示其控制碼。
******************************************************************************/
#include "reg51.h"
#define LED8 P2//LED燈
sbit hwx=P3^3;//紅外接收數據引腳
sbit SMG_q = P1^0;        //數碼管千位
sbit SMG_b = P1^1;        //數碼管百位
sbit SMG_s = P1^2;        //數碼管十位
sbit SMG_g = P1^3;        //數碼管個位
sbit JDQ=P1^4;//繼電器
sbit Beep =  P1^5 ;//蜂鳴器

code unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
                                                        0x88,0x8c,0xc6,0xa1,0x86,0x8e};        //共陽數碼管段值表
unsigned char ly_disdate[4]={0,0,0,0};
unsigned char ly_lhj[4],i;
bit ly_flag=1;
void display();
void delay(void);
void Delay10ms(unsigned int c)
{
    unsigned char a,b;
    for(c;c>0;c--)
        for(b=38;b>0;b--)
            for(a=130;a>0;a--);
}
void main(void)
{
        EA=1;
        EX1=1;
        IT1=1;
        TMOD=0X10;
        JDQ=1;
        ly_flag=0;
        while(1)
{        
                if(ly_flag)
{                ly_flag=0;
                        if ((ly_lhj[2]==0x45))
                        {
                                JDQ=~JDQ;
                        }
                        if ((ly_lhj[2]==0x47))
                        {
                                Beep=~Beep;
                        }
                        if ((ly_lhj[2]==0x40))
                        {
                                LED8=0xfe;
                                for(i=0;i<8;i++)
                                {                                         
                                        Delay10ms(10);
                                        LED8=LED8<<1;
                                }
                                LED8=0xff;
                        }
                        if ((ly_lhj[2]==0x43))
                        {
                                LED8=0x7f;
                                for(i=0;i<8;i++)
                                {                                         
                                        Delay10ms(10);
                                        LED8=LED8>>1;
                                }
                                LED8=0xff;
                        }
                        if ((ly_lhj[2]==0x16))
                        {
                                ly_disdate[0]=0;                        
                        }
                        if ((ly_lhj[2]==0x0c))
                        {
                                ly_disdate[0]=1;                        
                        }                        
                        if ((ly_lhj[2]==0x18))
                        {
                                ly_disdate[0]=2;                        
                        }                        
                        if ((ly_lhj[2]==0x5e))
                        {
                                ly_disdate[0]=3;                        
                        }                        
                        if ((ly_lhj[2]==0x08))
                        {
                                ly_disdate[0]=4;                        
                        }                        
                        if ((ly_lhj[2]==0x1c))
                        {
                                ly_disdate[0]=5;                        
                        }                        
                        if ((ly_lhj[2]==0x5a))
                        {
                                ly_disdate[0]=6;                        
                        }                        
                        if ((ly_lhj[2]==0x42))
                        {
                                ly_disdate[0]=7;                        
                        }                        
                        if ((ly_lhj[2]==0x52))
                        {
                                ly_disdate[0]=8;                        
                        }                        
                        if ((ly_lhj[2]==0x4a))
                        {
                                ly_disdate[0]=9;                        
                        }                        
                        ly_disdate[2]=ly_lhj[2]/16;
                        ly_disdate[3]=ly_lhj[2]%16;
                }
                display();
        }               
}

void hongwai(void)   interrupt 2
{
        unsigned char i,ia;
        TL1=0;
        TH1=0;
        TR1=1;
        while(!hwx);
        TR1=0;        
        if(TH1<30||TH1>40)
                return;

        TH1=0;
        TR1=1;
        while(hwx)
        {
                delay();
                if(TH1>22)
                        return;               
        }
        TR1=0;
        if(TH1<12)        
                return;

        for(i=0;i<4;i++)
        {
                for(ia=0;ia<8;ia++)
                {                                
                        while(!hwx);
                        
                        TH1=0;
                        TR1=1;        
                        while(hwx)
                        {
                                delay();
                                if(TH1>15)               
                                        return;               
                        }
                        TR1=0;
                        ly_lhj>>=1;        
                        if(TH1>4)               
                                ly_lhj|=0x80;
                }
        }
        ly_flag=1;
        TF1=0;
}

void display()
{
        SMG_q=0;
        P0=table[ly_disdate[0]];        
        delay();                        
        P0=0XFF;               
        SMG_q=1;

        SMG_s=0;
        P0=table[ly_disdate[2]];        
        delay();                        
        P0=0XFF;                        
        SMG_s=1;               

        SMG_g=0;               
        P0=table[ly_disdate[3]];        
        delay();                        
        P0=0XFF;                        
        SMG_g=1;               
}

void delay(void)
{               
        unsigned char i=10;
        while(i--);
}
因為當時還沒有學習1602,所以是用數碼管顯示的,你把數碼管顯示的程序,換上1602的顯示程序就可以了。


回復

使用道具 舉報

板凳
ID:78322 發表于 2017-12-29 11:23 | 只看該作者
一個項目的架構,所有模塊事件都可以抽象一個函數出來放在MAIN函數里面運行,模塊間的聯系就是一個參數的改變與調用及判斷。
回復

使用道具 舉報

地板
ID:268289 發表于 2017-12-30 12:32 來自手機 | 只看該作者
立里 發表于 2017-12-29 11:23
一個項目的架構,所有模塊事件都可以抽象一個函數出來放在MAIN函數里面運行,模塊間的聯系就是一個參數的改 ...

感謝   萬分感謝
回復

使用道具 舉報

5#
ID:268289 發表于 2017-12-30 12:35 來自手機 | 只看該作者
HC6800-ES-V2.0 發表于 2017-12-29 09:22
我很久以前才學習紅外遙控時,編的程序,可能不是最好的,不過,正好對上你要的功能。
此程序對應硬件如圖 ...

感謝  很感謝    已經很厲害了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本一区二区影视 | 亚洲女优在线播放 | 视频三区 | 日本三级在线 | 日本成人综合 | 国产精品96久久久久久 | 欧美日韩视频在线播放 | 成人国产精品久久久 | 国产精品久久久久久久久久免费看 | 在线日韩欧美 | 国产一级片 | 欧美性一区二区三区 | 欧美日韩综合 | 国产精品久久久久久福利一牛影视 | 人人艹人人| 国产精品久久久久久久久久久久冷 | 日日摸夜夜爽人人添av | 日韩精品一区二区三区中文在线 | 狠狠ri| 在线中文字幕视频 | 国产精品久久久久久久久久久久午夜片 | 国产福利小视频 | 欧美 日本 国产 | 青娱乐av| 成人av免费 | 国产精品久久久久久久久久软件 | 精品国产一区二区三区久久狼黑人 | 国产精品视频999 | 精品视频国产 | 欧美 日韩 中文 | 国产视频一区二区 | 国产精品久久久久久影院8一贰佰 | 国产精品美女久久久久久久久久久 | av中文天堂| 日本久久久久久 | 国产一区二区三区在线 | 国产农村妇女毛片精品久久麻豆 | 欧美一级片在线看 | 成人免费日韩 | 成人免费一区二区三区牛牛 | 亚洲国产中文字幕 |