亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC51單片機采用NEC紅外編碼實現串口通信以及LED燈的亮滅

[復制鏈接]
跳轉到指定樓層
樓主
#include<reg52.h>
#include<intrins.h>

#define uchar unsigned char
#define  MAIN_Fosc 11059200
typedef unsigned int INT16U;

//sbit INT0 = P3^2;//0中斷

uchar p0Count ,Flag ,sortFlag;
uchar allValue[33],value[4];

//void delayMS(INT16U TIME){
//        uchar i;
//        do{
//                 i=MAIN_Fosc /96000;
//                 while(i--);
//        }while(TIME--);
//}
void sort(){
  uchar i,j;
   for(i=0;i<4;i++)
    for(j=1;j<=8;j++){
            if(allValue[i*8+j]>5) value[ i] |= 0x80;
                if(j<=7)  value[ i]>>=1;
        }
        sortFlag=1;
}
void initP(){
  EA=1;

  EX0=1;
  IT0=1;

  ET0=1;
  TR0=1;
  TMOD|=0x02;
  TH0=0;TL0=0;

  //ES=1;
  SM1=1;
  TR1=1;
  TMOD|=0x20;
  TH1=0xFD;        TL1=0xFD;
//        TMOD |= 0x02;//設置定時器0工作模式2,8位自動重裝
//        TL0 = TH0 = 0;//初始化定時器0寄存器,定時器0溢出一次時間為256個機器周期
//        EA = 1;//開總中斷
//        ET0 = 1;//開定時器0中斷
//        TR0 = 1;//啟動定時器0
//
//        IT0 = 1;//設置外部中斷0跳變沿觸發方式
//        EX0 = 1;//開外部中斷0中斷
//
//        TMOD |= 0x20;//設置定時器1工作模式2 ,8位自動重裝
//        TL1 = TH1 = 0xfd;//比特率9600
//        SM1 =  1;//設置串口工作模式1,10位異步收發
//        TR1= 1;         //啟動定時器1
}

void   matchLed(uchar led){
        switch(led){
          case 0x16: P1=0; P1=0x01; break;
          case 0x0C: P1=0; P1=0x02; break;
          case 0x18: P1=0; P1=0x04; break;
          case 0x5E: P1=0; P1=0x08; break;
          case 0x08: P1=0; P1=0x10; break;
        }
}

void main(){
        uchar i;
        initP();
        while(1){
         if(Flag){
          sort();
          if(sortFlag){
            for(i=0;i<4;i++){
                 SBUF=value[ i];
              while(!TI); //中斷發送
                  TI=0;
            }
                  matchLed(value[2]);
              sortFlag=0;
          }   
              Flag=0;
    }
  }
}
void  interP0() interrupt 0{
    static  bit flag ;
        static  uchar indexflag;
        if(flag){
                if((p0Count>=32) ) indexflag=0;
                 allValue[indexflag]=p0Count;
                 indexflag++;
                 p0Count=0;
                 if(indexflag==33){
                 Flag=1;
                 indexflag=0;
          }
        }
        else{
                p0Count=0;
                flag=1;
        }
}
void interP1() interrupt 1{
                p0Count++;
}

屏幕截圖 2021-02-03 100421.png (25.34 KB, 下載次數: 81)

單片機所需接口

單片機所需接口

屏幕截圖 2021-02-03 100135.png (278.44 KB, 下載次數: 77)

NEC通信原理

NEC通信原理

屏幕截圖 2021-02-03 095247.png (249 KB, 下載次數: 89)

實驗效果圖

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表