《第八章单片机应用系统开发指导优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第八章单片机应用系统开发指导优秀PPT.ppt(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第八章单片机应用系统开发指第八章单片机应用系统开发指导导1第一页,本课件共有14页如何开发一个完整的单片机系统?如何开发一个完整的单片机系统?4对给定的硬件系统进行软件设计。对给定的硬件系统进行软件设计。应先完成程序的结构框图,再对框图填写指令,应先完成程序的结构框图,再对框图填写指令,使所设计的程序达到:功能上可行,代码上优使所设计的程序达到:功能上可行,代码上优化,并尽量做到结构化、模块化。化,并尽量做到结构化、模块化。5借助开发系统对所设计的程序进行调试、完善,并借助开发系统对所设计的程序进行调试、完善,并连接应用系统(即目标机)进行连机调试和硬件排错;连接应用系统(即目标机)进行连机调
2、试和硬件排错;6将应用系统投入实际工作环境。将应用系统投入实际工作环境。第二页,本课件共有14页单片机开发系统应具备的主要功能单片机开发系统应具备的主要功能 1能对目标程序进行输入、修改、贮存;能对目标程序进行输入、修改、贮存;2能与上位机(能与上位机(PC机)连接、通讯;机)连接、通讯;3能在上位机的支持下对单片机程序进行汇编、反汇能在上位机的支持下对单片机程序进行汇编、反汇编及动态调试等;编及动态调试等;4能以多种方式对目标机进行调试、运行能以多种方式对目标机进行调试、运行(以单步、以单步、设断点、连续等方式运行程序);设断点、连续等方式运行程序);5能为目标机提供程序运行空间能为目标机提
3、供程序运行空间,并提供尽量多的子并提供尽量多的子程序库;程序库;6能对目标程序进行固化。能对目标程序进行固化。第三页,本课件共有14页对单片机应用系统硬、软件设计的基本要求对单片机应用系统硬、软件设计的基本要求 1、系统配置要留有一定的余地;、系统配置要留有一定的余地;2、系统硬件应尽量简单;、系统硬件应尽量简单;3、尽量使用成熟的典型硬件电路;、尽量使用成熟的典型硬件电路;4、尽量用软件完成尽量用软件完成/实现系统要求的功能;实现系统要求的功能;5、要注意系统的驱动能力;要注意系统的驱动能力;6、要留有必要的系统功能扩展空间,要留有必要的系统功能扩展空间,7、尽量做到方便用户使用,并应考虑用
4、户的、尽量做到方便用户使用,并应考虑用户的维护便利。维护便利。第四页,本课件共有14页软件设计软件设计 1、编辑程序编辑程序2、编译编译(检查语法错误,如有错误返回第一步)(检查语法错误,如有错误返回第一步)3、试验运行试验运行(检查逻辑错误,如有错误返回第一步)(检查逻辑错误,如有错误返回第一步)这是程序开发的主要工作,通常有以下几种手段:这是程序开发的主要工作,通常有以下几种手段:A、软件仿真(仅适用于没有对硬件操作的系统)、软件仿真(仅适用于没有对硬件操作的系统)B、仿真器(最方便,但成本贵)、仿真器(最方便,但成本贵)C、下载线(低成本,仅有部分、下载线(低成本,仅有部分CPU有此功能
5、)有此功能)D、使用编程器直接将程序写到、使用编程器直接将程序写到CPU(每次要插拔(每次要插拔CPU,太麻烦),太麻烦)4、调试完毕,用编程器将程序固化在调试完毕,用编程器将程序固化在EPROM中(称写片)中(称写片)5、成品。成品。第五页,本课件共有14页程序语言的选择程序语言的选择对于一个高级的单片机程序员,往往既要熟悉汇编,同时也要熟对于一个高级的单片机程序员,往往既要熟悉汇编,同时也要熟悉悉c语言,才能更好的去编写程序。因为汇编和语言,才能更好的去编写程序。因为汇编和c都是工具,可能在某都是工具,可能在某些地方用些地方用c无法实现,但用汇编却很容易无法实现,但用汇编却很容易.有些地方
6、用汇编,很繁琐,有些地方用汇编,很繁琐,用用c就很方便。在就很方便。在bbs上多次有人争论汇编和上多次有人争论汇编和c的问题。无法说的问题。无法说c好好,还还是汇编好,有时要取决于你的项目。我们认为能够最快的实现和完是汇编好,有时要取决于你的项目。我们认为能够最快的实现和完成你的设计的就是好的。多数情况下,是用成你的设计的就是好的。多数情况下,是用c语言做设计比较快。特语言做设计比较快。特别是代码比较多的设计,别是代码比较多的设计,c的优势就更为明显。如果用的优势就更为明显。如果用c也不好,用也不好,用汇编也不好,那么就混合使用吧,汇编也不好,那么就混合使用吧,keilc51是支持是支持c和汇
7、编混合编程和汇编混合编程的。的。第六页,本课件共有14页编程器编程器我们调试通过的汇编语言或我们调试通过的汇编语言或C语言源程序,还必须经过与该语语言源程序,还必须经过与该语言对应的软件将我们能看懂的汇编或言对应的软件将我们能看懂的汇编或C“翻译翻译”(编译)成所用(编译)成所用单片机可以识别的代码。将单片机可以识别的代码烧写(编程)单片机可以识别的代码。将单片机可以识别的代码烧写(编程)到单片机程序存储器中。到单片机程序存储器中。编译出的代码一般扩展名为*.hex或*.bin;这个代码文件必须送到单片机中,单片机在电路中才能按程序的要求工作。将这个代码文件送到单片机中的工具就是编程器,与电脑
8、连接的编程器一般都通过并口或者串口与编程器的硬件连接,也有相应的服务程序;在连接好电脑与编程后运行其服务程序,在服务程序中先选择所要编程的单片机型号,再调入前面所得到的代码文件,接下来就用编程器将这个代码文件烧写到单片机中。第七页,本课件共有14页写片举例写片举例 在源程序被编译后,生成了扩展名为在源程序被编译后,生成了扩展名为HEX的目标文件,一般的目标文件,一般编程器能够识别这种格式的文件,只要将此文件调入即可编程器能够识别这种格式的文件,只要将此文件调入即可写片。在此,为使同学们对整个过程有个认识,举一例说写片。在此,为使同学们对整个过程有个认识,举一例说明:明:ORG 0000HLJM
9、P STARTORG 040HSTART:MOV SP,#5FH;设堆栈LOOP:NOPLJMP LOOP;循环END;结束表1:03000000020040BB:0700400075815F000200431F02 00 40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 75
10、 81 5F 00 02 00 43表2表3 表1为源程序,表2是汇编后得到的HEX文件,表3是由HEX文件转换成的目标文件,也就是最终写入EPROM的文件,它由编程器转换得到,也可以由HEXBIN一类的程序转换得到。学过手工汇编者应当不难找出表3与表1的一一对应关系,值得注意的是从02 00 40后开始的一长串FF,直到75 81,这是由于伪指令:ORG 040H造成的结果。(出自平凡的单片机)第八页,本课件共有14页一、硬件准备一、硬件准备随着技术的发展,单片机开发手段也越来越先进,而价格却不断下降。当FLASH型单片机被广泛应用后,采用软件模拟加写片验证成为一种经济实用的实验方法。而近年
11、来很多单片机都具有了ISP功能,只要一根下载线即可以编程,不再需要编程器。方案1:(1)计算机一台;(2)具有仿真功能的实验板一块,(3)其它如电烙铁、实验电源等常规工具。方案2:(1)计算机一台;(2)下载型实验板一块;(3)下载线一根;(4)其它如电烙铁、实验电源等常工具。方案1的特点是实验板本身具有仿真能力,性价比高。方案2价格略低。第九页,本课件共有14页单片机的在线编程技术通常进行单片机的实验或开发时,编程器是必不通常进行单片机的实验或开发时,编程器是必不可少的。仿真、调试完的程序需要借助编程器烧到可少的。仿真、调试完的程序需要借助编程器烧到单片机内部或外接的程序存储器中。普通的编程
12、器单片机内部或外接的程序存储器中。普通的编程器价格从几百元到几千元不等,对于一般的单片机爱价格从几百元到几千元不等,对于一般的单片机爱好者来说还是一笔不小的开支。另外,在开发过程好者来说还是一笔不小的开支。另外,在开发过程中,程序每改动一次就要拔下电路板上的芯片编程中,程序每改动一次就要拔下电路板上的芯片编程后再插上,也比较麻烦。后再插上,也比较麻烦。随着单片机技术的发展,出现了可以在线编程的随着单片机技术的发展,出现了可以在线编程的单片机。这种在线编程目前有两种实现方法:在系统单片机。这种在线编程目前有两种实现方法:在系统编程(编程(ISP)和在应用编程()和在应用编程(IAP)。)。第十页
13、,本课件共有14页ISPIn-SystemProgramming在系统可编程在系统可编程ISP一般是通过单片机专用的串行编程接口对单片机内部的一般是通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程,而存储器进行编程,而IAP技术是从结构上将技术是从结构上将Flash存储器映射存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体转向另一个。存储体重新编程,之后将控制从一个存储体转向另一个。ISP的实的实现一般需要很少的外部电路辅助实现,而现一般需要很少的外部电路辅助实现,
14、而IAP的实现更加灵活,的实现更加灵活,通常可利用单片机的串行口接到计算机的通常可利用单片机的串行口接到计算机的RS232口,通过专门设口,通过专门设计的固件程序来编程内部存储器。例如:计的固件程序来编程内部存储器。例如:ATMEL公司的单片机公司的单片机AT89S8252就提供了一个就提供了一个SPI(serialperipheralinterface)串行外设串行外设接口接口对内部程序存储器编程(对内部程序存储器编程(ISP),而),而SST公司的单片机公司的单片机SST89C54内部包含两块独立的存储区,通过预先编程在其中内部包含两块独立的存储区,通过预先编程在其中一块存储区中的程序就可
15、以通过串行口与计算机相连,使用一块存储区中的程序就可以通过串行口与计算机相连,使用PC上专用的用户界面程序直接下载程序代码到单片机的另一上专用的用户界面程序直接下载程序代码到单片机的另一块存储区中。块存储区中。(出自出自“中国电子技术信息网中国电子技术信息网”)第十一页,本课件共有14页IAP:inapplicationprogrammingISP和和IAP为单片机的实验和开发带来了很大的方便和为单片机的实验和开发带来了很大的方便和灵活性,也为广大单片机爱好者带来了福音。利用灵活性,也为广大单片机爱好者带来了福音。利用ISP和和IAP,不需要编程器就可以进行单片机的实验和开发,不需要编程器就可
16、以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成单片机芯片可以直接焊接到电路板上,调试结束即成成品,甚至可以远程在线升级或改变单片机中的程序。电品,甚至可以远程在线升级或改变单片机中的程序。电子工程师网站的单片机自学、开发套件就是采用具有子工程师网站的单片机自学、开发套件就是采用具有IAP功能的功能的SST公司的单片机公司的单片机SST89C54来进行开发的。来进行开发的。(出自出自“中国电子技术信息网中国电子技术信息网”)第十二页,本课件共有14页二、软件准备二、软件准备 单片机开发中除必要的硬件外,同样离不开软件,Keil软件是目前最流行开发MCS-51系列单片机
17、的软件,从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其
18、方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。(出自平凡的单片机)第十三页,本课件共有14页仿真 仿真的主要目的是进行软件调试,当然借助仿真机,也能进行一些硬件排错。一块单片机应用电路板包括单片机部份及为达到使用目的而设计的应用电路,仿真就是利用仿真机来代替应用电路板(称目标机)的单片机部份,对应用电路部份进行测试、调试。仿真有CPU仿真和ROM仿真两种,所谓CPU仿真是指用仿真机代替目标机的CPU,由仿真机向目标机的应用电路部份提供各种信号、数据,进行调试的方法。这种仿真可以通过单步运行、连续运行等多种方法来运行程序,并能观察到单片机内部的变化,便于改正程序中的错误。所谓ROM仿真,就是用仿真机代替目标机的ROM,目标机的CPU工作时,从仿真机中读取程序,并执行。这种仿真其实就是将仿真机当成一片EPROM,只是省去了擦片、写片的麻烦,并没有多少调试手段可言。通常这是二种不同类型的仿真机,也就是说,一台仿真机不能既做CPU仿真,又做ROM仿真。可能的情况下,当然以CPU仿真好。(出自平凡的单片机)第十四页,本课件共有14页