zoukankan      html  css  js  c++  java
  • 《划时代51单片机C语言全新教程》前言

    电子教材目录

    前  言

        21世纪是信息时代,电子技术的发展日新月异,同时各种新型数据传输接口技术的出现和新器件的出现,例如SPI通信、USB通信、网络通信等等,大部分单片机书籍基本上没有提及,有提及的更是凤毛麟角,比较老的书籍的内容已经严重脱节。首先以编程工具为例,现在的项目开发主要以C语言为主,已经很少人使用汇编进行项目开发,程序不再是一个人独自编写,而是由一个团队进行协作式编写,一部分人负责接口编程、一部分人负责器件功能编程、一部分人负责总体架构,由此看来,C语言编程为团队协作式开发提供了可能,但是从汇编的角度来看,往往只能一个人进行编写,当然实现功能是没有问题的,不过要提醒的是,时间就是金钱,别人只要1个月就可以完成,你却要2个月的时间进行完成,别人已经捷足先登,你却姗姗来迟。

    随着国内单片机开发工具研制水平的提高,现在的单片机仿真器普遍支持C语言程序的调试,例如常见的8051系列单片机开发工具Keil、AVR单片机开发工具AVR Studio,这样为单片机使用C语言编程提供了相当的便利。使用C语言编程不必对单片机和硬件接口的结构有很深入的了解,聪明的编译器可以自动完成变量的存储单元的分配,用户只需要专注于应用软件部分的设计就可以了,这样就会大大加快软件的开发速度,而且使用C语言设计的代码,很容易在不同的单片机平台进行移植,这样如果在软件开发速度、软件质量、程序的可读性、可移植性这些都是汇编都不能所比拟的。

        在电子信息发展迅猛的年代,我们不仅要掌握8051系列单片机的C语言编程,而且要掌握好按键、LCD、USB等程序的编写,要知道几乎每一样单片机系统都要与他们打交道的,例如生活中常见的门禁系统,它们做好防盗的同时为人们提供了一个友好的“人机交互”接口如按键、LCD,输入密码以按键为媒介,相关信息在LCD上显示,门禁系统的管理信息通过串口、USB进行获取,甚至通过网络进行获取,而且获取的方式是通过PC的控制界面进行控制。

    本书单片机的选型以STC89C52RC增强型51系列单片机为蓝本。

    本书共分为六大部分。

       第一部分为简略介绍单片机的历史,着重介绍传统8051系列单片机的特点、STC89C52RC增强型51系列单片机的主要特性和Keil开发环境。

       第二部分为基础入门篇,着重讲解STC89C52RC增强型51系列单片机的内部资源的基本使用,如GPIO、定时器、外部中断、串口(含模拟串口)、看门狗、内部EERPOM等,同时对74LS164串行输入并行输出锁存器、数码管、LCD、进行简单介绍。基础入门篇做到原理与实践相结合的过程体系,初学者能够迅速掌握8051系列单片机的基本应用。基础入门篇最后阐述了STC89C52RC增强型51系列单片机独有的功耗控制、EMI管理、软件复位等应用和Keil内建的RTX-51实时系统和LIB的生成、调用,特别是RTX-51实时系统的学习将对以后进军嵌入式实时系统提供了厚实的根基。

       第三部分为实战篇,通过学习基础入门篇过后,现在必须由量变到质变的过程,实战篇只有三个实验,分别是计数器实验、交通灯实验、频率计实验。这三个实践性实验是十分典型的实验,在大学的课程设计课题中都可以找到,因为这三个实验能够很好地检验大家对单片机深入程度,同时能够使大家在面向单片机编程中逻辑思维能力得到“质”的提高。例如通过计数器实验涉及到单片机的定时器熟练应用与数码管的显示、交通灯实验涉及到串口通信技术、频率计实验涉及到定时器与LCD1602的高级应用,同时这三个实验需要74LS164进行串行输入并行输出的转换,所以当掌握了实战篇内容的精髓,大家无论是对单片机的理解或是逻辑思维能力都有不同程度的蜕变。

    第四部分为高级通信接口开发篇主要以USB、网络为主,不仅为大学的毕业设计提供了参考,更由于踏上工作岗位时,不可避免地要接触各种各样的USB设备,要为其编写程序,当USB设备满足不了项目的要求时,往往用网络设备取代USB设备,这个现象十分常见,常见产品通信接口搭配要么带有串口通信和USB通信接口,要么就是带有串口通信接口和网络通信接口,甚至有些产品连串口都省去了。其实很大一部分人如果要接触USB设备开发或者网络设备开发,他们就感觉到非常痛苦的事情,为什么这样说呢?因为要对USB或者网络设备进行开发,必须要对USB或网络协议要熟悉。难能可贵的是本电子书在有限篇幅里简明扼要地对USB和网络的协议描述得一清二楚,并通过编程的实现来验证,因此高级通信接口开发篇的USB实验和网络实验主要是消除大家对USB和网络编程的恐惧,无疑就是提升了大家的竞争力。

        第五部分为深入篇主要对接口编程、单片机编程优化、单片机稳定性作深入的研究,以深入接口和深入编程进行讲解,是技术上的重点,同样是技术上的难点。这样大家对单片机的理解不再浮于表面,而是站在一名项目开发者角度,思考着众多的技术性问题,譬如深入接口部分是以数据校验为重点,包含奇偶校验、校验和、CRC16循环冗余检验,加深大家对数据校验的理解。深入编程以编程规范、代码架构、C语言的高级应用(如宏、指针、强制转换、结构体等复杂应用)、程序防跑飞等要点作深入的研究。深入篇从技术角度来看,是整本电子书内容的精华部分,在大家研究如何优化单片机的性能、稳定性搞得焦头烂额的时候指引了明确的方向。深入篇是大家必看的部分,因其涉及的内容是单片机与C编程的精髓,无疑是满足自身的求知欲。深入篇毋庸置疑就是解决这多方面的问题,提供了不可多得的参考价值。

        第六部分为番外篇,何谓之番外篇,因为本篇超出了介绍单片机的范畴,但是又不得不说,因为在高级实验篇很大部分的篇章已经涉及了界面的应用,说实话,现在的单片机程序员或多或少与界面接触,甚至要懂得界面的基本编写,说白了就是单片机程序员同时演绎着界面程序员的角色,这个在中小型企业比较常见,编写的往往是一些比较简单的调试界面,常用于调试或演示给老板或参观的人看,当产品竣工时,要提供相应的DLL给系统集成部,缔造出不同的应用方案。在番外篇中,界面编程开发工具为VC++2008,通过VC++2008给大家展示界面如何编写,同时如何实现串口通信、USB通信、网络通信,只要使用笔者编写好的类,实现它们的通信是如此的简单,就像在C语言中调用函数一样,只需要掌握Init()、Send()、Recv()、Close()函数的使用就可以了,相信大家会在这篇中基本掌握界面编程。

    本电子书在介绍讲解实验的过程以SmartM51开发板为例,该开发板是为初学者设计的一块的一款实用型的开发板,不仅含有基本的设备单元,同时在开发板的实用性的基础上能够搭载USB模块与网络模块,很好地满足了电子书中所有实验的要求。该开发板以宏晶公司的STC89C52RC单片机为蓝本,STC89C52RC单片机是增强型的8051系列单片机,基与标准的Intel 8052进行设计,完全兼容8051指令, PDIP-40封装的STC89C52RC与传统的8051的引脚毫无二致,内部硬件资源几乎一样,并且新增了不少功能。作者还编写了单片机全能助手为大家排忧解难,不但能够自定义数码管字型码、16*16点阵字型码、字节型数据多进制显示,而且能够方便大家通过串口、USB、网络接口等调试,并支持计算校验和、奇偶校验、CRC-8、CRC-16、CRC-32检验值计算和UNICODE码的转换与翻译。

        天下大事,必作于细,无论是从单片机入门与深入的角度出发,还是从实践性与技术性的角度出发,都是本电子书的亮点,可以说是作者用尽了心血进行编写,多年工作经验的积累,读者通过学习本电子书相当于继承了作者的思路与经验,无疑就是找到快捷径,能够花最少的时间获得最佳的学习效果,节省不必要的摸爬打滚的时间。

    参与本电子书编著工作的主要人员有温子祺、刘志峰、冼安胜、林秩谦等4人,最终方案的确定和本电子书的定稿全部由温子祺负责。

    本电子书主要取材于实际的项目开发经验,对于单片机编程的程序员说是一个很好的消息,本电子书例程不但编程规范良好,代码具有良好的移植性,移植到不同的平台同样十分之方便,例如AVR平台。最后希望本电子书能对单片机应用推广起到一定的作用,由于程序代码较复杂、图表比较多,难免有所纰漏,恳请读者批评指正,并且可以通过该E-mail地址:wenziqi@hotmail.com进行反馈,我们希望能够得到您的参与和帮助。

                                                                  温子祺

    03/13/2010

    (请复制整个下载地址到迅雷、快车、QQ旋风或浏览器地址栏进行下载)

    电子书下载地址:https://files.cnblogs.com/wenziqi/划时代-51单片机C语言全新教程.rar

     

  • 相关阅读:
    2012年的结束
    学习嵌入式的点滴(一)
    面试的点滴(一)
    学习嵌入式的点滴(二)
    DB2 SQL脚本批量执行(转)
    联邦数据库的一个例子(转)
    在 DB2 9.7 for Linux, UNIX, and Windows 上运行 Oracle 应用程序(转)
    WINDOWS批处理命令详解(转)
    SQL1159 Initialization error with DB2 .NET Data Provider, reason code 2;reason code 10
    Oracle Package中的包变量的使用(转)
  • 原文地址:https://www.cnblogs.com/wenziqi/p/1771213.html
Copyright © 2011-2022 走看看