51单片机板子功能测试Word文件下载.docx

上传人:b****2 文档编号:1123448 上传时间:2023-04-30 格式:DOCX 页数:13 大小:15.80KB
下载 相关 举报
51单片机板子功能测试Word文件下载.docx_第1页
第1页 / 共13页
51单片机板子功能测试Word文件下载.docx_第2页
第2页 / 共13页
51单片机板子功能测试Word文件下载.docx_第3页
第3页 / 共13页
51单片机板子功能测试Word文件下载.docx_第4页
第4页 / 共13页
51单片机板子功能测试Word文件下载.docx_第5页
第5页 / 共13页
51单片机板子功能测试Word文件下载.docx_第6页
第6页 / 共13页
51单片机板子功能测试Word文件下载.docx_第7页
第7页 / 共13页
51单片机板子功能测试Word文件下载.docx_第8页
第8页 / 共13页
51单片机板子功能测试Word文件下载.docx_第9页
第9页 / 共13页
51单片机板子功能测试Word文件下载.docx_第10页
第10页 / 共13页
51单片机板子功能测试Word文件下载.docx_第11页
第11页 / 共13页
51单片机板子功能测试Word文件下载.docx_第12页
第12页 / 共13页
51单片机板子功能测试Word文件下载.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

51单片机板子功能测试Word文件下载.docx

《51单片机板子功能测试Word文件下载.docx》由会员分享,可在线阅读,更多相关《51单片机板子功能测试Word文件下载.docx(13页珍藏版)》请在冰点文库上搜索。

51单片机板子功能测试Word文件下载.docx

//显示位置

unsignedcharoldkey=0xff;

//保存按键接口状态

//引脚定义:

sbitSMG_q=P1^0;

//定义数码管阳级控制脚(千位)

sbitSMG_b=P1^1;

//定义数码管阳级控制脚(百位)

sbitSMG_s=P1^2;

//定义数码管阳级控制脚(十位)

sbitSMG_g=P1^3;

//定义数码管阳级控制脚(个位)

sbitSPK=P1^5;

//定义蜂鸣器

sbitJDQ=P1^4;

//定义继电器

sbitkey1=P3^7;

//定义按键1

sbitkey2=P3^6;

//定义按键2

sbitkey3=P3^5;

//定义按键3

sbitkey4=P3^4;

//定义按键4

sbitkey5=P3^3;

//定义按键5

sbitkey6=P3^2;

//定义按键6

/***************/

//参数范围0-65536

voiddelay(unsignedintt){while(t--);

}//显示函数,参数为显示内容

voiddisplay(unsignedintda){P0=0XFF;

da=da%100;

switch(l_posit){

case0:

//选择千位数码管,关闭其它位

SMG_q=0;

SMG_b=1;

SMG_s=1;

SMG_g=1;

P0=table[da/1000];

//输出显示内容

break;

case1:

//选择百位数码管,关闭其它位

SMG_q=1;

SMG_b=0;

case2:

//选择十位数码管,关闭其它位

SMG_s=0;

case3:

//选择个位数码管,关闭其它位

SMG_g=0;

P0=table[da%10];

}l_posit++;

//每调用一次将轮流显示一位

if(l_posit>

3)

l_posit=0;

}//扫描键盘

unsignedcharReadKey(void){unsignedcharlkey=0;

if((P3&

0xfc)!

=0xfc){//检测所有按键是否有按键按下

SPK=0;

//按键按下则蜂鸣器发声

delay

(10);

//有按键按下则延时一段时间,以消除按键拌动if(oldkey!

=(P3&

0xfc)){//检测按键未松开而且不是之前按下的按健就进入读键值,否则不作处理

oldkey=P3&

0xfc;

if(key1==0)

}lkey=1;

elseif(key2==0)

lkey=2;

elseif(key3==0)

lkey=3;

elseif(key4==0)

lkey=4;

elseif(key5==0)

lkey=5;

elseif(key6==0)//保存当前状态,为下一次扫描做判断,请看上一行//第一个键按下复值1

//第二个键按下复值2

//第三个键按下复值3

//第四个键按下复值4

//第五个键按下复值5

lkey=6;

//第六个键按下复值6}}

else{

oldkey=0xfc;

//如果都没有按键按下,将复值初始状态

SPK=1;

}returnlkey;

//无按键按下则退出蜂鸣

//主函数

voidmain(void){unsignedintldata=0;

unsignedchari;

for(i=0;

i<

8;

i++){}//作为显示的数据

P2<

<

=1;

//用移位法将1向高位移入一位

(25000);

P2=0xff;

//LED灯测试完毕

for(i=8;

i>

1;

i--){P2>

>

}for(i=1;

2;

i++){P2=0xfe;

(200);

P2=0xfd;

P2=0xfb;

P2=0xf7;

P2=0xef;

P2=0xdf;

P2=0xbf;

P2=0x7f;

P2=0xfe;

}P0=0;

(38000);

//数码管输出,准备测试每一位

//测试个位数码管

//关闭数码管,测试个位完毕

//十位

//

//百位

//千位数码管

P0=0;

(3500);

(300);

(500);

JDQ=0;

JDQ=1;

i++){P2<

(50);

}//测试蜂鸣器

//关闭蜂鸣器

//测试蜂鸣器

//测试继电器

//关闭继电器

while

(1){

switch(ReadKey()){

ldata++;

ldata--;

P2=0xfc;

ldata+=10;

P2=0xf8;

//循环扫描按键及显示

//读取键值做以下相应处理

//1键显示内容加1

//2键显示内容减1

//3键显示内容加10

case4:

ldata-=10;

//4键显示内容减10

P2=0xf0;

case5:

ldata+=100;

//5键显示内容加100

P2=0xe0;

case6:

ldata-=100;

//6键显示内容减100

if(P2==0x00)

{P2=0xff;

ldata=0;

}if(P2==0xfe){ldata=1234;

}if(P2==0xfc){ldata=2345;

}if(P2==0xf8){ldata=3456;

}if(P2==0xf0){ldata=4567;

}break;

}display(ldata);

//显示相应的数值,这里用函数的形式调用显示

(100);

}}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2