51单片机程序设计:[9]88点阵左移显示箭头

 时间:2026-02-16 05:32:59

1、根据取模软件取模,

uchar code TAB[]={0xFF,0xF7,0xFB,0x81,0xFB,0xF7,0xFF,0xFF};

根据电路图的不同,适当修改程序哦!代码特趴仗当前的硬件连接图图下图:

51单片机程序设计:[9]88点阵左移显示箭头

2、程序思想:  左移显示---如果将扫描方式改为列扫描,那么左右移动的程序就容易写了,但当点阵比较巨大并且硬件已经定下时,改变扫描方式不是好方法,甚至不可能实现。这里是以行扫描为例(逐行取字模),第一次取字码数组中的第1~8个数据到点阵列输入端,行码 扫描1~8行。第二次将第一次的 1~8个数据都循环左(右)移一位,并且将第9个数据的最高位移到第二次数据的最低处,再输轿矿入到列端口,行扫描1~8行。即每次扫描都要把前一次扫描的列码左移一位。

直接贴代码,显示的格式有点乱,先给个图片的代码,下个步骤给出源代码

51单片机程序设计:[9]88点阵左移显示箭头

3、源代码:

#include<reg52.h>#include "51hei.H"#define uchar unsigned char#define uint unsigned intuchar code TAB[]={0xFF,0xF7,0xFB,0x81,0xFB,0xF7,0xFF,0xFF};uchar i,t,j=0;delay(uchar t){ while (t--) {  ; }}void main(void){ uchar T,Y,Q,d; P2=0x75; while (1) {  for (Q=0;Q<8;Q++)   for (T=0;T<50;T++)   //速度   {    d=0x01;    out164(d);    for (i=0;i<8;i++)    {     Y=TAB[i+1]*256+TAB[i];     墨游Y=Y<<(7-Q)|Y>>Q;     P0=Y%256;     delay(60);     d=d<<1|d>>7;     P0=0xff; // 消隐,很重要,不加要红一片     out164(d);    }   } }}

51单片机程序设计:[9]88点阵左移显示箭头

51单片机程序设计:[9]88点阵左移显示箭头

  • C语言如何定义全局变量
  • matlab怎么使用C语言
  • Quartus II怎么快速设置仿真时钟波形
  • 如何在AD中放置12位分立幅度比较器?
  • simulink simscape仿真出现”powergui“缺失
  • 热门搜索
    旅游资讯网站 坦桑尼亚旅游 成都三亚旅游 溪口旅游 南昌旅游团 驴妈妈旅游网招聘 福清旅游景点 现在去哪旅游最合适 大连旅游景点地图 佳木斯旅游学校