这个stc8c2k32s2用6个IO做8个按键怎么写呢?

这个stc8c2k32s2用6个IO做8个按键怎么写呢?,第1张

这个就是矩阵键盘呗,例如当P3.2为低电平了,此时如果P3.4到P3.7读取到低电平,就是左侧的4个按键中谈嫌的对应的按键按下了。然后让P3.3为低电平,此时如果P3.4到P3.7读取到低电平,含枯手就是右侧败缺的4个按键中的对应的按键按下了。然后在让P3.2为低电平,就这样快速且反复的运行。

这个就是矩阵键盘的原理。

望采纳。。。。。。

设置个全局变量裤滚液,放在键盘识别函数中,并把它设定为用后自加。 这样每次胡物按下按键时调用键盘函数时候它就会备袭自加,到时候调出来显示就可以了 例如: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

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12560349.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存