找回密码
 注册

QQ登录

只需一步,快速开始

搜索

Proteus仿真STM32F103R6单线控制lcd1602液晶屏

[复制链接]
路漫漫 发表于 2020-5-15 01:14:05 | 显示全部楼层 |阅读模式
Proteus 8.9 VSM Studio Keil编译器仿真STM32F103R6 LCD1602一线屏
一,打开文件(可以随文下载放置在文档中打开)。(如下图1所示)
150740b7mhwwxmthaa66x8.png
图1

二,调整原理图大小,适合可视,另存工程文件。(如下图2,3,4所示)
150741u35krv3bqb2ovvo2.png
图2

150741kg0kgjzwzwydoi6u.png
图3

150741ftydvxtbr4w0hvzj.png
图4

三,点击Source Code标签。(如下图5所示)
150741hr4t7vppix0v7ptt.png
图5

四,编辑main.c 代码如Proteus8.9 VSM Studio Keil编译器仿真STM32F103R6系列012_lcd1602一线屏(如下图6所示)
150742hjh6ajjgcxaud66s.png
图6

五,Main.c 代码:
  1. #include "delay.h"
  2. #include "usart.h"
  3. #include "led.h"
  4. #include "lcd1602.h"

  5. char *str[2]={"Kaillen Warm YOU Happy Code Made",
  6.                                          " Happy Code Made"
  7.                                         };

  8. int main(void)
  9. {
  10.         u16 i=0, l;
  11.         RCC_ClocksTypeDef     RCC_Clocks; //初始化程序
  12.         RCC_Configuration(); //时钟设置
  13.     RCC_GetClocksFreq(&RCC_Clocks);

  14.         USART1_Init(2400); //串口初始化(参数是波特率)

  15.        LED_Init();   
  16.        LED0=1;
  17.        LED1=0;
  18.            for(l=0; l<50; l++) delay_ms(1);
  19.           printf("%s", "  --------");
  20.        while(1)
  21.        {
  22.                            LED0=~LED0;
  23.                            LED1=~LED1;
  24.                         if(i==2) i=0;
  25.                         for(l=0; l<50; l++) delay_ms(1);
  26.                         printf("%s", str[ i]); i++;
  27.                         for(l=0; l<200; l++) delay_ms(1);        
  28.                 }
  29. }
  30. Led.c:
  31. #include "led.h"

  32. void LED_Init(void)
  33. {

  34. GPIO_InitTypeDef  GPIO_InitStructure;
  35.          
  36. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);         //使能PB,PE端口时钟
  37.         
  38. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4| GPIO_Pin_5;                                 //LED0-->;PB.5 端口配置
  39. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;                  //推挽输出
  40. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 //IO口速度为50MHz
  41. GPIO_Init(GPIOC, &GPIO_InitStructure);                                         //根据设定参数初始化GPIOB.5
  42. GPIO_ResetBits(GPIOC,GPIO_Pin_4);                                                 //PB.4 输出
  43. GPIO_SetBits(GPIOC,GPIO_Pin_5);                                                 //PB.5 输出高
  44. }

  45. Led.h:
  46. #ifndef __LED_H
  47. #define __LED_H         
  48. #include "sys.h"

  49. #define LED0 PCout(4)                // PC4
  50. #define LED1 PCout(5)                // PC5        
  51. void LED_Init(void);                //初始化                                                     
  52. #endif
复制代码

六,点击构建工程按钮,编译工程。(如下图7所示)
150743biizlstqdlphtliu.png
图7

七,点击窗口左下方仿真按钮,可见lcd1602和虚拟串口的信息显示在屏。 (如下图8,9,10所示)
150743sxvcf4fdrzhrcxfn.png
图8

150743l92m0l6ner0w060a.png
图9
150744zq0jkc3bzi5q0xb6.png
图10

八,选择release,点击构建工程按钮,编译工程生成Hex文件。(如下图11所示)
150744b2so61fzkdgbg8jb.png
图11

附件是仿真文件 在已安装Proteus8.9的计算机文件夹中打开即可
Proteus仿真文件_Keil_STM32F103RT6_012_lcd1602一线屏.zip (948.23 KB, 售价: 1 E币)

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

本版积分规则

QQ|手机版|小黑屋|ELEOK |网站地图

GMT+8, 2024-11-21 21:52

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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