本书以宏晶公司的STC89C52RC单片机为蓝本,由浅入深,并结合SmartM51开发板系统地介绍单片机的原理与结构、开发环境的使用、各种功能器件的应用。
本书主要特色是边学边做,不是单纯的理论讲解,各章节中规中矩,遵循由简到繁、循序渐进的编排方式。本书大部分的内容均来自本人的项目经验,因而许多c语言代码能够直接应用到工程项目中去,且,代码风格良好。书中还介绍了USB通信、网络通信、数据校验、深入编程等,而这些内容在很多同类型书籍中并不具备,恰恰也是踏出社会工作经常要接触的。其中配套的光盘提供各实验的演示视频和实例代码,可使读者在短时间内迅速掌握单片机的应用技巧,并可向读者提供配套的单片机开发板。
本书既可以作为大学本、专科单片机课程教材,又可以作为相关技术人员的参考与学习。俗语有说: “师父领进门,悟性靠徒弟”,最后衷心希望本书能对单片机应用推广起到一定的作用。|
21世纪是信息时代,电子技术的发展日新月异,同时各种新型数据传输接口技术的出现和新器件的出现,例如SPI通信、USB通信、网络通信等等,大部分单片机书籍基本上没有提及,有提及的更是凤毛麟角,比较老的书籍的内容已经严重脱节。首先以编程工具为例,现在的项目开发主要以c语言为主,已经很少人使用汇编进行项目开发,程序不再是一一个人独自编写,而是由一个团队进行协作式编写,一部分人负责接口编程、一部分人负责器件功能编程、-部分人负责总体架构,由此看来,C语言编程为团队协作式开发提供了可能,但是从汇编的角度来看,往往只能一个人进行编写,实现功能当然是没有问题的,不过要提醒的是,时间就是金钱,别人只要1个月就可以完成,你却要2个月的时间进行完成,别人已经捷足先登,你却姗姗来迟。
随着国内单片 机开发工具研制水平的提高,现在的单片机仿真器普遍支持c语言程序的调试,例如常见的8051系列单片机开发工具Keil、AVR单片机开发工具AVR studio, 这样为单片机使用c语言编程提供了相当的便利。使用C语言编程不必对单片机和硬件接口的结构有很深入的了解,聪明的编译器可以自动完成变量的存储单元的分配,用户只需要专注于应用软件部分的设计就可以了,这样就会大大加快软件的开发速度,而且使用c语言设计的代码,很容易在不同的单片机平台进行移植,这样如果在软件开发速度、软件质量、程序的可读性、可移植性这些都是汇编都不能所比拟的。
在电子信息发展迅猛的年代,我们不仅要掌握8051系列单片机的C语言编程,而且要掌握好按键、ICD、USB等程序的编写,要知道几乎每一-样单片机系统都要与他们打交道的,例如生活中常见的门禁系统,它们做好防盗的同时为人们提供了-一个友好的“ 人机交互”接口如按键、ICD, 输入密码以按键为媒介,相关信息在LCD上显示,门禁系统的管理信息通过串口、USB进行获取,甚至通过网络进行获取,而且获取的方式是通过PC的控制界面进行控制。
本书单片机的选型以STC89C52RC增强型51单片机为蓝本。本书共分为六大部分。
第一部分为简略介绍单片机的历史,着重介绍传统8051系列单片机的特点、STC89C52RC 增强型51单片机的主要特性和Keil开发环境。
第二部分为基础入门篇,着重讲解STC89C52RC增强型51单片机的内部资源的基本使用,如GPIO,定时器、外部中断、串口(含模拟串口)、看门狗、内部EERPOM等,同时对74LS164串行输入并行输出锁存器、数码管、LCD、进行简单介绍。基础入门篇做到原理与实践相结合的过程体系,初学者能够迅速掌握8051系列单片机的基本应用。最后阐述了STC89C52RC增强型51单片机独有的功耗控制、EMI管理、软件复位等应用和Keil内建的RTX-51实时系统以及IIB的生成、调用,特别是RTX-51实时系统的学习将对以后进军嵌入式实时系统提供了厚实的根基。
第三部分为实战篇,通过学习基础入门篇过后,现在必须由量变到质变的过程,实战篇只有三个实验,分别是计数器实验、交通灯实验、频率计实验。这三个实践性实验是十分典型的实验,在大学的课程设计课题中都可以找到,因为这三个实验能够很好地检验我们对单片机深入程度,同时能够在面向单片机编程中逻辑思维能力得到“质”的提高。例如通过计数器实验涉及到单片机的定时器熟练应用与数码管的显示、交通灯实验涉及到串口通信技术、频率计实验涉及到定时器与LCD1602 的高级应用,同时这三个实验需要74LS164进行串行输入并行输出的转换,所以当掌握了实战篇内容的精髓,无论是对单片机的理解或是逻辑思维能力都有不同程度的蜕变。
第四部分为高级通信接口开发篇,阐述了USB与网络通信的原理及其应用。在我们进行产品研发的过程当中,不可避免地要接触各种各样的USB设备,并要为其编写程序。一旦当前的USB设备满足不了项目的要求时,往往使用网络设备取代USB设备,这个现象是十分常见的。其实很大- -部分人如果是初始接触USB或者网络设备开发,他们就感觉到非常痛苦的事情,为什么这样说呢?因为要对USB或者网络设备进行开发,必须要对USB或网络协议要熟悉。难能可贵的是本书在有限篇幅里简明扼要地对USB和网络的协议描述得一清二楚,并通过实验进行验证,以此消除对USB和网络编程的恐惧,从此对USB与网络设备的开发驾轻就熟。
第五部分为深入篇主要对接口编程、单片机编程优化、单片机稳定性作深入的研究,以深入接口和深入编程进行讲解,是技术上的重点,同样是技术上的难点。这样我们对单片机的理解不再浮于表面,而是站在一名项目开发者角度,思考着众多的技术性问题,譬如深入接口部分是以数据校验为重点,包含奇偶校验、校验和、CRC16循环冗余检验,加深大家对数据校验的理解。深入编程以编程规范、代码架构、c语言的高级应用(如宏、指针、强制转换、结构体等复杂应用)、程序防跑飞等要点作深入的研究。深入篇从技术角度来看,是整本书内容的精华部分,在研究如何优化单片机的性能、稳定性搞得焦头烂额的时候指引了明确的方向。深入篇是我们必看的部分,因其涉及的内容是单片机与C编程的精髓,并解决这多方面的问题,提供了不可多得的参考价值。
第六部分为番外篇,何谓之番外篇,因为本篇超出了介绍单片机的范畴,但是又不得不说,因为在高级实验篇很大部分的篇章已经涉及了界面的应用,说实话,现在的单片机程序员或多或少与界面接触,甚至要懂得界面的基本编写,说白了就是单片机程序员同时演绎着界面程序员的角色,这个在中小型企业比较常见,编写的往往是一些比较简单的调试界面,常用于调试或演示给老板或参观的人看,当产品竣工时,要提供相应的DLL给系统集成部,缔造出不同的应用方案。在番外篇中,界面编程开发工具为VC++2008,通过VC++2008向大家展示界面如何编写,同时如何实现串口通信、USB通信、网络通信,只要使用笔者编写好的类,实现它们的通信是如此的简单,就像在c语言中调用函数- -样,只需要掌握Init()、Send()、Recv()、Close ()函数的使用就可以了,相信大家会在这篇中基本掌握界面编程,最后驾轻就熟,编写出属于自己的调试工具。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !