?? 單片機與pc機雙向串口通訊仿真.c
字號:
//-----------------------------------------------------------------
// 名稱: 單片機與PC機雙向串口通訊仿真
//-----------------------------------------------------------------
// 說明: 單片機可接收PC機發送的數字字符,按下單片機K1按鍵時,單片機
// 可向PC機發送字符串.在Proteus環境下完成本實驗時,需要
// 先安裝Virtual Serial Port Driver和串口調試助手軟件.
// 建議在VSPD中將COM3和COM4設為對聯端口.Proteus中設COMPIM
// 為COM4,在串口助手中選擇COM3,然后實現單片機程序與XP下串口
// 助手的通訊.
//
// 本例緩沖為100個數字字符,如果發送的字符串末尾沒有回車符,
// 則下次接收的字符串將在上次接收字符串的后面接著存放,
// 否則將重新從開始位置存放.
//
// 如果本次PC發送的數字串是先輸入回車符,再輸入任意數字串,
// 則本次新接收的數字串也將從緩沖開始位置存放.
//
//-----------------------------------------------------------------
#define F_CPU 4000000UL //4M晶振
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#define INT8U unsigned char
#define INT16U unsigned int
//數字串接收緩沖
struct
{
INT8U Buf_Array[100]; //緩沖空間
INT8U Buf_Len; //當前緩沖長度
} Receive_Buffer ;
//清空緩沖標志
INT8U Clear_Buffer_Flag = 0;
//0-9的數字編碼,最后一位為黑屏
const INT8U SEG_CODE[] =
{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};
char *s = "這是AVR單片機發送的字符串!\n", *p;
//------------------------------------------------------------------
// USART初始化
//------------------------------------------------------------------
void Init_USART()
{
}
//------------------------------------------------------------------
// 發送一個字符
//------------------------------------------------------------------
void PutChar(char c)
{
}
//------------------------------------------------------------------
// 顯示所接收的數字字符(數字字符由PC串口發送,AVR串口接收)
//------------------------------------------------------------------
void Show_Received_Digits()
{
}
//------------------------------------------------------------------
// 主程序
//------------------------------------------------------------------
int main()
{
}
//-----------------------------------------------------------------
// 串口接收中斷函數
//-----------------------------------------------------------------
ISR (USART_RXC_vect)
{
}
//-----------------------------------------------------------------
// INT1中斷函數(向PC發送字符串)
//-----------------------------------------------------------------
ISR (INT1_vect)
{
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -