如何驱动数码管段选不在同一组IO口的代码?

2019-07-14 15:23发布

比如,char []={0x3f,......}
P0=char[0];
P0口接数码管段选

假如一组IO口不足八位,段选接在不同组的IO,该如何驱动?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
hfgdf
1楼-- · 2019-07-14 18:13
比如,像STM8S003 一组IO没有八个,段选接在不同的组的IO口,该如何操作?
jhhfhgj
2楼-- · 2019-07-14 19:23
 精彩回答 2  元偷偷看……
nhonglan
3楼-- · 2019-07-14 22:51
原理都一样...
hfgdf
4楼-- · 2019-07-15 03:06
你的方法巳找了好几个师傅,他们试了一会都说不行,能给个实例吗?
jhdfvs
5楼-- · 2019-07-15 05:26
数码管刷新一般是放在中断里的,假如数码管有3个,定义个3字节的数组做buff,然后在1ms中断里逐个对IO赋值就行了,第一次进中断把buff[0]逐位赋给IO,第二次进用buff[1],依次循环
jhdfvs
6楼-- · 2019-07-15 07:25
更好看点的可以这样
typedef union
{
unsigned char bytes;
struct
{6
unsigned char bit0:1;
unsigned char bit1:1;
...
unsigned char bit7:1;
}bits;
}BITS_STRUCT;
BITS_STRUCT bits_buff[3];


使用:
bits_buff[0].bytes=0x55;
led0= bits_buff[0].bits.bit0;
led1= bits_buff[0].bits.bit1;
...

led7= bits_buff[0].bits.bit7;
呼。。。手机打字真累。。。

一周热门 更多>