📄 sendrcvself.c
字号:
/*********************************************************************
微 雪 电 子 WaveShare http://www.waveShare.net
目 的: 建立使用UART做自发自收的示例程序
目标系统: 基于AVR单片机
应用软件: ICCAVR
版 本: Version 1.0
圆版时间: 2005-06-25
开发人员: SEE
说 明: 若用于商业用途,请保留此段文字或注明代码来源
深 圳 微 雪 电 子 保 留 所 有 的 版 权
*********************************************************************/
/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
版本更新记录:
----------------------------------------------------------------------
实验内容:
自发自收,使用PA口的LED指示接受到的数据,观察是否与发送的数据一致。
----------------------------------------------------------------------
硬件连接:
将RXD、TXD使用短路帽短接,将PA口的LED指示灯使用短路帽短接。
----------------------------------------------------------------------
注意事项:
详见M16SD说明书
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/
#include <iom16v.h>
#include "D:\ICC_H\CmmICC.H"
#define DISP_PORT PORTA
#define DISP_DDR DDRA
/*--------------------------------------------------------------------
函数名称:
函数功能:
注意事项:基于7.3728M晶振
提示说明:
输 入:
返 回:
--------------------------------------------------------------------*/
void uart0_init(void)
{
UCSRB = 0x00; //disable while setting baud rate
UCSRA = 0x00;
UCSRC = 0x86;
UBRRL = 47; //set baud rate lo
UBRRH = 0x00; //set baud rate hi
UCSRB = 0x98;
}
/*--------------------------------------------------------------------
函数名称:
函数功能:
注意事项:
提示说明:
输 入:
返 回:
--------------------------------------------------------------------*/
#pragma interrupt_handler uart0_rx_isr:12
void uart0_rx_isr(void)
{
DISP_PORT = UDR;
}
/*--------------------------------------------------------------------
函数名称:
函数功能:
注意事项:
提示说明:
输 入:
返 回:
--------------------------------------------------------------------*/
void mcu_init(void)
{
CLI();
uart0_init();
MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x00; //timer interrupt sources
SEI(); //re-enable interrupts
}
/*--------------------------------------------------------------------
函数名称:
函数功能:
注意事项:
提示说明:
输 入:
返 回:
--------------------------------------------------------------------*/
void main()
{
uint8 counter=0;
mcu_init();
DISP_DDR=0xFF;
while(1)
{
UDR=counter++;
while(!(UCSRA&0x40));
UCSRA|=0x40;
delay50ms(4);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -