zoukankan      html  css  js  c++  java
  • (89c51)16x16点阵屏幕的实现

    基本组件是一个51单片机,一个74154译码器,四个MATRIX-8X8。

    考虑到单片机引脚有限,所以使用P0口和P2口的总共16根引脚选择列,而P1口的低4位接译码器,译出的一个低电平选择行。所以图像的显示机制大概如下:

    (1)按行扫描,不需要手动选择哪一行,只需要将行数设置为自动加一即可。

    (2)每一行先扫描左边的8位,再扫描右边的。

    (3)假如数组为 unsigned char table[],行数设置为i,那么当扫描到第i行时P0=table[2*i];P2=table[2*i+1]。

    例如:

    unsigned char table={0x01;0x02}
    unsigned char length=2;
    unsigned char i;
    while(1)
    {

      for(i=0;i<length;i++)   {     P0=table[2*i];     P2=table[2*i+1];   }//显示出来应该是00000001 00000010
    }

    因为我在自己的项目中将行和列调换了一下,很麻烦,还用了很多反相器,所以后面想来这样做就很简单了。因为觉得麻烦就没有调试了,有问题的话大概是高低位接反导致的,多加调试就好了。

  • 相关阅读:
    crontab机会任务监控
    Python 模块的一般处理
    MySQLdb autocommit
    MySQLdb callproc 方法
    Pthon MySQLdb 的安装
    CentOS7安装MySQL
    Linux中的网络
    Linux中的盘符问题
    类比的方法学习Performance_schema
    MySQL 设置数据库的隔离级别
  • 原文地址:https://www.cnblogs.com/viaduct/p/5851977.html
Copyright © 2011-2022 走看看