请问这个代码哪里出错了?注释写的很详细,用keil写的。
时间:10-02
整理:3721RD
点击:
#include<reg52.h>
//定义无符号整形#define uint unsigned int
//位声明sbit dula=P2^6;sbit wela=P2^7;
//定义延时函数void delayms(uint xms){ uint j,k; for(j=xms;j>0;j--) for(k=110;k>0;k--); }
//定义显示数字编码uint code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x51,0x79,0x71};
//定义显示函数void display(uint s){ //段选 dula=1; P0=table[s]; dula=0; //消影 P0=0xff; //位选 wela=1; P0=0; wela=0;}
//矩阵键盘检测主函数void main(){ //定义一个用于检测高4位的变量 uint temp; P3=0xfe; temp=P3&0xf0;
//定义一个调用display函数的变量 uint num; num=0;
while(1) { //检测第一行是否被按下 if(temp!=0xf0) { //消抖 delayms(5); //再次检测是否确实被按下 if(temp!=0xf0) { //判断num是否超过16 if(num<16) { num++; } else { num=0; }
//消抖 delayms(5);
//判断是否按起 if(temp=0xf0) { //显示数字 display(num); } } } }}
//定义无符号整形#define uint unsigned int
//位声明sbit dula=P2^6;sbit wela=P2^7;
//定义延时函数void delayms(uint xms){ uint j,k; for(j=xms;j>0;j--) for(k=110;k>0;k--); }
//定义显示数字编码uint code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x51,0x79,0x71};
//定义显示函数void display(uint s){ //段选 dula=1; P0=table[s]; dula=0; //消影 P0=0xff; //位选 wela=1; P0=0; wela=0;}
//矩阵键盘检测主函数void main(){ //定义一个用于检测高4位的变量 uint temp; P3=0xfe; temp=P3&0xf0;
//定义一个调用display函数的变量 uint num; num=0;
while(1) { //检测第一行是否被按下 if(temp!=0xf0) { //消抖 delayms(5); //再次检测是否确实被按下 if(temp!=0xf0) { //判断num是否超过16 if(num<16) { num++; } else { num=0; }
//消抖 delayms(5);
//判断是否按起 if(temp=0xf0) { //显示数字 display(num); } } } }}