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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1361|回復: 3
收起左側

一個關于單片機紅外控制程序的問題

[復制鏈接]
ID:677121 發表于 2020-1-2 09:14 | 顯示全部樓層 |閱讀模式
遙控器按C鍵控制led1和2亮,P3.3中斷,程序不能控制燈,求教高手程序哪里寫錯了?應該怎么改正?

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char

#define Imax 14000    //此處為晶振為11.0592時的取值,
#define Imin 8000    //如用其它頻率的晶振時,
#define Inum1 145    //要改變相應的取值。
#define Inum2 700
#define Inum3 3000

sbit led1=P0^0;
sbit led2=P0^1;

uchar Mode=0;
unsigned char Im[4]={0x00,0x00,0x00,0x00};//解碼變量
//全局變量
uchar f;
unsigned char m,Tc;
unsigned char IrOK;

void yk()
{
        if(IrOK==1)
        {
                if(Im[2]==0x0d)        //遙控設置鍵-C鍵
                {
                        Mode++;
                        if(Mode==3)
                        {
                                Mode=1;
                        }
                        switch(Mode)
                        {
                                case 1:
                                {
                                        led1=0;
                                }
                                case 2:
                                {
                                        led2=0;
                                }

                        }                                 
                }
        }
}

void main()
{
        led1=led2=1;
        while(1)
        {
                yk();
        }
}
//外部中斷解碼程序_外部中斷0
void intersvr1(void) interrupt 2 using 1
{
        TR0=1;
        Tc=TH0*256+TL0;//提取中斷時間間隔時長
        TH0=0;
        TL0=0;         //定時中斷重新置零

        if((Tc>Imin)&&(Tc<Imax))
        {
                m=0;
                f=1;
                return;
         }       //找到啟始碼
        if(f==1)
        {
                if(Tc>Inum1&&Tc<Inum3)
                {
                        Im[m/8]=Im[m/8]>>1|0x80; m++;
                }
                if(Tc>Inum2&&Tc<Inum1)
                {
                        Im[m/8]=Im[m/8]>>1; m++; //取碼
                }
                if(m==32)
                {
                        m=0;  
                        f=0;
                        if(Im[2]==~Im[3])
                        {
                                IrOK=1;
                                TR0=0;
                        }
                        else IrOK=0;   //取碼完成后判斷讀碼是否正確
                }
               //準備讀下一碼
        }
}

回復

使用道具 舉報

ID:584814 發表于 2020-1-8 09:09 | 顯示全部樓層
main() 里沒開中斷。
回復

使用道具 舉報

ID:478073 發表于 2020-1-8 09:50 | 顯示全部樓層
建議你將中斷的視頻再著重看一下,都是很基礎的問題
回復

使用道具 舉報

ID:89515 發表于 2020-1-9 09:56 來自觸屏版 | 顯示全部樓層
定時器沒初始化,狀態機解碼有邏輯問題,可以參照STC官網例程。那個例程寫的很好
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 伊人免费在线观看 | 欧美综合在线视频 | 在线午夜 | 欧美精品一区在线 | 久久精品国产久精国产 | 影视一区| 成人欧美一区二区三区在线观看 | 视频国产一区 | 成人综合视频在线 | 亚州综合一区 | 国产精品片aa在线观看 | 国产日韩欧美精品 | 久久九九影视 | 亚洲自拍偷拍视频 | 日韩精品视频在线 | 亚洲视频在线免费观看 | 午夜精品一区二区三区在线视频 | 欧美一区二区三区在线观看 | www.中文字幕.com| 久久综合激情 | 久久精品国产清自在天天线 | 免费一级黄 | 中文在线一区 | 亚洲日韩视频 | 蜜月va乱码一区二区三区 | 男女视频在线免费观看 | 中文字幕亚洲精品 | 一区二区精品在线 | 亚洲成人精品一区二区 | 国产精品视频在线观看 | 久草免费电影 | 亚洲视频中文字幕 | 丁香久久 | 精品久久久久久亚洲精品 | 久久久久国产精品免费免费搜索 | 91观看| 欧美午夜激情在线 | 国产成人精品999在线观看 | 电影91久久久 | 在线成人 | aaa在线观看|