该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
const unsigned char tb[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//0-9和不显示
//延时函数
void delay1ms()
{
unsigned int i, j;
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
//-------------------------键盘处理函数
/*---根据按下的键得出值,本函数处理4*4键盘,从左到右为11,12,13,14
21,22.......44.*/
unsigned int key()
{ unsigned int lie,hang,sum;
P2=0x0f; //-----行为零,列扫描
if(P2!=0xf0)
{
delay1ms();
if(P2!=0x0f)
{
if(P2==0x0e) lie=1;
if(P2==0x0d) lie=2;
if(P2==0x0b) lie=3;
if(P2==0x07) lie=4;
}
P2=0xf0;
if(P2!=0xf0)
{
if(P2==0xe0) hang=10;
if(P2==0xd0) hang=20;
if(P2==0xb0) hang=30;
if(P2==0x70) hang=40;
}
else return 100;
sum=hang+lie;
}
return sum;
}
//键值转化 转化为1-9,0
unsigned int ken()
{
unsigned int sum,um;
sum=key();
if(10
if(sum==21) um=5;
if(sum==22) um=6;
if(sum==23) um=7;
if(sum==24) um=8;
if(sum==31) um=9;
if(sum==32) um=0;
if(sum>=33) um=100;
return um;
}
void ledn(unsigned int i)//输入0-9,显示0-9,输入其他不显示
{ if(i>9) i=10;
P0=tb[i];
}
//------主函数
void mian()
{
unsigned int sss;
while(1)
{ sss=ken();
while(1)
{
ledn(sss);
if(P2!=0x0f) break;
}
}
}
链接结果:
Build target 'Target 1'
linking...
*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
NAME: MIAN/KS
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: MAIN
MODULE: C:\KEIL\C51\LIB\C51S.LIB (?C_INIT)
*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: MAIN
MODULE: C:\KEIL\C51\LIB\C51S.LIB (?C_INIT)
ADDRESS: 1000010H
Program Size: data=24.0 xdata=0 const=0 code=554
Target not created
翻译:
建立目标的目标1 '
连接……
L16 * * *警告:未经邀请的功能,忽视了叠加过程
名称:面/ KS
* * *错误L127:未解决的外部标志
象征:主要
基尔\ C51单片机模块:C:\ \ LIB \ C51。自由(? C_INIT)
* * *错误L128:引用解析的外部
象征:主要
基尔\ C51单片机模块:C:\ \ LIB \ C51。自由(? C_INIT)
地址:1000010 h
程序大小:数据= 24.0 xdata = 0 const代码= 554 = 0
目标不会创建