一、基础篇
单片机的基本要素
-
CPU核(如:51核 AVR核 M430核) -
ROM(READ ONLY Memory 绕母) -
RAM(random access Memory 随机访问寄存器 ) -
片上外设 -
总线
CPU核:相当于电脑的CPU吧、就是执行从ROM中取指令。这东西有几个指标非常重要
一、主频(如51核是2MHZ晶振12分频过来就是2MHZ、AVR 是20MHZ(快达到DSP水平了)MSP430F1系列的是8MHZ)
二、指令集
三、字长 (就是一次能处理二进制数据的位数
ROM:相当于电脑的硬盘、存储程序用的指标就是容量
一、容量
二、高级指标 、自编能力(就是程序在运行中可以自己擦出flash然后更改flash中的内容的能力一般我们用不到)
如:51(不具备自编能力)-->8KB
RAM:数据存储器、相当于计算机的内存、ROM中的程序在运行时快速的存取数据、目前大多数单
一、容量
主要是程序运行时调用一些变量啊调用一些数组等都是存在RAM中的。
片上外设:相当于电脑的接口,鼠标接口、显示器接口等
如:一下三种价格10元左右的单片机
总线:用于以上四部分之间的传输数据的通道、相当于硬盘的IDE线、光驱线等。
单片机能做什么?
单片机无所不能!
所谓的“微电脑控制控制”的核心就是单片机(微电脑控制比较时髦的)
覆盖工业生产、日常生活、军事设备、科研仪表仪器等所有智能化的应用场合
例如:智能洗衣机(一般洗衣机不能完成的功能)
定时完成洗衣脱水功能。
可以判断衣服的干净程度。
实现洗净既停的功能。
蒸汽熨烫的功能。
刷卡投币洗衣
更加智能LG公司的"IPAD"洗衣机一边洗衣一边听歌。
例如:(LED显示屏)
LED发光二极管构成显示屏的像素点
单片机负责逐点火逐行扫描,并与电脑通信获取图片信息。
例如:(PH/ORP仪表)
用于环境监测、工矿企业、科学研究、水产养殖等场合的PH值的测定
读取PH传感器的模拟信号、内部处理后显示在LCD上。(其实就是读取液体的PH值)
还有很多数码产品。。。
还有智能小车(我上大学时就做过这样一个东西呵呵用ATMEGA8)
一、巡线
二、避障
三、电视机遥控器遥控(接受各个遥控器的键码)
四、LCD显示
----------------------------------------------------------------------------------
二、单片机的开发工具
- 编程器(烧写器):将编译出来的目标代码固化到单片机的ROM内。(老的把单片机插到编程器上)
- 下载线:作用与编程器相同(ISP 通过一条下载线4根线和单片机通信就可以把代码下载到单片机、好处不需要把单片机从电路板拔下来)
- 仿真器:对单片机的程序进行单步调试、设置断点等,便于查找程序中的错误。其中JTAG仿真器可以在线仿真调试(它也分为2种一种是传统的需要把单片机拔下来然后把仿真器的仿真头插到板子上、通过后再把代码固化到单片机中然后把单片机放回板子上、最近新型的JTAG仿真器是属于在线仿真左边的、你只需要把单片机插到板子上把JTAG跟单片机相连接就可以进行仿真与调试同事JTAG也具有把代码固化到单片机中的能力、所以有仿真器的话下载线基本可以省了。)
- 软件开发环境
- 硬件开发环境
[page]
AVR单片机简介
AVR单片机的性价比远高于51单片机
一、高速 、RISC、主频最高可达20MHZ(首先主频就快10倍 RISC又扩大好几倍。)
二、低功耗、宽电压(1.8V---5.5V)。最低全速运行功耗<300uA
三、I/O驱动能力强、推拉电流能力均达30mA ,可以直接驱动继电器、蜂鸣器等。
四、片内资源丰富:外部中断、定时器/计数器、UART、SPI、IIC、ADC、模拟比较器。
五、型号齐全、而且40脚以下的AVR均具有DIP封装形式。(8脚到100脚需要的领域基本都有
ATMEGA系列中的ATmega16 应该算是我们用的最多一款因为很多人都是用它学习AVR单片机学习的入门。
选择AVR开发有一下几个优点
1、最小系统容易实现设计容易、只需要连接电源 焊接晶振就可以工作(当然如果对时钟要求不是很严格的话
2、很多概念符合初学者的思路、理解起来更容易:例如AVR时钟源(晶振、内部RC等)不经过分频直接提供
3、AVR即具有简单的、可以自制的ISP下载线和Jtage仿真器,又有DIP直插的封装形式。(51占用一个串口,
4、AVR的C语言编程与C语言教科书上的标准C语言语法是几乎一样的,不像51的C语言,一些bit srf 之类的变
实际例子:
电路图可以看到8个发光二极管可以进行闪烁和显示二进制显示等。
的AGND/AVCC/AREF这三个脚是你用到片内模/数转换 ADC或模拟比较器的时候需要把这三个脚接上电源,如果正常用不到可以悬空就可以了。还有RESET可以悬空。Hander6 是一个简易的下载线的接口 MOSI ,
下面是如何用万用板焊接和编译程序:
这个下载线电路还是比较简单的,只需要一片 74HC244(也可以直接跟并口相连,用244的原因是因为防止烧坏并口所以接了一个缓冲器,其实就是用并口模拟的时序ISP)
下面我们编译一个测试代码:(打开AVR studio下图)
第一项: ADORD
第二项:AVR GCC
最下面的location 这个是路径
点击:finish
下面的这步是选择仿真调试的工具和将要开发的单片机的型号:如下图
调试工具由于我们小板上没有喊JATG ICE接口 如果焊了我们可以选JTAG ICE 选项会如下图:
因为没有焊,我们直接下载到单片机运行验证。所以我们不选 JTAG ICE 选AVR Standlitor 意思就是软件仿真不用仿真器 然后右边选AT mega 16
点击:finish
#include
int main (void ){ //avr GCC的语法呢
//由于发光二极管阳极是接在PD口上 属于PD口输出型的所以要把整个PD口都置为输出
//PD端口方向寄存器 叫做
DDRD =0XFF;//0到7
}[page]
//然后点击编译 如下图
然后用 MuCode ISP
可以看到:如下图所表现
下面加一些动态效果能够让灯闪烁起来 无非是让产生两种状态
#include
int main (void ){ //avr GCC的语法呢
DDRD =0XFF;//方向寄存器
}[page]
编译验证下:
可以看到mucode isp 自动就下载进去了。 因为有个选项是下图
这个勾上后就没当这个文件更新之后就自动下载到单片机里了。下面可以看到现象每隔1秒闪烁一次
由此说明我们的程序是成功的。今天到此结束。
最后送大家一句话:
上一篇:AVR单片机学习(三)开发基础知识
下一篇:AVR单片机学习(二)硬件电路的设计教程
推荐阅读最新更新时间:2024-03-16 13:53