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

一,打开文件(可以随文下载放置在文档中打开)。(如下图1所示)
Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口_第1张图片
图1

二,调整原理图大小,适合可视,另存工程文件。(如下图2,3,4所示)
Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口_第2张图片
图2

Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口_第3张图片
图3

Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口_第4张图片
图4

三,点击Source Code标签。(如下图5所示)
Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口_第5张图片
图5

四,编辑main.c 代码如Proteus8.9 Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口(如下图6所示)
Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口_第6张图片
图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所示)
Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口_第7张图片
图7

七,点击窗口左下方仿真按钮,可见lcd1602和虚拟串口的信息显示在屏。 (如下图8,9,10所示)
Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口_第8张图片
图8

Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口_第9张图片
图9
Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口_第10张图片
图10

八,选择release,点击构建工程按钮,编译工程生成Hex文件。(如下图11所示)
Proteus8.9 VSM Studio GCC编译器仿真STM32F103R6系列011_lcd1602并口_第11张图片
图11

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

你可能感兴趣的:(Proteus仿真,STM32,C语言,stm32,嵌入式,物联网,单片机,windows)