微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 单片机编程想用矩阵键盘在按下K4~K7的时候分别用串口发送1.2.3.4到计算机上

单片机编程想用矩阵键盘在按下K4~K7的时候分别用串口发送1.2.3.4到计算机上

时间:10-02 整理:3721RD 点击:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delayms(uint xms);
int keyscan();
void inti();
uchar temp,a,flag;
uint num,num1;
void delayms(uint xms)
{
        uint x,y;
        for(x=xms;x>0;x--)
                for(y=110;y>0;y--);
}
void inti()
{
        TMOD=0x20;
        TH1=253;
        TL1==253;
        SCON=0x50;
        PCON=0x80;
        ES=1;
        TR1=1;
        EA=1;
}
int keyscan()
{
        P3=0xfd;
        temp=P3;
        temp=temp&0xf0;
        while(temp!=0xf0)
        {
                delayms(5);
                temp=P3;
                temp=temp&0xf0;
                while(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xed:num=1;break;
                                case 0xdd:num=2;break;
                                case 0xbd:num=3;break;
                                case 0x7d:num=4;break;
                        }
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                }
        }
        return num;
}
void main()
{
        P3=0xff;//硬件初始化
        inti();
        while(1)
        {
//                P1=keyscan();
                num1=keyscan();
                if(flag==1)
                {
                        ES=0;
                        flag=0;
                        SBUF=num1;
                        while(!TI);
                        TI=0;
                        ES=1;
                }                                 
        }       
}
void ser() interrupt 4
{
        RI=0;
        P1=SBUF;
        a=SBUF;
        flag=1;
}

我试过单独的把键盘程序,和串口收发程序的测试过可以的,但是放一起就不行,计算机串口助手只能在上电的时候接收到00 00,今天调了很久,求助大神。

TL1==253,两个等于不是把253赋值给TL1

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top