设为首页 收藏本站
开启辅助访问 切换到宽版

  找回密码
  立即注册

QQ登录

只需一步,快速开始

快捷导航
  • 论坛
  • 问答区
  • 单片机教程
  • 单片机DIY
  • 电子DIY
  • 帮助

热门: 51单片机 | 24小时必答区 | 单片机教程 | 单片机DIY制作 | STM32 | Cortex M3 | 模数电子 | 电子DIY制作 | 音响/功放 | 拆机乐园 | Arduino | 嵌入式OS | 程序设计

搜索
» 论坛 嵌入式/单片机论坛 51单片机 16*16点阵原理图+pcb+单片机程序
返回列表 发新帖
查看: 5605|回复: 2
打印 上一主题 下一主题
收起左侧

16*16点阵原理图+pcb+单片机程序

[复制链接]
跳转到指定楼层
楼主
ID:127163 发表于 2016-6-19 08:31 | 只看该作者 | 只看大图 回帖奖励 | 倒序浏览 | 阅读模式
单片机16*16点阵的资料可以显示汉字 很全


单片机16x16点阵原理图


单片机16x16点阵pcb

  1. #include <reg52.h>
  2. #include<intrins.h>
  3. typedef  unsigned char   uchar;
  4. typedef  unsigned int    uint;
  5. typedef  unsigned long   uint32;  

  6. code uchar graph[] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  7.                       0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,       
  8.                                           0xFF,0xFF,0x1F,0xF8,0x0F,0xF0,0xCF,0xF3,0xCF,0xF3,0xCF,0xF3,0xCF,0xF3,0xCF,0xF3,   /**0**/
  9.                       0xCF,0xF3,0xCF,0xF3,0xCF,0xF3,0xCF,0xF3,0xCF,0xF3,0x0F,0xF0,0x1F,0xF8,0xFF,0xFF,
  10.                           0x7F,0xFC,0x3F,0xFC,0x1F,0xFC,0x0F,0xFC,0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,   /**1**/
  11.                       0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,0x0F,0xE0,0x0F,0xE0,
  12.                           0xFF,0xFF,0x1F,0xF8,0x0F,0xF0,0xCF,0xF3,0xFF,0xF3,0xFF,0xF3,0xFF,0xF1,0xFF,0xF8,   /**2**/
  13.                       0x7F,0xFC,0x3F,0xFF,0x9F,0xFF,0xCF,0xFF,0xCF,0xF3,0x0F,0xF0,0x1F,0xF8,0xFF,0xFF,
  14.                       0xFF,0xFF,0x1F,0xF8,0x0F,0xF0,0xCF,0xF3,0xFF,0xF3,0xFF,0xF3,0xFF,0xF1,0xFF,0xF8,   /**3**/
  15.                       0xFF,0xFC,0xFF,0xF9,0xFF,0xF1,0xFF,0xF3,0xCF,0xF3,0x0F,0xF0,0x1F,0xF8,0xFF,0xFF,
  16.                           0xFF,0xFF,0xBF,0xFD,0xDF,0xFC,0xDF,0xFC,0xCF,0xFC,0xCF,0xFC,0xCF,0xFC,0xCF,0xFC,   /**4**/
  17.                       0x0F,0xE0,0x0F,0xE0,0xFF,0xFC,0xFF,0xFC,0xFF,0xFC,0xFF,0xFC,0xFF,0xFC,0x7F,0xF8,
  18.                       0xFF,0xFF,0x0F,0xF0,0x0F,0xF0,0xCF,0xFF,0xCF,0xFF,0xCF,0xFF,0xCF,0xFF,0x0F,0xF8,   /**5**/
  19.                       0x0F,0xF0,0xFF,0xF3,0xFF,0xF3,0xFF,0xF3,0xCF,0xF3,0x0F,0xF0,0x1F,0xF8,0xFF,0xFF,
  20.                       0xFF,0xFF,0x1F,0xE0,0x0F,0xF0,0xCF,0xFF,0xCF,0xFF,0xCF,0xFF,0xCF,0xFF,0x0F,0xF0,   /**6**/
  21.                       0x0F,0xE0,0xCF,0xE7,0xCF,0xE7,0xCF,0xE7,0xCF,0xE7,0x0F,0xE0,0x1F,0xF0,0xFF,0xFF,
  22.                           0xFF,0xFF,0x0F,0xF8,0x0F,0xF0,0xFF,0xF3,0xFF,0xF3,0xFF,0xF9,0xFF,0xF8,0x7F,0xFC,   /**7**/
  23.                       0x7F,0xFE,0x3F,0xFE,0x3F,0xFF,0x3F,0xFF,0x3F,0xFF,0x3F,0xFF,0x3F,0xFF,0x3F,0xFF,
  24.                       0xFF,0xFF,0x1F,0xF8,0x0F,0xF0,0xCF,0xF3,0xCF,0xF3,0xCF,0xF3,0xCF,0xF3,0x0F,0xF0,   /**8**/
  25.                       0x0F,0xF0,0xCF,0xF3,0xCF,0xF3,0xCF,0xF3,0xCF,0xF3,0x0F,0xF0,0x1F,0xF8,0xFF,0xFF,
  26.                       0xFF,0xFF,0x1F,0xF8,0x0F,0xF0,0xCF,0xF3,0xCF,0xF3,0xCF,0xF3,0xCF,0xF3,0x0F,0xF0,   /**9**/
  27.                       0x1F,0xF0,0xFF,0xF3,0xFF,0xF3,0xFF,0xF3,0xCF,0xF3,0x0F,0xF0,0x1F,0xF8,0xFF,0xFF,
  28.                           0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  29.                       0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,       
  30.                           0xFF,0xFF,0xFF,0xFD,0xDF,0xFD,0xDF,0xFD,0xDF,0xFD,0xDF,0xFD,0xDF,0xFD,0xDF,0xFB,   /**八**/
  31.                       0xEF,0xFB,0xEF,0xFB,0xEF,0xF7,0xF7,0xF7,0xF7,0xEF,0xFB,0xEF,0xFB,0xDF,0xFD,0xBF,
  32.                           0xFF,0xFD,0xE1,0xFB,0x2D,0x80,0xB5,0xBF,0xD5,0xDF,0x79,0xE0,0xF5,0xFF,0xED,0xFF,   /**院**/
  33.                       0x2D,0x80,0xED,0xF6,0xE9,0xF6,0xF5,0xF6,0x7D,0xB7,0x7D,0xB7,0xBD,0x8F,0xDD,0xFF,
  34.                           0xEF,0xFB,0xEF,0xFB,0x81,0xC0,0xEF,0xFB,0xC7,0xF1,0xAB,0xEA,0xEC,0x9B,0xDF,0xFF,   /**梦**/
  35.                       0x1F,0xF0,0xEF,0xF7,0xD7,0xFB,0xBB,0xFD,0x7F,0xFE,0xBF,0xFF,0xCF,0xFF,0xF1,0xFF,
  36.                                           0xEF,0xFF,0xEF,0xE0,0xEF,0xEE,0x81,0xEE,0xEF,0xE0,0xE7,0xEE,0xC7,0xE0,0xAB,0xEE,   /**想**/
  37.                       0xED,0xEE,0xEF,0xE0,0x7F,0xFF,0xEF,0xDE,0xED,0xB6,0xED,0xB7,0x1E,0xF0,0xFF,0xFF,
  38.                           0x7F,0xFF,0xFF,0xFE,0x07,0xC0,0xF7,0xDF,0xF7,0xDF,0xF7,0xDF,0x07,0xC0,0xF7,0xFF,   /*启*/
  39.                                           0xF7,0xFF,0xF7,0xFF,0x17,0xC0,0xDB,0xDF,0xDB,0xDF,0xDD,0xDF,0x1E,0xC0,0xDF,0xDF,
  40.                           0xF7,0xFD,0xFB,0xFB,0xC1,0xFF,0x5D,0xC0,0xD9,0xFF,0xD5,0xFF,0xD5,0xF0,0xC0,0xF6,   /**航**/
  41.                       0xDD,0xF6,0xD9,0xF6,0xD5,0xF6,0xD5,0xB6,0xDD,0xB6,0x5D,0xB7,0x55,0x8F,0xAE,0xFF,
  42.                                           0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  43.                       0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF       
  44.                                           };

  45. /*********74LS154N端口定义**********/
  46. sbit ENLED = P0^0;
  47. sbit A = P0^4;
  48. sbit b = P0^3;
  49. sbit C = P0^2;
  50. sbit D = P0^1;

  51. /*********74HC595N端口定义**********/
  52. sbit DIN  = P0^5;  //SER
  53. sbit SHCP = P0^6;  //SRCK
  54. sbit STCP  = P0^7; //RCK

  55. uint  counter = 0,speed = 200,T = 0;


  56. void delays(uint i)
  57. {
  58.   while(i--);
  59. }
  60.                                           
  61. uchar keyscan(void)  //键盘扫描函数,使用行列反转扫描法
  62. {
  63. uchar cord_h,cord_l;//行列值中间变量
  64. P2=0xf0;            //行线输出全为0
  65. cord_h=P2&0xf0;     //读入行
  66. if(cord_h!=0xf0)    //先检测有无按键按下
  67. {
  68.   delays(1000);        //去抖
  69.   if(cord_h!=0xf0)
  70.   {
  71.     cord_h=P2&0xf0;  //读入行
  72.     P2=cord_h|0x0f;  //输出当前行
  73.     cord_l=P2&0x0f;  //读入列
  74.     return(cord_h+cord_l);//键盘最后组合码值
  75.    }
  76.   }
  77. return(0x00);     
  78. }
  79.                                           
  80. uint GongNeng()
  81. {   
  82.         uint keys,t;
  83.         keys = keyscan();
  84.         switch(keys)
  85.         {
  86.                         case 0xEE:t = 1;T =  0; break;  /* 1 */
  87.                         case 0xDE:t = 2;T = 192; break;  /* 2 */
  88.                         case 0xBE:t = 3;T = 176; break;  /* 3 */
  89.                         case 0x7E:t = 0; break;  /* 0 */
  90.                         case 0xED:t = 4;T =  16; break;  /* 4 */
  91.                         case 0xDD:t = 5;T = 192; break;  /* 5 */
  92.                         case 0xBD:t = 6; break;  /* 6 */
  93.                         case 0x7D:if(speed <=100)speed -= 10;if(speed >100 && speed <=300)speed -= 20;if(speed >300)speed -= 200;if(speed <=20) speed = 20;break;  /*加速*/
  94.                         case 0xEB:t = 7; break;  /* 7 */
  95.                         case 0xDB:t = 8; break;  /* 8 */
  96.                         case 0xBB:t = 9; break;  /* 9 */
  97.                         case 0x7B:if(speed <=200)speed += 20;if(speed >200 && speed <=1000)speed += 100;if(speed >1000)speed += 50;if(speed >=3000) speed = 3000;break;  /*减速*/
  98.                         case 0xE7:t =   0; break;
  99.                         case 0xD7:t =   0; break;
  100.                         case 0xB7:t =   0; break;
  101.                         case 0x77:t =   0; break;
  102.         }
  103.         return t ;
  104. }



  105. /******************************************************************************
  106. * 函  数  名      : Write_Data_To_HC595
  107. * 描      述      : 写数据到74HC595
  108. * 输      入      : 无.
  109. * 返      回      : 无.
  110. *******************************************************************************/
  111. void Write_Data_To_HC595( uchar RowData )
  112. {
  113.     uchar i;

  114.         for( i = 0; i < 8; i++ )
  115.     {                                                                                                                                                               /* 拉低74HC595存储寄存器时钟 */
  116.         SHCP = 0;                                     /* 拉低74HC595移位寄存器时钟 */
  117.         RowData <<= 1;                                /* 数据右移,因为是大端模式 */
  118.         DIN = CY;
  119.         SHCP = 1;                                     /* 时钟上升沿,数据移入74HC595 */        
  120.     }
  121. }




  122. void timer1_init()
  123. {
  124.         TMOD |= 0x10;
  125.         TMOD &= 0xdf;  
  126.         TH1   = 0xFC;
  127.         TL1   = 0x67;
  128.         TR1   = 1;
  129. }
  130. void int_init()
  131. {
  132.         ET1 = 1;
  133.         EA  = 1;
  134. }
  135. void refresh_led()
  136. {
  137.           static uchar j = 0;
  138.             Write_Data_To_HC595( 0xFF );
  139.             Write_Data_To_HC595( 0xFF );
  140.                 STCP = 1;                                       /* 上升沿,将移位寄存器数据锁存到存储寄存器 */
  141.         STCP = 0;       
  142.                 switch(j)
  143.            {
  144.                    case  0: A = 0;b = 0;C = 0;D = 0;break;
  145.                 case  1: A = 1;b = 0;C = 0;D = 0;break;
  146.                 case  2: A = 0;b = 1;C = 0;D = 0;break;
  147.                 case  3: A = 1;b = 1;C = 0;D = 0;break;
  148.                 case  4: A = 0;b = 0;C = 1;D = 0;break;
  149.                 case  5: A = 1;b = 0;C = 1;D = 0;break;
  150.                 case  6: A = 0;b = 1;C = 1;D = 0;break;
  151.                 case  7: A = 1;b = 1;C = 1;D = 0;break;
  152.                 case  8: A = 0;b = 0;C = 0;D = 1;break;
  153.                 case  9: A = 1;b = 0;C = 0;D = 1;break;
  154.                 case 10: A = 0;b = 1;C = 0;D = 1;break;
  155.                 case 11: A = 1;b = 1;C = 0;D = 1;break;
  156.                 case 12: A = 0;b = 0;C = 1;D = 1;break;
  157.                 case 13: A = 1;b = 0;C = 1;D = 1;break;
  158.                 case 14: A = 0;b = 1;C = 1;D = 1;break;
  159.                 case 15: A = 1;b = 1;C = 1;D = 1;break;
  160.                 default: break;
  161.                 }               
  162.                 Write_Data_To_HC595( graph[ ( T+j )* 2 + 1 ] );        /* 先写高字节数据到595 */
  163.         Write_Data_To_HC595( graph[ ( T+j )* 2 ] );                /* 后写低字节数据到595 */
  164.         STCP = 1;                                       /* 上升沿,将移位寄存器数据锁存到存储寄存器 */
  165.         STCP = 0;                                                                        /* 写入行号,超过7后,自动切换到下半屏显示 */
  166.                
  167.             if(15 == j++) j = 0;
  168.                
  169.                
  170. }

  171. main()
  172. {
  173.         ENLED = 0;
  174.         timer1_init();
  175.         int_init();
  176.         while(1);
  177.        
  178. }
  179. void interrupt_timer1()        interrupt 3
  180. {
  181.           TH1 = 0xFC;
  182.           TL1 = 0x67;
  183.           counter++;
  184.           if(counter == speed)
  185.              {
  186.                          counter = 0;
  187.                         switch(GongNeng())
  188.                         {
  189.                                 case 0:{T += 0;} break;
  190.                                 case 1:{T += 16;if(T >= 176){T= 0;}}break;
  191.                                 case 2:{T += 16;if(T >= 208){T=192;}}break;
  192.                                 case 3:{T += 16;if(T >= 292){T=192;}}break;
  193.                                 case 4:{T +=  1;if(T >= 176){T= 16;}}break;
  194.                                 case 5:{T +=  1;if(T >= 288){T=192;}}break;
  195.                                 case 6:{T += 1;if(T>=176)T = 16;} break;
  196.                                 case 7:{T += 1;if(T>=288)T = 192;} break;
  197.                                 case 8:{T += 16;if(T>=192)T = 16;} break;
  198.                                 case 9:{T += 16;if(T>=292)T = 192;} break;
  199.                                 default: break;
  200.                         }
  201.            /* if(GongNeng() == 1)
  202.                         {                       
  203.                         T += 16;
  204.                         if(T >= 176){T=16;}
  205.                     }
  206.                         if(GongNeng() == 2)
  207.                         {                       
  208.                         T += 16;
  209.                         if(T >= 192){T=176;}
  210.                     }
  211.                         if(GongNeng() == 3)
  212.                         {
  213.                         T += 16;
  214.                         if(T >=272){T=176;}
  215.                     }
  216.                         if(GongNeng() == 4)
  217.                         {                       
  218.                         T += 1;
  219.                         if(T >= 160){T=16;}
  220.                     }
  221.                         if(GongNeng() == 5)
  222.                         {                       
  223.                         T += 1;
  224.                         if(T >= 256){T=176;}
  225.                     }*/
  226.                  }
  227.           refresh_led();
  228.                                                  
  229. }
复制代码



单片机16x16点阵源程序
51黑论坛_点阵显示汉字程序.rar (43.06 KB, 下载次数: 36)


16x16点阵.rar (7.11 MB, 下载次数: 88)
单片机

评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩

相关帖子

  • • STC15单片机+DS3231+DS18B20+DHT11+OLED12864+ESP8266_01S组成网络时间 有待改善
  • • 基于单片机的自行车里程表程序 大写N到底是什么性质的变量 在哪里声明
  • • proteus仿真时[SPICE] Too many iterations without converge...怎么处理?求指点
  • • 可以用单片机制作320*96大规模的点阵吗?
  • • 有人能帮我解释下这个单片机公交车自动报站红外模块的原理吗?
  • • STC8A8A8K单片机+蓝牙+电机控制+遥控灯--资料和PCB程序源码
  • • c语言定时器T0方式2控制led点亮时间1s 仿真led闪得很快
  • • stm32按键点灯仿真无反应 求帮助
  • • stm32跑马灯仿真错误 求帮助
  • • STC15F2K60S2单片机的二十个基本实验程序
回复

使用道具 举报

沙发
ID:145395 发表于 2016-10-31 22:26 | 只看该作者
厉害啊
回复

使用道具 举报

板凳
ID:407148 发表于 2018-10-9 17:41 | 只看该作者


谢谢楼主了哈~
回复

使用道具 举报

返回列表 发新帖
高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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

玻璃钢生产厂家石景山区商场圣诞美陈供应商玻璃钢雕塑 寿命肇庆玻璃钢动物雕塑供应中山款式玻璃钢人物雕塑齐全玻璃钢雕塑用材料价格表菏泽花朵玻璃钢雕塑厂家山东玻璃钢花盆生产厂家广州玻璃钢泡沫雕塑马雕塑玻璃钢杭州玻璃钢卡通雕塑价格户外玻璃钢花盆寿命开封玻璃钢人物雕塑多少钱玻璃钢雕塑马设计费用湖北小区玻璃钢雕塑生产厂家金州玻璃钢花盆花器玻璃钢雕塑价格范围临沧市玻璃钢雕塑设计怎么样艺术玻璃钢雕塑企业玻璃钢地动仪雕塑工艺品重庆户内玻璃钢雕塑生产厂家湖南水景校园玻璃钢景观雕塑耒阳玻璃钢马雕塑商场绿色美陈绍兴玻璃钢雕塑价位贵州环保玻璃钢雕塑销售电话深圳周边商场美陈贵州玻璃钢雕塑市场铸铜玻璃钢仿铜雕塑定做价格陕西房地产玻璃钢仿铜雕塑商场美陈租售香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化