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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2078|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

程序改錯(cuò)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:213443 發(fā)表于 2017-10-26 16:11 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<at89c51.h>
#define uint unsigned int
#define uchar unsigned char
uchar key,key_num,sbuf_out,led_sta;
uchar countm,buf[2];
sbit keep=P3^7;

void delay(uchar x)
{
        uchar y,z;
        for(y=x;y>0;y--)
                for(z=100;z>0;z--);
}

uchar keyscan()
{
        uchar code_h;                          
        uchar code_l;                 
        P1=0XF0;                                 
        if((P1&0xF0)!=0XF0)               
        {
                delay(5);  
                if((P1&0xF0)!=0XF0)       
                {
                code_h=0xfe;  
                while((code_h&0x10)!=0x00)       
             {
                        P1=code_h;                       
                        if((P1&0xF0)!=0XF0)         
                                {
                                code_l=(P1&0xF0|0x0F);         
                                return((~code_h)+(~code_l));         
                                }
                                        else
                                        code_h=(code_h<<1)|0x01;   
                        }
                }
        }
        return(0);         
}
void keynum()
{
   uchar i,j;
   uchar code tab[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
   key=0;
          key=keyscan();
          if((key&0x01)!=0) i=0;
          if((key&0x02)!=0) i=1;
          if((key&0x04)!=0) i=2;
          if((key&0x08)!=0) i=3;
          if((key&0x10)!=0) j=0;
          if((key&0x20)!=0) j=1;
          if((key&0x40)!=0) j=2;
          if((key&0x80)!=0) j=3;
          if(key!=0) key_num=tab[i][j];
}

void TAKE_SBUF(uchar dat)
{
        ES=0;
        SBUF=dat;
        while(~TI);                  
        TI=0;
        SBUF=dat;
        while(~TI);
        TI=0;
        ES=1;
}

void keyplay()
{
        bit take_key;
        keynum();
        if(key_num==13)
        {
                take_key=1;
                sbuf_out=0x00;
                led_sta=0xff;
                P2=0xff;
                P0=0xbf;               
        }
        if(key_num==14)
        {
                take_key=1;
                sbuf_out=0x00;
                led_sta=0x00;
                P2=0xff;
                P0=0xbf;
        }               
        while(take_key)
        {
                keynum();
                while(key!=0)
                keynum();                          
                if(key_num<9)
                {                               
                        sbuf_out=sbuf_out|(0x80>>(key_num-1));
                        key_num=17;
                        P2=~sbuf_out;
                }                       
                if(key_num==15)
                {
                       
                        TAKE_SBUF(sbuf_out);

                        key_num=17;
                        take_key=0;
                        delay(250);
                        TAKE_SBUF(led_sta);                               
                }
        }
}
void main()
{
        SCON=0XD0;
        TMOD=0X20;
        TH1=0XFD;
        TL1=0XFD;
        TR1=1;
        EA=1;
        ES=1;
        P2=0xff;
        while(1)
        {       
                keyplay();
        }
}

void setled() interrupt 4
{
        buf[countm]=SBUF;
        countm++;
        if(countm>1)
        {
                countm=0;
                if(buf[0]==sbuf_out)
                {
                        if(buf[1]==led_sta)
                        {
                                if(buf[1]==0xff)
                                        P0=0xf9;
                                if(buf[1]==0x00)
                                        P0=0xc0;               
                                keep=0;
                                delay(250);
                                keep=1;
                        }       
                }
        }
        RI=0;
       
}            
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:243203 發(fā)表于 2017-10-26 18:16 | 只看該作者
for循環(huán)不需要分號(hào)結(jié)束
回復(fù)

使用道具 舉報(bào)

板凳
ID:149988 發(fā)表于 2017-10-27 06:21 | 只看該作者

RE: 程序改錯(cuò)

頭文件寫(xiě)的有問(wèn)題,應(yīng)該寫(xiě)為#include<reg51.h>,因?yàn)槟愕念^文件是reg51.h
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一级做a爰片性色毛片16美国 | 午夜精品一区二区三区在线播放 | 高清黄色毛片 | 国产资源一区二区三区 | 在线视频成人 | 高清国产午夜精品久久久久久 | 亚洲福利网 | 在线国产一区 | 亚洲一区在线播放 | 麻豆精品国产91久久久久久 | 欧美日韩在线一区 | 国产一区二区三区免费观看视频 | 激情91| 羞羞视频在线观看网站 | 超碰人人艹 | 一区二区三区不卡视频 | 日韩中文字幕2019 | 欧美视频区 | 国产精品久久久久久久久久久久久 | 熟女毛片 | 午夜视频在线 | 欧美黑人一级爽快片淫片高清 | 华人黄网站大全 | 亚洲综合一区二区三区 | 91看片官网 | 少妇精品久久久久久久久久 | 日韩欧美大片 | 成人亚洲片 | 成人在线亚洲 | 中文字幕免费在线 | 国产馆| 国产成人综合一区二区三区 | 精品一区二区av | 国产精品久久二区 | 一级片aaa | 欧美影院 | 欧美一区二区在线播放 | 一区二区三区国产 | 欧美久久久久久 | 免费观看羞羞视频网站 | 中文字幕一区二区三区精彩视频 |