资源简介

8字流动显示点阵Protues仿真图 效果不错!

资源截图

代码片段和文件信息

/*****************************************************
       16*128 LED点阵屏 C 程序
******************************************************
声明:
     本程序供大家学习之用,用勿用于商业用途。尊重版权。
 
 编写:邓椿薪
 时间:2006年1月20日 晚
 邮箱:love2151@xinhuanet.com
*******************************************************

//595连级输出数据,138行驱动。P0_1为移动速度高速/*点阵显示汉字程串口输出字符数据,
//P2口输出行扫描信号P2_7输出595锁存信号。*/


#include 
#define uchar unsigned char
#define uint unsigned int
uchar yidh;    //YID为移动计数器,H为行段计数器。
uint zimuo;            //字模计数器
uchar code hanzi[];    //汉字字模
uchar BUFF[18];    //缓存
void in_data(void); //调整数据
void rxd_data(void); //发送数据
void sbuf_out();     //16段扫描
unsigned  code sw[16]={0x000x010x020x030x040x050x060x070x080x090x0a0x0b0x0c0x0d0x0e0x0f}; /*16行段码*/

//{0x600x620x640x660x680x6a0x6c0x6e
                   //0x700x720x740x760x780x7a0x7c0x7e}; /*16行段码*/

/********************************************/
void main(void)
{
 uchar id=10;
 yid=0;
 zimuo=0;    
 while(1)
  {
while(yid<16)        //数据移位。
{
for(i=0;i  {
 sbuf_out();
         }
yid++; //移动一步
}
   yid=0;
   zimuo=zimuo+32;     //后移一个字,
   if(zimuo>=3386) //总数减7个字。
   zimuo=0;
  }

 
}
/********************************/
void sbuf_out()
  {
for(h=0;h<16;h++)   //16行扫描
{
in_data();   //调整数据
rxd_data();   //串口发送数据
         P1=0x7f;                  //关闭显示。
         P1_7=1;   //锁存为高,595锁存信号
P1=sw[h];      //送段码

        

}
}

/******************************************************/
void in_data(void)
{
 char s;
for(s=8;s>=0;s--) //h为向后先择字节计数器,zimuoo为向后先字计数器
{
 BUFF[2*s+1]=hanzi[zimuo+32*s+2*h];  //把第一个字模的第一个字节放入BUFF0中第二个字模和第一个字节放入BUFF2中
 BUFF[2*s]=hanzi[zimuo+1+32*s+2*h];     // 把第一个字模的第二个字节放入BUFF1中第二个字模的第二个字节放入BUFF3中
}
}

/*******************************************************/
void rxd_data(void)             //串行发送数据
{
  char s;
  uchar inctempyidtemp;
  if(yid<8)
    inc=0;
  else 
    inc=1;
  for(s=0+inc;s<16+inc;s++)    //发送8字节数据
{
  if(yid<8) 
     tempyid=yid;
      else 
    tempyid=yid-8;
    temp=(BUFF[s]>>tempyid)|(BUFF[s+1]<<(8-tempyid)); //h1左移tempyid位后和h2右移8-tempyid相或,取出移位后的数据。
    //temp=255-temp;


 SBUF=temp;//把BUFF中的字节从大到小移位相或后发送输出。
 while(!TI);TI=0;  //等待发送中断
}
}
/*******************************************************/
uchar code hanzi[]=
{
0x000x000x000x000x000x000x000x000x000x000x000x000x000x000x000x00  
0x000x000x000x000x000x000x000x000x000x000x000x000x000x000x000x00
0x000x000x000x000x000x000x000x000x000x000x000x000x000x000x000x00
0x000x000x000x000x000x000x000x000x000x000x000x000x000x000x000x00
0x000x000x000x000x000x000x000x000x000x000x000x000x000x000x000x00  
0x000x000x000x000x000x000x000x000x000x000x000x000x000x000x000x00
0x0

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2010-07-31 07:46  ourdev_354010\
     目录           0  2010-08-04 11:20  ourdev_354010\8字文字流动显示\
     文件      260108  2010-02-26 18:41  ourdev_354010\8字文字流动显示\8字流动显示.DSN
     文件        1364  2010-07-31 08:06  ourdev_354010\8字文字流动显示\8字流动显示.PWI
     文件         336  2010-04-09 17:37  ourdev_354010\8字文字流动显示\8字流动显示.SDF
     文件      260108  2008-07-18 08:26  ourdev_354010\8字文字流动显示\Last Loaded 8字流动显示.DBK
     文件      121900  2010-08-03 13:07  ourdev_354010\8字文字流动显示\QQ截图未命名.png
     文件       30390  2010-07-31 07:56  ourdev_354010\8字文字流动显示\zsp.c
     文件       11563  2008-07-16 13:09  ourdev_354010\8字文字流动显示\zsp.hex

评论

共有 条评论