原创 ATmega16_App_V1.0开发板范例6:USART实验(查询方式收发数据)(ICC)

2009-11-9 14:10 4002 6 6 分类: MCU/ 嵌入式
一、程序结构
f67d15a2-9aa6-43de-a054-148fa442661c.jpg

二、仿真效果
点击看大图 

三、main主函数



  1. /*******************************************************************************

  2. Platform: ATmega16_App_V1.0开发板(http://bbs.armavr.com)

  3. Project : 范例6:USART实验(查询方式收发数据)(ICC)

  4. Clock F : 内部2MHz

  5. Software: ICCAVR7.14C

  6. Author : 林夕依然

  7. Version : 09.11.03

  8. comments:

  9. 1、以学习LED,MAX232为硬件电路

  10. 2、接收发自电脑的数据,将其显示在LED上,并将接到到的数据减1后返回电脑

  11. 3、用串口助手工具调试,理解串口通讯协议

  12. 4、有返回值的函数,需要定义函数返回值类型,否则出错

  13. problem :

  14. 1、LED灯点亮正常,PC收到的数据不正常,不稳定,不知何因

  15. *******************************************************************************/

  16. #include <iom16v.h>

  17. #include <macros.h>

  18. #include "uart.h"



  19. /*-----------------------------------------------------------------

  20. 函数名称: void IO_init(void)

  21. 函数功能: 端口初始化

  22. 参 数:

  23. 返 回 值: 无

  24. -----------------------------------------------------------------*/

  25. void IO_init(void)

  26. {

  27. DDRA =0X00;

  28. PORTA=0XFF;

  29. DDRB =0XFF;

  30. PORTB=0XFF;

  31. DDRC =0X00;

  32. PORTC=0XFF;

  33. DDRD =0X02; //RXD输入,TXD输出

  34. PORTD=0XFF;

  35. }



  36. void main(void)

  37. {

  38. unsigned char temp;

  39. IO_init();

  40. Usart_init();



  41. while(1)

  42. {

  43. temp=Usart_Receive(); //接收来自PC的数据

  44. PORTB=~temp; //将数据显示在LED上

  45. temp=temp-1;

  46. Usart_Transmit(temp); //将收到的数据发回PC(接收到的数据不稳定,不知何因)

  47. }

  48. }

四、完整项目文件


https://static.assets-stash.eet-china.com/album/old-resources/2009/11/9/9bdb075a-3db4-4e28-9925-39299efb70b9.rar

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /2 下一条