找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1275|回复: 0
打印 上一主题 下一主题
收起左侧

在stm32f4将字变大的源码

[复制链接]
跳转到指定楼层
楼主
ID:319486 发表于 2018-4-30 17:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机源程序如下:
  1. #include "stm32f4xx.h"
  2. #include "usart.h"
  3. #include "led.h"
  4. #include "gpio.h"
  5. #include "stdio.h"
  6. #include "timer.h"
  7. #include "lcd.h"

  8. u8 word[] =
  9. {
  10.         0x20,0x02,0x70,0x0A,0x1E,0x12,0x10,0x12,0x10,0x02,0xFF,0x7F,0x10,0x02,0x10,0x22,0x50,0x22,0x30,0x12,0x18,0x0C,0x16,0x44,0x10,0x4A,0x10,0x51,0xD4,0x60,0x08,0x40
  11. };

  12. void drawBlock(u16 xPos, u16 yPos, u16 w, u16 color);
  13. void drawWord(u16 xPos, u16 yPos, u8 *p, u16 lineColor, u16 backColor);
  14. void fjByte(u16 xPos, u16 yPos, u8 byte, u16 lineColor, u16 backColor);  // 显示8个点

  15. // 放大
  16. void pointToBig(u16 xPos, u16 yPos, u16 color, u8 bs);
  17. void fjByteToBig(u16 xPos, u16 yPos, u8 byte, u16 lineColor, u16 backColor, u8 bs);  
  18. void drawWordToBig(u16 xPos, u16 yPos, u8 *p, u16 lineColor, u16 backColor, u8 bs);

  19. int main()        
  20. {
  21.         LCD_Init();
  22.         drawWordToBig(10, 100, word, 0x3838, 0x0000, 10);
  23.         while(1)
  24.         {
  25.                
  26.         }
  27. }

  28. void pointToBig(u16 xPos, u16 yPos, u16 color, u8 bs)
  29. {
  30.         u8 i, j;
  31.         
  32.         for(i = 0; i < bs; i++)
  33.         {
  34.                 for(j = 0; j < bs; j++)
  35.                 {
  36.                         LCD_Draw_Point(xPos+j, yPos+i, color);
  37.                 }
  38.         }
  39. }

  40. void fjByteToBig(u16 xPos, u16 yPos, u8 byte, u16 lineColor, u16 backColor, u8 bs)
  41. {
  42.         u8 i;

  43.         for(i = 0; i < 8; i++)
  44.         {
  45.                 if(byte & (1 << i))
  46.                 {
  47.                         pointToBig(xPos+i*bs, yPos, lineColor, bs);
  48.                 }
  49.                 else
  50.                 {
  51.                         pointToBig(xPos+i*bs, yPos, backColor, bs);
  52.                 }
  53.         }
  54. }

  55. void fjByte(u16 xPos, u16 yPos, u8 byte, u16 lineColor, u16 backColor)
  56. {
  57.         u8 i;
  58.         for(i = 0; i < 8; i++)
  59.         {
  60.                 if(byte & (1 << i))
  61.                 {
  62.                         LCD_Draw_Point(xPos + i, yPos, lineColor);
  63.                 }
  64.                 else
  65.                 {
  66.                         LCD_Draw_Point(xPos + i, yPos, backColor);
  67.                 }
  68.         }
  69. }

  70. void drawWordToBig(u16 xPos, u16 yPos, u8 *p, u16 lineColor, u16 backColor, u8 bs)
  71. {
  72.         u8 i;
  73.         for(i = 0; i < 16; i++)
  74.         {
  75.                 fjByteToBig(xPos, yPos+i*bs, p[2*i], lineColor, backColor, bs);
  76.                 fjByteToBig(xPos+8*bs, yPos+i*bs, p[2*i+1], lineColor, backColor, bs);
  77.         }
  78. }

  79. void drawWord(u16 xPos, u16 yPos, u8 *p, u16 lineColor, u16 backColor)
  80. {
  81.         u8 i;
  82.         for(i = 0; i < 16; i++)
  83.         {
  84.                 fjByte(xPos, yPos+i, p[2*i], lineColor, backColor);
  85.                 fjByte(xPos+8, yPos+i, p[2*i+1], lineColor, backColor);
  86.         }
  87. }

  88. void drawBlock(u16 xPos, u16 yPos, u16 w, u16 color)
  89. {
  90.         u16 x, y;
  91.         
  92.         for(y = yPos; y < yPos + w; y++)
  93.         {
  94.                 for(x = xPos; x < xPos + w; x++)
  95.                 {
  96.                         LCD_Draw_Point(x, y, color);
  97.                 }
  98.         }
  99. }

  100. // RGB
  101. // 0011 1 000  000 0 0000

  102. // 16λ
  103. // 5 6 5
  104. //






复制代码

所有资料51hei提供下载:
08_变大.rar (198.67 KB, 下载次数: 6)


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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