首页 > 微机单片机 >单片机制作 > 利用PC的RS232口控制LED灯

利用PC的RS232口控制LED灯

来源:互联网发布者:三岁就很酷 更新时间: 2019/02/25

通过本实验学习PC机串口与AVR单片机串口之间相互通讯的基本硬件接口电路和软件编程方法,并且达到使用PC机来控制LED的简单应用。 PC机串口大家都不会陌生了吧!我们可以使用串口电缆直接连接两台PC机的串口,实现两台PC机的串口通讯。但是PC机和单片机的通讯却不能够用电缆直接进行连接,原因是PC机RS232串口的电平标准和单片机的TTL电平不一致,因此单片机和PC机之间的串口通讯必须要有一个RS232/TTL电平转换电路。通常这个电路都选择专用的RS232接口电平转换集成电路进行设计,如MAX232、HIN232等。本实验采用NIH232CP芯片来完成串口接口电路,NIH232和MAX232可以直接互换。 当然,我们也可以使用分立元件来搭建RS232电平转换电路以供我们实验使用,下图给出了一个常见电路,只要器件完好,电路焊接完毕后即可正常工作,经实际使用,效果良好。 AVR单片机串口程序的编写 Atmega8单片机的串口具支持多种数据帧结构、有三个完全独立的中断(接收完成、发送完成、发送数据寄存器空)等特点,同时也支持多机通讯模式。本实验就以Atmega8为例来介绍AVR单片机串口的编程。 单片机串口在使用前必须对其进行初始化。初始化内容如下: 1.串口接收器和发送器的使能设置:首先我们要根据需要,使能M8串口的接收器或者发射器,这样I/O口(PD1:TXD,PD2:RXD)才能为USART工作。 2.串口中断工作方式的设置:如果需要串口工作于中断方式,则要根据需要设置USART的中断设置,如果工作于查询方式,那么中断设置就没有必要了。本实验中串口设置为响应接收完成中断,即接收器接收到一个完整的数据帧后,将触发一次接收完成中断。 3.波特率设置:也就是设置串口的数据传输速率,两个串口之间要正常通讯就必须要保证波特率相同。本实验设置的波特率为9600,系统使用内置8MHZ时钟源,可以直接查表(《Atmega8原理及应用手册》129页)得到UBRR=51。 4.数据帧结构设置:本实验设置为8位数据位+1位停止位。 因此,本实验的串口初始化程序如下: void UART_init(void) { UCSRB = BIT(RXCIE)| BIT(RXEN) |BIT(TXEN); //允许串口发送和接收,并响应接收完成中断 UBRR = 51; //设置串口波特率为9600 UCSRC = BIT(URSEL)|BIT(UCSZ1)|BIT(UCSZ0); //帧结构为8位数据+1位stop位 } 如果你对AVR单片机串口的设置还不是太熟悉的话,也可以使用ICC编译器中的应用向导直接生成串口的相关代码。操作方法如下: 1.在ICC中新建一个文件; 2.点击Tools菜单中的Application Builder子菜单,将弹出以下界面,然后根据需要选择CPU为M8,晶振频率为8MHZ。 3.点击上面界面中的UART菜单,出现下面界面。然后按下图选项选择使能接收和发送、波特率9600、数据位8位、接收完成中断。 4.点击OK后,在刚才新建的文件中即生成了完整代码,其中串口初始化的代码如下: //UART0 initialize // desired baud rate: 9600 // actual: baud rate:9615 (0.2%) // char size: 8 bit // parity: Disabled void uart0_init(void) { UCSRB = 0x00; //disable while setting baud rate UCSRA = 0x00; UCSRC = BIT(URSEL) | 0x06; UBRRL = 0x33; //set baud rate lo UBRRH = 0x00; //set baud rate hi UCSRB = 0x98; } 大家看看使用ICC自动生成的代码和我们自己编写的代码中UCSRC、UBRR、UCSRB是不是一样的呢? 通讯协议及命令(2004-10-29) 为了保证单片机和PC机的正常可靠的通讯,避免系统出现误动作,我们需要
提问/讨论

这里还没有内容,您有什么问题吗?

我要提问/讨论

推荐帖子 最新更新时间:2023-12-09 15:29

解决5G挑战关键技术之GaN详解
今年是5G元年,因此今年我们也正式进入了5G时代。与4G相比,5G频率比较高,因此为了实现相同的网络覆盖,5G基站的数量需要达到4G的三到五倍。由于5G这样的应用需求,使得相关 射频器件 面临了新的挑战。 5G基站面临的挑战: 由于5G基站不仅要满足高速率、大容量、
 alan000345RF/无线
应该知道的LoRa跳频扩频通信原理
应该知道的LoRa跳频扩频通信原理 要了解LoRa跳频扩频通信原理 我们先来看看跳频扩频是什么? FHSS,跳频扩频技术 (Frequency-Hopping SpreadSpectrum)在同步、且同时的情况下,接受两端以特定型式的窄频载波来传送讯号,对于一个非特定的接受
 AguileraRF/无线
ADM7001网络接口电路图
ADM7001网络接口电路图 ADM7001网络接口电路图
 klanlan工控电子
赚分勿进..
0 赚分勿进..
 lhzisname嵌入式系统
对LED和锂电池的一些使用体会
我的应急灯做好有大概一个月的时间了。我住的地方从没有停过电,所以平时也没有派上什么用场。只是拍了几张照片,偶尔照照找东西,呵呵!仅有的体会就来自平时偶尔的体验。 1、LED 设计: 我用的是大功率LED,有3W左右,电流可达800mA,所以选了MAX16832
 zhdphaoDIY/开源硬件专区
【第一批入围名单】兆易创新GD32L233评测活动
【测评详情】 兆易创新GD32L233尝鲜体验,开启节能 芯 时代! 【领板日期】 请入围网友务必在 2021年12月31日23:59前 ,按照下方领奖确认流程完成领奖确认。 【领板方式】 Step 1 : 微信扫描下方领奖二维码,关注 电子工程世界福利社
 EEWORLD社区GD32 MCU

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD 电路图 站点相关: 下载中心 Datasheet 参考设计

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved