资源描述:
《(例8)矩阵键盘数字输入》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/******************************************绿盾电子X-13多传感器开发板功能:驱动数码管显示数据时间:2011-8-23******************************************//*****************************************************///包含头文件#include#include/*************************************************
2、****/typedefunsignedcharuint8;//定义8位无符号变量typedefunsignedintuint16;//定义16位无符号变量typedefunsignedcharuchar;typedefunsignedintuint;typedefunsignedlongulong;/*****************************************************///定义引脚(根据硬件改变)sbitBCD6=P1^5;sbitBCD5=P1^4;sbitBCD4=P1^3;sbitBCD3=
3、P1^2;sbitBCD2=P1^1;sbitBCD1=P1^0;#defineBCD_PORTP0#defineKeyBroadP2sbitKeyBroad1=KeyBroad^7;sbitKeyBroad2=KeyBroad^6;sbitKeyBroad3=KeyBroad^5;sbitKeyBroad4=KeyBroad^4;sbitKeyBroad5=KeyBroad^3;sbitKeyBroad6=KeyBroad^2;sbitKeyBroad7=KeyBroad^1;sbitKeyBroad8=KeyBroad^0;/***
4、*******************************************************************************************/codeuint8BCD[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x40};//定义数字显示数组为常量,共阴极///*0,1,2,3,4,5,6,7,8,9,0.,1.,2.,3.,4.,5
5、.,6.,7.,8.,9.,-///函数声明/******************************************/voiddelay(unsignedinttime);voidDisplayBCD(ulongtemp);/******************************************///延时子函数//参数范围0-65536us@12MHzvoiddelay(unsignedinttime)//参数time大小{//决定延时时间长短while(time--);}/*****************
6、*************************///毫秒级延时函数voidmDelay(uchardelay){uchari;for(;delay>0;delay--){for(i=150;i>0;i--);}}/******************************************************************///数码管显示函数voidDisplayBCD(ulongtemp){BCD_PORT=BCD[temp/100000];BCD6=0;mDelay(10);BCD6=1;BCD_PORT=
7、BCD[temp/10000%10];BCD5=0;mDelay(10);BCD5=1;BCD_PORT=BCD[temp/1000%10];BCD4=0;mDelay(10);BCD4=1;BCD_PORT=BCD[temp/100%10];BCD3=0;mDelay(10);BCD3=1;BCD_PORT=BCD[temp/10%10];BCD2=0;mDelay(10);BCD2=1;BCD_PORT=BCD[temp%10];BCD1=0;mDelay(10);BCD1=1;}/*************************
8、*****************************************///键盘扫描函数ucharScanKey(void){KeyBroad=0xff;KeyBroad1=0;if(KeyBr