C51中8位数据能组成一个字节吗,送小姨子咯

2020-02-04 09:26发布

还是用实例说明一下,
8段数码管,数据口分别是a,b,c,d,e,f,g,h  为了布线方便,并没有接在同一个IO口上
实际是这样对应的
a---p1.0
b---p1.1
c---p1.2
d---p1.7
e---p3.4
f---p3.5
g---p3.6
h---p3.7

请问送数据的时候该怎么送呢?
不能像以前接同一个IO口那样,直接 led_data = 0x80; 了

请赐教~

送上小姨子


@_@~~ (原文件名:9000_1248748811W5D5.jpg)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
64条回答
mingyuexin1981
1楼-- · 2020-02-05 04:09
其实有一个软件,可以自定义io生成字模的。回家给你找找。小姨子我都收了~~
little_Monkey
2楼-- · 2020-02-05 05:58
点击此处下载 ourdev_466863.rar(文件大小:183K) (原文件名:LED-encode.rar)
用上面的软件取模,然后写个函数就可以了,开头定义一下各段的接口
void sendled_data(unsigned char i)
{
        unsigned char j;
        j=leddata;
        Led_a=j&0x01;
        Led_b=j&0x02;
        Led_c=j&0x04;
        Led_d=j&0x08;
        Led_e=j&0x10;
        Led_f=j&0x20;
        Led_g=j&0x40;
        Led_dp=j&0x80;
}
其中i为要显示的数在码表中的位置
yy888
3楼-- · 2020-02-05 10:56
调用下列函数:
void led_data_out(unsigned char a)
{ p1.0 =  a      & 0x01;
  p1.1 = (a >>1) & 0x01;
  p1.2 = (a >>2) & 0x01;
  p1.7 = (a >>3) & 0x01;  
  p3.4 = (a >>4) & 0x01;  
  p3.5 = (a >>5) & 0x01;  
  p3.6 = (a >>6) & 0x01;  
  p3.7 = (a >>7) & 0x01;  
}

将led_data = 0x80; 改写成 led_data_out(0x80); 即可。
shinehjx
4楼-- · 2020-02-05 16:08
楼上老许思路是对的但代码是错的
cowboy
5楼-- · 2020-02-05 18:38
 精彩回答 2  元偷偷看……
wear778899
6楼-- · 2020-02-05 21:02
51哦  可不是  AVR  呵呵  顶楼上

一周热门 更多>