找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4122|回复: 2
收起左侧

16X16点阵轮换显示多个汉字程序

[复制链接]
ID:568756 发表于 2019-8-14 15:09 | 显示全部楼层 |阅读模式
本程序通过时间定时器产生中断,每10ms刷新一次字符,每2S更新一个汉字。

单片机源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define unit unsigned int

  4. sbit DS=P2^0;                                                //595第14脚 串行数据输入端
  5. sbit SH_CP=P2^1;                                        //595第11脚 移位脉冲
  6. sbit ST_CP=P2^2;                                        //595第12脚 并出脉冲
  7. sbit EN_154=P2^3;
  8. unsigned int i;
  9. unsigned char code tab[][32]=
  10. {

  11. {0xDF,0xDB,0xDB,0xDB,0x01,0xDC,0xDD,0xDF,0xDF,0x00,0xDF,0xDD,0xD3,0x5F,0xDF,0xFF,
  12. 0xFF,0xF7,0xB7,0x7B,0x80,0xFD,0xBE,0xBF,0xDF,0xEC,0xF3,0xEB,0xDD,0xBE,0x07,0xFF},

  13. {0x7F,0x9B,0xD3,0xCB,0xDB,0xDB,0x13,0xCD,0xDD,0xDD,0xCD,0xD1,0xDC,0x5D,0x9F,0xFF,
  14. 0xFF,0xBE,0xDE,0x6E,0x76,0x78,0xB2,0xAA,0xDA,0xDA,0xAA,0xB2,0x7E,0x7F,0x7F,0xFF},

  15. {0xFD,0x1D,0xDD,0xDD,0xC1,0x7F,0x7F,0x00,0x7F,0x5F,0x6F,0x77,0x79,0x7F,0x7F,0xFF,
  16. 0xFF,0xBC,0x7D,0xBD,0xC1,0xFF,0xFF,0x00,0xBF,0xDE,0xF9,0xF7,0xEF,0xDF,0xBF,0xFF},

  17. {0xF7,0x77,0x77,0x00,0x77,0x57,0xEF,0x17,0xD8,0xDB,0x1B,0xCB,0xD3,0x1F,0xFF,0xFF,
  18. 0xF7,0xF7,0xF7,0x00,0xF7,0xF7,0xFF,0xC0,0xBD,0xBD,0xBC,0xBD,0xBD,0xBC,0x8F,0xFF}
  19. };

  20. void delay_ms(unsigned int ms)                                 
  21. {
  22.         unsigned int j;
  23.         while(ms--);
  24.         for(j=0;j<10;j++);
  25. }
  26. void WriteByte(unsigned char dat)
  27. {
  28. unsigned int k;
  29. for(k=0;k<8;k++)                //按照低位到高位的顺序传递数据
  30.         {
  31.         dat=dat>>1;                        //数据右移,低位先出
  32.         DS=CY;
  33.         SH_CP=0;
  34.         SH_CP=1;
  35.         SH_CP=0;
  36.         }
  37. }
  38.                                
  39. void main()
  40. {
  41.         EA=1;                                //使能总中断
  42.         TMOD=0x01;                        //设置T0为模式1
  43.         TH0=0xFC;                        //为T0赋初值,12M晶振下,定时1ms
  44.         TL0=0x18;
  45.         ET0=1;                                //使能T0中断
  46.         TR0=1;                                //启动T0
  47.         while(1);                                               
  48. }

  49. //定时器0中断服务函数
  50. void InterruptTimer0() interrupt 1
  51. {       
  52.         static unsigned int i=0;                        //动态扫描的索引
  53.         static unsigned int index=0;                //文字更新索引,等于要显示的字数
  54.         static unsigned int tmr=0;                        //2s软件定时器
  55.        
  56.         //重新加载初值。本程序定时时间的想法是:每1ms刷新一次字符,每2S更新一个汉字
  57.     TH0 = 0x0FC;
  58.     TL0 = 0x18;
  59.                 if(i<16)
  60.                          {
  61.                                 EN_154=1;
  62.                                 WriteByte(tab[index][i]);
  63.                                 WriteByte(tab[index][i+16]);
  64.                                 ST_CP=0;
  65.                                 ST_CP=1;
  66.                                 delay_ms(1);
  67.                                 ST_CP=0;
  68.                                 P1=i;
  69.                                 EN_154=0;
  70.                                 i++;
  71.                          }
  72.                          else
  73.                          {
  74.                                  i=0;
  75.                          }
  76.         tmr++;                                                                //下面代码完成2s改变一个文字
  77.         if(tmr>=2000)
  78.         {
  79.                 tmr=0;
  80.                 index++;
  81.                 if(index>3)
  82.                 {
  83.                         index=0;
  84.                 }
  85.         }
  86. }
复制代码

所有资料51hei提供下载:
16X16点阵轮换显示多个汉字程序.rar (203.21 KB, 下载次数: 22)


回复

使用道具 举报

ID:1 发表于 2019-8-15 01:21 | 显示全部楼层
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

ID:568756 发表于 2019-8-17 09:22 | 显示全部楼层
谢谢管理员提醒,本人初次共享内容。
现把电路图和程序中涉及到的取模设置等文件附上,希望对那些有需要的朋友有帮助。基本上本程序没有其他需要的内容了。

电路搭建

电路搭建

取模设置

取模设置
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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