求助4*4按健数码管显示0~F 问题!

2019-07-15 22:55发布

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

uchar code DSY_CODE[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,
                                               0x6F,0x77,0x7C,0x39,0x5E,0x79};
uchar KEY0,KEY1 == 16;

uchar keyscan(void)
{
        uchar Tmp;
        P1 = 0xF0;                //按健是接在P1口上
        Tmp = P1;
        switch (Tmp)
        {
                case 0xE0: KEY0 = 0;   break;   //第1行  按健判断
                case 0xD0: KEY0 = 1;   break;          //第2行
                case 0xB0: KEY0 = 2;   break;   //第3行
                case 0x70: KEY0 = 3;   break;   //第4行
                default: break;
        }
        P1 = 0x0F;
        Tmp = P1;
        switch (Tmp)
        {
                case 0x0E: KEY1 = KEY0 +0;   break;   //第1列   按健判断
                case 0x0D: KEY1 = KEY0 +4;   break;  //第2列
                case 0x0B: KEY1 = KEY0 +8;   break;   //第3列
                case 0x07: KEY1 = KEY0 +12;  break;  //第4列
                default: break;
        }
        return KEY1;
}
void main(void)
{
       
        while(1)
        {
                P1 = 0xF0;
                if (P1 != 0xF0);
                keyscan();
                P0 = DSY_CODE[KEY1];               
        }       
}



//就是编译不了,提示有错误:

练习1.c(10): error C141: syntax error near '{'
练习1.c(12): error C231: 'P1': redefinition
练习1.c(12): error C231: 'P1': redefinition
练习1.c(13): error C231: 'Tmp': redefinition
练习1.c(13): error C247: non-address/-constant initializer
练习1.c(14): error C141: syntax error near 'switch'
练习1.c(15): error C129: missing ';' before '{'
Target not created

请问各位大神问题出在哪里呀?小弟在此先谢了。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
今日立夏
1楼-- · 2019-07-17 03:36
 精彩回答 2  元偷偷看……
安靜、只是①種
2楼-- · 2019-07-17 06:52
今日立夏 发表于 2013-8-20 10:55
给你看看,我的按键显示吧。。。顺便把原理图和仿真也给你。。。

好的,谢谢我下来学习一下.
今日立夏
3楼-- · 2019-07-17 11:26
安靜、只是①種 发表于 2013-8-20 10:57
好的,谢谢我下来学习一下.

不用啊。。。我们互相学习嘛。。。
安靜、只是①種
4楼-- · 2019-07-17 15:04
卍_☆_卍 发表于 2013-8-20 01:17
应该是tem=P1&0xf0  吧  如果不对那我也不清楚啦

试过了还是不行,不过还是谢谢你
玉疏
5楼-- · 2019-07-17 20:15
程序第七行  uchar KEY0=16,KEY1 = 16;
你定义错了 楼上都说了
建议加按键消抖 百度应该挺多的
安靜、只是①種
6楼-- · 2019-07-17 20:37
 精彩回答 2  元偷偷看……

一周热门 更多>