《AVR单片机教程22-第二十二课 单片机与PC机的串行通信编程实践.wps》由会员分享,可在线阅读,更多相关《AVR单片机教程22-第二十二课 单片机与PC机的串行通信编程实践.wps(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 上海周兴华单片机培训中心上海周兴华单片机培训中心 Http:/Http:/ 周兴华单片机培训中心 2010 年 6 月制 第二十二课第二十二课 单片机与单片机与 PC 机的串行通信编程实践机的串行通信编程实践 本教程节选自周兴华老师 本教程节选自周兴华老师 手把手教你学 AVR 单片机 C 程序设计手把手教你学 AVR 单片机 C 程序设计 教程,如需转载,教程,如需转载,请注明出处!读者可通过当当网、淘宝网等网站购买本教程,如需购买配书实验器请注明出处!读者可通过当当网、淘宝网等网站购买本教程,如需购买配书实验器材,可登陆材,可登陆周兴华单片机培训中心网购部周兴华单片机培训中心网购部自助购
2、买!自助购买!13.3.1 在 AVR 单片机开发板板上,进行单片机与 PC 机(个人电脑)的通信试验1 PC 机发送一个字符给单片机,单片机收到后即在发光管 D1D8上进行显示,同时将其回发给PC 机。为便于初学者实验成功,单片机的发送接收均采用查询方式。实验电路可参考第4章的图4-1(AVR DEMO 单片机综合试验板电路原理图)。在我的文档中新建一个 ac13-1的文件夹。建立一个 ac13-1.prj 的工程项目,最后单片机培训建立源程序文件 ac13-1.c。输入下面的程序:#include/包含头文件#include/=void port_init(void)/初始化端口子函数 P
3、ORTA=0 xFF;/PD 端口初始化输出11111111 DDRA =0 x00;/将 PA 端口设为输入 PORTB=0 xFF;/PD 端口初始化输出11111111 上海周兴华单片机培训中心上海周兴华单片机培训中心 Http:/Http:/ 周兴华单片机培训中心 2010 年 6 月制 DDRB =0 xFF;/将 PB 端口设为输出 PORTC=0 xFF;/PD 端口初始化输出11111111 /51单片机培训 DDRC =0 x00;/将 PC 端口设为输入 PORTD=0 xFF;/PD 端口初始化输出11111111 DDRD =0 x02;/将 PD 端口的 PD1设为输
4、出,其它设为输入/*void uart0_init(void)/初始化 UART 子函数 UCSRB=0 x00;/禁止 UART 发送和接收 UCSRA=0 x02;/倍速 UCSRC=0 x06;/8位数据位 UBRRL=0 x67;/波特率9600 UBRRH=0 x00;UCSRB=0 x18;/允许 UART 发送和接收 单片机 C 语言教程/*void init_devices(void)/芯片的初始化子函数 port_init();/调用端口初始化子函数 uart0_init();/调用 UART 初始化子函数/*void uart0_send(unsigned char i)/
5、发送1个字符的子函数while(!(UCSRA&(1UDRE);/等待发送缓冲区为空 单片机教材UDR=i;/发送1个字符/*unsigned char uart0_receive(void)/接收1个字符的子函数 上海周兴华单片机培训中心上海周兴华单片机培训中心 Http:/Http:/ 周兴华单片机培训中心 2010 年 6 月制while(!(UCSRA&(1RXC);/等待接收数据return UDR;/返回接收到的数据/-void main(void)/主函数unsigned char temp;/定义局部变量init_devices();/调用芯片初始化子函数 AVR 单片机教程
6、while(1)/无限循环 temp=uart0_receive();/等待接收数据 PORTB=temp;/接收的数据转成低电平后点亮 LED uart0_send(temp);/再将接收的数据发送出去 编译通过后,AVR 单片机综合试验板接通5V 稳压电源,将生成的 ac13-1.hex 文件下载到试验板上的单片机中,注意,标示“UART”及“LED”的双排针应插上单片机开发短路块。在做实验时,我们需要在 PC 机上进行信息发送。这里使用的是一个名叫 COMPort Debuger(串口调试器软件)的免安装共享软件,其下载地址为:http:/ 或 http:/ 上海周兴华单片机培训中心上海
7、周兴华单片机培训中心 Http:/Http:/ 周兴华单片机培训中心 2010 年 6 月制图13-1打开串口调试器软件,其界面如图13-1所示。右上方为发送区,右下方 protel 培训为接收区。左上方的初始化区域(如波特率、数据位等)一般不必更改(初始化为:端口号1、波特率9600、数据位 8、停止位 1、校验位无)。若你的 PC 机串口 COM1已占用时,才可考虑改用 COM2。将 PC 机的串口与 AVR 单片机综合试验板的串口连接好。清空发送区、接收区的原有内容,然后打开串口。我们做的实验比较简单,每次只能输入一位字符进行发送。发送区输入1,点发送,我们发现 AVR 单片机综合试验板
8、的8个 LED(D1D8)中,D6、D5、D1发光管点亮(即数据为0 x31),同时接收区立即显示收到的1(见图13-2)。发送区单片机论坛输入 A,点发送,我们发现 D7、D1发光管点亮(即数据为0 x41),同时接收区立即显示收到的A(见图13-3)。通过查对 ASCII 码表可知,0 x31是数字1的 ASCII 码,0 x41是字母 A 的 ASCII码。上海周兴华单片机培训中心上海周兴华单片机培训中心 Http:/Http:/ 周兴华单片机培训中心 2010 年 6 月制图13-2 上海周兴华单片机培训中心上海周兴华单片机培训中心 Http:/Http:/ 周兴华单片机培训中心 20
9、10 年 6 月制图13-3发送区勾选“按16进制显示或发送”,接收区勾选“按16进制显示”,发送区输入8,点发送,我们发现 AVR 单片机综合试验板的中,D4发光管点亮(即数据为0 x80),同时接收区立即显示收到的08,其界面如图13-4所示。发送区输入 F,点发送,我们发现 AVR 单片机综合试验板的中,D14发光管点亮(即数据为0 x0F),同时 FPGA 开发板接收区立即显示收到的0F,其界面如图13-5所示。与16进制的数据完全相符。上海周兴华单片机培训中心上海周兴华单片机培训中心 Http:/Http:/ 周兴华单片机培训中心 2010 年 6 月制图13-4 上海周兴华单片机培训中心上海周兴华单片机培训中心 Http:/Http:/ 周兴华单片机培训中心 2010 年 6 月制图13-5