如何学习单片机Word文档下载推荐.docx

上传人:b****1 文档编号:15313205 上传时间:2022-10-29 格式:DOCX 页数:14 大小:35.43KB
下载 相关 举报
如何学习单片机Word文档下载推荐.docx_第1页
第1页 / 共14页
如何学习单片机Word文档下载推荐.docx_第2页
第2页 / 共14页
如何学习单片机Word文档下载推荐.docx_第3页
第3页 / 共14页
如何学习单片机Word文档下载推荐.docx_第4页
第4页 / 共14页
如何学习单片机Word文档下载推荐.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

如何学习单片机Word文档下载推荐.docx

《如何学习单片机Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《如何学习单片机Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。

如何学习单片机Word文档下载推荐.docx

  

OK,这是一份面向对单片机一无所知的初学者的入门教程。

单片机技术就如同一张窗户纸,这份肤浅的教程就是来戳穿它的,呵呵。

就如同你来到一个陌生的城市,我送你一张地图——不是我水平高,是我比你来得早,就这么点优势,呵呵。

它的作用仅仅是帮助你在茫然的情况下顺利上手,至于上手之后的进展,就全靠你自己的辛勤钻研了。

你要明白,没有任何路标能够代替你走完脚下的路。

显然,我不想你们再像我一样在入门上花费过多宝贵时间。

你们当然会感谢我,这是可以理解的,因为我也曾感谢过在我入门的时候给过我帮助的朋友。

 好了,我们开始学习单片机的旅程。

第一章:

单片机开发的基本流程

 不是所有人都学过地理,但是几乎每个人都能找到回家的路,学习单片机也是如此。

我们先不要看什么教材,我们直接进入开发过程的介绍与学习,争取在最短的时间内获得最多的感性认识。

千万不要像学英语那样学单片机,就像背了十年单词却没见着一回老外——看一年教材也没见过单片机什么样的话,那就不可能学会了。

针对我们前言中的软硬件,基本开发流程是这样的:

1、在PC电脑上安装并启动KEIL软件,建立一个单片机工程项目,调整设置,使项目输出时生成HEX格式(INTERL公司规定的一种二进制格式)烧写文件。

具体操作详见第二章。

2、新建程序文件,将其加入项目。

用汇编或者C51语言编写一个程序,编译,纠错,再编译,再纠错,直到错误全部消失,编译成功,系统会自动生成HEX格式文件,保存在项目所在的文件夹里。

3、在实验板断电的情况下(如果带电容易击穿PC机串口),用串口线连接单片机与PC机串口。

接通实验板电源,选择ISP编程(红色发光管亮),复位,进入编程状态。

启动ISP编程软件ZLGISP,选择需要擦除的FLASH块(初学编程代码不会很大,擦除第一块BLOCK8K足够)。

点击设置选项,VECTOR为FC不要改动,STATUS改为00,点击写入。

然后点击读出,确认VECTOR确实为FC,而STATUS确实为00,如果不是,重新写入,然后退出ISP状态,则设置完成。

也就是说每次退出ISP功能之前,必须确认向量为FC,否则下次将无法进入ISP状态,就好比你把钥匙放在屋子里却从外边锁上了门一样。

因为VECTOR和STATUS是同时被改写的,所以改写STATUS的时候VECTOR可能发生误码或丢失等错误,一旦发生这种情况,只能使用支持P89C51RD2的并行编程器将VECTOR的入口地址FC重新烧入,等于破门而入拿钥匙,比较麻烦了。

注意,这一步非常关键,STATUS不为00程序将不能正常运行程序,原理下文再做介绍。

打开编译好的HEX格式烧写文件。

点击编程选项,不必做任何选择,等待编程自动结束。

4、切换到运行状态(绿色发光管亮),按下复位键。

此时程序开始运行,实验板的器件会有相应的反应。

至此一次完整的单片机开发流程成功结束。

第二章:

KEIL软件使用方法

 如何安装与启动KEIL软件我就不说了,这个软件的功能有三个:

编辑程序源代码,编译源程序为目标文件(目标文件就是翻译过来的机器码),软件仿真运行结果。

作为初学者,你要明白编辑和编译的区别——就像你要明白秘书和翻译的区别一样。

 启动软件以后,点击PROJECT(工程),在下拉菜单中选择NEW(新建),在对话框中设置项目文件的保存位置,具体位置随你便了。

给该工程项目命名,随你便,但是要把扩展名设为.UV2,比如可以命名为LED.UV2,保存。

此时弹出单片机设备选择对话框,针对我们的实验板请选择ATMEL公司的AT89C51或者PHILIPS公司的8XC51RD2,点击确定。

 点击FILE(文件)中的NEW,此时会出现一个文本界面,点击FILE中的SAVE(保存),在对话框中设置保存路径(最好与刚才的工程文件在一个文件夹中)。

给该源程序文件命名,扩展名要根据你使用的编程语言确定,如果使用汇编语言,就命名为.ASM,如果使用C51语言,就命名为.C。

对于没有学过C51的初学者来说,应使用.ASM,比如LED.ASM,保存。

在左面的工程窗口里用右键点击TARGET1,选择OPTIONS 

FOR 

TARGET‘TARGET1’,在对话框中选择OUTPUT选项,在CREAT 

HEX 

FILE选项前打勾,点击确定,这样编译之后,在工程项目所在的文件夹中就能够生成HEX格式的烧写文件了。

 点击TARGET1前面的加号,用右键点击SOURSE 

GROUP 

1,选择ADD 

FILES 

TO 

GROUP‘SOURSE 

1’,将刚才新建的源程序文件加入。

此时SOURSE 

1之前也有加号了,点击会看到你新建的文件。

 双击进入你建立的文件,现在可以编写你的第一个程序了。

第三章:

你的第一个单片机程序

 源程序如下:

ORG 

00H

MOV 

P0,#55H

LOOP:

SJMP 

LOOP

END

 什么?

这么简单?

是不是在搞笑?

没错,虽然简单,但这就是一个完整的单片机程序。

具体语句我先不作解释,你要先把这个程序在实验板上跑起来才行。

点击编译按钮(项目窗口上面那三个蛋糕一样的按钮中间或者右边那个),也可以选择PROJECT选项中的BUILD 

TARGET选项,编译就自动开始。

如果有错误或者警告,下面的编译输出栏将会显示,如果你编译过C语言的程序,就会比较熟悉,所以要求你具有一定的C语言基础。

如果没有错误和警告,系统将显示代码量,DATA表示占用内部RAM空间的大小,XDATA表示占用外部RAM空间的大小,CODE表示占用片内ROM空间的大小。

P89C51RD2HBP本身有1K内部数据存储器RAM,64K内部程序存储器ROM,本实验板没有扩展外部RAM,所以暂时不能做有关外部RAM存储的实验。

至于你使用AT89C51+编程器的话,资源就比较少了,只有128B(1字节=8位)RAM和4K大小的ROM,不过对于初学者,足够使用了。

 好的,对于你这样一个一点成就感都没有的初学者来说,激动人心的时候就要到了:

我们要把这个程序固化到单片机的ROM里了。

连接好串口线,写入STATUS为00(切记!

写一次就行了,频繁擦写有可能导致向量丢失,那麻烦就大了),擦除,固化,复位——哈,程序运行了吗?

8个LED发光管隔一个亮一个吗?

如果是的话,恭喜你啊!

你已经成为一名单片机的开发人员啦!

呵呵,虽然这个程序没有什么实用价值,你也不明白语句的意义,但是它给你带来了成就感和自信心,这才是作为初学者最最需要的,有了信心与兴趣,一切都不再成为负担和难题。

 是不是开始跃跃欲试了?

好的,我们继续讲下去。

第四章:

程序解释与软件仿真功能的介绍

 现在我们回过头来解释这个程序。

 ORG是一个伪指令。

不懂?

呵呵,正常,当初我也不懂。

伪指令就是一条没有真正操作的指令,说白了就是什么活也不干,耍耍嘴皮子而已。

ORG是个定位伪指令,告诉系统程序从00地址开始执行,至于执行什么,怎么执行,它不管。

就像一次扫雪任务,一个领导来了,指着脚下说:

从这里开始扫。

至于具体怎么扫,那是你的事情,呵呵。

还有几条伪指令,去看教材。

 MOV 

P0,#55H是这个程序的核心指令,工作全部都是它做的。

参照教材,它的意思是将十六进制数55输出给寄存器P0,而P0口的状态由8个LED显示。

我知道你会对这个十六进制数字感到糊涂,因为我们长了10手指头。

这里的55不是十进制转换来的,它实际是二进制数字的一种压缩写法,写成二进制就是01010101,这样P0口接的8个LED就会隔一个亮一个。

55屁股后面的H表示它是十六进制数,如果去掉H就表示55是十进制数了。

十进制数55转换为十六进制数是37,二进制数是00110111,就不是01010101了,不信可以试试看,去掉55后面的H。

为了明确输出状态,你可以将55H写成01010101B,这个B表示是二进制数,显示结果一样,我写输出一般都使用二进制写法。

你必须明白十进制、二进制、十六进制之间的转换方法,各种计算机书里都有的。

以后你就不要用十进制思考了,二进制是一种重要思维方式,你务必熟悉。

具体计算你不要动手,那很傻哦——PC机的附件里不是有个很好的计算器吗?

可以非常方便的转换多种数制,编程的时候同时打开就行了。

 现在来解释那个很有趣味的软件仿真,你不用烧写芯片就可以看到运行结果,神奇吧!

我当初都不知道有这么好的软件,为了改变一个简单的程序会白白烧片十几次,简直是傻瓜。

现在我使你避免成为傻瓜,你是不是应该感谢我呢?

呵呵。

编译成功后点击DEBUG(调试或者叫除错,因为BUG是错误的意思)选项里的STARTSTOP 

DEBUG 

SESSION,工具栏里也有这个快捷图标(有个带红色B字母的放大镜)。

点击PERIPHERAL(外设)选项,选择需要察看的部分,这里我们选择P0口。

点击左上角文件下面的RET复位,然后点击RET右面的带下箭头的小方块来运行程序,这时可以看到P0口状态变为01010101,表明运行成功。

想要退出运行中的程序,点击那个圆形的红色叉。

要回到编辑界面请再次点击DEBUG的快捷图标。

 现在有个问题,那个LOOP:

LOOP是干嘛的?

这是一个死循环,指令反复跳转到本身,相信你能够看懂。

你会觉得它没有什么用,你感觉很对,它的确没有什么实际的作用。

那么好,让我们把它删除——编译照样通过,没有任何错误和警告,而且就算你现在把它烧写到芯片里,它也能正确运行,那为什么还要加上?

你不服?

好,那我们进入刚才的调试界面,运行程序,不好!

系统提示出错NO 

‘EXECUTE/REDA’ 

PERMISSION 

!

什么原因?

问题出来了吧?

因为你删除了这个循环,程序就跑飞了!

跑飞了

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1