一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 1611|回复: 2

请各位高手帮我看看我这个上移程序哪里出问题咯啊

[复制链接]
发表于 2012-5-28 21:38 | 显示全部楼层 |阅读模式
#include<regx52.h>
#define uchar unsigned char  
#define uint unsigned int
#define speed 2     //定义显示的速度
//#define R1   P2;     
//#define R2   P0;   
sbit  CLK=P3^1;
sbit  R1=P2^0;     //上半屏数据端口
sbit  R2=P2^1;     //下半屏数据端口   
uint word;
uchar yd,h;      //yd为位移量(即移动量),h为138行选信号
uchar buff1[10];     //buff的取值与要显示的字有关系,比如按16*16的字的四字移动过来算,那么它就要多留一个字的空间,取值=5*2=10
uchar buff2[10];
uchar code tab[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};  //对应的行选段代码
uchar code hz[][32];
void loadoneline(void);      //装载函数
void sendoneline(void);      //发送函数
void send_595(uchar data1,uchar data2);
void main(void);
void main(void)
{
uchar i;
yd=0,word=0;
{
  while(1)
  {
   while(yd<16)
   {
    for(i=0;i<speed;i++)
{
        for(h=0;h<16;h++)
     {
      loadoneline();
     sendoneline();
    P1_4=1;
    P1_7=1;
    P1=tab[h];
    P3_1=1;
     }
}  
yd++;
   }
   yd=0,word=word+4;
   if(word>20)word=0;
  }
}
}
void loadoneline(void)
{
uchar s;
for(s=0;s<4;s++)
{
   if(h+yd<16)
   {
     buff1[2*s]=hz[word+s][2*(h+yd)];
  buff1[2*s+1]=hz[word+s][2*(h+yd)+1];
  buff2[2*s]=hz[word+s+4][2*(h+yd)];
  buff2[2*s+1]=hz[word+s+4][2*(h+yd)+1];
   }
   else
   {
  buff1[2*s]=hz[word+s+4][2*(h+yd-16)];
  buff1[2*s+1]=hz[word+s+4][2*(h+yd-16)+1];
  buff2[2*s]=hz[word+s+8][2*(h+yd-16)];
  buff2[2*s+1]=hz[word+s+8][2*(h+yd-16)+1];
   }
}
}
/**********************************上移发送一线数据函数***********************************/
void sendoneline()
{
char s;
for(s=7;s>=0;s++)
{
   send_595(buff1,buff2);
}
}
/**********************************模拟串口部分,调整数据**************************/
void send_595(uchar data1,uchar data2)
{
uchar i;
for(i=0;i<8;i++)
{
   
   R1=data1&0x01;
   R2=data2&0x01;
   CLK=0;
   CLK=1;
   data1=data1>>1;
   data2=data2>>1;
}
}



我调咯很久 还是不对 没有找出原因啊  望高手解答下 谢谢各位咯
 楼主| 发表于 2012-5-28 21:54 | 显示全部楼层
附上仿真图 这个是16*64的  不过没有关系 你只用管一个数据口就可以 我真的很急解决这个问题

4字流动显示.rar

28.37 KB, 下载次数: 214, 下载积分: 一乐金币 -1

回复

使用道具 举报

发表于 2012-5-28 22:19 | 显示全部楼层
程序我不会写,以前下载过一个6模式显示的,里面的写法你看看有没有可以参考的。

6模式显示.rar (2.49 KB, 下载次数: 201)
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2026-3-13 22:40 , Processed in 0.032093 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表