嵌入式系统领域里,51系列单片机的历史较长,应用最为广泛。并且,因其价格低廉,器件易于采购,开发工具完善,而受到众多工程技术人员的青睐。
51系列单片机体系结构简单,其应用复杂度适中,入门容易。因此,在嵌入式二次开发市场占据很大的份额,也拥有众多的使用者。
本书以51单片机为基本的嵌入式应用平台,研究嵌入式应用软件的编程技术,探讨嵌入式汇编语言编程、嵌入式C语言编程的特点,以众多的应用实例为背景,探究嵌入式编程过程中的技术细节。
在本书的汇编语言部分,以单片机定时器、中断、输入、输出等电路单元的驱动程序设计为实例,体现出在硬件驱动编程中,汇编语言为最自然语言的特点。
在本书的C语言部分,主要以过程设计为主线,探讨C51语言软件编程技术。主要内容有:嵌入式c51编译特点、c源代码的组织方式、开发模式、混合编程、代码运行机制(程序切换)等。
本书可供读者深入学习嵌入式软件编程技术使用,也可作为高等院校嵌入式系统教学的参考书。
第1篇 汇编语言程序设计
引言
第1章 深刻理解51单片机的指令系统
1.1 概述
1.2 单片机指令级逻辑结构
1.3 单片机的典型存储结构
1.4 指令系统分析
1.4.1 指令体系结构
1.4.2 指令级计算机的工作机理
1.4.3 指令级数据表示
1.5 指令编码
1.6 寻址方式
1.7 指令功能分析
1.7.1 数据传送类指令
1.7.2 算术运算类指令
1.7.3 逻辑运算类指令
1.7.4 控制转移类指令
1.7.5 位操作类指令
1.7.6 控制转移指令的复合应用
第2章 查表和散转程序设计技术
2.1 查表程序设计技术
2.1.1 查表编程概述
2.1.2 基本查表编程技术
2.1.3 扩展查表编程技术
2.1.4 扩展数据表查表编程技术
2.1.5 数据表元素扩展查表编程技术
2.2 散转程序设计技术
2.2.1 应用软件的整体构造
2.2.2 散转基本编程技术
2.2.3 散转程序的扩展编程技术
2.2.4 基本查表散转程序编程技术
2.2.5 标记查表法散转程序编程技术
2.3 AT24XX系列存储芯片编程
2.3.1 AT24系列存储芯片的特性
2.3.2 AT24系列芯片的读/写操作
第3章 中断程序和单片机软件抗干扰程序设计技术
3.1 中断概述
3.2 中断的基本编程技术
3.3 "定时查询"中断扩展编程技术
3.4 中断的"外部中断查询"扩展技术
3.5 中断编程实例
3.6 单片机软件抗干扰技术概述
3.7 抗系统"死循环"技术
3.7.1 基本软件看门狗技术
3.7.2 高级软件看门狗技术
3.8 抗系统"跑飞"干扰技术
3.8.1 指令冗余法
3.8.2 软件陷阱技术
第4章 定时/计数器编程技术
4.1 软件定时器设计技术
4.1.1 软件定时器的应用原理
4.1.2 软件定时器的设计
4.1.3 软件定时器的应用实例
4.2 硬件定时器设计技术
4.2.1 硬件定时/计数器的工作机理
4.2.2 实时定时/计数器的编程
4.3 超长时间实时定时器编程技术
……
第5章 显示接口编程技术
第6章 键盘接口编程技术
第7章 汇编语言编码风格
第2篇 C51程序设计
引言
第8章 C51语言基础
第9章 C51程序设计基础
第10章 C51编码风格
第11章 数组、结构与指针
第12章 C51编程模式及程序测试
第13章 C51混合编程技术
第14章 程序切换技术
参考文献
编后记
第1篇 汇编语言程序设计
引言
迄今为止,笔者依然认为,汇编语言是理解单片机系统或者计算机系统工作机制的一把利器,也是进行单片机软件开发的一个强大的工具。因为,汇编代码直接工作在单片机的机器层次上,它将单片机看成是可以自动执行指令的机器,用软件去给它智慧,使它能够完成目标管理、自动控制等应用工作。
在硬件驱动的编程中,汇编语言是最自然的语言。虽然,在高级语言中,如c51语言中,提供了预定义的符号,如PO、P3.0等,还有宏和关键字,如PBYTE、AT等,用户可以直接用这些符号、宏或关键字,在源程序中去描述硬件、访问硬件。但是,抽象层次较高的高级语言,毕竟减弱了编程者对硬件工作机制的洞察力。在有实时性响应要求、或者时间精度要求较高的场合,或者进行外围芯片驱动时,高级语言显得并不那么直接,此时,汇编语言却是对这种场合的自然表述工具。
另外,高级语言要求编程者对编译器等编程工具要有一定的理解,对编程者的软件知识、软件能力方面有一定要求。而用汇编语言可避免这些繁琐,只要理解了单片机的基本工作机制,直接使用它,就可入门编程。
编制较简单的单片机软件时,或者在编制接口驱动程序时,采用汇编语言不失为一个好的选择。
在软件的移植应用方面,汇编语言也是不可缺少的工具。比如各种实时操作系统的移植中,那些与硬件紧密相关的代码部分,或者高级语言编译器所不能支持的代码部分,还是需要用汇编语言来编制。
因此,汇编语言是单片机中最基本的编程语言,是我们理解单片机工作机制的重要手段,也是理解单片机各种接口的软件驱动和基本算法实现的基础,更是解决软件编程、软件调试问题的手段。在单片机软件设计中,它有不可替代的作用。掌握一种汇编语言,是掌握单片机技术或者其他计算机技术的一把钥匙。
……