本书主要包括15个项目:项目1和项目2介绍单片机开发系统及单片机的硬件结构;项目3简单介绍单片机C语言及应用C语言进行编程的注意事项;项目4~项目7介绍单片机的I/O口、定时器、中断及串行口等资源;项目8和项目9介绍机械按键的识别;项目10和项目11介绍液晶屏显示技术,主要介绍 LCD1602和LCD12864;项目12介绍 A/D和D/A转换技术的实现;项目13介绍温度传感器DS18B20;项目14 介绍时钟芯片DS1302;项目15 为综合设计,设计一个可调电子钟。本书可作为高职高专院校和应用型本科学校工科类专业学生的教材,也可以作为工程技术人员和单片机开发爱好者的参考用书。
现代科学技术发展迅速,通用计算机的使用越来越普遍,但在很多设备的按键处理,一些简单的仪表控制、智能玩具和各种LED灯带中,还可以看到在大量应用的单片机。而且,物美价廉的单片机也一直朝着更低功耗、更快速度的方向进步。更为重要的是,作为一款入门级的处理器,通过对单片机的学习,学习者可以知道处理器是如何与外部电路互动的,这对学习更高级的处理器无疑有很大的帮助。所以,开设单片机的课程具有重要的意义。
本书从内容与方法、教与学等方面全方位体现了嵌入式应用的特点,这些特点主要包含以下几个方面。
1.完全从应用和职业岗位出发对全书内容进行组织和编排
目前的单片机在以下几个方面应用最广泛:(1)按键的识别;(2)PWM调制;(3)中断;(4)控制LCD12864显示;(5)简单的仪表设计。在按键的识别方面,使用状态机方法比扫描法和反转法具有更高的效率,且组合键、连击、长按等有大量应用,为此,本书专门安排了2个案例对这些应用进行介绍。在PWM调制方面,目前市面所见的很多LED灯带使用单片机的PWM功能进行调制,为此,书中也安排了2个案例对PWM进行了学习。在中断的应用方面,书中对外部中断和定时器中断进行了重点介绍。在显示屏方面,LCD12864比LCD1602应用范围更广,基于此,我们安排了6个案例对LCD12864进行了全面的介绍和学习,这6个案例涵盖了LCD12864的绝大部分应用。在简单仪表设计方面,书中精心设计了1个可调电子钟案例来进行这方面的学习和介绍,读者可以通过这个案例和LCD12864中介绍的反白效果,开发出简单实用的嵌入式菜单。除了以上所列内容,针对常见的A/D和D/A转换、单总线、SPI总线的学习都做了专门介绍并有实例相对应。这些设计技术使单片机教学与职业岗位的要求一致。
2.从易学性和应用性出发,全书采用C语言进行教学,并引入模块化编程思想
应用C语言编写的程序直观易读、可移植性强,编程风格也更加人性化,有利于学生掌握和学习。同时,在实际的项目开发中,一个项目往往涉及多个模块的组合应用,为此,书中引入了模块化编程的思想。采用这种思想编程,程序的可读性和可移植性更好。为方便读者学习和理解,书中安排了4个案例来引导读者学习和掌握这种思想。
3.编写形式直观生动,内容连贯,可读性强
每个项目都有项目介绍,用于说明每个项目学习的是什么、需要使用什么工具以及该如何学习。另外,书中重要的源代码都配有详细的注释,方便读者阅读。
4.综合性和实用性更强
单片机的学习是对前面学习的模电、数电、C语言知识的综合运用,是嵌入式学习中软硬结合的第一步。尤其是C语言,可谓单片机学习的命门。本书针对C语言在单片机中的应用,专门列举了常见的应用问题,并给出了注释的规范。所以通过本书的学习,可以进一步巩固C语言知识,并提高综合应用这些知识解决实际问题的能力。另外,在所有的有菜单的项目的开发中不可避免要涉及菜单项的选择,这里面包含着按键移动的处理、反白效果的实现等功能,通过本书的最后一个综合设计的学习,读者可以轻松掌握这方面的知识。
5.丰富的案例涵盖了单片机的大部分应用
本书针对各个知识点共安排了32个案例,这些案例涵盖了单片机学习的绝大部分应用。最后,为了后续嵌入式学习的考虑,在书中亦安排了字模提取软件的内容。
本书由校企联合编写,参考学时数为80学时,在使用时可根据具体教学情况酌情增减。参与本书编写的人员主要有欧启标、邓云、刘建圻、赵振廷等。其中欧启标对本书的编写思路与大纲进行了总体策划,编写了本书的大部分内容并进行了统稿。邓云编写了项目5,刘建圻编写了项目8,赵振廷编写了项目10,欧启标编写了其余项目。学生郭林杰、黄存营、周善高、梁程、黄灏辉等对书中的程序进行了反复测试以确保其正确性,同时李建波、张永亮、黄练、熊冬青、赵金洪等老师也给予了大力支持和帮助,在此表示感谢。广东祥新光电科技有限公司的工程师吴良年为串口通信、状态机、DS18B20以及最后的综合设计提供了大量的企业参考案例,在此一并表示感谢。
为了方便教学,本书配有免费的电子教学课件和习题答案、C语言源程序等资料,请有需要的读者登录华信教育资源网(www.hxedu.com.cn)免费注册后下载,如果需要其他教学资源,可以联系作者(邮箱:ouqibiao@126.com)索取。另外,书中部分项目使用了Proteus仿真元件,相关信息可以参考附录A。
由于时间紧迫和编者水平有限,书中的错误和缺点在所难免,热忱欢迎各位读者对本书提出批评与建议。
编 者