下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题目:基于 51 单片机的教学实验系统的设计与开发THE DESIGN AND DEVELOPMENT OF TEACHING EXPERIMENTSYSTEM BASED ON 51 MCU Abstract单片机经过几十年的发展,目前已经广泛应用于生产生活的各个领域。全国高等院校的计算机科学与技术专业和电子信息工程等专业,已经普遍开设了单片机相关的课程。单片机技术,单片机原理与接口技术应用等课程作为工科专业的必修专业基础课,对教学提出了较高的要求,尤其是实践教学环节。单片机技术的教学必须要有一定课时的高质量的实验课程来配合理论课的教学,只有这样才能使学生更好的掌握单片机的开发,提高动手实践
2、的能力,培养创新精神。但是目前市场上的单片机实验系统普遍价格昂贵,并不能很好的满足单片机的教学。在这样的情况下,构建一个低成本,源代码开放,有完整电路原理图的单片机教学实验系统是非常有必要的。对于提高单片机的教学效果,培养单片机的开发人才具有很大的现实意义。论文主要完成了以下工作:1. 分析了目前单片机教学中存在的问题,和目前市场上存在的单片机教学实验系统的现状。提出了构建一种低成本,源代码开放,适合学校单片机教学的51 单片机教学实验系统。2. 为了解决单片机教学中存在的问题,对单片机教学进行改革,提高单片机的教学效果,使学生能够更好的掌握单片机的开发技术,结合单片机教学大纲的要求,利用宏晶
3、科技公司生产的 STC89C52 单片机为核心,设计完成单片机教学实验系统的硬件开发工作,并且调试成功。提供了所有的硬件电路原理图,以供给单片机教学使用。3. 结合单片机教学实验系统的硬件和教学需要,开发了一系列的基础类的实验,即基础接口设计实验。同时为了满足创新性教学和太高学生综合设计能力等的需要,开发了一些综合性的实验项目,例如,数字电子钟实验,简易计算器实验,温控系统实验等供教学以及单片机课程设计和毕业设计的使用。所开发的实验项目均提供汇编源代码和 C 源代码,供学生参考。4. 开发了基于 SST89E564RD 的硬件仿真器。以使学生能够在课堂上学会单片机的硬件仿真调试,真正的掌握单片
4、机的开发技术。目前本课题已经完成了 51 单片机的教学实验系统的所有的硬件和软件的开发调试工作,经过小规模的试用,证明符合本课题设计的预期,效果良好。关键词:STC89C52;单片机;实验系统;调试与仿真THE DESIGN AND DEVELOPMENT OF TEACHING EXPERIMENT SYSTEM BASED ON 51 MCUAbstractAfter several decades of development, now MCU is widely used in all areas of life and production. National institution
5、s and universities of higher learning and technical expertise in computer science and electronic information engineering and other professionals, have widely opened MCU-related courses. "Single-chip technology", "MCU principles and interface technology" and other professional eng
6、ineering curriculum as a compulsory basic course, the teaching is making higher requirements, especially in practice teaching. MCU technology teaching demands a certain class time of high-quality courses to test the theory with the experiment in teaching. Only in this way the students can better gra
7、sp the MCU development, improve the hands on ability and the creating consciousness. However, the current MCU experimental system from market is generally expensive, and can not meet the relevant teaching well. In such circumstances, It is very necessary to build a MCU experimental teaching system o
8、f low-cost and open source code with a complete circuit diagram. It also has great practical significance for improving the teaching effectiveness and the training of concerned human resources.This thesis has completed the following tasks:1. The analysis of current problems in MCU teaching and the s
9、tatus of existed MCU experimental teaching system and the proposal to build a system of low-cost, open source code, suitable for teaching as “51 MCU experiment teaching system”.2. In order to solve the problems in MCU teaching, make some reforms, improve the teaching effectiveness, enable the studen
10、ts to better grasp the development of chip technology, and to combine with the MCU curriculumrequirements, by using STC89C52 produced by HongJing Technology as a core, we designed and completed the development of the system's hardware, and finally successfully debugged. All the hardware circuit
11、diagrams are provided to match the relevant teaching.3. To meet the demand for MCU hardware and teaching, a series of basic experiments are developed as basic interface design experiment. Meanwhile, in order to meet the innovative teaching and the needs of comprehensive design capabilities for highe
12、r level students, a number of comprehensive pilot projects are developed such as digital electronic clock experiment, simple calculator experiment and temperature control system experiment for the use of teaching , curriculum design and graduation design. All the developed experimental projects are
13、provided source code and C source code for students reference.4. The hardware emluator is developed out based on SST89E564RD to enable the students to learn the hardware simulation debugging of MCU in class and totally grasp the concerned developing technology. Currently, the project has completed t
14、he hardware and software development and debugging work of “51 MCU System”. Through a small-scale trial it proved to be complied with the anticipation of this topic and achieved good effects.Keywords: STC89C52;MCU;Experimental system;Debugging and simulation目录1 绪论11.1 研究背景和意义11.2 研究现状31.3 本文的主要工作42
15、单片机实验系统总体设计52.1 实验系统的单片机选型52.1.1 选型原则.52.1.2 STC 系列单片机性能简介62.2 系统功能72.2.1 单片机实验系统硬件总体逻辑结构.72.2.2 FLASH 存储技术和 ISP 在系统编程功能72.2.3 单片机实验教学功能.103 系统硬件设计123.1 STC89 单片机最小系统.123.2 发光二极管电路.133.3 键盘电路.143.4 LED 数码管显示电路.143.5 模数转换电路.153.6 数模转换电路.153.7 RS232 串行接口.163.9 I2C 接口电路.173.10 温度传感器接口电路184 系统实验项目设计194.
16、1 本实验系统对单片机实验教学的改进.194.2 单片机 C 语言开发基础204.2.1 利用 C 语言开发单片机的优点.204.2.2 单片机 C 语言 C51 中的基本数据类型和基础语句.214.2.3 单片机 C 语言 C51 的基本结构.224.3 实验系统基本实验程序设计234.4 实验系统综合实验程序设计.284.4.1 数字电子钟实验284.4.2 温控系统实验.305 系统的开发环境及硬件仿真调试335.1 单片机系统开发环境.335.1.1 单片机集成开发环境 KEIL Vision2335.1.2 KEIL C51 Vision2 软件的使用365.2 硬件仿真调试设计43
17、5.2.1 单片机 SST89E564RD 作仿真器的工作原理445.2.2 仿真监控程序 SoftICE 的烧录.446 总结与展望48参考文献491 绪论1.1 研究背景和意义单片机自 20 世纪 70 年代问世以来,以其性价比高,体积小,功能强,开发较为容易等优点,迅速占领市场,广泛应用于日常生活的各个领域。在我国,单片机系统已被广泛的应用于工业自动化控制,消费类电子,智能仪器仪表,通信系统和军事领域1。因此,对于计算机科学技术,电子信息工程,通信工程和自动化控制等专业的高等院校学生来说,学习并掌握单片机开发技术具有非常重要的意义。目前,世界上很多著名的半导体制造商几乎都有自己的单片机产
18、品,例如TI,Atmel,NEC,Freescale 等等。这些不同厂商的单片机产品在功能和结构上都有不同点,指令系统也不完全兼容,应用的领域也是各有侧重。在所有的单片机产品中,以 Intel 公司在 1981 年推出的 8051 单片机应用最为广泛。目前很多新型的单片机也是属于 8051 系列,它们只是在 8051 单片机的基础上增强了部分功能2。在国内,8051 单片机更是占有统治地位,已经广泛应用于各个领域。国内的各个高等校开设的单片机课程一般也是以 8051 单片机做为授课内容。在全国高等院校计算机科学与技术专业和电子信息类专业中,已普遍开设了单片机相关的课程。单片机技术,单片机原理与
19、接口技术应用等课程作为工科专业的必修专业基础课,对教学提出了较高的要求,尤其是实践教学环节。单片机技术的教学必须要有一定课时和高质量的实验课程来配合理论课的教学, 只有这样才能使学生更好的掌握单片机的开发,提高动手实践的能力,培养创新精神。但是目前,我国高等院校在单片机的教学过程中还是普遍存在着一些问题的,这也制约和限制了对单片机开发人才的培养速度。在教学工程中存在的问题主要集中在以下这几个方面:(1) 单片机课程以理论讲解为主。整个学期的大部分时间都是老师在讲授单片机理论知识,学生虽然也能听懂,但是往往是一知半解,学完以后对单片机的概念还是很模糊,要求学生独立开发程序就更是不可能完成的任务。
20、- 50 -(2) 目前国内的单片机教材绝大部分都是以 80C51 单片机为例,编程语言还是采用 80C51 的汇编指令集,学生学习汇编语言还是有一定难度的,而且目前在实际的开发工作中大部分都是采用 c 语言来开发程序,所以学生在学校学习完单片机的课程以后,就业以后还是不能独立进行开发工作,还需要再进行专门培训。这样看来学校的单片机教学和实际的开发工作存在脱节。(3) 单片机教学对实践教学环节重视程度不够。现在很多学校也都有单片机技术实验室,也开设了单片机的实验课程,但是效果并不理想,问题出在哪里呢?主要是目前各个高校的单片机实验室普遍购买的设备是单片机的实验箱。在上单片机实验课的时候,学生往
21、往都是按照实验指导书的要求,拿到源代码直接编译链接运行程序,然后看看硬件的演示效果,一般厂家提供的源代码都是汇编格式的,学生也没学过单片机 c 语言编程,所以自己也不会去编程实践3。在硬件接口电路方面,实验箱一般不提供整体的电路原理图,只是有分模块的电路, 然后学生按照实验指导书的图样连线即可,根本就没有掌握接口电路原理,就更不用说自己学会设计电路了。(4) 学校实验室资源有限。因为单片机实验系统的价格还是比较昂贵的, 所以目前高校的单片机实验室配置资源很有限,不能满足学生自主学习的要求。以我们学校为例,计算机科学与技术,电子信息工程,通信工程三个专业的学生共用一个单片机实验室。而实验室一共只
22、有 30 套实验箱4。最多能满足日常的教学工作,而且开设的实验教学课时也很有限。在这种情况下,学生想进一步提高自己的实践能力要求使用实验室的设备,我们也没有时间和能力给学生提供这样的机会。在目前这样的情况下,构建一个低成本,源代码开放,并且具有完整电路原理图的单片机教学实验系统是非常有必要的。首先这套系统可以严格的控制生产成本,使实验室的设备投资大幅下降,可以引进更多的实验设备,满足每个学生做实验时可以人手一套;其次也可以根据学校和学生的实际情况更灵活的安排单片机教学的内容,使理论和实践的结合更加紧密;最终达到培养学生的自主学习能力和创新精神的目的,对单片机开发方面人才的培养和单片机教学的革新
23、具有重大意义。为此,我针对学校实验室的现状,设计开发了一款新型的低成本的单片机实验开发系统。该系统由硬件和软件两部分组成。硬件部分根据学生的实际情况和生产成本的要求开发了相应的接口电路,同时也将单片机全部管脚资源引出,利于学生自己开发扩展。软件部分设计了适合学生实践的源代码,包括汇编语言和c 语言程序,重点是提供了 C 语言的程序,使学生能够更好的学习单片机 c 语言编程。该实验系统不仅能满足单片机教学的应用,也能满足学生的课程设计,毕业设计以及全国大学生电子设计竞赛等课外实践活动的需要,有利于培养学生的自主学习能力和创新精神。1.2 研究现状目前单片机实验系统市场已经非常成熟,有很多公司都提
24、供相应的产品。不过大部分产品都是以实验箱的形式,虽然接口丰富,但是价格比较昂贵,基本上都在 2000 元以上,所以实验室不能大批量引进供学生学习,也无法提供额外的时间给学生自己动手实践,仅能满足正常的教学环节。在这样的情形下,学生普遍反映教学时间短,没有足够时间真正去理解硬件原理和编程思路,导致教学效果不理想。例如我们实验室引进的江苏启东计算机公司生产的 DVCC-51 系列单片机教学实验系统,就是一套功能很强大,接口丰富的实验系统。但是这套系统的实验指导书在硬件部分并没有提供完整的电路原理图,导致学生在做实验的时候并不清楚硬件电路是如何设计的,只是机械的接受。软件代码部分仅提供汇编语言的源代
25、码,不提供 c 语言的源代码,与以后的开发设计脱节。早期的单片机实验系统都是基于 MON51 监控程序的,功能比较单一,并不能将程序直接烧录到单片机内部的 ROM 中,而是将程序装载到外部的 RAM 中,都没有采用当今主流的 ISP 功能。还有一些实验箱系统功能更加强大丰富,例如有的系统是集成了 51 单片机和 8086 微机原理实验系统的综合型实验系统,虽然这样的系统看起来功能强大, 可以做很多实验,但是对单片机的实践学习来说并不见得是一件好事,而且此类系统的价格往往非常高。1.3 本文的主要工作本文的主要工作包括单片机硬件接口电路设计,实验软件设计,以及硬件仿真调试技术。本文拟利用 STC
26、 系列单片机作为该实验系统的单片机核心,外围接口电路为RS232 串口,键盘及 LED 显示电路,数模转换和模数转换电路,蜂鸣器驱动电路, LCD 液晶显示接口电路,I2C 接口电路,温度传感器接口电路等。软件部分配合各实验模块的汇编语言程序和 C 语言程序,并在此基础上开发几个综合实验程序。在 PC 端利用 KEIL Vision2 软件开发环境进行程序的开发调试,利用 ISP 技术下载调试程序,PCB 电路板的绘制设计和制作,以及后期的安装和调试工作。利用单片机 SST89E564RD 的 IAP(In Application Programmable)即在应用可编程功能作为硬件仿真。2
27、单片机实验系统总体设计2.1 实验系统的单片机选型20 世纪 80 年代以来,单片机的发展非常迅速,就通用单片机而言,世界上著名的半导体公司投放市场的产品就有数百个品种。尽管单片机的种类很多,但是目前在我国使用最多的还是 INTEL 公司的 8051 系列单片机。8051 系列单片机是 8 位的单片机,以其品种规格全,性价格比高,兼容性强,开发容易,软硬件设计资料丰富等优点,牢牢占据了我国单片机应用领域的头把交椅。在国内高等院校的教学中,只要是开设单片机这门课程的学校,基本上是以 8051 单片机为例进行讲解。因此我们为了更好的服务学校的单片机实验教学,也选择了 51 系列的单片机作为实验系统
28、的 MCU,本文中选用了宏晶科技推出的完全兼容传统的8051 单片机的 STC89C52 单片机。2.1.1 选型原则对于核心 MCU 的选择,主要基于以下几个原则: 1、典型性MCS 是美国Intel 公司生产的单片机符号,例如 Intel 公司的MCS-48、MCS-51 和 MCS-96 系列单片机。MCS-51 系列单片机典型产品有 8031、8051、8751 等。20 世纪 80 年代中期以后,Intel 公司以专利转让的形式把 8051 内核技术装让给许多其他的半导体芯片制造商,如 Atmel、Dallas、Analog Devices 等。这些厂家生产的单片机是与 MCS-51
29、 指令系统兼容的单片机,因而常用 80C51 系列来称呼所有具有 8051 指令系统的单片机。到目前为止,80C51 系列单片机仍是开发应用的主流,也是高等院校单片机教学的主要理论对象5。宏晶科技推出的 STC89 系列 8 位单片机,指令代码完全兼容 80C51 系列单片机,非常适合于学校的实验教学。2、兼容性因为 MCS-51 单片机对单片机技术的发展影响深远,具有重要理论意义,在后期很多半导体公司通过购买 Intel 公司的授权,生产了兼容 MCS-51 系列的单片机,统称为 80C51 系列。此系列的单片机也成为了 8 位单片机市场的统领,应用非常广泛。各个厂商生产的 80C51 系列
30、单片机都是与 MCS-51 指令系统兼容的, 只是可能在某些方面进行了加强6。例如 STC89 系列单片机即是指令系统兼容于80C51 系列单片机,但其工作频率可以达到 40MHz,FLASH ROM 可达到 64KB,片上集成了 512 字节的 RAM,并采用 ISP 在系统可编程技术。3、性价比任何电子系统产品都要考虑成本因素,我们对 MCU 的选择同样也要考虑成本。对学校的实验室应用来说,能找到教学效果和成本的平衡点是非常重要的, 我们既要保证实践教学的效果,又要尽力节省实验室预算。基于此考虑,宏晶科技生产的 STC89 系列单片机首先兼容于 80C51 系列单片机,可以保证实践教学的需
31、求,而且这款芯片是国内价格最低的芯片,可以达到实验室控制成本的要求。基于以上的选型原则,我们选用了宏晶科技生产的 STC89C52RC 这款单片机, 完全能够保证学校实验室的教学,同时也是兼容性强,低成本的最佳选择。2.1.2 STC 系列单片机性能简介7STC89C52RC 单片机是宏晶科技推出的新一代超强抗干扰、高速、低功耗的 8 位单片机,指令代码与传统的 80C51 系列单片机完全兼容。其特性主要有以下几点:1、工作电压:3.3V-5.5V。2、工作频率范围:0-40MHz,实际工作频率可达到 48MHz。3、用户应用程序空间:8KB。同时片内具有 512 字节 RAM。4、共有3个
32、16 位定时/计数器。其中定时器 0 还可当作两个 8 位定时器用。5、通用异步串行口(UART),还可用定时器软件实现多个 UART。6、内部具有看门狗。7、工作温度范围:-4080(工业级)/075(商业级)。8、中断系统完全兼容于 80C51 系列单片机,增加了两个外部中断 INT2,INT3,到达 4 路外部中断,下降沿中断或低电平触发中断,PowerDown 模式可由外部中断低电平触发中断方式唤醒。9、抗干扰能力强。电源、时钟、复位、I/O 口电路经过特殊处理。宽工作电压,不怕电源抖动。看门狗电路经过处理,打开后无法关闭。具有高抗静电保护(ESD)。10、低电磁辐射。可禁止 ALE
33、时钟信号输出。外部时钟频率可降低一半,即单片机工作在 6T 模式,内部时钟振荡器增益可以降低一半。11、具有两个 16 位数据指针 DPTR0/DPTR。可通过 DPS 位进行选择,大大增加了编程的灵活性。2.2 系统功能本文设计的单片机教学实验系统接口丰富,综合功能强,系统稳定,适于单片机实验教学和综合项目,例如课程设计,毕业设计等应用。2.2.1 单片机实验系统硬件总体逻辑结构本单片机实验系统硬件拟利用 STC 系列单片机作为实验系统的单片机核心, 外围接口电路为 RS232 串口,键盘及 LED 显示电路,7 段数码管,数模转换和模数转换电路,蜂鸣器驱动电路,LCD 液晶显示接口电路,温
34、度传感器接口电路, IIC 接口电路等。硬件总体逻辑结构如表 2-1 所示:表 2-1 硬件总体逻辑结构串口电源LCD 液晶显示接口键盘晶振单片机核心STC89C52数模转换温度传感器接口复位模数转换IIC 接口LED 显示数码管蜂鸣器具体硬件接口电路了在第三章中叙述。2.2.2 FLASH 存储技术和 ISP 在系统编程功能7目前,Flash 存储器已经广泛应用,STC89C52RC 单片机就采用了可多次擦写的片内 Flash。Flash 存储器虽然有一定的擦写寿命,但是一般可到达 10 万次以上,所以我们完全不用担心擦写的寿命问题,因此我们在开发编程时,对单片机反复擦写,不用顾忌单片机的擦
35、写寿命。这对于实验教学来说是非常好的一个特性,因为在实验教学中,学生要反复修改调试所写程序,就不可避免的要经常对Flash 进行擦写,而我们又不必顾忌单片机的寿命问题,这对于我们降低实验室的使用成本和后期的维护工作都是有很大的便利。ISP(In System Programmable)在系统编程功能,极大的简化了单片机的开发流程。ISP 技术是指单片机片内的 cpu 可以对片内 Flash 进行擦写操作,用户只需利用上位机的软件通过串口将程序烧写到片内 Flash 中。这样,我们就可以实时的在开发板的单片机上运行应用程序。由于单片机是在真实的硬件环境中运行程序,比在仿真器的环境中运行真实可靠。
36、如果已设置 P1.0/P1.1=0/0,才会判断是否下载用户程序,则冷启动后,如 P1.0/P1.10/0,则直接跑用用户程序,只会占时 50,可忽略不计。建议选择 P1.0/P1.1 不同时为 0/0,则立即跑用户程序, 跨过系统 ISP 监控程序。STC89C52RC 单片机具有 ISP 功能。STC89C52RC 单片机在系统可编程功能使用说明如图 2-1 所示:PC 机端的控制软件必须先下载命令流,再给单片机上电复位图 2-1 STC89C52RC 单片机在系统可编程功能使用说明利用STC89C52RC 的ISP 在系统编程时,需要将串口线一端接到 PC 端的串口,另一端接到开发板的串
37、口,从而使上位机软件 STC-ISP 与单片机进行通信,控制单片机进行程序的烧写。上位机软件 STC-ISP 的操作界面如图 2-2 所示图 2-2 STC-ISP 的操作界面编程步骤如下:1、首先将串口线一端与 PC 机的串口,另一端与单片机开发板的串口相连, 并且给开发板上电。2、当硬件连接正常后运行软件 STC-ISP,首先要选择使用的单片机型号, 例如 STC89C52RC。3、打开文件,烧写用户的程序,调入已经编号的程序代码(*.bin,*.hex)。4、选择串口,所使用的 PC 机的串口,例如串口 1,com1 等。5、是否需要设置双倍速,双倍速选中 Double Speed 即可
38、。6、下载,也可选择重复下载。下载程序是要注意,一定要先选择下载按钮,然后再给单片机上电复位。如果先上电,单片机检测不到合法的下载命令流,单片机就会直接跑以前的程序。7、写入程序后即可运行,此时就可观察硬件的实际运行效果了。2.2.3 单片机实验教学功能本文设计的单片机实验教学系统硬件接口比较丰富,完全能够满足单片机实验教学的需求。本实验系统提供了大量的实验项目供教师选择,开展不同层次的实验教学,能使教师更好的开展实验教学,使学生能够更好的掌握单片机开发技术。本系统提供了单片机开发板的所有电路原理,使学生在学习时对硬件电路的分析更加清晰,能够全面提高电路设计的能力,并且所配套的实验都有相应的
39、c 语言和汇编语言的源代码,可以供学生参考修改程序。为本实验系统设计的实验项目如下: 模块化接口程序:单片机 I/O 口控制实验(1) 闪烁灯实验(2) 流水灯实验(3) 驱动蜂鸣器实验(4) 定时器应用实验(5) 数码管静态显示实验(6) 数码管动态显示实验(7) 外部中断实验(8) 定时器中断应用实验(9) 利用定时器和蜂鸣器发声实验(10) 独立按键实验(11) 矩阵键盘实验(12) 串口应用实验(13) A/D 0804 实验(14) D/A 0832 实验(15) 1602 液晶显示实验(16) 12864 带字库液晶实验(17) IIC 总线实验综合应用程序:(1) 数字电子钟实验
40、(2) 简易计算器实验(3) 数字温度计实验(4) 实验系统整版检测实验(5) C/OS-II 操作系统在单片机上的移植和应用实验3 系统硬件设计3.1 STC89 单片机最小系统一个单片机的最小系统硬件由三部分组成,电源部分,时钟信号,复位电路。有了这三部分,单片机系统才可以正常稳定的工作。我们在设计单片机实验系统的时候首先先要设计单片机的最小系统硬件电路。(1)电源电路电源电路为实验系统提供必要的工作电压,此实验系统的电源电路有两种电源输入方式。一种是从 USB 口取得+5V 电源。只需要一根 USB 线从电脑的 USB 口+5V 电压,在实验教学中,非常方便使用,学生操作安全简单。另一种
41、为交流电源从电源插座输入口接入,通过 7805 三端稳压器得到+5V 的直流电源提供系统工作电压8。同时电源电路中也有保护电路,以保护三端稳压器 7805 和电脑主机的电源。电源电路如图 3-1 所示:图 3-1 电源电路(2)时钟电路时钟电路采用 STC 单片机外接晶振电路实现。实验系统采用 11.0592MHz 晶振,此晶振可以保证单片机在串口通讯的时候降低串口通讯的误码率。时钟电路如图 3-2 所示:图 3-2 时钟电路(3)复位电路复位电路采用简单的 RC 冲放电电路。在编写程序和调试的时候,如果出现程序跑飞得现象的时候,可以按下复位键,单片机即复位。复位电路如图 3-3所示:图 3-
42、3 复位电路3.2 发光二极管电路发光二极管电路由 8 个发光二极管组成,通过 74HC5739接单片机的 P1 口, 当单片机输出低电平时,发光二极管点亮,当单片机输出高电平时,发光二极管熄灭。发光二极管电路如图 3-4 所示:图 3-4 发光二极管电路3.3 键盘电路键盘电路由 4×4 矩阵键盘和 4 个独立按键组成。键盘电路如图 3-5 所示:图 3-5 键盘电路3.4 LED 数码管显示电路LED 数码管显示电路 8 位数码管组成,由两片 74HC573 驱动组成。LED 数码管电路如图 3-6 所示:图 3-6 LED 数码管电路3.5 模数转换电路本实验系统硬件的模数转换
43、电路由 8 位 A/D 芯片 ADC080410组成。模拟电压由 ADIN 输入,片选地址信号接 74HC573。转换输出接单片机的 P1 口。模数转换电路如图 3-7 所示:图 3-7 模数转换电路3.6 数模转换电路本实验系统硬件的数模转换电路由 8 位 D/A 芯片 DAC083211组成。数字信号由单片机的 P0 口输入。输出的模拟信号接 P5。数模转换电路如图 3-8 所示:图 3-8 数模转换电路3.7 RS232 串行接口RS232 串行接口电路由 MAX232 电平转换电路组成。MAX232 芯片可以将 TTL 电平转换成 RS232 电平12,以供单片机与 PC 机通信。RS
44、232 串行接口电路如图3-9 所示:图 3-9 RS232 串行接口电路3.8 LCD 液晶显示接口电路本实验系统有 160213和 1286414的两种液晶接口电路,液晶显示接口电路如图 3-10 和图 3-11 所示:图 3-10 1602 液晶显示接口电路图 3-11 12864 液晶显示接口电路3.9 I2C 接口电路I2C 接口电路由一片 AT24C02 存储芯片组成,可以用来做I2C 总线编程实验15。I2C 接口电路如图 3-12 所示:图 3-12 I2C 接口电路3.10 温度传感器接口电路本实验系统上设计有 DS18B20 数字温度传感器16。DS18B20 数字温度传感
45、器为单总线接口器件,数据传输通过 P2.2 接口完成。温度传感器接口电路如图 3-13 所示:图 3-12 温度传感器接口电路4 系统实验项目设计4.1 本实验系统对单片机实验教学的改进传统的单片机教学都是按照教学大纲的要求,分为理论课和实验课两部分来教学的。一般院校都是重视理论课的教学,而对实验课的教学重视程度不够,实验课安排的课时和理论课比起来少的可怜。例如我们学校,电子信息工程专业, 通信工程专业,计算机科学与技术专业,自动化控制专业和机械设计专业的学生都要学习单片机应用设计这门课,学校安排理论课时为 51 课时,而实验课课时只有 17 课时,学生没有足够时间做实验,所以教学效果不是很理
46、想。一学期的单片机课程学习下来,很多学生还是对单片机的概念搞不清楚,更不用说动手实践开发了。现在的单片机理论课教学很多都是按照大纲要求采取按部就班的顺序根据教材来讲单片机硬件基础知识,51 汇编指令集,外围接口技术,应用实例。这延续了传统的教学模式,第一节课直接上来讲很多理论知识,对于学生入门来说是比较困难的,学生掌握的情况并不好,往往很多学生在开始阶段就对单片机失去兴趣,后面就应付了事了。这种模式下单片机教学以理论讲解为核心内容,而应用技术的讲解不做为重点,这也限制了学生们对单片机开发的实际认识,导致学生的实际动手能力比较弱,学习单片机以为就是学好书本上的理论知识就够了,也足够应付考试了。所
47、以会出现老师和学生对单片机的实验教学都不够重视的现象。很多学校的老师也都普遍认为单片机的实验课开展比较困难,课不好上, 因为学生不会自己动手做实验,都不会调程序,对硬件系统的理解就更差了。所以针对单片机这种应用性强的,突出实践的课程,怎样能够更好的培养学生的能力,就成为了大家关注的问题焦点。结合本文开发的单片机实验教学系统,我们尝试改变单片机以往那种传统的教学方式。我们采取将单片机理论课和实验课结合到一起,将原来理论课的 51课时和实验课的 17 课时合并为 68 课时,并且全部课程都在实验室开展。这样对提高学生的实践动手能力是非常有帮助的。教材我们采用 STC 系列单片机手册和我们自己编写的
48、实验教程,将这两种教材相结合使用。直接采用手册教学,会更加直观,对学生学习单片机非常有帮助,也对学生以后进行硬件电路设计打下坚实基础,培养学生自己看芯片手册学习的能力。我们上课采取模块化教学的方式,在学期初先介绍单片机的概念和 51 单片机的硬件结构,内部资源并结合 STC 单片机的手册进行讲解。当讲解完部分单片机的硬件结构后,要安排一定的课时讲解 51 单片机的 C 语言编程,因为现在公司开发单片机相关产品时基本上都是应用 C 语言,所以学习单片机的 C 语言编程是非常有必要的。后面配合实验系统开展基础实验内容。这样在实验室边讲解边练习编程实践,使学生能够对单片机有更加深入的认识,学习效果会
49、更好。我们基础内容的讲解和练习一般安排一半或者一半多一点的课时,后面的时间就安排学生做一些综合的内容,可以参考我们实验系统设计的综合实验程序。以项目的形式开展教学,让学生真正体会做一个综合项目的方方面面的工作。这样通过一学期的单片机应用课程的学习,使学生能够具备独立进行单片机软硬件开发的能力,将来能够更好的适应用人单位对技术人才的需求。经过这样一学期的学习锻炼,学生对单片机开发技术的认识会更全面深刻,达到了我们对培养技术人才的要求。4.2 单片机C 语言开发基础4.2.1 利用 C 语言开发单片机的优点C 语言作为计算机程序设计语言大家庭里最经典的一种语言,在各种场合都得到了广泛的应用。C 语
50、言易于学习,支持广泛,资料繁多,得到了广大程序设计人员的钟爱。目前很多硬件相关的开发都用 C 语言编程,例如,51 系列单片机,AVR 单片机,PIC 单片机,嵌入式 ARM,DSP 处理器等等。C 语言本身不依赖于底层的硬件系统,仅进行简单的修改即可将程序移植到不同的系统中应用,而且 C 语言本身提供了很多函数我们可以直接拿来利用,缩短开发时间,提高开发效率。随着单片机性能和集成开发工具的不断发展,现在利用 C 语言进行开发单片机应用程序,具有开发效率高,程序可读性强,可移植,后期维护修改成本低等优点,因此利用 C 语言进行单片机的开发已经成为主流17。单片机 C 语言编程与单片机汇编语言编
51、程相比,有如下优点: 1、对单片机的指令系统不需要掌握,可以直接用 C 语言编程控制单片机,学习较容易。2、寄存器的分配,数据类型等细节都有编译器自动管理,不需要我们去操作。3、有规范的编程格式,利用不同的函数组合,可以使程序结构化,易于后期对程序的维护升级。4、程序库中包含很多标准函数,具有很强的数据处理能力,使用方便。5、具有成熟的模块化编程技术,使在一个硬件平台编号的程序很容易移植到别的硬件平台。C 语言本身是高级语言,常用语法也不是很多,关于单片机的 C 语言程序常用语法更少,学生即使没有 C 语言的基础仅在单片机课堂上也能掌握单片机的 C 语言编程。而且通过实验程序的编写,结合硬件电
52、路,应用到实践中去,学生会对单片机系统的开发和 C 语言的应用融会贯通。4.2.2 单片机 C 语言 C51 中的基本数据类型和基础语句18在应用 C51 对单片机进行编程时,数据类型不同的变量所占的空间是不同的。所以我们要在设变量时综合考虑,不能随意给变量赋值。因为单片机的存储空间是有限的,而不同的变量数据类型所占的空间是不同的,所以我们要选择合适的数据类型,节省单片机的存储空间。在编程时,我们首先要设定合适的数据类型,不同的数据类型有着不同的数据范围,能表示的十进制数大小不同,所以我们在设定一个变量时一定要给这个变量声明一个数据类型,告诉编译器,让编译器编译程序之前从单片机内存中分配一定的
53、空间给变量。单片机 C 语言中常用的数据类型如表 4-1:表 4-1 单片机 C 语言中常用的数据类型表数据类型关键字表示的数的范围无符号字符型unsigned char0-255有符号字符型char-128-127无符号整型unsigned int0-65535有符号整型int-32768-32767在单片机 C51 程序中常用的基础语句为 if 选择语句,while 循环语句,do while 循环语句,for 循环语句,switch case 多分支选择语句这 5 种语句。如表:有这些常用语句,一般的单片机应用程序就可以编制了。4.2.3 单片机 C 语言 C51 的基本结构C51 源程
54、序基本结构与普通 C 程序基本一致,C51 源程序的扩展名也为“.c”,例如 led.c 等等。一个 C51 源程序是一些具有不同功能的函数的集合,在这个集合中有且仅有一个 main()函数,是这个源程序的主函数。C51 源程序都是从主函数 main()函数开始的,当主函数中所有语句执行完毕的时候,程序结束。在 C51 程序中常用到的头文件有定义51 或者52 系列单片机特殊功能寄存器和位寄存器的 reg51.h 或者 reg52.h19。这两个头文件基本上是一样的内容,仅是 52 单片机比 51 单片机多了一个定时器,所以 reg52.h 中只比 reg51.h 多定义了一个定时器的内容。当
55、然这两个文件我们也可以修改内容,可以根据我们使用的单片机的手册,观察单片机的内部硬件资源,然后来改写头文件。还有较常用的头文件是定义数学运算的 math.h,该头文件中包含了很多数学运算函数,以备我们可以在程序中直接调用头文件中包含的内部函数。当我们将单片机的内部结构硬件基本讲解完成,了解了特殊功能寄存器的功能后,就可以紧接着来介绍单片机 C 语言编程了。我们还可以结合 STC 系列单片机的手册查找这款单片机的特有功能,然后我们自己编写适用的头文件,为以后的编程应用打下良好的基础。同一阶段引导学生自己独立阅读芯片手册,为以后的设计硬件电路打下基础。编写一个 C51 源程序有很多要注意的事项,例
56、如:首先我们要知道 C 语言程序是由函数构成的。一个 C51 源程序可以包含一个main()函数和很多其他函数。这些功能函数可以是编译器提供的特定库的库函数,也可以是编者根据实际硬件自己写的功能函数。其次是 C 语言的编程风格问题。我们一定要养成一个良好的编程风格,比如函数大括号的缩进问题,这对我们自己检查程序 BUG 时很有帮助,还有程序的注释问题,一个良好的程序一定要有详细的注释,例如在每个功能函数头上加上详细的函数说明,还有为一些特定语句加上注释,这样对我们将来对程序的再利用和移植都是非常重要的。所以可见一个良好的编程风格对程序设计人员是多么的重要。所以我们要在授课过程中和学生强调编程风格的问题。当我们做一个比较大的项目时,程序量是比较大的,而把所有函数都安排到一个 c 源文件中是不合适的,这时候就要我们利用工程来管理整个项目程序。工程项目可以分为 c 源文件和头文件两大类。而我们又习惯将不同的功能函数写在不同的 c 源文件中,这样有利于项目的组织和开发。最后我们利用编译器将项目的所有源文件链接起来,生成程序的 16 进制文件 hex 文件或者 2 进制文件 bin 文件。4.3 实验系统基本实验程序设计为了配合本单片机教学实验系统的使用,根据从简入繁,由易到难的原则, 结合单片机课程的大纲和进度要求,我们设计了相应的实验程序,以备学生在实验室中根据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论