一、AVR开发工具简介及开发环境的建立
- 软件开发工具
- 编译环境:WinAVR
- 下载软件:MucodeISP
- 仿真环境:AVR Studio
- 集成环境:AVR Studio,可以内联WinAVR 成为一个具有编译、仿真、下载功能的集成环境
- 硬件开发工具
- 下载线(并口也有USB接口的,功能是下载程序配置熔丝位)
- 仿真器
- 学习板(或手工焊接的系统板)
- 工具手册
- WinAVR技术手册
- ATmega16官方中文版技术手册(英文水平好也可以看看英文版)
WinAVR 说明
WinAVR 下载安装后只用到PN其他删除就行了、PN我们一般把他作为一个编辑环境来使用,保存为.c文件之后他就会变成一个有颜色的C文件了,这个有点就显示出来了(关键字带颜色深蓝色和点击小括号其中另一半就会高亮很多层括号就有用了)而WinAVR 的编译功能需要编写Makefile文件所以对初学者有难度先不介绍了。而编译使用AVR Studio来完成就可以了。
下载线作用
一、修改熔丝位
二、向单片机Flash中下载程序代码。不具备单步调试仿真功能。
三、下载线有很多种,最常用的是插在计算机并口上的STK200/300
下载软件说明
下载软件有很多、但推荐初学者使用Mucode isp 优点是熔丝位设置很清晰,不至于设错而锁死芯片
一般我们只管设置时钟(前8个 选了就不用管了)和JTAGEN (下面8个其中的一个)就行了。下载线和下载软件
-
AVR Studio 是Atmel公司官方的汇编、下载与仿真软件可以内联WinAVR获得C语言编译能力。单独装AVR Studio只能编译汇编语言的代码,通过JTAGE 工具也具有下载仿真的功能也可以更改熔丝位不过熔丝位不够直观。内联就可以获得C语言编译能力了。 - JTAG ICE 是Atmel公司官方的仿真调试器,但已经被仿制,价格比官方版本要便宜十倍
- 可以使用淘宝购买的JTAGEICE 当然你买的时候最要要卖家给发给你个AVR Studio 的版本
创建一个项目如下图[page]
点击下一步
进入项目
点击project 下的配置选项 (configuration options)
填入:晶振频率和代码优化
点击确定。
注意AVR都要包含一个最为基本的头文件
#include
//在AVR Studio下编译代码就不如在 WinAVR下编译好如括号不好用。[page]
调试如下
这样其实已经通过仿真器已经下载到了单片机里面了,这就提到一个JTAG的一个好处,JTAG 一边是DB9头一边就是JTAG仿真接口接单片机。所以仿真什么结果实际运行就是什么结果是一样的。51不带JTAG口一般采用伟福仿真器。、它的仿真是一种ROM仿真,仿真时候使用仿真头来代替单片机来进行仿真,最后再下载进去,所以最后运行的结果不一定是一样的。
二、计算机原理基础知识讲解
-
数值就是一位数字能够表示的数的数量,N进制数的进位规则是“冯N进1
1字节=2位十六进制数
例如:
0x55 = 0b01010101 = 85
0xa3 = 0b10100011 = 163
-
存储器
对于8位单片机,其内部存储器均为8位。
RAM与ROM 模型
-
CPU
CPU即是为中央处理器
取指令-执行
三、C语言基础知识讲解
-
变量 -
运算符
-
语句
-
函数
-
顺序语句
-
选择语句
-
循环语句
-
数组和指针
变量:变量就是存储于RAM或ROM中的数据
变量的分类:
单片机中比较常用的是字符型(char)和整型(int)
实型(float)变量在单片机C语言中一般用不到(浮点)
运算符:类似于数学运算中的运算符号(+ - * / 移位等C语言课本后有附表)
语句:C语言中以分号作为一条语句的结束
习惯上每条语句单独占用一行,但也可以每行有多条语句,
DDRx
#elif defined (__AVR_ATmega16__)
#
在找到iom16.h就有定义地址了
#define DDRC
#define DDC0
#define DDC1
#define DDC2
#define DDC3
#define DDC4
#define DDC5
#define DDC6
#define DDC7
就是说明在 0x14位置
字符型变量
占用存储器中的一个字节空间,即8位二进制数
取值范围:0~(2^8 - 1 )即0~255
可以赋值为整数或ASCII码
char zifu
char zifu = 'a'//这种特殊方式是‘a’ 字符就是把ASCII码值给了ASCII(2)0--255对应一个字符是一种映射关系单引号告诉编译器从这个码表中取出对应的ASCII码赋值给zifu 查下表得出对应就是97,所以这两条语句是等效的。
前提是先进入调试模式下view下的Watch才能用 不然是灰色的
在Value右键可以选十六进制和十进制 看看
整形变量
占用存储器中的2个字节,即16位二进制数
有无符号子类型
unsigned int :无符号整型
取值范围0~(2^16-1)即0~65535
signed int 有符号整形,signed 可以省略。
取值范围-2^15 ~ (2^15-1)即-32768 ~ 32767
长整型
取值范围更大的int 子类型
long int :长整形,长度为32位,即4个字节
long long int :长度为64位,即8个字节
常用的运算符
赋值 = 加 + 减 - 乘 * 除 / 括号() 求余%
与& 或| 取反~ 异或^ 左移 << 右移 >>
逻辑与&& 逻辑||
上一篇:AVR单片机学习(五)按键与数码管的程序设计
下一篇:AVR单片机学习(一)
推荐阅读最新更新时间:2024-03-16 13:53