这个就是矩阵键盘的原理。
望采纳。。。。。。
设置个全局变量裤滚液,放在键盘识别函数中,并把它设定为用后自加。 这样每次胡物按下按键时调用键盘函数时候它就会备袭自加,到时候调出来显示就可以了 例如:unsigned char num=0(如果你的num可能大于255的话就用int)unsigned char keyscan(void) //键盘输入函数{unsigned char key……省略……return key;num } main(){unsigned char key…………key=keyscan()…………}楼上主程序似乎太臃肿了,键盘扫描最好还是写成函数形式。下面这个程序是应用在stc上的pwm程序,测试成功#includesfr CCON =0xD8 //PCA control register
sfr CMOD =0xD9
sfr CL =0xe9
sfr CH =0xF9
sfr CCAP0L=0xea
sfr CCAP1L=0xeb
sfr CCAP0H=0xfa
sfr CCAP1H=0xfb
sfr CCAPM0=0xda
sfr CCAPM1=0xdb
sbit CR=0xde//位寻址
void main(void)
{
CMOD=0x02 //使用系统时钟,时钟输入源频率fosc/2。PWM频率=fosc/2/256
/************************************
7 6 5 4 3 21 0
CIDL- - - cps2CPS1 CPS0 ECF
CIDL: =0时,空闲模式下PCA计数器继续工作;=1时,空闲模式下PCA计数器停止工作。
CPS2,CPS1,CPS0:PCA计数脉冲选择。010,定时器0的溢出,可以实现可调频率的PWM输出。
ECF: =1时,使能寄存器CCON CF位的中断;=0时,禁止桥笑猛该功能。
***************************************/
CL=0x00
CH=0x00
CCAP0L=0xc0//当CL小于CCAP0L时,输出为低大于时,输出为高。
CCAP0H=0x7f//当CL由ff变为00溢出时,CCAP0H装敏桥载到CCAP0L中,实现无干扰的更新PWM。
CCAP1L=0xc0//当CL小于CCAP1L时,输出为低大于时,输出为高。
CCAP1H=0xc0//当CL由ff变为00溢出时,CCAP1H装载升铅到CCAP1L中,实现无干扰的更新PWM。
CCAPM0=0X42//使能PWM模式,PWM0=1,ECOM0=1
CCAPM1=0X42//使能PWM模式,PWM1=1,ECOM1=1
CR=1 //启动PCA计数器
while(1)
{
CCAP0H=RF4432_TxRxBuf[4] //此处改变占空比
CCAP1H=RF4432_TxRxBuf[5]
CCAP2H=RF4432_TxRxBuf[6]/2.5
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)