当前位置:文档之家› 征服嵌入式系列之AVR单片机笔记

征服嵌入式系列之AVR单片机笔记

征服嵌入式系列之AVR单片机笔记
征服嵌入式系列之AVR单片机笔记

目录

第一课:不同类型单片机开发的比较 (2)

第二课:A VR单片机的优点 (3)

第三课:A VR单片机头文件简介与使用 (6)

第四课:A VR单片机I/O口的4种位操作方法 (8)

第五课:A VR熔丝位简介 (11)

第六课:如何把51单片机的程序移植到A VR单片机 (15)

第七课:A VR单片机中断的原理和使用 (15)

第八课:A VR单片机片内EEPROM的原理和使用 (22)

第九课:A VR单片机片内ADC的原理和使用 (27)

第十课:A VR片内定时器的原理和使用方法 (36)

第十一课:A VR单片机TWI总线的原理 (49)

第十二课:A VR单片机USART通信接口的原理和使用 (56)

第十三课:A VR单片机驱动LCD1602液晶显示器 (66)

第十四课:A VR单片机驱动DS18B20 (73)

第十五课:A VR单片机驱动DS1302 (80)

第十六课:不同型号的A VR单片机之间程序的移植方法 (88)

第一课:不同类型单片机开发的比较

第二课:A VR单片机的优点

注意:上面的DDB7应该是DDRB7.

点亮第一个LED灯

#include

#include

void main()

{

DDRB=0xff;

PORTB=0xff;

DDRA=0xff;

PORTA=0xfe;

while(1);

}

第三课:A VR单片机头文件简介与使用

几种操作方法的比较

#include

#include

void main()

{

DDRB=0xff;

PORTB=0xff;

DDRA=0xff;

PORTA=0;

PORTA|=(1<<2);

PORTA|=BIT(3);

PORTA|=BIT(PORTA);

}

第四课:A VR单片机I/O口的4种位操作方法

闪烁灯

#include #include

void delay(unsigned char z) {

unsigned char x,y;

for(x=0;x=z;x++)

for(y=0;y<110;y++);

}

void main()

{

DDRB=0xff;

PORTB=0xff;

DDRA=0xff;

PORTA=0xff;

while(1)

{

PORTA&=~0x80;

delay(500);

PORTA|=0x80;

delay(500);

}

}

用按键控制灯的闪烁

#include

#include

void main()

{

DDRB=0xff;

PORTB=0xff;

DDRA=0xff;

PORTA=0xff;

DDRD=0;

PORTD=0xff;//PD口设置为带上拉的输入while(1)

{

if(PIND&0x40)//00000100

PORTA|=BIT(7);

else

PORTA&=~BIT(7):

}

}

第五课:A VR熔丝位简介

第六课:如何把51单片机的程序移植到A VR单片机

第七课:A VR单片机中断的原理和使用

基于AVR单片机的曼彻斯特编解码及其应用_王建国

—258 — 基于A VR 单片机的曼彻斯特编解码及其应用 王建国,孙敬华,曹丙霞 (中国海洋大学工程学院,青岛 266071) 摘 要:提出了一种在较高通信速率(10kbps)下用A VR 单片机软件实现曼彻斯特码编解码的方法。介绍了小功率无线传输系统的工作原理和通信协议。详细阐述了用软件识别同步时钟、起始符、同步头和数据的技术方法。 关键词:曼彻斯特编解码;无线通信;A VR 单片机 Manchester Code/decode Based on A VR and Its Application WANG Jianguo, SUN Jinghua, CAO Bingxia (Engineering College, Ocean University of China, Qingdao 266071) 【Abstract 】The paper introduces a hi-efficient coding/decoding method to apply A VR MCU to code/decode Manchester at 10kbps successfully,principle and communication protocol in wireless communicating systems of low power. It provides in detail a technique about how to identify initial flag, synchronization code and data. 【Key words 】Manchester code/decode; Wireless communication; A VR 计 算 机 工 程Computer Engineering 第32卷 第20期 Vol.32 № 20 2006年10月 October 2006 ·工程应用技术与实现· 文章编号:1000—3428(2006)20—0258—03 文献标识码:A 中图分类号:TP368.2 随着无线通信芯片技术的发展,越来越多的便携式或电池供电的无线传输设备进入人们日常生活中。例如,遥控车门开关(RKE)系统、汽车轮胎压力监视系统(TPMS)、无线内窥镜系统、蓝牙技术等。这种小功率无线传输系统的关键技术是在低电流消耗和信道干扰较强的情况下实现数据稳定可靠的传输。 曼彻斯特码由于其特殊的性能,被广泛应用于小功率无线传输系统中。曼彻斯特编码是串行数据传输的一种重要的编码方式。曼彻斯特编码最大的优点是:数据和同步时钟统一编码,曼码中含有丰富的时钟信号,直流分量基本为零,接收器能够较容易恢复同步时钟,并同步解调出数据,具有很好的抗干扰性能,这使它更适合于信道传输。 传统的曼彻斯特码的编解码一般采用专用芯片电路实现,数据的串/并转换和信号的合成都通过硬件电路实现,导致电路复杂,系统成本提高。考虑到目前微处理器功能不断提高,在不影响系统微处理器完成其它处理任务的情况下,完全可以采用微处理器来实现曼彻斯特码的编码和解码。本设计提出了一种简单有效的曼彻斯特码解调方法,并选用高速AVR 单片机及软件编程实现了曼彻斯特码的编解码。 1 小功率无线传输系统工作原理 小功率无线传输系统一般由射频发射机和接收监视器两部分组成。射频发射机采集和发射信息;接收监视器接收信息,并根据接收到的信息执行相应的操作。 1.1 射频发射机模块 射频发射机一般采用电池供电,以遥控车门开关 (RKE)系统为例,电池需要连续工作3~5年,低功耗设计是电路设计的关键。在此射频发射机主控MCU 选用Atmel 公司的高性能、低功耗微控制器ATmega48V 。该芯片工作电压最低可达1.8V ,具有5种省电休眠模式,适合低功耗应用场合。根据处理器工作状态的不同进入相应的休眠模式。在掉电模式下耗电小于1μA ,极大地降低了功耗。 射频发射机的系统框图如图1所示。MCU 首先对数据进行曼彻斯特码编码,然后把数据送到射频发射芯片发射。 1.2 射频接收监视器模块 接收监视器的主控MCU 采用Atmel 公司的高性能、高速RISC 微控制器ATmega169。该芯片内嵌了4*25段的LCD 驱动器,通过它可以在LCD 上显示一些用户关心的状态信息,如轮胎气压信息等。ATmega169单片机的T/C1具有一个捕捉单元,可用来捕捉外部事件,并为其赋予时间标记以说明此事件发生的时刻。外部事件发生的触发信号可由引脚ICP1(输入捕捉引脚)输入,也可通过模拟比较器单元实现。 本设计采用T/C1的输入捕捉单元接收数据, 即曼彻斯特码数据从引脚ICP1输入。这种数据接收处理方法要求MCU 对外部输入事件具有足够的处理能力,微控制器ATmega169工作在16MHz 时性能高达16MIPS 。实验证明,当数据波特率为10kHz 时,系统能够正确接收数据。 接收监视器的系统框图如图2所示。射频信号经接收芯片解调,输出的曼码数据经过引脚ICP1输入到MCU ,MCU 利用单片机的T/C1的引脚捕捉功能虽然能够实现曼码数据电平时间精确测量,但存在一个明显的不足,就是对干作者简介:王建国(1954-),男,教授,主研方向:智能仪器仪表 与计算机控制技术;孙敬华、曹丙霞,硕士生 收稿日期:2005-11-08 E-mail :sunjinghua-2001@https://www.doczj.com/doc/4b14715631.html,

基于AVR单片机的

龙源期刊网 https://www.doczj.com/doc/4b14715631.html, 基于AVR单片机的 作者:李世琛田晓伟 来源:《硅谷》2012年第24期 摘要:主要从硬件组成和软件结构两个方面描述一种新型绿色节能照明控制系统的应用和实现方法,阐述了LED照明的可控、节能和高效等优越性,通过各种传感器检测的信号来实时控制LED照明,达到高效、舒适和人性化的办公或者生活照明环境。 关键词:绿色照明;传感器;控制系统 1 前言 在20世纪90年代初,绿色照明的概念是由美国国家环境保护局提出。完整的绿色照明内涵包含高效节能,环保,安全,舒适等其他4个指标,缺一不可。它具有高效的照明节能效益,可以消耗更少的能源,从而明显减少发电时排放的温室气体和有害气体,以达到环保的目的。安全性,舒适性是是指不产生紫外线,眩光及有害光,没有光污染。我国从上个世纪90 年代后期开始启动绿色照明项目,并逐步弃用大部分诸如白炽灯等高功耗、高发热量的光源,但在智能、人性化控制绿色照明领域却比较落后,本文主要从硬件系统和软件系统的设计这两方面介绍一种新型的绿色节能照明控制系统。 2 硬件系统组成 本控制系统的硬件组成包括四个部分,分别是主控核心、LED照明及其驱动电路、传感 器检测与转换电路、人机交互系统等组成。 本设计中主要由AVR单片机ATmega16A作为主控核心,该单片机属于ATMEL公司研发生产的增强型AVR单片机,具有高可靠性、功能强、高速度、低功耗等优点,采用RISC指 令架构。主控核心包括单片机最小系统、ISP下载电路等组成,最小系统是由外部时钟电路、复位电路组成,由于使用外部时钟电路,使得单片机工作更具可靠性、准确性和实时性,复位电路采用手动复位;ISP下载电路的作用是方便日后对控制系统的升级维护。 2.2 LED照明及其驱动电路 LED是发光二级管的英文简写,是一种能够将电能转化成光能的半导体器件,改变了效 率低的白炽灯与日光灯的发光原理,采用电场发光,具有光效高、使用寿命长、辐射低和功耗低等优点。另外LED非常适宜使用驱动电路由MCU控制,产生适宜的频率、光照强度的光线,控制模式和灯光组合多样化,适应不同的工作和生活环境。控制LED发出比较适宜人眼的柔和光线是采用PWM控制方法,这种方法是利用MCU产生的一定频率的脉冲宽度可调节的矩形波或者锯齿波,其核心思路就是改变电流值的大小而调节光线强度的。目前只有少数的单片机比如AT89C51的51单片机不带PWM,而现在市面上很多增强型51单片机都有原生的

基于AVR单片机的计算器程序

#include #include //延时函数的头文件 #include // 中断函数的头文件 #define uint unsigned int #define uchar unsigned char #define BIT(k) (1<

基于AVR单片机和A3977的步进电机控制系统设计

基于AVR单片机和A3977的步进电机控制系统设计 王宇驰 (上海大学,机电工程与自动化学院,上海200072) 摘要:基于A VR 单片机和A3977步进电机驱动芯片,实现了一种新型驱动步进电机的控制系 统该方案硬件电路简单、软件编程方便,利用串口通信可以实现计算机的远程控制。实践证明 该控制系统具有结构简单、精确度高、稳定可靠等特点。 关键词:步进电机;电机驱动; 单片机 Design of Step Motors Control System Based on A VR Microcontroller and A3977 WANG Yuchi (School of Mechatronic Engineering and Automation ,Shanghai University, Shanghai 200072, China) Abstract: A step motor driver system based on A VR Microcontroller and A3977 step motor driver was presented,it could precision control the position of beeline. The hardware circuits and software designing were easier to implement in this design project. Using UART communication,it could be remote control by computer. The practices Showed the system have higher control precision,stable and reliable. Key words: step motor; motor drive; microcontroller 引言 步进电机是数字控制电机,它将电脉冲信号转变为角位移,在正常情况下,步进电机的转速停止的位置仅由脉冲信号的频率和个数决定;同时,步进电机只有周期性的无累积误差,精度和可靠性高,动态响应快,易于起停正反转及变速由于这些优点,步进电动机已广泛应用于速度控制、位置控制的系统中,如数控机床、工业机器人等,随着应用的扩大,对步进电机的驱动控制要求也更高,如更小体积及更大的驱动能力等。 本文采用A VR单片机和Allegro公司的A3977电机驱动芯片作为电机驱动系统的设计方案,该系统的特点是集成度高、驱动电流大、精度及可靠性高、成本低,并具有很好的通用性,结合单片机串口通信可以实现远程控制。 1.步进电机控制系统实现 本文的步进电机控制系统采用上位机、下位机结构。下位机负责进行指令译码,控制步进电机的转动、停止和加、减速的实现。加速或减速过程采用软件程序实现。上位机为PC 机,负责将控制指令传递给下位机,并接收下位机的状态信息,上位机和下位机通过串口交换数据。 步进电机驱动系统硬件框图如图1所示,采用A VR单片机和A3977来控制四相的步进

基于AVR单片机--Atmega16的串口通信使用

基于AVR单片机--Atmega16的串口通信使用 //以下程序经验正可以用,MCU:M16,晶振:8M,直接用USB转串口线上的公头(针头), //第2针(RXD)接M16上的PD1口(15脚TXD),第3针(TXD)接M16上的PD0口(14脚RXD), //第5针接地,此时若板上有MAX232,则需把MAX232芯片去掉,这样才能正常工作 #include #include #define uchar unsigned char #define uint unsigned int #define fosc 8000000//晶振频率 #define BAUD 9600 //波特率 void USART_send(uchar date)//发送一个字节 { while(!(UCSRA&(1<

基于TWI接口实现AVR单片机主从机通信论文

基于TWI接口实现AVR单片机主从机通信【摘要】atmel公司的twi(two-wire serial interface)接口具有硬件实现简单、软件设计方便、运行可靠和成本低廉的优点。提出了一种以avr单片机atmega8为平台基于twi接口的主从机通信的实现方法,给出了该系统主从机进行通信的硬件结构和软件设计。该方法对于简化硬件电路、提高系统可靠性、缩短开发周期、降低成本是可行的。 【关键词】avr;twi;主机模式;从机模式 master-slave communication of avr microcontroller based on twi interface zhou yong-gang (the 41st institute of china electronics technology group corporation, qingdao shandong, 266555) 【abstract】the twi interface of atmel corporation has simple hardware, software design has the advantages of convenient, reliable operation and low cost. this article presents the design of master-slave communication system for avr microcontroller based on twi interface on the platform of atmega8,give the structure of the system’s hardware and software design. the method is feasible to simplify the hardware circuit, improve system reliability, shorten development cycles, reduce costs.

基于AVR单片机--Atmega16的1602液晶使用

基于AVR单片机--Atmega16的1602液晶使用 本程序使用AVR单片机Atmega16控制1602液晶,并在液晶上显示字符 #include #include #include"1602.h" uchar L[]="qq I Miss You"; void display()//显示函数 { write_com(0x80); show_string(L);//显示字符串 } void init()//初始化函数 { DDRC=0xff;//全部设置为输出 DDRA|=(1<<7)|(1<<6);//设置PA口的第6位(1602的rs控制脚)和第7位(1602的en控制脚)为输出 init_1602();//1602液晶初始化 } int main() { init(); display(); while(1); } //1602液晶显示头文件 #define uint unsigned int #define uchar unsigned char //PA口的第6位(1602的rs控制脚)和第7位(1602的en控制脚) #define lcdrs0 PORTA &= ~(1 << 6)//第6位输出低电平 #define lcdrs1 PORTA |= (1 << 6)//第6位输出高电平 #define lcden0 PORTA &= ~(1 << 7)//第7位输出低电平 #define lcden1 PORTA |= (1 << 7)//第7位输出高电平 void write_com(uchar com)//写命令函数 { lcdrs0; PORTC=com; _delay_ms(5); lcden1; _delay_ms(5); lcden0; }

基于AVR单片机的无线数据采集系统

《自动化技术与应用》2007年第26卷第11期 130 | T echniques of Automation & Applications 经验交流 Technical Communications 1 引言 当前我国一些地区的电网结构薄弱,很多重要线路如果突然发生故障,仍然需要人工去操作、处理。即浪费了时间,减少了供电量,同时又损害了客户的经济利益。根据这种需求,设计了无线数传系统,整个无线数据通信系统是基于RS-232串口通信的一点对多点网络结构。主控中心调度室工作人员对远方变电站实现了遥测、遥信、遥计、遥控。 2 系统总的框架如图1所示。 基于AVR 单片机的无线数据采集系统 姜 平 (合肥工业大学机械与汽车工程学院,安徽 合肥 230009) 摘 要:针对电力系统的远程数据采集和控制,采用嵌入式单片机ATmega128、数传电台MDS设计的无线数据采集系统,在供、 配电系统中得到了广泛的应用。通过上位机的远程控制及时解决线路故障,确保电网的安全运行,提高供电质量。介绍了以 ATmega128为核心的远控单元的设计、该类型单片机与数传电台的串行通信.介绍了串口通信及C和VB编程方法。 关键词:ATmega128单片机; 数字电台; C和VB语言 中图分类号: 文献标识码: 文章编号:1003-7241(2007)11-0130-03 The Design of a Digital Acquisition System JIANG Ping (HeFei University of Technology, Hefei 230009,China) Abstract: This paper introduces the design and realization of remote control cell cored by built-in single chip AVR, and it also introduces a programming method in C and VB language for this system. Key words: ATmega128;digital numbers;C and VB language 图1 系统总的结构图 收稿日期:2006-10-30 3 设计思想 在具体的应用中,如图1,一个主站作为控制中心,接收各个基站的上传数据。中心接全向天线的电台可以选用全双工工作模式以提高轮询速度,也可以选用与远端站相同的半双工电台。 图2中,数据采集单元采用ATMEL公司的ATmega128嵌入式单片机作为核心部件,利用RS-232通信接口与控制系统通信。下位机主要是将捕捉的现场信号经转换器ADC采样、量化、编码后,变成数字信号传给微处理器, 主控站的主要工作是发送 遥控指令、接收数据信息、进行数据处理和数据管理。整个系统结构简单,可靠性高。如图2。 4 嵌入式单片机ATmega 128与数传电台 的串行通信 ATmega128是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。ATmega128的数据吞吐率高达1MIPS/MHz, 从而可以缓减系统在功耗和处理速度之间的矛盾,ATmega128 图2 系统原理图

基于AVR单片机的反汇编及仿真设计与实现

基于AVR单片机的反汇编及仿真设计与实现1 肖敏,孙伟,杨兴强,张彩明 山东大学计算机科学与技术学院(250061) E-mail:minmin2008@https://www.doczj.com/doc/4b14715631.html, 摘 要:本文在对AVR系列单片机进行研发的过程中,源文件如果不慎丢失会对进一步的开发造成不便,并且单片机硬件仿真系统一般较为耗时、耗材。针对这一系列问题本文设计了一种单片机开发及仿真过程的逆过程算法,即在PC机上使用软件实现对单片机程序的反汇编以及仿真。首先,将单片机程序区中的目标机器码读出转化为BIN文件;然后将BIN文件反汇编为程序源文件;最后,用软件方法控制该单片机程序的执行过程,即在软件环境下模拟程序在AVR单片机系统中的执行过程,从而实现了AVR系列单片机的反汇编及仿真。该算法用标准C语言实现,在恢复源文件、机顶盒研发项目中都取得了良好的效果。 关键字:反汇编;仿真;AVR单片机;mask;加密电视 1 引 言 计算机软件仿真技术凭其有效性、可重复性、经济性受到各行各业的青睐。大到航空航天系统,小到单片机程序的开发,仿真技术都成为不可或缺的研究手段。在单片机应用开发过程中,一般是由源文件(*.inc、*.asm、*.tab等)经编译生成目标单片机的特殊代码,也就是所谓的目标码,然后就再进行相关的仿真调试工作。仿真调试可分为两大类--芯片级仿真和代码级仿真。芯片级仿真是指使用仿真软件和ICE硬件工具相配合,在实际硬件上进行仿真调试工作;而代码级仿真则完全在计算机上完成,不需要硬件的参与[1]。单片机的反汇编及仿真,则是在知道编译后的目标代码而不知道其程序源代码时较为适用的研究手段。在这里,反汇编是指由目标代码生成源代码的过程;仿真则是用生成的源代码在PC机上进行代码级仿真;整个过程与开发单片机程序的过程是互逆的。在单片机的开发应用中我们会经常碰到这种问题:将功能代码写好并通过仿真器写入单片机的程序区后,在无法获得源代码的情况下,这将会对单片机功能改进和研发造成不便,这就需要一种工具能将编译后的目标文件反汇编成源文件,并希望能看到这个源文件在单片机正常工作时是怎样发挥其功能的,即将反汇编出的程序用软件仿真执行,这就用到上述所说的反汇编及仿真。这种反汇编及仿真也可以应用在对单片机的破解和攻击上,该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。但作为一种开发手段,我们可以通过这种方法来寻回丢失的源文件、检测单片机程序的可执行性、单片机的安全性,并可以快速通过软件环境在PC机上进行仿真,达到缩短研发周期,降低研究经费等比较不错的效果。 综上所述,本文设计了一种简易算法来实现AVR系列单片机的反汇编及仿真,而且针对 1本课题得到高等学校博士学科点专项科研基金(项目编号:20020422030)资助 -1-

基于AVR单片机的语音识别系统设计

基于AVR单片机的语音识别系统设计 0 引言传统的人机交互依靠复杂的键盘或按钮来实现,随着科技的发展,一些新型的人机交互方式也随之诞生,带给人们全新的体验。基于语音识别的人机交互方式是目前热门的技术之一。但是语音识别功能算法复杂、计算量大,一般在计算机上实现,即使是嵌入式方面,多数方案也需要运算能力强的 ARM 或DSP,并且外扩RAM、FLASH 等资源,增加了硬件成本,这些特点 无疑限制了语音识别技术的应用,尤其是嵌入式领域。本系统采用的主控MCU 为Atmel 公司的ATMEGA128,语音识别功能则采用ICRoute 公司的单芯片LD3320。LD3320 内部集成优化过的语音识别算法,无需外部 FLASH,RAM 资源,可以很好地完成非特定人的语音识别任务。 1 整体方案设计1.1 语音识别原理在计算机系统中,语音信号本身的不确定性、动态性和连续性是语音识别的难点。主流的语音识别技术是基于统计模式识别的基本理论,原理如图1 所示。 语音识别通常需要两个阶段完成。第一阶段是训练,主要是提取语音特征,用户往往需要进行几次语音训练,经过预处理和特征提取后获得相应特征参数。第二阶段是识别,识别过程就是将输入的语音特征参数和模型库中的参数进行相似性比较,最后输出匹配度最高的特征参数完成识别过程。 2 硬件电路设计硬件框架如图2 所示,电路主要由主控制器电路和语音识别电路组成。ATMEGA128 控制LD3320 语音识别电路,输出结果由ATMEGA128 处理,然后通过总线来控制不同的设备。 2.1 控制器电路控制器选用Atmel 公司生产的ATMEGA128 芯片,采用先

(完整版)基于AVR单片机的智能小车毕业设计论文

山东交通学院 2013届毕业生毕业论文(设计) 题目:基于AVR单片机的智能小车 设计 院(系)别信息科学与电气工程学院 专业电气工程及其自动化 班级电气091 学号 姓名周国旺 指导教师丁晓冬

二○一三年六月 原创声明 本人周国旺郑重声明:所呈交的论文“基于AVR单片机的智能小车设计”,是本人在导师丁晓冬的指导下开展研究工作所取得的成果。除文中特别加以标注和致谢的地方外,论文中不包含任何其他个人或集体已经发表或撰写过的研究成果,对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明,本人完全意识到本声明的法律后果,尊重知识产权,并愿为此承担一切法律责任。 论文作者(签字): 日期:2013年06月13日

智能车作为现代社会的新生产物,是未来的发展的一个重要方向,它可以按照预定的模式在特定的环境里自动的运作,无需人为管理,便可以完成预期目标。智能车以及在智能车辆基础上开发出来的产品已成为航天、医疗、工业控制、物流等各个领域的关键设备。本设计中的理论方案、分析方法及特色与创新点等对智能化机器人,智能家用电器等自动半自动机器人的设计与普及有一定的参考意义。 整个智能小车的设计主要以AVR单片机为控制核心,以四轮玩具小车为控制对象,实现小车的循迹运行、躲避障碍物等功能。本设计通过红外线光电传感器,实现循迹功能,通过红外避障传感器实现智能小车的躲避障碍的功能。通过单片机的控制,将各模块有效整合在一起,达到所预期的目标。 关键词:AVR单片机,智能小车,循迹,避障

Smart car is an important direction for the future development as a new product of modern society. It can operate automatically in a specific environment according to the predetermined pattern and will be able to complete the intended target without user’s management. Smart car and other products based on smart car of theory scheme and analytic method, features and innovations etc. which the design and popularity of semiautomatic robot automatically such as intelligent robots, intelligent of the smart car is based on AVR microcontroller to control the four-wheel toy car, and eventually to implement tracking operation and avoiding obstacles. This design implement the tracking function through the infrared photoelectric sensor and implement the avoiding obstacles function through the infrared avoidance sensor. Integrating the various modules together by the control of the microcontroller ,and eventually achieving the desired objectives. Key words: AVR microcontroller ,Smart car ,Traction ,Obstacle avoidance

基于AVR单片机的软件PLC实现

邮局订阅号:82-946360元/年技术创新 单片机开发与应用 《PLC 技术应用200例》 您的论文得到两院院士关注 基于AVR 单片机的软件PLC 实现 Implement Soft PLC base of AVR (湖南铁道职业技术学院) 吴健 WU Jian 摘要:利用AVR 单片机的丰富的内部资源,使得单片的编程可以使用PLC 宏语言。程序员可以将精力更加集中在控制功能的实现,降低开发单片机控制程序的难度,提高开发的速度。关键词:AVR;软件PLC;宏语言中图分类号:TP3文献标识码:B Abstract:Using the abundant inside resource of AVR,designer can programe MCU by using PLC macro-language.programer can fo -cus all attention on actualizing control function,reduce the difficulty of MCU control programe,advance the process of development.Key words:AVR;Soft PLC;macro-language 文章编号:1008-0570(2010)05-2-0095-02 在单片机应用程序设计中,往往涉及动作流程控制和定时、计数控制。如果从头编写代码,程序员需要花费一定的时间重新组织底层控制功能代码,而且一般编写出来的程序接口都是专用接口,通用性不好。笔者考虑到一般性的工业流程类控制大多使用PLC 语言进行编程,之所以PLC 语言没有大量应用于其它低成本控制领域,是因为一般的PLC 的价格都比较贵,而不是PLC 编程语言不能用于一些价格比较低的控制应用。基于这种考虑,笔者开发出一种基于AVR 单片机的易用型软件PLC 程序包,可以用于低成本的流程、定时和计数控制。该程序包属于嵌入式软件PLC,可以在应用程序设计时使用普通PLC 的大部分指令。 1系统基本原理 (1)系统结构 易用型PLC 程序包主要由2个文件组成:功能实现文件 SimplePLCFunc.c 和PLC 功能申明文件SimplePLC.h 。这两个文 件均用C 语言编写,可以在GCC for AVR 编译器中正确编译。 该软件包的内部功能框图如下图1所示,箭头表示操作方向。 图1系统基本结构 系统参数表格由定时器定时表格、定时器信号表格、暂存变量表格、中间变量表格等组成。其中,定时器定时表格由年、月、日、小时、分钟、秒、百分之一秒参数组成。由于该软件包的定时依靠AVR 单片机硬件定时器0进行定时,而该定时器由于自身的限制,只能定时很短的时间,因此,在应用程序中,将该定时器定时溢出时间设置为0.01秒,当该定时器溢出时,调整百分之一秒和秒的值。其它时间值的调整在AutoTime()函数中进行调整。 (2)可裁剪的系统能力 易用型PLC 程序包可以进行定制。可以被定制的部分包括 时钟频率、输入输出继电器数量、中间继电器数量、是否使用计数器和根据需要修订外设接口代码。 其中,时钟频率由宏F_CPU 的值确定,默认值为 8000000UL,即使用8MHz 的石英晶体作为时钟源。输入输出继电器数量由变量INPORT 和OUTPORT 的长度决定,默认为unsigned int 类型,16位长度。中间继电器数量由数组APORT [MAX_APUT]决定,宏MAX_APUT 的值默认为32,即32个中间继电器。是否使用计数器由宏_PLC_USE_C_决定,当该宏值为1时,编译器编译计数器代码,当该宏值为0时,不编译计数器代 码。这样做可以在不使用计数器的应用中方便地裁剪掉计数器代码。 在利用ATMEGA16进行具体实现时,一般可以将易用型 PLC 的触点容量设置为16个输入继电器、16个输出继电器、32个中间继电器、8个定时器、16个计数器。如果利用资源更高的ATMEGA64进行具体实现时,由于该芯片具有4K 字节的SRAM,因此最高可以将嵌入的易用型PLC 的触点容量设置为32个输入继电器、32个输出继电器、256个中间继电器、32个定时器、64个计数器。这样可以满足绝大多数情况下对控制应 用的需要。 (3)指令能力 易用型PLC 必须书写的指令共2条,在PLC 程序开始的地 方,应加入启动指令BEG(),该指令用于读取输入继电器的值、清空堆栈、自动调整当前时间。在PLC 程序的末端,必须加入结束指令END(),该指令重置看门狗、输出结果至输出继电器。 易用型PLC 的功能指令一共有19条,其中包括初始取触点指令ST,取常开触点指令LD,取常闭触点指令NLD,串联常开触点指令AND,串联常闭触点指令NAND,并联常开触点指令OR,并联常闭触点指令NOR,得到堆栈的最顶部元素,并切换到下一路电路指令GETNEXT,以或的方式合并支路支路 吴健:工程师讲师硕士95--

相关主题
文本预览
相关文档 最新文档