林夕依然AVR学习笔记移植笔记_1.doc

林夕依然AVR学习笔记移植笔记_1.doc

ID:57453730

大小:968.00 KB

页数:21页

时间:2020-08-21

林夕依然AVR学习笔记移植笔记_1.doc_第1页
林夕依然AVR学习笔记移植笔记_1.doc_第2页
林夕依然AVR学习笔记移植笔记_1.doc_第3页
林夕依然AVR学习笔记移植笔记_1.doc_第4页
林夕依然AVR学习笔记移植笔记_1.doc_第5页
资源描述:

《林夕依然AVR学习笔记移植笔记_1.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、林夕依然ATmega16学习笔记例程移植到AtmelStudio6.2笔记相信你已经有了一定的C语言及数字电路基础,以及能定下心来,决心学点东西。如果做不到的话,麻烦您把我轻轻的放开,该干啥干啥去。前言最近学习AVR,网上找了N多资料后,发现就算林夕依然ATmega16学习笔记最合俺的心意。优点如下:1、不讲原理,直接操作,适合俺这种不愿背书的差生。2、每个例程都附有源程序及PROTEUS仿真文件,省了买零件的金钱及焊板的时间。缺点当然也有:1、太省事了,初学者容易只跑跑例程,不求甚解(这也是市售所有学习板的通病)。2、基于ICCAVR,

2、而不是最新的AtmelStudio。3、理论知识太少(也算是优点)。还有一条就是这玩意是用EXE文件打包的,初次下载时,我不敢打开,生怕会给我强装软件或者开个后门什么的。后来在网上下载了一个开发板的附带光盘文件,发现里面也带着这玩意。心想这里面不该会有问题呀,才不是太放心的打开,打开后发现相见恨晚呀!好吧,先把这些例程一个一个琢磨完吧。不过看程序时发现想打瞌睡,也难怪,看这玩意也太没挑战性了。既然我的电脑中装了AtmelStudio,即然ICCAVR迟早要过时,不如把这里面的例程移植到AtmelStudio中吧!顺便也可以学习一下编程。笔

3、记不妨公开,俺也好刷一点成在感。本文中所有例程均在AtmelStudio6.2+Proteus7.8中调试通过。本文是我个人学习时的笔记,希望后来者能少走一点弯路。学习MCU的惟一捷径是多读例程,多写程序,别无他法。林夕依然ATmega16学习笔记下载链结如下::pan.baidu./s/1eQBFb7k密码:mzah实验1:8种LED点亮模式1、移植到AtmelStudio中的步骤打开AtmelStudio6.2,新建一个项目。不知道啥意思,我选第二个后,在下面起好项目名称及选好项目目录后OK。这个好办,按CPU型号选就好了。终于进入编

4、辑窗口了。一言蔽之,提取包中所有.c(C源码)、.h(C头文件)、.dsn(PROTEUS仿真文件)文件。AtmelStudio自己生成的那个.c文件要删掉,否则你懂的。移植的时候,要把头文件换一下,否则用不了所有的iom16v.h替换为avr/io.h所有#include全部注释掉。有这一句的文件中,全部增加#defineBIT(x)(1<<(x))当然了,移植的时候,我们懒得逐一去改BIT,才这么将就一下。那么AtmelStudio与BIT()等价的命令是什么呢?打开sfr_defs.h文件,里面有一行:没错,At

5、melStudio中与BIT等价的命令是_BV。再把随项目自动生成的那个C文件(含main函数的那个)删掉。main函数要改成int型。嗯,C99是这样规定的,新出的标准C编译器都得这么干,否则会有警告。某个不仅仅是五百强的公司的编程规中可是明文规定编译时不准有任何警告。按F7编译在项目目录中找到生成的hex文件,一般在DEBUG子目录里,用Proteus仿真。2、Proteus仿真步骤假设已经装好Proteus,我装的是7.8版本。双击打开包中的DSN文件。如上图所示,双击CPU,弹出下框。在ProgramFile中找到刚才编译出来的h

6、ex文件。然后点击OK。点击程序左下角的三角形图标开始仿真我们现在可以愉悦的看着LED图标在欢快的上下滚动。3、知识点作为开山第一个实验,知识点会多一些,我会很认真的写,希望你能看懂。AtmelStudio不支持直接对单个位进行操作,若要对单个位进行操作,则要通过与或非的办法。小知识:ICCAVR位操作的宏定义blog.163./huangbin_1985/blog/static/13386/C语言位操作的功能是其比较出色的地方,现在许多微处理器都支持C编译器也可看出。汇编语言的位操作也很直观,但在某些C编译器对位操作却不能象汇编中对单个

7、的位进行直接处理,而要转化为对一个字节的操作,在ICCAVR中这种限制充分体现出来。如要对PORTA的PORTA0置1,则应写成PORTA

8、=0X01;这样的位处在字节的两端还比较直观,但若是要置PORTA的第3位,第6位置1,则写出的程序可读性不强了。于是便有了一些宏操作定义#defineBIT(x)(1<<(x))(需要包含头文件macros.h)才可直接使用。下面给出两种置1和清0的宏定义:置1:1,#defineset(x)(1<<(x))2,#definesetb(temp,x)temp

9、=(1<<(x))清0:1,#defin

10、eclr(x)(~(1<<(x)))2,#defineclrb(temp,x)temp&=~(1<<(x))比较上述置1的两种宏定义,第1种在写1时需写成PORTA

11、=set(x);x表示要处

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。