AVR16单片机--串口通信实验

一、实验目的

1. 理解单片机串口的工作原理。

2. 掌握串口的编程方法。

二、实验内容

1. 验证课堂例题

编译下载运行课堂例题——“串口发送中断”(usart_ex1)和“串口接收中断”(usart_ex2),查看运行结果。理解程序的编程思想和程序执行过程。

2. 设计程序

参考上述例题的电路和编程思路,自行设计电路,包括六位数码管、4*4矩阵键盘、串口电路,完成按键定义值的数码管显示和串口通信,串口接收到的字符在数码管显示。

具体要求如下:

(1)上电复位后,数码管显示“000000”,单片机通过串口发送“Hello-Usart”握手信息;

(2)按下键盘数字键,相应数字字符在数码管最后一位显示,同时该按键的定义值以字符格式发送给串口;

(3)上位机向单片机发送’0’~’9’字符,单片机将接收到的字符在数码管最高位进行显示;

(4)要求串口发送不使用中断,串口接收使用中断。

在设计报告中,需进行总体设计思路描述,给出所涉及到的主程序、中断程序、关键功能子函数的流程图和设计代码。描述程序调试结果及出现的问题。

三、实验结果

1. 在下方贴出使用Proteus绘制的电路原理图。

2. 描述所设计程序的总体设计思路(包括根据任务划分的程序顶层结构、各任务的设计思路、各任务间的数据传递,如何解决关键问题等)

总体设计思路:首先定义相应变量,初始化引脚,初始化中断,初始化数码管和矩阵键盘。然后编写延时函数,数码管显示函数,按键检测函数,按键定位函数,串口发送函数,串口接收中断服务子函数,初始化函数,主函数。

主函数:初始化中断、数码管和键盘,首先向串口发送Hello-Ustar,再通过while循环来判断是否有按键按下,按键按下数码管第六位显示按下的数据同时向上位机发送数据。

3. 根据所设计的程序顶层结构,对主函数、中断函数(如果没有使用中断可不写)、关键功能子函数的设计思路进行简单描述,并给出各函数的流程图(用Visio画)

主函数main():初始化后判断是否有按键按下,按键按下数码管显示数值并且通过串口发送给上位机。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值