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

时间:2024-10-13 00:58:15

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>#inclu蟠校盯昂de "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点阵左移显示箭头
© 手抄报圈