目前单片机与C语言的本科实验教材大多只是对单片机原理和C语言编程实现进行讲解,尽管有的还有配套视频,却没有按产品开发所需的技能进行培训。对于一个真实的单片机开发项目而言,要求的不仅是对单片机原理的学习和编程实现,还必须有产品、有实物,是一个完整的系统级的产品。
本书是西安电子科技大学本科教学质量提升计划的系列教材,从本科增强型STC12系列单片机的实际教学和实验中总结而出,定稿前已经过几届学生的使用。作者在广泛听取教师和学生的使用意见的基础上,对原有资料进行了大量的修改、完善。本书内容分14章,第1章为模拟电路基础,介绍了晶体管和场效应管开关的应用方法,常用运算放大器的基本使用方法以及数字电路中逻辑电平的定义。第2章为Keil C51程序设计基础,介绍了Keil C51的语法和常见的句式结构。第3章为STC12系列单片机存储器,主要介绍了STC12C5A60S2系列单片机的引脚、外设、存储器以及特殊功能寄存器。第4章为时钟、复位和低功耗,主要介绍了STC12增强型单片机的时钟源的使用,列出了单片机复位启动的种类以及低功耗的模式。第5章为单片机开发环境的搭建,主要介绍了在Windows平台下搭建STC12单片机开发软件的安装与使用,其中包括Keil C IDE的安装、USB转串口的使用以及HEX文件下载至单片机的方法。第6章为单片机的输入/输出,主要介绍了与I/O有关的特殊功能寄存器以及管脚模式的分类与配置,给出了5 V与3 V混合互连的方法和双向电平转换电路,最后列出了数码管显示的完整代码。第7章为中断系统与外部中断,首先介绍了单片机的中断系统与结构,然后给出了外部中断0和外部中断1的程序实例。第8章为定时器/计数器,给出了单片机内部定时器/计数器的工作模式和初始值的计数,介绍了定时器溢出的查询方法和中断方法的应用程序。第9章为串口通信,主要介绍了串口的工作方式和波特率的计算方法。第10章为PCA与PWM,首先给出了与之有关的寄存器,然后介绍了4种工作模式的寄存器配置方法并给出了相应的程序例程。第11章为模/数转换与
数/模转换,首先介绍了ADC与DAC转换的主要参数以及各自的原理与方法,接着介绍了STC12系列单片机内部自带ADC的相关寄存器与使用方法。第12章为I2C总线协议与24WC02,主要介绍了I2C协议的时序与掉电存储24WC02的使用方法,接着介绍了STC12系列单片机内部自带的数据Flash即E2PROM的相关寄存器与使用方法。第13章为Altium Designer软件的使用,介绍了原理图、原理图库和PCB的生成,以及PCB库文件的新建与使用方法,完成了单片机最小系统板的制作,并简单介绍了常用封装名称和尺寸。第14章为利用VC#开发串口助手,主要介绍了利用Visual C# 开发Windows程序的方法,以串口调试助手为实例,给出了跨线程更改控件的方法。
本书主要由代少玉、吴兴林、宗靖国编写完成。在本书的编写过程中得到了物理实验中心全体教师、兄弟院校和芯片厂商的支持,在此表示衷心的感谢。另外,本书有些内容也参考了互联网的帖子,在此对发帖人的无私奉献表示衷心感谢。
实验教学的探索是永无止境的长期任务,加之由于编写时间仓促,编者业务水平有限,书中介绍的新方法、新观点难免有不妥之处,恳请同行及广大读者提出宝贵
意见。
代少玉、吴兴林、宗靖国
2017年7月