微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 16*16静态显示改滚动

16*16静态显示改滚动

时间:10-02 整理:3721RD 点击:
////////////////////////////////////////////////////////////////
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
xdata uchar pa _at_ 0xff00;            //8255口地址
xdata uchar pb _at_ 0xff01;
xdata uchar pc _at_ 0xff02;
xdata uchar com_8255 _at_ 0xff03;
uchar code zi[]={
/*--  文字:  啊  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xEF,0x7E,0xA9,0x20,0xA9,0x20,0x69,0x2E,0x69,0x2A,0xA9,0x2A,0xA9,0x2A,
0xA9,0x2A,0xAF,0x2A,0xE9,0x2E,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x20,0x10,};
void hang_scan();
uchar temp,i;
void delay(uint t)
{
uchar a;
while(t--)
{
  for(a=0;a<75;a++){;}
}
}
void main()
{
com_8255=0x80; //将8255三个口作为基本输出
temp=0xfe;//初始值第一个                 
while(1)
{
  for(i=0;i<32;i+=2)
  {
   pa=P1=0xff;//行、清显示0xff;      
   pb=zi[i];  //列、写数据
   pc=zi[i+1];
   hang_scan();   
  }
}
}
void hang_scan()
{
if(i<16)  //逐行送数据
{
  pa=temp;
  temp=_crol_(temp,1);
  delay(1);
}
else
{
  P1=temp;
  temp=_crol_(temp,1);
  delay(1);
}
}
//////////////////////////////////////////////////////////////
以上是静态显示,滚动显示怎么改写?

人人。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top