找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7768|回复: 6
收起左侧

基于STM32F103的LED显示屏驱动程序

  [复制链接]
ID:47071 发表于 2018-4-23 16:51 | 显示全部楼层 |阅读模式
基于STM32F103的LED显示屏驱动程序,很实用。之前调试的时候下载的。

单片机源程序如下:
  1. #include"stm32f10x.h"
  2. #include"delay.h"
  3. //#include"usart_own.h"

  4. #define AL() GPIO_ResetBits(GPIOE, GPIO_Pin_15)
  5. #define AH() GPIO_SetBits(GPIOE, GPIO_Pin_15)
  6. #define BL() GPIO_ResetBits(GPIOE, GPIO_Pin_14)
  7. #define BH() GPIO_SetBits(GPIOE, GPIO_Pin_14)
  8. #define CL() GPIO_ResetBits(GPIOE, GPIO_Pin_13)
  9. #define CH() GPIO_SetBits(GPIOE, GPIO_Pin_13)
  10. #define DL() GPIO_ResetBits(GPIOE, GPIO_Pin_12)
  11. #define DH() GPIO_SetBits(GPIOE, GPIO_Pin_12)
  12. #define STBL() GPIO_ResetBits(GPIOE, GPIO_Pin_11)
  13. #define STBH() GPIO_SetBits(GPIOE, GPIO_Pin_11)
  14. #define CLKL() GPIO_ResetBits(GPIOE, GPIO_Pin_10)
  15. #define CLKH() GPIO_SetBits(GPIOE, GPIO_Pin_10)
  16. #define R1L() GPIO_ResetBits(GPIOE, GPIO_Pin_9)
  17. #define R1H() GPIO_SetBits(GPIOE, GPIO_Pin_9)
  18. #define OEL() GPIO_ResetBits(GPIOE, GPIO_Pin_8)
  19. #define OEH() GPIO_SetBits(GPIOE, GPIO_Pin_8)

  20. vu8 yid;
  21. uc8 line_[]={0x03,0x02,0x01,0x00,0x07,0x06,0x05,0x04,0x0b,0x0a,0x09,0x08,0x0f,0x0e,0x0d,0x0c};
  22. uc8 table[]={
  23. 0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x03,0xE0,
  24. 0x7B,0xEF,0x7B,0xEF,0x03,0xE0,0x7B,0xEF,
  25. 0x7B,0xEF,0x7B,0xEF,0x03,0xE0,0x7B,0xEF,
  26. 0x7F,0xBF,0x7F,0xBF,0xFF,0x80,0xFF,0xFF,//电0
  27. /* (16 X 16 , 宋体 )*/

  28. 0xEF,0xFE,0xCF,0xF9,0xE7,0xFD,0x17,0x80,
  29. 0xF3,0xFF,0x33,0xE0,0xF5,0xFF,0x36,0xE0,
  30. 0xF7,0xFF,0x37,0xE0,0xB7,0xEF,0xB7,0xEF,
  31. 0xB7,0xEF,0x37,0xE0,0xB7,0xEF,0xFF,0xFF,//信1
  32. /* (16 X 16 , 宋体 )*/

  33. 0x7F,0xEF,0xF7,0xCE,0xCF,0xEC,0xEF,0xF6,
  34. 0x01,0x80,0xFD,0xDF,0x0E,0xE8,0xFF,0xFD,
  35. 0xFF,0xFE,0x01,0x80,0xFF,0xFE,0xFF,0xFE,
  36. 0xFF,0xFE,0xFF,0xFE,0xBF,0xFE,0x7F,0xFF,//学2
  37. /* (16 X 16 , 宋体 )*/

  38. 0xFF,0xFE,0xE0,0xFD,0x0E,0x80,0xD6,0xDF,
  39. 0xFA,0xFF,0x3A,0xE0,0xF6,0xFF,0xEE,0xFF,
  40. 0x0E,0x80,0x6A,0xFB,0x76,0xFB,0x7E,0xFB,
  41. 0xBE,0xBB,0xBE,0xBB,0xDE,0xBB,0xEE,0x87,//院3
  42. /* (16 X 16 , 宋体 )*/


  43. };

  44. void LED_Port_Init(void);
  45. void output(vu8);
  46. void Line_Scan(void);

  47. void LED_Port_Init()
  48. {
  49.         GPIO_InitTypeDef        GPIO_LED;
  50.         GPIO_InitTypeDef        GPIO_TX;

  51.         SystemInit();
  52.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1 | RCC_APB2Periph_AFIO
  53.                                                         | RCC_APB2Periph_GPIOE ,ENABLE);

  54.         GPIO_LED.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
  55.                                                 GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 |
  56.                                                 GPIO_Pin_14 | GPIO_Pin_15;
  57.         GPIO_LED.GPIO_Speed = GPIO_Speed_50MHz;
  58.         GPIO_LED.GPIO_Mode = GPIO_Mode_Out_PP;
  59.         GPIO_Init(GPIOE,&GPIO_LED);

  60.         GPIO_TX.GPIO_Pin = GPIO_Pin_9;
  61.         GPIO_TX.GPIO_Speed = GPIO_Speed_50MHz;
  62.         GPIO_TX.GPIO_Mode = GPIO_Mode_AF_PP;
  63.         GPIO_Init(GPIOA, &GPIO_TX);
  64. }

  65. void output(vu8 dat)
  66. {
  67.         vu8 i,t_dat;
  68.         t_dat = dat;
  69.         dat = (t_dat<<4) | (dat>>4);
  70.         for(i=0x80;i!=0;i=i>>1)
  71.         {
  72.                 if(dat&i)
  73.                 {
  74.                         R1H();
  75.                 }
  76.                 else
  77.                 {
  78.                         R1L();
  79.                 }
  80.                 CLKH();
  81.                 CLKL();
  82.         }
  83. }
  84. void Line_Scan()                //行扫描函数
  85. {
  86.         //行扫描
  87.         switch(line_[yid])
  88.         {
  89.                 case 0x00:{DL();CL();BL();AL();break;}
  90.                 case 0x01:{DL();CL();BL();AH();break;}
  91.                 case 0x02:{DL();CL();BH();AL();break;}
  92.                 case 0x03:{DL();CL();BH();AH();break;}
  93.                 case 0x04:{DL();CH();BL();AL();break;}
  94.                 case 0x05:{DL();CH();BL();AH();break;}
  95.                 case 0x06:{DL();CH();BH();AL();break;}
  96.                 case 0x07:{DL();CH();BH();AH();break;}

  97.                 case 0x08:{DH();CL();BL();AL();break;}
  98.                 case 0x09:{DH();CL();BL();AH();break;}
  99.                 case 0x0a:{DH();CL();BH();AL();break;}
  100.                 case 0x0b:{DH();CL();BH();AH();break;}
  101.                 case 0x0c:{DH();CH();BL();AL();break;}
  102.                 case 0x0d:{DH();CH();BL();AH();break;}
  103.                 case 0x0e:{DH();CH();BH();AL();break;}
  104.                 case 0x0f:{DH();CH();BH();AH();break;}
  105.                 default:break;
  106.                 //default:{DH();CH();BH();AH();break;}
  107.         }
  108. }

  109. int main()
  110. {
  111.         LED_Port_Init();
  112. ……………………

  113. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
LED_Screen(base-on-STM32F103).rar (2.09 MB, 下载次数: 161)
回复

使用道具 举报

ID:193243 发表于 2018-11-14 10:44 | 显示全部楼层
666 点赞 学习
回复

使用道具 举报

ID:610579 发表于 2019-9-11 17:12 | 显示全部楼层

好资料,想下载。
回复

使用道具 举报

ID:480779 发表于 2020-3-12 11:09 | 显示全部楼层
钱不够,下不了,还是要谢谢
回复

使用道具 举报

ID:694252 发表于 2020-3-21 21:23 | 显示全部楼层
仿真图有没有

回复

使用道具 举报

ID:789006 发表于 2020-6-24 19:13 | 显示全部楼层
谢谢分享。
回复

使用道具 举报

ID:23303 发表于 2021-5-26 07:53 | 显示全部楼层
学习一下,请楼主多帮助,谢谢!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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