找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2645|回复: 1
收起左侧

16x64-M2点阵屏完整资料包(含单片机源码与电路)

[复制链接]
ID:258021 发表于 2018-4-26 17:28 | 显示全部楼层 |阅读模式
16*64点阵完整资料包
电路原理图如下:
0.jpg

注意事项:
1、提供的电源要插在扩展板的电源接口
2、下载程序用USB线通过stc-isp软件下载程序
3、提供2个测试程序,不做其他技术支持
4、由于版权问题,keil编程软件现在不提供,请自己百度下载,抱歉
5、发货收到的货,我们内置了程序,直接插上电源会有现象,一般烧写的是全亮的现象,请记住线是怎么接的,以免回头拆了忘记了
0.jpg

单片机源程序如下:
  1. /*-----------------------------------------------
  2.   名称:IO口高低电平控制
  3.   修改:无
  4.   内容:点亮P1口的1个LED灯闪烁
  5.         该程序是单片机学习中最简单最基础的,
  6.                 通过程序了解如何控制端口的高低电平
  7. ------------------------------------------------*/
  8. #include<reg52.h> //包含头文件,一般情况不需要改动,
  9. //头文件包含特殊功能寄存器的定义
  10. sfr AUXR = 0x8e;
  11. sfr P3M1=0xB1;
  12. sfr P3M0=0xB2;

  13. sfr P1M1=0x91;
  14. sfr P1M0=0x92;

  15. sbit KEY = P3^2;

  16. sbit T_STR = P3^7;      //锁存引脚,一般标识位STR
  17. sbit T_IO  = P1^4;       //数据引脚,屏上标识R1或者G1
  18. sbit T_CLK = P3^6;      //时钟引脚,标识位CLK
  19. sbit T_OE  = P3^5;

  20. unsigned char MoveBitNum,MoveBitNumtemp,IncNum;//移动位数,临时移动位数,大于一个字节增加字节数
  21. unsigned int HzNum;//汉字个数
  22. unsigned char buff[10];

  23. /*-----------------------------------------------
  24.              16x16汉字取模数据
  25. ------------------------------------------------*/
  26. unsigned char code hztest[]=    //取模选择字节倒序 ,正序得出的字是反的,可以在软件中设置自动倒叙
  27. {

  28. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  29. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


  30. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  31. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  32. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  33. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  34. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  35. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //前面一屏大小的空字符,不显示,这里根据屏的大小修改,这个是4个汉字屏
  36.                                                                                  //所以写入4个汉字
  37.         
  38. …………
  39. …………
  40. …………限于本文篇幅 余下代码请从51黑下载附件…………

  41. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  42. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  43. };

  44. /*-----------------------------------------------
  45.              向595写入一个字节
  46. ------------------------------------------------*/
  47. void InputByte(unsigned  char dat) //写一个字节
  48. {
  49.   unsigned char i;
  50.         
  51.    for(i=0;i<8;i++)
  52.         {
  53.          
  54.          T_IO=!(dat&0x01);
  55.          dat>>=1;
  56.          T_CLK=0;
  57.          T_CLK=1;
  58.          }
  59. }
  60. /*-----------------------------------------------
  61.                     延时程序
  62. ------------------------------------------------*/
  63. void Delay(unsigned int t)
  64. {
  65. while(--t);
  66. }


  67. /*------------------------------------------------
  68.                     主函数
  69. ------------------------------------------------*/
  70. void main (void)
  71. {
  72.         unsigned char count;//16行扫描数据,范围0-15
  73.         unsigned int i,  j;
  74.         unsigned char temp;
  75.         P3M0=0xff;//推挽
  76.         P1M0=0xff;
  77.         P3M1=0;
  78.         P1M1=0;

  79.         AUXR |= 0x80;                         //1T
  80.   //AUXR &= 0x7f;                        //12T

  81.                 while (1)         //主循环
  82.                 {

  83.                 i++;
  84.                 if(i==100)//更改流动速度,1T单片机和12T单片机速度大约5-8倍,注意更改参数
  85.                 {
  86.                                 i=0;
  87.                                 MoveBitNum++;
  88.                                 if(MoveBitNum==16)//每次移动完一个汉字大小后循环
  89.                                 {
  90.                                                 MoveBitNum=0;
  91.                                                 HzNum+=32;    //调用下一个汉字
  92.                                                 if(HzNum>=800)//需要显示的汉字个数乘以32,包括前面的一屏空字符的个数,后面清屏的空字符不包含在内,这里是(汉字个数+4)x32
  93.                                                 HzNum=0;   //完全显示完后循环调用
  94.                                 }
  95.                 }


  96.                         Delay(1);//控制扫描频率
  97.                         T_OE =0;
  98.                         for(j=0;j<5;j++) //取每个汉字的前2个字节,4个汉字组成一行,数据传输完成后锁存输出即可,这里需要多取出一个汉字作为缓冲
  99.                         {                //原来j=4,现在j=5.
  100.                                         buff[2*j]=hztest[HzNum+j*32+count*2];  //每次移动完一个汉字后,选择下一个汉字
  101.                                         buff[2*j+1]=hztest[HzNum+j*32+count*2+1];
  102.                         }

  103.                         if(MoveBitNum<8)                   //  判读移动距离是大于一个字节还是小于一个字节,因为一个字节左移右移最大只能8位
  104.                                 { IncNum=0; MoveBitNumtemp=MoveBitNum; }
  105.                         else
  106.                                 { IncNum=1; MoveBitNumtemp=MoveBitNum-8;}//大于8就减去8得到的数值还是小于8
  107.                         T_STR=0;       //锁存无效
  108.                         for(j=0;j<8;j++)          //按bit的方式移动缓冲区的内容,然后输出到595,即取出的数值每个字节左移一定的位数,
  109.                         {                                     //后面左移出的数据整合到前面的字节中,保持数据的连续性            
  110.                                         temp=(buff[j+IncNum]>>MoveBitNumtemp)|(buff[j+1+IncNum]<<(8-MoveBitNumtemp));//这句比较重要,需要自行拿出2个字节的数据模拟分析
  111.                                         InputByte(temp);//输出到595
  112.                         }//8个字节传输完锁存输出
  113.                         P1=count;//用P1口的前4位控制16行,屏内部通过4-16译码器工作,循环扫描16行
  114.                         T_STR=1;      //锁存有效,此时一行的数据显示到屏上

  115.                         T_OE =1;
  116.                         count++;
  117.                         if(count==16)
  118.                         count=0;
  119.                 }
  120. }

复制代码

所有资料51hei提供下载:

16x64-M2点阵屏资料.rar (1.02 MB, 下载次数: 87)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:239985 发表于 2018-5-10 15:50 | 显示全部楼层
用一下 课设需要 谢谢楼主
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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