MEGA16单片机_UART程序

发布者:RainbowPromise最新更新时间:2014-12-17 来源: 51hei关键字:MEGA16  单片机  UART程序 手机看文章 扫描二维码
随时随地手机看文章
最常用的配置方式
 
UCSRB=0x00;
UCSRA=0x00;     //控制寄存器清零
UCSRC=(1<baud=MCLK/16/baud-1    //波特率最大为65K
UBRRL=baud;        
UBRRH=baud>>8;    //设置波特率
UCSRB=(1<SREG=BIT(7);                 //全局中断开放
DDRD|=0X02;                 //配置TX为输出(很重要)
 
 就是编程三个寄存器与设置波特率。调通简单,调精不容易。
#include "uart.h"
void main(void)
{
   uchar *str = "Hello World!";
    SystemInit();
    UartInit(19200);
  while(1)
  {
   if(flag)
   {
    flag = 0;
    //Show(rdata,1);
    UartSendB(rdata);
    PutString(str);
    CR();
    SPACE();
   }
  }
}
//////////////////////////////////////////////////////////////////////
#include
#include
#include "uart.h"
 
#define  mclk   8000000
#pragma interrupt_handler UartRx:12
volatile uchar rdata;
uchar flag=0;
/*void delay(uint ms)
{
 uchar i;
 while(--ms)
 {
     for(i=1141;i>0;--i);
 }
}*/
//*********************************************************
//函 数 名:     void PutString(unsigned char  *puts)
//功    能:   发送字符串到串口
//说    明:    
//参    数:     发送的字符串
//返 回 值:
//示    范:   putstring(" ")
//*********************************************************
    void PutString(uchar  *puts)
   {
       //for(;*puts!=0;puts++)   //遇到停止符0结束
    while(*puts!=0)
    {
       UartSendB(*puts++);
    }
   }
void UartInit(uint baud)
{
  UCSRA &= 0x00;
  UCSRB &= 0x00;
  UCSRC |= 0x86;//寄存器选择、字符长度为8,
  baud = mclk/16/baud-1;
  UBRRL = baud;
  UBRRH = baud>>8;
  UCSRB = 0x98;//接收中断使能、接收使能、发送使能
  SREG |= 0x80;
  DDRD |= 0x02;//TX为输出(重要)
}
void UartSendB(uchar data)
{
 while(!(UCSRA & 0x20));//UDRE为空时置位
 UDR  = data;
 while(!(UCSRA & 0x40));//TXC为空时置位
 UCSRA |= 0x40;
}
void UartRx(void)
{
 UCSRB &= 0x7F;//接收结束中断禁止
 rdata = UDR;  //存储缓冲区的数据
 flag = 1;  //接收标志置位
 UCSRB |= 0X80;//接收结束中断使能
}
void SystemInit(void)
{
  DDRA |= (1<<2)|(1<<3)|(1<<4)|(1<<6);
 DDRB |= 0xFF;
 PORTA |= (1<<2)|(1<<6);
 PORTB = 0xFF;
 PORTA &= (~(1<<2))&(~(1<<6));
}
//////////////////////////////////////////////////////////////////////////
#ifndef __UART_H__
#define __UART_H__
#include
#include
#define CR() PutString(" ")        //CR=回车换行
#define SPACE() UartSendB(0x20)         //发送一个空格。
#define  uchar unsigned char
#define  uint  unsigned int
extern volatile uchar rdata;
extern uchar flag;
//void delay(uint ms);
void UartInit(uint baud);
void UartSendB(uchar data);
void UartRx(void);
void SystemInit(void);
void PutString(uchar  *puts);
#endif
关键字:MEGA16  单片机  UART程序 引用地址:MEGA16单片机_UART程序

上一篇:AVR定时器1的CTC模式设置
下一篇:关于ICCAVR库的生成与调用

推荐阅读最新更新时间:2024-03-16 13:49

因停电,东芝MCU工厂停工
因进行设施检查时发生停电,导致东芝旗下一座MCU工厂停工,预估要等到9月17日才能全面复工(生产恢复至停电前水准)。 东芝半导体事业子公司「东芝电子元件及储存装置(Toshiba Electronic Devices & Storage)」12日宣布,旗下位于岩手县的半导体生产据点于11日停工,主因11日在针对动力设施进行检查时、发生停电。 此次因停电停工的工厂为东芝集团公司「Japan Semiconductor」的岩手事业所,主要生产使用于车载机器、民生品的通用MCU等产品。 此次停电并未对岩手事业所的生产设备造成损害,而为了重启生产、已陆续重启设备运转,目标在9月17日全面复工(生产恢复至停电前水准)。 日媒
[半导体设计/制造]
MSP430教程10:MSP430单片机WDT看门狗定时器
看门狗定时器用来防止程序因供电电源、空间电磁干扰或其它原因引起的强烈干扰噪声而跑飞的事故。程序中设置看门狗清零指令WDTCTL=WDTPW+WDTCNTCL,当程序跑飞不能及时清零看门狗,导致看门狗溢出复位,这样程序可以恢复正常运行状态。 一、WDT寄存器包括WDTCNT和WDTCTL,两个寄存器在上电和系统复位内容全部清零 1.记数单元WDTCNT:WDTCNT是16位增记数器,由MSP430选定的时钟电路产生的固定周期脉冲信号对记数器进行加法记数。WDTCNT不能直接软件存取,必须通过看门狗定时器的控制寄存器WDTCTL来控制。 2.控制寄存器WDTCTL:WDTCTL由两部分组成,高8位用作口令,即5AH(头文
[单片机]
等离子彩电微控制电路原理分析
  PDP彩电微控制器电路基本组成框图如下图所示。从图中可以看出,微控制器电路主要由MCU及工作条件电路(供电、复位、振荡电路)、遥控接收电路、按键输入电路、EEPROM数据存储器、Flash程序存储器、开关量控制电路(输出高低电平)、模拟量控制电路(输出PWM脉冲信号)、I2C总线(并行总线、串行总线、SPI总线)控制电路等组成。下面简要进行介绍。      1.MCU和存储器   PDP彩电中大都采用以51单片机为内核的微控制器,它把可开发的资源(ROM、I/O接口等)全部提供给彩电生产厂家,厂家可根据应用的需要来设计接口和编制程序,因此适应性较强,应用较广泛。   下图所示是MCU硬件组成框图。由图可见,一个最基本的
[单片机]
等离子彩电微控制电路原理分析
基于瑞萨单片机的交流感应电机驱动电路的设计
0 引言 随着电力电子技术和微控制器技术的飞速发展,现代交流变频调速系统技术在电机控制系统中的应用也越来越广,采用全控型器件IGBT的全数字控制的变频调速器已经实现了通用化,具有调速范围宽、调速精度高、动态响应快、运行效率高、操作方便等优点。变频调速器的普及应用提高了现代工业的自动化水平,提高了产品质量和劳动效率,最大限度地节约了能源,因此符合国家发展建设和谐、节约型社会的方针。 本文选用瑞萨公司推出的性价比较高的微控制器R5F21246 seties,嵌入R8C/Tiny系列CPU内核,R8C/Tiny系列中的所有MCU都集成了片上闪存,具有高性能和很好的易用性,1 MB地址空间,2 KB片上数据存储FLASH,非常适合
[单片机]
基于瑞萨<font color='red'>单片机</font>的交流感应电机驱动电路的设计
基于单片机与CPLD的混合式步进电机PWM驱动技术
  步进电动机是一种将数字信号转换为位移(或直线位移)的机电执行元件,每当输入一个脉冲时,转轴便转过一个固定的机械角度,他具有快速起停、精确步进、没有积累误差且能直接接收数字信号的特点,在数字控制系统中得到了广泛的应用。步进电机的运动性能和他的驱动器有密切的关系,驱动器的性能的优劣直接影响到步进电机运行的好坏。细分驱动方式可以减小步进电机的步矩角,提高分辨率,使电机运行更加平稳均匀,可以减小或消除低频振动。利用恒流和细分驱动技术可以大大提高步进电机的步矩分辨率,减小转矩波动,避免低频共振及降低运行噪声。通常的步进电机控制方法是采用CPU配合专用的步进电机驱动控制器来实现,存在成本高、不同种类的电动机必须要有相应的驱动控制器与之配对
[单片机]
基于<font color='red'>单片机</font>与CPLD的混合式步进电机PWM驱动技术
51单片机之矩阵键盘的驱动实现
用这个矩阵键盘做单片机输入,插 P1 口的 P1.0~P1.6。 想问的是,当: 按下 1 键 P0 口的 P0.0 输出高电平; 按下 2 键 P0.1 输出高电平; …… 一直到 8 键就可以了。 还有一个要求,当按下一个键时延时5秒并锁住其它按键,5秒之后回到起点。用汇编语言 ;===================================================== ;如下即可: ORG 0000H START: MOV P0, #255 MOV P1, #255 CLR P1.0 NOP JNB P1.4, K1 JNB P1.5, K2 JNB P1.6, K3 MOV P1, #
[单片机]
51<font color='red'>单片机</font>之矩阵键盘的驱动实现
一种基于SE8510的MCU供电问题解决方案
1.基于SE8510的反激式隔离电源设计 图1是SE8510反激式隔离电源系统原理图,SE8510是离线式隔离原边控制反激LED驱动控制IC.SE8510 使用了一个坚固的高压隔离工艺能够承受一个输入电压达450 v的冲击,具有8-450V的宽输入电压范围。因此SE8510可以通过主线输入电压直接驱动,简化变压器的设计过程。具有准确的LED调节功能,PWM 调节控制,开短路保护,过温保护等多功能。使整体应用设计比以往的方案设计变的更加简单。 图1:SE8510反激式隔离电路图 2.支持PWM调节输出电流,改变LED亮度 PWM调光通过PIN DIM加一个低频方波信号就可以实现。当PWM信号为零,门驱动器是关闭的,
[单片机]
一种基于SE8510的<font color='red'>MCU</font>供电问题解决方案
基于89C51单片机的环境噪声测量仪
   1 引 言      环境噪声监测,是人类提高生活质量,加强环境保护的一个重要环节,在各大城市的繁华街区和居民区,已有大型环境噪声显示器竖立街头。但目前国内的便携式噪声测试仪,多为价格昂贵的进口专用设备,除卫生、计量等环保专业部门拥有外,无法作为民用品推广普及。本文介绍一种以89C51单片机为核心,采用V/F转换技术构成的低成本、便携式数字显示环境噪声测量仪。该仪器工作稳定、性能良好,经校验定标后能满足一般民用需要,可广泛应用于工矿企业、机关、学校等需要对环境噪声进行测量和控制的场合。 2 声压级的测量机理   人耳的听阈一般是20μPa,痛阈一般是200 Pa,其间相差107倍,这样宽广的声压范围很不易测量,
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved