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

2025-11-05 06:14:22

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点阵左移显示箭头

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢