找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 33320|回复: 0
收起左侧

Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口

[复制链接]
ID:371233 发表于 2020-5-10 23:42 | 显示全部楼层 |阅读模式
一,打开文件(可以随文下载放置在文档中打开)。(如下图1所示)
1.png
图1

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

3.png
图3

4.png
图4

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

四,编辑main.c 代码如Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口(如下图6所示)
6.png
图6

五,Main.c 代码:
/* Main.c file generated by New Project wizard
*Author:      Ziegler Yin
* Created:    04 28 2016
* Processor: STM32F103T6
* Compiler:  GCC for ARM
*/

#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd1602.h"

#define Oppsit(A) (A!=0)?0:1


u8 i, t=0;
u8 str[6][17]={ "黄灯亮!!!...\r",
                     "黄灯灭!!!...\r",
                     "黄灯亮!!!...\r",
                     "黄亮灭!!!...\r"
            };


int main(void)
{
                u16 i, l;
                u32 dat;
       delay_init();    //初始化延时函数
       NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
       uart_init(9600);     //串口初始化
       LED_Init();                     //初始化LED端口 if(USART_RX_STA&0x8000)
       GPIOSt_Init();
                GPIOB->ODR= (0xff<<8);
                lcd_init();
                ShowStr(2,0,"stm32f103R6",11);
                ShowStr(2,1,"angelababyf",11);

        for(l=0; l<5000; l++) delay_ms(1);      
       LED0=1;
       LED1=0;
       while(1)
       {
                        
                        LClear();
                        for(l=0; l<500; l++) delay_ms(1);
                        ShowStr(1, 0, "Kaillen Work", 12);
                        ShowStr(2, 1, "Wellcom YOU!", 12);
                        for(l=0; l<50000; l++) delay_ms(1);
                        LED0=~LED0;
                        for(l=0; l<50000; l++) delay_ms(1);
                        LED1=~LED1;
                        for(l=0; l<50000; l++) delay_ms(1);
                    for(i=0; i<4; i++){
                           PCout((i/2+4))=Oppsit((i%2));
                           for(t=0;t<16;t++){
                                          USART_SendData(USART1,(u16) str[ i][t]);
                                          while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
                           }                                         
                                for(l=0; l<50000; l++) delay_ms(1);
                  }
                        LClear();
                        for(l=0; l<500; l++) delay_ms(1);
                        ShowStr(1, 0, "Code Made", 9);
                        ShowStr(2, 1, "---Ziegler Yin", 14);
                        for(l=0; l<50000; l++) delay_ms(1);
     }
}
Lcd1602.h
#ifndef _LCD1602_H_
#define _LCD1602_H_

#include "delay.h"

void GPIOSt_Init(void);
void delay(int z);
void WaitReady(void);
void write_com(u8 com);
void write_data(u8 dat );
void SetCursor(u8 x, u8 y);
void ShowStr(u8 x, u8 y, char *str, u8 len);
void ShowChar(u8 x, u8 y, char str);
void lcd_init(void);
void LClear(void);

#endif

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

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

9.png
图9
10.png
图10


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


附件Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口在已安装Proteus8.9的计算机文件夹中打开即可
需要进一步了解,请加入QQ群:976235464


Gcc_STM32F103RT6_011_lcd1602并口pt.rar

277.85 KB, 下载次数: 20, 下载积分: 黑币 -5

附件Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口在已安装Proteus8.9的计算机文件 ...

评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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