avr flash_AVR | USART家庭自动化

avr flash

The Universal Synchronous and Asynchronous serial Receiver and Transmitter (USART) is a highly flexible serial communication device. The main features are:

通用同步和异步串行接收器和发送器(USART)是一种高度灵活的串行通信设备。 主要特点是:

  • Full Duplex Operation (Independent Serial Receive and Transmit Registers)

    全双工操作(独立的串行接收和发送寄存器)

  • Asynchronous or Synchronous Operation

    异步或同步操作

  • Master or Slave Clocked Synchronous Operation

    主或从时钟同步操作

  • High-Resolution Baud Rate Generator

    高分辨率波特率发生器

  • Supports Serial Frames with 5, 6, 7, 8, or 9 Data Bits and 1 or 2 Stop Bits

    支持具有5、6、7、8或9个数据位和1或2个停止位的串行帧

  • Odd or Even Parity Generation and Parity Check Supported by Hardware

    硬件支持奇偶校验生成和奇偶校验

  • Data Overrun Detection

    数据溢出检测

  • Framing Error Detection

    帧错误检测

  • Noise Filtering Includes False Start Bit Detection and Digital Low Pass Filter

    噪声过滤包括错误的起始位检测和数字低通滤波器

  • Three Separate Interrupts on TX Complete, TX Data Register Empty, and RX Complete

    TX完成,TX数据寄存器为空和RX完成的三个独立中断

  • Multi-processor Communication Mode

    多处理器通讯模式

  • Double Speed Asynchronous Communication Mode

    双速异步通讯模式

These are some of the features of USART, we would now lean to create a program in which we would use Bluetooth technology to open and close a LED bulb. In our program, we would take a variable X, such that if X=A our bulb will glow and if X=B the bulb will stop glowing.

这些是USART的一些功能 ,我们现在倾向于创建一个程序,在该程序中,我们将使用蓝牙技术打开和关闭LED灯泡。 在我们的程序中,我们将使用变量X ,使得如果X = A ,则灯泡将发光,如果X = B,则灯泡将停止发光。

In the similar we can also use a fan instead of LED, then we would be controlling our Fan to start or stop.

同样,我们也可以使用风扇代替LED,然后控制风扇启动或停止。

Program:



程序:

</ s> </ s> </ s>
#include <avr/io.h>
void usart_string(char*);
int main(void)
{
char x;
DDRA = 0x01;
UBRRL= 51;
UCSRB= 0x18;
UCSRC= 0x86;
usart_string("Sam");
while(1)
{
while((UCSRA&(1<<RXC))==0);
x=UDR;
if(x=='A')
{
PORTA=0x01;
}
else if(x=='B')
{
PORTA=0x00;
}		
}
}
void usart_string(char*p)
{
while(*p!='\0')
{
UDR=*p;
while((UCSRA&(1<<TXC))==0);
UCSRA|=1<<TXC;
p++;
}
}

Explanation:

说明:

  • Write all the header files as written above.

    像上面那样写所有的头文件。

  • Take a variable X which will decide whether our bulb will be ON or OFF.

    取一个变量X来决定我们的灯泡是开还是关

  • DDRA=0x01 indicates that the Led bulb is connected.

    DDRA = 0x01指示LED灯泡已连接。

  • UBRRL=51; indicates that the baud rate is set to 9600.

    UBRRL = 51; 表示波特率设置为9600

  • UCSRB=0x18 means Rx and Tx are enabled.

    UCSRB =为0x18装置R XT X被启用。

  • The usart_string will print the word written inside it.

    usart_string将打印其中写入的单词。

  • Inside the while loop, we have written our bulb glowing condition such that when A is received the LED will glow and when B is received the LED bulb will stop glowing.

    在while循环内,我们编写了灯泡发光条件,以便当接收到A时LED发光,而当接收到B时LED灯泡停止发光。

BAUD RATE

波特率

It is the rate at which the information is processed/transferred to the communication channel.

它是信息被处理/传输到通信通道的速率。

Calculation of BAUD RATE

波特率的计算

Calculation of BAUD RATE

Where, fOSC is "System Oscillator Clock Frequency".

其中, fOSC“系统振荡器时钟频率”

Simulation:

模拟:

USART Simulation

Explanation:

说明:

  • Select the following components:

    选择以下组件:

    1. Atmega16
    2. LED Red
    3. From virtual instruments mode select a VIRTUAL TERMINAL
  • Add the components as shown in the figure.

    如图所示添加组件。

  • Double click on ATmega16 and make its speed as 8000000 and upload the hex file in it.

    双击ATmega16,使其速度达到8000000,并在其中上传十六进制文件。

  • When we will start the simulation a screen will appear that would be our simulation for a Bluetooth screen.

    当我们开始仿真时,将出现一个屏幕,该屏幕将是我们对蓝牙屏幕的仿真。

  • Typing A will glow the bulb and typing B will stop the bulb from glowing.

    键入A将使灯泡发光,键入B将使灯泡停止发光。

翻译自: https://www.includehelp.com/embedded-system/usart-home-automation.aspx

avr flash

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542850.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

diskgenius 数据迁移_活见鬼,明明删除了数据,空间却没减少! - *IT界农民工*

迁移数据常用1、导出文件 - mysqldump 命令 ‍mysqldump 是 Mysql 自带的逻辑备份工具。其备份原理是通过协议连接到 Mysql 数据库&#xff0c;将需要备份的数据查询出来转换成对应的 insert 语句。当需要还原这些数据时&#xff0c;只要执行这些 insert 语句&#xff0c;即可将…

单片机小精灵t2_搭建S5P4418 ARM环境下 GPU OPENGL ES开发环境(适用 NANOPI2,3,M2,M3,T2,T3)...

本帖最后由 3guoyangyang7 于 2017-8-20 22:38 编辑先说一下背景&#xff0c;这几天做一个摄像头处理的qt项目&#xff0c;摄像头的像素是1280*720的&#xff0c;25fps&#xff0c;用qt的painter重绘widget窗体&#xff0c;会出现大量占cpu的情况&#xff0c;在刷新图片的时候整…

求出数组中元素的总和_数组中所有元素的总和可被给定数K整除

求出数组中元素的总和This program will help to find out the sum of elements in an array which is divisible by a number K. It uses the basic concept of modulo % or the remainder of a number. 该程序将帮助找出数组中被数字K整除的元素之和 。 它使用“&#xff05…

iphone短信尚未送达_第五期:从苹果 乔布斯 iPhone 说到张小龙 微信 理财通

这篇评测我是怀着敬畏之心写的。第一部分&#xff1a;从设计理念说起(一)说到设计理念&#xff0c;不得不先说下苹果的iPhone一)第一代iPhone于2007年1月9日由苹果公司前首席执行官史蒂夫乔布斯发布&#xff0c;并在2007年6月29日正式发售。让我们看一下第一代iPhone的几个细节…

74161功能表_分析图 11 所示电路 74161 的 Q 3 为高电平时功能。 74194 功能表如表 1 所示。 74161 功能表如表 2 所示。 (7.2分)_学小易找答案...

【多选题】下列各项中,关于交易性金融资产表述正确的是( )。 (5.0分)【简答题】JAVA融教材(2)-工作页-项目8——集合框架一.docx【单选题】甲公司2018年7月1日购入乙公司2018年1月1日发行的债券,支付价款为1 100万元(含已到付息期但尚未领取的债券利息20万元),另支付交易费用15…

Python | 不使用库函数将十进制数转换为二进制

Given a decimal number and we have to convert it into binary without using library function. 给定一个十进制数&#xff0c;我们必须不使用库函数就将其转换为二进制数。 Example: 例&#xff1a; Input: 10Output: 1010Python code to convert decimal to binary Pyth…

declare begin end 中if怎么写_习语系列第45期:”未雨绸缪“英语怎么说?

背景介绍&#xff1a;英语习语是指一系列特定词的组合&#xff0c;但从字面上看不容易被理解。广义的习语包括短语动词、俚语、谚语、行话等。这为我们参加四六级、雅思、托福、GRE/GMAT考试做阅读理解题时带来了不少困难。抛开考试不谈&#xff0c;如果只是想单纯地读懂经济学…

vue判断组件是否显示_vue组件中watch props根据v-if动态判断并挂载DOM的问题

问题复现:父组件中通过名为 source 的 prop 向子组件 chart 传入数据 import chart from ../components/chart export default {name: home, components: { chart }, data () {return {chartdata: [] } }, mounted () {settimeout(() => {this.chartdata = [ [89.3, 58212,…

两个链表求交集_实现两个排序链表的并集和交集

两个链表求交集In computer science, a linked list is a linear collection of data elements, whose order is not given by their physical placement in memory. Instead, each element points to the next. It is a data structure consisting of a collection of nodes w…

python在哪个城市工资高_专硕好还是学硕好?哪个更好就业工资高?

最近有备考的小伙伴咨询关于学硕和专硕的问题&#xff0c;一篇旧文分享下。昨天的文章专硕学费贵那么多会比学硕学的东西多吗&#xff1f;九大美院研究生学费对比(点击查看)受到了不少小伙伴的关注&#xff0c;大家就专硕和学硕的问题提出了不少疑义。有人认为专硕好&#xff0…

html input不能输入小数_【Python基础(八)】输入和输出

本节将会介绍python中的输入和输出操作&#xff0c;基础部分主要就是介绍input()和print()的用法&#xff0c;print()我们在之前的学习中已经多次使用了&#xff0c;并不陌生&#xff0c;这一节再详细的梳理一下print()中可以支持的各种方法。另外一大内容是文件的读写和OS命令…

comparator比较器用法_汽车三元催化器堵塞咋办?不拆不换,用这招清理干净、动力猛如虎...

如今汽车的价格是不断走低&#xff0c;很多人也能如愿成为有车人群。如今国庆假期即将到来&#xff0c;在国庆前买了车的朋友就能在长假里开着汽车出去好好游玩一番&#xff0c;这过程是想想都觉得美妙。不过作为车主&#xff0c;汽车不单要懂得开&#xff0c;也要学会保养&…

mongodb添加创建修改时间_MongoDB数据库插入、更新和删除操作详解

一、Insert操作Insert操作是MongoDB插入数据的基本方法&#xff0c;对目标集合使用Insert操作&#xff0c;会将该文档添加到MongoDB并自动生成相应的ID键。文档结构采用类似JSON的BSON格式。常见的插入操作主要有单条插入和批量插入两种形式。插入时只是简单地将文档存入数据库…

51单片机怎么显示当前时间_51单片机玩转物联网基础篇06-LCD1602液晶显示器

前言本节我们开始学习LCD1602&#xff0c;LCD1602是字符型液晶显示屏&#xff0c;在实际项目中应用非常广泛&#xff0c;学完本节就可以逐步开发一些好玩的应用了。一、基础知识1.LCD1602简介LCD1602是字符型液晶显示模块&#xff0c;专门用于显示字母、数字、符号等点阵式LCD&…

在JavaScript中以Hours24:Minutes:Seconds格式获取当前时间

使用JavaScript获取当前时间 (Getting current time in JavaScript) To get the current time in JavaScript, we need to use three library functions of Date class, 要获取JavaScript中的当前时间 &#xff0c;我们需要使用Date类的三个库函数&#xff0c; Date getHours(…

联想服务器如何u盘启动盘装系统,联想如何设置u盘启动

相信有不少网友都在使用联想电脑&#xff0c;它的性价比一直受到不少消费者的青睐。接下来教大家联想如何设置u盘启动&#xff0c;希望大家能喜欢。联想如何设置u盘启动步骤阅读1、按快捷键弹出启动选项&#xff0c;联想笔记本一般是F12或者F22、按TAB键切换App Menu菜单&#…

c语言负数左移右移_C语言 位运算符的运算规则

位运算是指按照二进制进行的运算&#xff0c;在C语言中&#xff0c;提供了6种的位运算符&#xff0c;他们分别是按位与&#xff08;&&#xff09;&#xff0c;按位或&#xff08;|&#xff09;&#xff0c;按位异或&#xff08;^&#xff09;&#xff0c;按位取反&#xff…

Android 带着用户名的SharedPreferences

/*** 设置当前用户的签到信息* account&info;account&info** param context* param sign* author jrjin* time 2016-1-5 下午2:27:47*/public static void setSignInfo(Context context, String sign) {String account getAccount(context);if (TextUtils.isEmpty(acc…

python数据分析与可视化-Python数据分析与数据可视化

数据分析、数据挖掘与数据可视化是一个古老的话题&#xff0c;并非什么新生事物。近些年来&#xff0c;借助于计算机软硬件的飞速发展&#xff0c;数据分析、挖掘、可视化相关理论和技术在各领域的应用更是有了质的飞跃。饭店选址、公交路线与站牌规划、物流规划、春运加班车次…

c语言 函数的参数传递示例_C-用户定义的函数示例,没有参数,没有返回类型...

c语言 函数的参数传递示例Define a function with no argument and no return type in C language. 用C语言定义一个没有参数且没有返回类型的函数。 In the program, we have function named fun1 which has no argument and no return type (void is the return type - that…