RT 对于这个原理图我是这样做的:首先P0.0,P1.0,P5.4 P2.4为输出状态,P1.2为输入状态,根据灯码点亮上应的灯。
然后P2.4为输出低电平使灯不能这,P0.0,P1.0,P5.4为输入状态 P1.2为输出低电平状态 1ms后读取P0.0,P1.0,P5.4信号。
再是P0.0,P1.0,P5.4为输出高电平状态,P1.2为输入状态,1ms后读取P1.2的信号。
最后P0.0,P1.0,P5.4,P1.2为为输出高电平状态,P2.4为输入状态,1MS后读取接地按键的信号。
上面操作每1MS操作一次,因为灯不能同时点亮,所以灯分三次扫描,所以要3MS
之后设置好IO状态后延时准备读按键 1MS
读取按键,设置IO状态准备读按键 1MS
读取按键,设置IO状态准备读按键 1MS
读取按键, 处理输入信号 1MS
总共用了7MS,我的疑问是后4MS可不可认缩在1MS内做完,设置好IO准备读按键到读按按键的时间有20~30US,这样我的灯的亮度就提高一倍了。
若仿真时IO状态变换后,马上读按键,是无问题的,不过若按键挂在三极管(有在数码管位扫描)的基极上应该不行.l
之前有前辈说他就做的程序就是IO状态变换后马上读取按键信号,在高温的时候就出现按键误读的程况。
1MS的延时我觉得是绝对够的,但20~30US后可不可呢?或者有什么依据去判断的呢?若有在超高亮的数码管(反向电压漏电较严重的)也是这样吗?
还用AD输入通道转换.每次换道,采样的第一次A都是不准的,对于多通道AD读取要注意哪些。
还有我用的是台湾的芯片 如松翰,盛群。 |