MCU C51 LED点阵显示驱动器设计100

发布于 科技 2024-08-16
15个回答
  1. 匿名用户2024-02-01

    点阵原理是LED的两端都接IO,当正极为1,负极为0时,对应的LED亮起。

    以下是 8 8 的 LED 点阵程序,参考一下。

    #include

    #define uchar unsigned char#define uint unsigned intuchar code tab={

    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0xfe,0x82,0x80,0xc0,0x00,0x00,0x00,0x7c,0x82,0x82,0x82,0x7c,0x00,0x00,0x02,0x0e,0x72,0x80,0x70,0x0e,0x02,0x00,0x00,0x82,0xfe,0x92,0xba,0x82,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

    delay(uint t)

    uint a,b;

    for(a=0;afor(b=0;b<110;b++)void main(void)

    uint i,j,xx;

    uchar bittemp=0x01;

    while(1)

    for(i=0;i<40;i++)

    for(xx=0;xx<500;xx++)bittemp=0x80;

    for(j=0;j<8;j++)

    p2=0x00;冲 裁。

    p0= ~tab[i+8-j];

    p2 = bittemp;

    bittemp >>= 1;

  2. 匿名用户2024-01-31

    我可以帮你!

  3. 匿名用户2024-01-30

    你可以来找我,我以前做过产品,我可以告诉你我的经验吗?

  4. 匿名用户2024-01-29

    程序和具体电路可以结合起来看问题,有一种方法可以做到不用专门研究**和电路:把你调试用的所有汉字都改成0xff,看看汉字的位置是否全部显示出来,然后把第一个字节改成0x00或0xef,看看对应的显示是否正确, 您还可以更改其他字节的点阵。这样,您就可以找出问题所在!

    第 7-15 行是汉字的下半部分,所以让我们看看程序和电路。

  5. 匿名用户2024-01-28

    没有必要专门研究**和电路:把你调试用的汉字点阵全部改成0xff,看看汉字的位置是否全部显示出来,然后把第一个字节改成0x00或0xef,看看对应的显示是否正确,也可以把其他字节的点阵改成点阵。 这样,您就可以找出问题所在!

    第 7-15 行是汉字的下半部分,所以让我们看看程序和电路。

  6. 匿名用户2024-01-27

    ???您想用发光二极管模拟这样的功能吗?

  7. 匿名用户2024-01-26

    1.基于51的点阵屏显示: (1)点亮第一个8*8点阵:

    1.首先,在 Proteus、AT89C LS138、Matrix-8*8-Green 下选择我们需要的组件(此处使用绿色点阵)。 在 Proteus 中

    8*8点阵有四种颜色,分别是矩阵-8*8-绿色、矩阵-8*8-蓝色和矩阵-8*8-橙色

    matrix-8*8-red。

    请记住:红色的是上下选择; 选择以下颜色作为其他颜色的上行空间! 所有的点都选择在高列和低行中!

    也就是说,如果一个点位于低行信号和高列信号中,则该点被点亮! 这个结论是我们编程的基础。

    2.选择以上三个组件后,我们开始接线,如下图所示:

    这里 P2 是列选择,P3 作为行选择连接到 38 解码器。

    选择38解码器的原因:38解码器每次都可以输出对应IO口的低电平,正好与点阵屏的低电平相反,并节省了IO口,极大地方便了我们的编程和未来的扩展。

    3.让我们先点亮它,看看一个简单的程序:

    点亮奇数行和偶数列的点,效果如下图)。

    这是来源

    **8*8LED点阵屏显示***

    #include

    voiddelay(int

    z) 延时功能。

    voidmain()

    上面的程序实现了点亮这个 8*8 点阵的奇数行和偶数列的点的功能。 关键点是看while循环,首先选择线p3=0,此时38解码器的输入端为000,则输出端为01111111,即b0端为低,此时选择点阵屏的第一行, 然后我们被选中将0x55分配给 P2 端口,即 01010101,然后选择偶数列,然后是延迟。然后纠正第一对。

    第三行、第五行和第七行在同一列中被选中。 这将点亮奇数行和偶数列相交的点阵屏幕。

    学完这个程序后,我们会发现,其实点阵屏的原理就是这么简单,而且和数码管的动态显示非常相似,只是方式不同而已。

    对不起,我通过了三次**,没有传下去,郁闷! 希望大家能理解哈!

    但是,我的空间中有一个 word 文档。

  8. 匿名用户2024-01-25

    h应关闭图形显示功能,可以查看LCD数据表。

    2.本程序是通过判断P1 7的引脚来判断液晶是否繁忙。 这没有问题。 P1 不能永远0xff。

    如果您的 P1 插槽中有数据更改,即使您先将其全部设置为 1,它也会立即更改为不同的状态,并且不会一直0xff所有数据。

    3.反向显示意味着背景是黑色的,要显示的字符是白色的,这与通常的显示正好相反。

  9. 匿名用户2024-01-24

    问题 1:请参考 LCD 手册。

    问题 2:busy 是一个变量,其值等于 p1 的最高位数。 p1=0xff 是 51 需要的命令,如果要读取外部电平,必须先将高电平写到那个口中。 这是由于内部上拉电阻的影响。

    您可以参考教科书来了解 IO 端口的结构。 你把高写给P1,然后读它,这是它的实际电平值,可能是高的,也可能是低的。 busy 是液晶输出的电平值,不忙时为 0

    问题。 3. 你看过电影吗? 这就是反转的效果,说白了,就是黑白颠倒。

  10. 匿名用户2024-01-23

    呵呵 如上所述,51的嘴巴有些很特别,你输出的电平不高,你看不懂外部电平。 这是双向端口的缺点。 从概念上讲不容易理解。

    这感觉很奇怪,但当你仔细观察这些端口的内部硬件结构时,你就会明白它。 这非常有趣,你可以做一个非常灵活的设计。

  11. 匿名用户2024-01-22

    问题 1:我不知道您的 LCD 控制器是什么,但您应该查看该控制器的文档以获取非常详细的说明;

    问题2:51 MCU I O口既可以是输入也可以是输出,当你想读取外部输入数据时,先把对应的位置放在高位,如果外部数据低,它会拉下对应的引脚,不管你原来写的是什么,0xff还是0x00,所以LCD在不忙的时候都会把引脚拉低。

    问题3:反向显示是指背景和要显示的数据完全颠倒,使原来显示的颜色变成背景色,原来的背景色变成数据颜色。

  12. 匿名用户2024-01-21

    51当使用单片机作为输入端口时,必须使用IO端口作为输入端口,因为要判断显示屏的状态,所以必须将IO端口,也就是您程序中的P1端口设置为输入端口。

    在显示屏上,通常是我们看到的字符的痕迹被点亮,而反向显示则恰恰相反,就是点亮看不见的部分。 和邮票一样,有凸有凹,如果我们说正常显示是凸,那么反向显示就是凹显示。

  13. 匿名用户2024-01-20

    这是16x16点阵显示的汉字,如果想16x16显示温度可以加一下,但是显示起来不是很好,有关于温度的程序也可以在我的**上找到。或。

  14. 匿名用户2024-01-19

    您的硬件电路是什么样的,使用哪些 IO 端口?

  15. 匿名用户2024-01-18

    我没有读过你的程序,我无法理解它。

    我认为如此:

    1:词块是第一个词的图形显示,即一个词以图形方式显示。

    如果使用 4 个 8*8 点组成 16*16 点阵,则一个单词被分成 4 个单词块。

    2:您可以使用行来控制列扫描,也可以使用列来控制行扫描。

    例如,这个大字符被分成四个并分别扫描。

相关回答
9个回答2024-08-16

首先,您需要了解点阵显示的原理。

8*8点阵应显示图片,通常以扫描的形式显示。 晶格内部发光阵列每一排的阴极连接在一起,形成一条共同的阴极线; 每个纵向阳极连接在一起,形成一条共同的正极线。 这样,8*8点阵共有8条共阴线和8条共阳线。 >>>More

7个回答2024-08-16

建议将 delay:mov r1,

最好将其更改为 delay:mov r1, 200。 >>>More

4个回答2024-08-16

买我的 USB 驱动器,先把我变成最好的。

8个回答2024-08-16

这暗示了第 12、13 和 14 行中存在语法错误。 双击提示,您将被重定向到相应的行。 检查标点符号是否为英文格式,说明是否合法等。 >>>More

16个回答2024-08-16

前两句话是自定义字符。

设置起始地址0x40后,可以写入8字节的点阵数据,即形成一个字符。 >>>More