单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 962|回复: 8
收起左侧

51单片机+74HC138驱动16*96点阵显示汉字的Proteus仿真+源代码

  [复制链接]
jinsheng7533967 发表于 2018-12-22 20:57 | 显示全部楼层 |阅读模式
16*96点阵仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
222.jpg

单片机源码如下:
  1. /*********************   希望那些还在论坛苦恼的朋友们能看到这款16*16汉字显示案例  ************************/

  2. #include<reg52.h>
  3. #define uchar unsigned char
  4. #define uint unsigned  int
  5. #define ulong unsigned long

  6. #define  CTRL_PORT  P2
  7. #define  DATA_PORT  P0
  8. #define  ADDR_PORT  P1

  9. uchar code *p;

  10. uchar code zifu[12][32]={
  11.         
  12.         {0x00,0x01,0x00,0x01,0x3F,0x01,0xA0,0x7F,0xA1,0x20,0x52,0x12,0x14,0x02,0x08,0x02,
  13.         0x18,0x02,0x18,0x06,0x24,0x05,0x24,0x09,0x82,0x18,0x61,0x70,0x1C,0x20,0x00,0x00},
  14.                         
  15.         {0x02,0x00,0x84,0x01,0x6C,0x3E,0x24,0x22,0x20,0x22,0x20,0x22,0x27,0x22,0x24,0x22,
  16.         0xA4,0x22,0x64,0x2A,0x24,0x12,0x04,0x02,0x04,0x02,0x0A,0x00,0xF1,0x7F,0x00,0x00},
  17.                                 
  18.         {0x80,0x00,0x80,0x00,0xFC,0x3F,0x80,0x00,0x90,0x0C,0xA0,0x04,0xC0,0x02,0xFE,0x7F,
  19.         0x80,0x01,0xC0,0x02,0xA0,0x04,0x90,0x18,0x8C,0x70,0x83,0x20,0x80,0x00,0x80,0x00},
  20.         
  21.         {0x60,0x02,0x1C,0x0A,0x10,0x12,0x10,0x12,0x10,0x02,0xFF,0x7F,0x10,0x02,0x10,0x12,
  22.         0x70,0x14,0x1C,0x0C,0x13,0x04,0x10,0x0A,0x90,0x49,0x10,0x50,0x14,0x60,0x08,0x40},
  23.         
  24.         {0x40,0x00,0x80,0x00,0xFE,0x7F,0x02,0x40,0x21,0x22,0x10,0x04,0x08,0x08,0x04,0x10,
  25.         0xF8,0x0F,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFE,0x3F,0x00,0x00},
  26.         
  27.         {0x04,0x00,0xC8,0x3F,0x08,0x20,0x02,0x20,0xE2,0x27,0x22,0x24,0x22,0x24,0xE2,0x27,
  28.         0x22,0x24,0x22,0x24,0xE2,0x27,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x28,0x02,0x10}
  29. };

  30. uchar select_hc138[][4]=
  31. {
  32.         {0x20,0x21,0x22,0x23},
  33.         {0x24,0x25,0x26,0x27},
  34.         
  35.         {0x10,0x11,0x12,0x13},
  36.         {0x14,0x15,0x16,0x17},
  37.         {0x18,0x19,0x1a,0x1b},
  38.         {0x1c,0x1d,0x1e,0x1f}
  39. };

  40. void delay(void)
  41. {
  42.         uchar i;
  43.         for(i=0;i<20;i++);        
  44. }

  45. void plany(void)
  46. {
  47.         uchar i,j,k;
  48.         for(k=0;k<6;k++)
  49.         {   
  50.                 for(j=0;j<1;j++)
  51.                 {                    
  52.                         for(i=0;i<8;i++)
  53.                         {
  54.                                 CTRL_PORT=select_hc138[k][0];
  55.                                 DATA_PORT=zifu[k][2*i];
  56.                                 
  57.                                 ADDR_PORT=i;                                          
  58.                                 delay();
  59.                                 
  60.                                 CTRL_PORT=select_hc138[k][1];
  61.                                 DATA_PORT=zifu[k][2*i+1];
  62.                                 
  63.                                 ADDR_PORT=i;  
  64.                                 delay();
  65.                         }                              
  66.                         for(i=8;i<16;i++)
  67.                         {
  68.                                 CTRL_PORT=select_hc138[k][2];
  69.                                 DATA_PORT=zifu[k][2*i];
  70.                                 
  71.                                 ADDR_PORT=i-8;                                            
  72.                                 delay();
  73.                                 
  74.                                 CTRL_PORT=select_hc138[k][3];
  75.                                 DATA_PORT=zifu[k][2*i+1];
  76.                                 
  77.                                 ADDR_PORT=i-8;     
  78.                                 delay();
  79.                         }         
  80.                 }           
  81.         }                                          
  82. }

  83. void PORT_init()//可放main中,初始化分开放main看起来简节一些
  84. {

  85.         TMOD=0x01;
  86.         TH0=0xb1;
  87.         TL0=0xe0;
  88.         ET0=1;
  89.         EA=1;
  90. }

  91. void main()
  92. {
  93.         PORT_init();

  94.         while(1)
  95.         {
  96.                 p=zifu;
  97.                 plany();//此处加一定的延时,让P=另外一个定义数组,就能达到换内容的效果
  98.         }
  99. }

  100. void timer0() interrupt 1 using 3
  101. {
  102.         TF0=0;
  103.         TH0=0xb1;
  104.         TL0=0xe0;
  105. }
复制代码

附上原码,仿真,取字工具

51知识点16vs16点阵基本操作.rar (342.7 KB, 下载次数: 40)

评分

参与人数 7黑币 +117 收起 理由
钻牛尖滴刘尖尖 + 10
areyouok + 12 绝世好帖!
Sawardeakar + 12
shuisheng + 15 很给力!
Trump1438 + 10 很给力!
#include51.h + 8 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

shuisheng 发表于 2019-1-26 18:52 | 显示全部楼层
我来过一阵子!哈哈哈!

评分

参与人数 3黑币 +42 收起 理由
站着说话不腰疼 + 15
钻牛尖滴刘尖尖 + 15
areyouok + 12 赞一个!

查看全部评分

回复

使用道具 举报

ty417502873 发表于 2019-1-28 15:47 | 显示全部楼层
学习一下。
回复

使用道具 举报

无效楼层,该帖已经被删除
sheng7533967 发表于 2019-2-7 00:33 | 显示全部楼层
真的不错!来你空间好好看了看
回复

使用道具 举报

站着说话不腰疼 发表于 2019-2-9 13:59 | 显示全部楼层
很不错,学习了
回复

使用道具 举报

就你?呸! 发表于 2019-2-11 13:33 | 显示全部楼层
强大,好人啊!
回复

使用道具 举报

春风十里吹死你 发表于 2019-2-19 19:21 | 显示全部楼层

强人啊!么么哒!
回复

使用道具 举报

天下第一刀 发表于 2019-2-19 23:42 | 显示全部楼层
很不错,学习了,厉害厉害
回复

使用道具 举报

zhengchong60 发表于 2019-3-7 23:08 | 显示全部楼层

收下了,学习一下。
回复

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机 联系QQ:125739409;技术交流QQ群582644647

Powered by 单片机教程网

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