设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 282|回复: 1
收起左侧

STC单片机 驱动像素LED显示屏 8*8点阵屏 并演示向左滚动显示英文字母数字符号字符串

[复制链接]
发表于 2023-7-21 19:33:58 | 显示全部楼层 |阅读模式
u=719557182,2863193705&fm=224&app=112&f=JPEG.jpg
  1. #include "STC12C5A60S2.h"
  2. #include "intrins.h"

  3. #define u8 unsigned char
  4. #define u16 unsigned int
  5. #define u32 unsigned long
  6. #define T1ms 0xFC18                //12Mhz@1ms 12T定时器初值
  7. #define X P1                //点阵屏X扫描
  8. #define XM0 P1M0
  9. #define XM1 P1M1

  10. #define Y P2                //点阵屏Y扫描
  11. #define YM0 P2M0
  12. #define YM1 P2M1

  13. /*
  14.         X.0~X.7=P1.0~P1.7
  15.         Y.0~Y.7=P2.0~P2.7
  16.         LED点阵屏硬件连接:
  17.         X.0=Pin13                X.1=Pin3        X.2=Pin4                X.3=Pin10
  18.         X.4=Pin6                X.5=Pin11        X.6=Pin15                X.7=Pin16
  19.         Y.0=Pin9                Y.1=Pin14        Y.2=Pin8                Y.3=Pin12
  20.         Y.4=Pin1                Y.5=Pin7        Y.6=Pin2                Y.7=Pin5
  21. */

  22. void InitTimer0(){
  23.     TMOD = 0x01;
  24.     TH0 = T1ms >> 8;
  25.     TL0 = T1ms;
  26.     EA = 1;
  27.     ET0 = 1;
  28.     TR0 = 1;
  29. }

  30. u8 code word[1024]={                        //8*8点阵字库数据 (共128种字符)
  31.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  32.         0x33,0x33,0xCC,0xCC,0x33,0x33,0xCC,0xCC,
  33.         0x00,0x08,0x0C,0xFE,0xFE,0x0C,0x08,0x00,
  34.         0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,
  35.         0x40,0x68,0x7C,0x5E,0x49,0x49,0x22,0x00,
  36.         0x00,0x10,0x78,0x78,0x08,0x78,0x7C,0x04,
  37.         0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
  38.         0x03,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,
  39.         0x18,0x18,0x18,0x1F,0x1F,0x00,0x00,0x00,
  40.         0x33,0x99,0xCC,0x66,0x33,0x99,0xCC,0x66,
  41.         0x66,0xCC,0x99,0x33,0x66,0xCC,0x99,0x33,
  42.         0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
  43.         0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
  44.         0x30,0x30,0xC0,0xC0,0x30,0x30,0xC0,0xC0,
  45.         0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,
  46.         0x00,0x00,0x00,0xFF,0xFF,0x18,0x18,0x18,
  47.         0x18,0x18,0x18,0xFF,0xFF,0x18,0x18,0x18,
  48.         0x00,0x00,0x00,0x1F,0x1F,0x18,0x18,0x18,
  49.         0x18,0x18,0x18,0xF8,0xF8,0x00,0x00,0x00,
  50.         0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,
  51.         0x00,0x00,0x00,0xF8,0xF8,0x18,0x18,0x18,
  52.         0x18,0x18,0x18,0x1F,0x1F,0x18,0x18,0x18,
  53.         0x18,0x18,0x18,0xF8,0xF8,0x18,0x18,0x18,
  54.         0x18,0x18,0x18,0xFF,0xFF,0x00,0x00,0x00,
  55.         0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
  56.         0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,
  57.         0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,
  58.         0x33,0x33,0xCC,0xCC,0x00,0x00,0x00,0x00,
  59.         0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F,
  60.         0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0,
  61.         0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00,
  62.         0x0F,0x0F,0x0F,0x0F,0xF0,0xF0,0xF0,0xF0,
  63.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  64.         0x00,0x00,0x00,0x4F,0x4F,0x00,0x00,0x00,
  65.         0x00,0x07,0x07,0x00,0x00,0x07,0x07,0x00,
  66.         0x14,0x7F,0x7F,0x14,0x14,0x7F,0x7F,0x14,
  67.         0x00,0x24,0x2E,0x6B,0x6B,0x3A,0x12,0x00,
  68.         0x00,0x62,0x32,0x18,0x0C,0x66,0x62,0x00,
  69.         0x00,0x32,0x7F,0x4D,0x4D,0x77,0x72,0x50,
  70.         0x00,0x00,0x00,0x04,0x06,0x03,0x01,0x00,
  71.         0x00,0x00,0x1C,0x3E,0x63,0x41,0x00,0x00,
  72.         0x00,0x00,0x41,0x63,0x3E,0x1C,0x00,0x00,
  73.         0x08,0x2A,0x3E,0x1C,0x1C,0x3E,0x2A,0x08,
  74.         0x00,0x08,0x08,0x3E,0x3E,0x08,0x08,0x00,
  75.         0x00,0x00,0x80,0xE0,0x60,0x00,0x00,0x00,
  76.         0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00,
  77.         0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,
  78.         0x00,0x40,0x60,0x30,0x18,0x0C,0x06,0x02,
  79.         0x00,0x3E,0x7F,0x49,0x45,0x7F,0x3E,0x00,
  80.         0x00,0x40,0x44,0x7F,0x7F,0x40,0x40,0x00,
  81.         0x00,0x62,0x73,0x51,0x49,0x4F,0x46,0x00,
  82.         0x00,0x22,0x63,0x49,0x49,0x7F,0x36,0x00,
  83.         0x00,0x18,0x18,0x14,0x16,0x7F,0x7F,0x10,
  84.         0x00,0x27,0x67,0x45,0x45,0x7D,0x39,0x00,
  85.         0x00,0x3E,0x7F,0x49,0x49,0x7B,0x32,0x00,
  86.         0x00,0x03,0x03,0x79,0x7D,0x07,0x03,0x00,
  87.         0x00,0x36,0x7F,0x49,0x49,0x7F,0x36,0x00,
  88.         0x00,0x26,0x6F,0x49,0x49,0x7F,0x3E,0x00,
  89.         0x00,0x00,0x00,0x24,0x24,0x00,0x00,0x00,
  90.         0x00,0x00,0x80,0xE4,0x64,0x00,0x00,0x00,
  91.         0x00,0x08,0x1C,0x36,0x63,0x41,0x41,0x00,
  92.         0x00,0x14,0x14,0x14,0x14,0x14,0x14,0x00,
  93.         0x00,0x41,0x41,0x63,0x36,0x1C,0x08,0x00,
  94.         0x00,0x02,0x03,0x51,0x59,0x0F,0x06,0x00,
  95.         0x00,0x3E,0x7F,0x41,0x4D,0x4F,0x2E,0x00,
  96.         0x00,0x7C,0x7E,0x0B,0x0B,0x7E,0x7C,0x00,
  97.         0x00,0x7F,0x7F,0x49,0x49,0x7F,0x36,0x00,
  98.         0x00,0x3E,0x7F,0x41,0x41,0x63,0x22,0x00,
  99.         0x00,0x7F,0x7F,0x41,0x63,0x3E,0x1C,0x00,
  100.         0x00,0x7F,0x7F,0x49,0x49,0x41,0x41,0x00,
  101.         0x00,0x7F,0x7F,0x09,0x09,0x01,0x01,0x00,
  102.         0x00,0x3E,0x7F,0x41,0x49,0x7B,0x3A,0x00,
  103.         0x00,0x7F,0x7F,0x08,0x08,0x7F,0x7F,0x00,
  104.         0x00,0x00,0x41,0x7F,0x7F,0x41,0x00,0x00,
  105.         0x00,0x20,0x60,0x41,0x7F,0x3F,0x01,0x00,
  106.         0x00,0x7F,0x7F,0x1C,0x36,0x63,0x41,0x00,
  107.         0x00,0x7F,0x7F,0x40,0x40,0x40,0x40,0x00,
  108.         0x00,0x7F,0x7F,0x06,0x0C,0x06,0x7F,0x7F,
  109.         0x00,0x7F,0x7F,0x0E,0x1C,0x7F,0x7F,0x00,
  110.         0x00,0x3E,0x7F,0x41,0x41,0x7F,0x3E,0x00,
  111.         0x00,0x7F,0x7F,0x09,0x09,0x0F,0x06,0x00,
  112.         0x00,0x1E,0x3F,0x21,0x61,0x7F,0x5E,0x00,
  113.         0x00,0x7F,0x7F,0x19,0x39,0x6F,0x46,0x00,
  114.         0x00,0x26,0x6F,0x49,0x49,0x7B,0x32,0x00,
  115.         0x00,0x01,0x01,0x7F,0x7F,0x01,0x01,0x00,
  116.         0x00,0x3F,0x7F,0x40,0x40,0x7F,0x3F,0x00,
  117.         0x00,0x1F,0x3F,0x60,0x60,0x3F,0x1F,0x00,
  118.         0x00,0x7F,0x7F,0x30,0x18,0x30,0x7F,0x7F,
  119.         0x00,0x63,0x77,0x1C,0x1C,0x77,0x63,0x00,
  120.         0x00,0x07,0x0F,0x78,0x78,0x0F,0x07,0x00,
  121.         0x00,0x61,0x71,0x59,0x4D,0x47,0x43,0x00,
  122.         0x00,0x00,0x7F,0x7F,0x41,0x41,0x00,0x00,
  123.         0x00,0x01,0x03,0x06,0x0C,0x18,0x30,0x20,
  124.         0x00,0x00,0x41,0x41,0x7F,0x7F,0x00,0x00,
  125.         0x00,0x08,0x0C,0x06,0x06,0x0C,0x08,0x00,
  126.         0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
  127.         0x00,0x00,0x00,0x07,0x07,0x00,0x00,0x00,
  128.         0x00,0x20,0x74,0x54,0x54,0x7C,0x78,0x00,
  129.         0x00,0x7E,0x7E,0x48,0x48,0x78,0x30,0x00,
  130.         0x00,0x38,0x7C,0x44,0x44,0x44,0x00,0x00,
  131.         0x00,0x30,0x78,0x48,0x48,0x7E,0x7E,0x00,
  132.         0x00,0x38,0x7C,0x54,0x54,0x5C,0x18,0x00,
  133.         0x00,0x00,0x08,0x7C,0x7E,0x0A,0x0A,0x00,
  134.         0x00,0x98,0xBC,0xA4,0xA4,0xFC,0x7C,0x00,
  135.         0x00,0x7E,0x7E,0x08,0x08,0x78,0x70,0x00,
  136.         0x00,0x00,0x48,0x7A,0x7A,0x40,0x00,0x00,
  137.         0x00,0x00,0x80,0x80,0x80,0xFA,0x7A,0x00,
  138.         0x00,0x7E,0x7E,0x10,0x38,0x68,0x40,0x00,
  139.         0x00,0x00,0x42,0x7E,0x7E,0x40,0x00,0x00,
  140.         0x00,0x7C,0x7C,0x18,0x38,0x1C,0x7C,0x78,
  141.         0x00,0x7C,0x7C,0x04,0x04,0x7C,0x78,0x00,
  142.         0x00,0x38,0x7C,0x44,0x44,0x7C,0x38,0x00,
  143.         0x00,0xFC,0xFC,0x24,0x24,0x3C,0x18,0x00,
  144.         0x00,0x18,0x3C,0x24,0x24,0xFC,0xFC,0x00,
  145.         0x00,0x7C,0x7C,0x04,0x04,0x0C,0x08,0x00,
  146.         0x00,0x48,0x5C,0x54,0x54,0x74,0x24,0x00,
  147.         0x00,0x04,0x04,0x3E,0x7E,0x44,0x44,0x00,
  148.         0x00,0x3C,0x7C,0x40,0x40,0x7C,0x7C,0x00,
  149.         0x00,0x1C,0x3C,0x60,0x60,0x3C,0x1C,0x00,
  150.         0x00,0x1C,0x7C,0x70,0x38,0x70,0x7C,0x1C,
  151.         0x00,0x44,0x6C,0x38,0x38,0x6C,0x44,0x00,
  152.         0x00,0x9C,0xBC,0xA0,0xE0,0x7C,0x3C,0x00,
  153.         0x00,0x44,0x64,0x74,0x5C,0x4C,0x44,0x00,
  154.         0x00,0x08,0x2A,0x7F,0x55,0x41,0x00,0x00,
  155.         0x00,0x00,0x00,0xE7,0xE7,0x00,0x00,0x00,
  156.         0x00,0x00,0x41,0x55,0x7F,0x2A,0x08,0x00,
  157.         0x06,0x06,0x03,0x03,0x06,0x06,0x03,0x03,
  158.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  159. };

  160. u8 vram[8];                //点阵显存
  161. u8 *text="Hello World! I Love You! ";                //欲滚动的字符串(末尾加空格,严禁中文)

  162. void main(){
  163.         u8 i =0;
  164.         //强推挽
  165.         WDT_CONTR = 0x27;        //开看门狗
  166.         XM0=0xFF;XM1=0x00;
  167.         YM0=0xFF;YM1=0x00;

  168.         InitTimer0();                        //开定时器0中断
  169.         while(1){
  170.                 _nop_();
  171.                 _nop_();
  172.                 WDT_CONTR |= 0x10;                //看门狗喂狗
  173.                 _nop_();
  174.                 _nop_();       
  175.         }
  176. }

  177. void left(u8 i){                //向左滚动
  178.         u8 j;
  179.         for(j=1;j<8;j++){
  180.                 vram[j-1] = vram[j];
  181.         }
  182.         vram[7]=i;
  183. }

  184. void Timer0Interrupt() interrupt 1 {
  185.                 static u8 i=0,j=0,k=0;
  186.                 static u16 pc=0;        //字符串指针
  187.     TH0 = T1ms >> 8;
  188.     TL0 = T1ms;
  189.                         //共阴(*AS)
  190.                         /*
  191.                         X = 0x00;
  192.                         Y = ~vram[i];
  193.                         X = (1 << i);
  194.                         */
  195.        
  196.                         //共阳(*BS)
  197.                         X = 0xFF;
  198.                         Y = vram[i];
  199.                         X = ~(1 << i);
  200.                 if(++i >= 8){
  201.                         i = 0;
  202.                         if(++j >= 8){                //值越小滚动越快
  203.                                 j = 0;
  204.                                 left(word[text[pc]*8+k]);
  205.                                 if(++k >= 8){
  206.                                         k=0;
  207.                                         if(!text[++pc]){
  208.                                                 pc=0;
  209.                                         }
  210.                                 }
  211.                         }
  212.                 }
  213. }
复制代码

相关帖子

您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-28 21:19 , Processed in 0.738042 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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