標(biāo)題: Proteus8.9 VSM Studio WINAVR編譯器仿真ATmega16系列a23_USARTS [打印本頁(yè)]

作者: kaillen    時(shí)間: 2020-7-8 02:58
標(biāo)題: Proteus8.9 VSM Studio WINAVR編譯器仿真ATmega16系列a23_USARTS
*本文及代碼參閱彭偉《單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例》
一,打開文件(可以隨文下載放置在文檔中打開)。(如下圖1所示)

圖1

二,調(diào)整原理圖大小,適合可視,另存工程文件。(如下圖2,3,4所示)

圖2


圖3


圖4

三,點(diǎn)擊Source Code標(biāo)簽。(如下圖5所示)

圖5

四,編輯main.c Proteus8.9 VSM Studio WINAVR編譯器仿真ATmega16系列a23_USARTS (如下圖6所示)

圖6

五,Main.c 代碼:
#include "myfunc01.h"


extern volatile char rx_buffer[];

char data;

int main(void) {
        PORTD=0x03;
        DDRD= 0x02;
        USART_Init(51);       
        sei();
        while(1) {
                put_s("Kaillen Welcom You!");
                _delay_ms(5000);
                put_s(rx_buffer);
                cls();
                data= 'B';
                _delay_ms(5000);
        }
}


myfunc01.h
//******************************************************************************************
#ifndef _MYFUNC01_H_
#define _MYFUNC01_H_

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdlib.h>
#define  uchar unsigned char
#define  uint  unsigned int


#define RX_BUFFER_SIZE 50


volatile uchar rx_wr_index, rx_counter;
volatile char rx_buffer_overflow;
volatile char rx_buffer[RX_BUFFER_SIZE];


void cls(void);
void USART_Init( uint baud );
void put_c(char c);
uchar USART_Receive( void );
ISR(USART_RXC_vect);

#endif

六,點(diǎn)擊構(gòu)建工程按鈕,編譯工程。(如下圖7所示)

圖7

七,點(diǎn)擊窗口左下方仿真按鈕,可見信息在虛擬串口顯示屏顯示。 (如下圖8,9,10所示)

圖8


圖9

圖10


八,選擇release,點(diǎn)擊構(gòu)建工程按鈕,編譯工程生成Hex文件。(如下圖11所示)


圖11


附件Proteus8.9 VSM Studio WINAVR編譯器仿真ATmega16系列a23_USARTS在已安裝Proteus8.9的計(jì)算機(jī)文件夾中打開即可
需要進(jìn)一步了解,請(qǐng)加入QQ群:976235464


a23_USARTS02pt.rar

120.23 KB, 下載次數(shù): 8, 下載積分: 黑幣 -5

已安裝Proteus8.9的計(jì)算機(jī)文件夾中打開即可






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1