① 简论单片机课程中单片机实验教学探究
简论单片机课程中单片机实验教学探究
论文摘要:单片机的开发与应用、学习将造就一批计算机智能化控制的工程师、科学家。一些中等院校也相继开设了单片机课程设计及相关的课程。在单片机及接口技术课程的教学过程中,实验教学是重要的组成部分。针对单片机课程的教学改革,不断加强单片机课程实验环节,改革教学方法,虚拟仿真实验在单片机教学中的应用,实践表明,该方法有利于激发学生的学习兴趣,培养学生的工程素养和创新能力,提高了教学效果。
论文关键词:单片机;教学;仿真实验
“单片机原理”是一门理论性、逻辑性、实践性很强的学科,是电类专业一门非常重要的专业基础课,把微机接口部分、汇编语言部分、通信技术部分的知识点等综合在一起,属于逻辑性、工程性、技术性、实践性很强的一门专业基础课。该课程作为电类专业最重要的核心课程之一,它是电类专业高素质技能型人才所需全部自动控制类知识结构的载体,占据着非常重要的位置。
然而,传统的单片机教学一般注重课程本身的体系结构和前后的逻辑联系,均以学科体系为出发点,忽略了“可学性”,致使学生学得吃力,老师教得辛苦,教学效果却没有显现出来。
一、研究背景及意义
目前,全国将单片机列入单独的比赛项目,在考查中注重学生的能力培养,学生的技能素养教育成为重中之重,加之社会需求高技能人才,许多学校为了适应社会的发展和市场需求在不同的专业开设了单片机课程,然而单片机课程是一门实践性很强的课程,要想在教学过程中取得很好的效果,就必须要求学生在学习过程中多动手实践,但有的学校教学设备有限,怎样解决这个问题。仿真实验课可以让学生在单片机工作室里做中学,真正玩转单片机,也同时解决了学生学起来枯燥,老师教起来吃力的尴尬局面。
目前单片机教学中存在诸多问题。如单片机课程理论为主,实验教学多是进行验证性实验。单片机实验室存在场地和时间限制,学生除了课上,很难有机会接触到所需要的设备,如仿真器、实验板等,个人配备成本太高,个体无法承担。而且实验箱只能验证试验的基本作用和意义,就无从谈起学生动手能力的训练和提升。单片机在当今社会中的应用速度发展迅速,然而单片机教材陈旧,实验设备很容易落后、老化等问题,必然会带来耗资等问题。由此可见,构建成本低廉的单片机仿真实验系统对于单片机教学意义重大。它不仅可以降低实验设备投资,而且能培提高学生的工程素质,养学生的创新精神。在单片机控制系统的设计开发过程中,我们不单要突出设备的自动化程度及智能性,另一方面也要重视控制系统的工作稳定性,否则就无法体现控制系统的优越性。
由于单片机控制系统应用系统的工作环境往往是比较恶劣和复杂的,其应用的可靠性、安全性就成为一个非常突出的问题。单片机控制系统应用必须长期稳定、可靠地运行,否则将导致控制误差加大,严重时会使系统失灵,甚至造成巨大的损失。
影响单片机控制系统应用的可靠、安全运行的主要因素是来自系统内部和外部的各种电气干扰,以及系统结果设计、元器件选择、安装、制造工艺和外部环境条件等。这些因素对控制系统造成的干扰后果主要表现在下述几个方面。(1)数据采集误差加大。(2)控制状态失灵。(3)数据受干扰发生变化。(4)程序运行失常。
由于受到干扰后计数器的值是随机的,因而导致程序混乱。通常的情况是程序将执行一系列毫无意义的指令,最后进入“死循环”,这将使输出严重混乱或系统失灵。
随着单片机及其接口技术的飞速发展,目前面对职业教育存在的突出问题:质量能力与规模能力不相适应,教学信息化程度低,古老的填鸭式课堂教学模式仍应用普遍,“双师型”教师队伍建设机制缺乏完善性,科学管理水平和改革创新能力就提到了日程,管理制度不健全,学校基本办学规范不健全,科学的职业教育评价标准和评价机制达不到标准,学生成长的“通道”不畅通。
从新的教学要求来看,这类课程仅在课堂上讲授基本原理是不够的,必须在教学中加强实践环节,开出一定数量的高质量的配套实验课活独立的实验课程,让学生有足够的实验机会。那么对于单片机实验教学环境建设就相应提出了高要求。怎样解决这个问题,单片机仿真实验应运而生。
二、“单片机仿真实验”初探
伴随着计算机技术的飞速发展,在各个领域都出现了各种仿真系统,为各种实际系统的开发提供了准确可靠的保证,同时为很多学校、企业等节约了大量的人力和物力。在电子信息技术领域也同样出现了大量的仿真工具,如课堂上用到的各种EDA工具;模数混合仿真的Protel、Multisim等常见的电子应用仿真软件,数字系统设计的Fundation、Maxplus II、Expert等。
所谓“仿真”,就是通过开发工具真实地模拟用户系统的运行环境,使用户能够在透明和可控的条件下观察系统运行过程中的状态和结果,仿真实际上也是一种软件和硬件的综合调试手段,它能提高应用系统开发的效率。
用通俗的话来描述“单片机仿真实验”就是在一块虚拟电路板上按照真实电路的设计构想放置一些虚拟的元器件,并模拟实际烧ROM的过程链接上程序代码,“接通”电路观察效果,如果不理想的话可以反复修改电路或程序代码,直至符合设计要求为止。
仿真实验的好处是显而易见的。在没有仿真实验的年代,每架构一个真实的电路都需要费时费力费钱,稍有不慎还有可能前功尽弃,再加上单片机中的ROM芯片是有擦写次数的,而一段程序可能需要修改擦写多次,无形中减少了ROM芯片的使用寿命。仿真实验是在计算机上进行的(可能会费点儿电),以上问题都不存在,而且就现在的仿真软件来说,仿真出来的电路效果与真实电路一模一样,毫不夸张地说,只要仿真是成功的,就可以直接下工厂的流水线生产了。
② 单片机初学者该看什么书
《51单片机工程师是怎样炼成的:基于C语言+Proteus仿真》老杨 电子工业出版社
《单片机C语言程序设计实训100例——基于8051+Proteus仿真》彭伟 电子工业出版社
《新概念51单片机C语言教程——入门、提高、开发、拓展》 郭天祥 电子工业出版社
《实例解读51单片机完全学习与应用》 电子工业出版社
《手把手教你学单片机》 北航
《单片机基础》李广弟 北航
《单片机原理及接口技术》李朝青 北航
《51单片机应用从零开始》汇编 杨欣 清华出版社
《爱上单片机》 杜洋 人民邮电出版社
《例说51单片机(C语言版)》 张义和 人民邮电出版社
《单片机原理与技术》
《51单片机开发与应用技术详解》
《单片机技术与原理教材》
《匠人手记》
《手把手教你学单片机》
《8051单片机》
《单片机原理及应用》 张毅刚
《51单片机原理与实践》
《单片机应用技术》 哈尔滨工业大学出版社
《8051单片机教程》 平凡
《单片机轻松入门》平凡
③ 单片机英文参考文献
单片机英文参考文献
[1] 李广弟等 单片机基础 北京航空航天出版社, 2001.7
[2] 楼然苗等 51 系列单片机设计实例 北京航空轿宴航天出版社, 2003.3
[3] 唐俊翟等 单片机原理与应用 冶金工业出版社, 2003.9
[4] 刘瑞新等 单片机原理及应用教程 机械工业出版社, 2003.7
[5] 吴国经等 单片机应用技术 中国电力出版社, 2004.1
[6] 李全利,迟荣强编着 单片机原理及接口技术 高等教育出版社,2004.1
[7] 侯媛彬等,凌阳单片机原理及其毕业设计精选 2006年,科学出版社
银羡[8] 罗亚非,凌阳十六位单片机应用基础2003年 北京航空航天大学出版社
[9] 北京北阳电子有限公司,061A凌阳单片机及其附带光盘2003年
[10] 张毅刚等, MCS-51单片机应用设计,哈工大出版社,2004年第2版
[11] 霍孟友等,单片机原理与应用,机械工业出版社,2004.1
[12] 霍孟友等,单片机原理与应用学习概要及题解,机械工业出版社,闭搏银2005.3
[13] 许泳龙等,单片机原理及应用,机械工业出版社,2005.1
[14] 马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,2003修订版
[15] 薛均义 张彦斌 虞鹤松 樊波,凌阳十六位单片机原理及应用,2003年,北京航空航天大学出版社 ;
④ 单片机原理与接口技术的图书目录
第1篇 基 础 篇
第1章 单片机概论 3
1.1 单片机的发展概况 3
1.1.1 单片机概述 3
1.1.2 MCS-51系列单片机主要产品介绍 5
1.2 单片机的特点及应用领域 9
1.2.1 单片机的特点 9
1.2.2 单片机的应用领域 9
思考与练习 10
第2章 MCS-51系列单片机的硬件结构 11
2.1 MCS-51单片机总体结构 11
2.2 MCS-51系列单片机的中央处理器 13
2.3 MCS-51单片机存储器结构 15
2.3.1 程序存储器 16
2.3.2 数据存储器 16
2.4 单片机并行输入/输出口(Parallel I/O口) 18
2.4.1 P0口 18
2.4.2 P1口 20
2.4.3 P2口 21
2.4.4 P3口 22
2.5 MCS-51单片机引脚功能 23
2.5.1 MCS-51单片机的封装形式和逻辑符号图 23
2.5.2 MCS-51单片机引脚及其功能 24
思考与练习 26
第3章 MCS-51单片机指令系统 27
3.1 概述 27
3.1.1 指令的组成、表示形式及分类 27
3.1.2 指令的格式 28
3.2 MCS-51系列单片机指令的寻址方式 31
3.2.1 寄存器寻址 31
3.2.2 寄存器间接寻址 32
3.2.3 直接寻址 32
3.2.4 立即寻址 33
3.2.5 变址寻址 33
3.2.6 相对寻址 34
3.2.7 位寻址 34
3.3 数据传送指令 36
3.3.1 内部数据传送指令(15条) 37
3.3.2 外部数据传送指令(7条) 37
3.3.3 堆栈操作指令(2条) 38
3.3.4 数据交换指令(5条) 40
3.4 算术运算指令 41
3.4.1 加法指令(13条) 41
3.4.2 减法指令(8条) 42
3.4.3 乘法指令(1条) 44
3.4.4 除法指令(1条) 44
3.4.5 十进制调整指令(1条) 45
3.5 逻辑运算指令 46
3.5.1 单操作数逻辑运算指令(6条) 46
3.5.2 双操作数逻辑运算指令(18条) 46
3.6 控制转移指令 48
3.6.1 无条件转移指令(4条) 48
3.6.2 条件转移指令(8条) 49
3.6.3 子程序调用与返回指令(4条) 51
3.6.4 空操作指令(1条) 52
3.7 位操作指令 53
3.7.1 位传送指令(2条) 53
3.7.2 位修改指令(4条) 53
3.7.3 位逻辑运算指令(6条) 54
3.7.4 位控制转移指令(5条) 54
3.8 常用伪指令 55
思考与练习 57
第4章 MCS-51单片机汇编语言程序设计 59
4.1 汇编语言概述 59
4.1.1 汇编语言源程序 59
4.1.2 汇编语言的构成 60
4.2 汇编语言源程序的设计步骤 60
4.3 汇编语言程序的结构 61
4.4 典型问题程序设计举例 62
思考与练习 65
第5章 MCS-51单片机中断系统 67
5.1 中断概述 67
5.2 MCS-51单片机的中断系统 70
5.2.1 中断源与中断标志位 70
5.2.2 与中断有关的特殊功能寄存器SFR 70
5.2.3 中断响应过程 72
5.2.4 中断请求的撤除 74
5.3 典型实例任务解析 75
思考与练习 78
第6章 MCS-51单片机定时器/计数器 79
6.1 定时器/计数器的结构及工作原理 79
6.1.1 定时/计数器的结构 79
6.1.2 定时/计数器的工作原理 80
6.1.3 定时/计数器的控制 80
6.2 定时器/计数器的工作方式 81
6.3 典型实例任务解析 83
思考与练习 85
第2篇 接 口 篇
第7章 MCS-51单片机接口技术概述 89
7.1 MCS-51单片机的最小应用系统 89
7.1.1 8051/8751最小应用系统 90
7.1.2 8031最小应用系统 90
7.2 MCS-51单片机的扩展基本知识 90
7.2.1 外部并行扩展性能 91
7.2.2 外部串行扩展性能 97
思考与练习 99
第8章 存储器的扩展 100
8.1 程序存储器的扩展 100
8.1.1 程序存储器扩展概述 101
8.1.2 扩展程序存储器EPROM 101
8.1.3 扩展程序存储器EEPROM 105
8.1.4 常用程序存储器 107
8.2 数据存储器的扩展 112
8.2.1 数据存储器扩展概述 112
8.2.2 扩展SRAM 114
8.2.3 典型SRAM芯片举例 115
8.2.4 扩展新型存储器 119
8.3 外扩存储器电路的工作原理及软件设计 120
8.4 典型实例任务解析 122
8.5 存储器扩展的应用设计 123
思考与练习 123
第9章 并行接口技术 125
9.1 简单的I/O接口的扩展 125
9.1.1 利用TTL电路扩展I/O口 126
9.1.2 串行口扩展并行I/O口 128
9.2 8255A可编程并行接口 130
9.2.1 8255内部结构及引脚功能 130
9.2.2 8255A的控制字 132
9.2.3 8255A的3种工作方式 133
9.2.4 8255与单片机的接口 136
9.3 带有I/O接口和计数器的静态RAM8155 138
9.3.1 8155的内部结构和引脚配置 138
9.3.2 并行端口的传送方式 139
9.3.3 8155芯片内置的计数器 140
9.3.4 8155H并行接口的编程 140
9.3.5 MCS-51系统与8155电路的接口设计 142
9.4 典型实例任务解析 143
思考与练习 145
第10章 人机接口技术 146
10.1 LED显示器及其接口 146
10.1.1 LED显示及显示器接口 147
10.1.2 LED显示器的接口与编程 148
10.1.3 LED显示器接口实例 150
10.2 键盘及其接口 154
10.2.1 键盘工作原理 154
10.2.2 独立式键盘 156
10.2.3 矩阵式键盘 161
10.3 8279键盘显示器接口芯片 167
10.3.1 8279的内部结构和工作原理 167
10.3.2 8279的引脚和功能 169
10.3.3 8279的工作方式 169
10.3.4 8279的命令格式和命令字 170
10.3.5 8279状态格式与状态字 173
10.3.6 8279的数据输入/输出 174
10.3.7 8279的内部译码与外部译码 174
10.3.8 8279的接口应用 174
10.4 典型实例任务解析 177
思考与练习 182
第11章 A/D和D/A接口技术 183
11.1 D/A转换器接口 183
11.1.1 D/A转换器概述 183
11.1.2 MCS-51与8位DAC0832的接口 185
11.1.3 MCS-51与12位DAC1208和DAC1230的接口 189
11.2 A/D转换器接口 193
11.2.1 A/D转换器概述 193
11.2.2 MCS-51与8位ADC0809的接口 194
11.2.3 MCS-51与ADC0809接口 195
11.2.4 MCS-51与12位A/D转换器的接口 198
11.3 典型实例任务解析 201
思考与练习 202
第12章 串行接口技术 204
12.1 串行通信基础 204
12.2 串行通信总线标准及其接口 205
12.3 MCS-51与PC的通信 206
12.3.1 串行口的结构和工作原理 206
12.3.2 串行口的控制寄存器 207
12.3.3 串行口的工作方式 209
12.3.4 串行口波特率的设置 209
12.4 多机通信 210
思考与练习 211
第3篇 应 用 篇
第13章 单片机应用系统的开发 215
13.1 单片机应用系统的任务分析及实现方案 215
13.2 单片机应用系统硬件电路的设计 218
13.2.1 单片机控制器 218
13.2.2 输入电路 218
13.2.3 显示电路 220
13.2.4 系统硬件总电路 220
13.3 单片机应用系统的软件设计 223
13.3.1 GPS25-LVS的信息输出格式 223
13.3.2 单片机的信息接收处理 224
13.3.3 内存中的信息存放地址分配 224
13.3.4 主程序 225
13.3.5 控制源程序 225
13.4 单片机应用系统的仿真调试 229
13.4.1 仿真开发系统简介 229
13.4.2 单片机应用系统的仿真调试过程 231
13.5 单片机应用系统的程序固化 253
13.6 单片机应用系统开发的一般步骤 256
13.6.1 确定总体设计方案 256
13.6.2 系统的详细设计与制作 257
思考与练习 260
第14章 单片机应用系统的抗干扰设计 261
14.1 单片机应用系统的硬件抗干扰设计 261
14.1.1 供电系统的抗干扰设计 262
14.1.2 长线传输的抗干扰设计 263
14.1.3 印制电路板的抗干扰设计 264
14.1.4 地线系统的抗干扰设计 265
14.2 单片机应用系统的软件抗干扰设计 266
14.2.1 数据采集中的软件抗干扰 266
14.2.2 控制失灵的软件干扰 269
14.2.3 程序运行失常的软件抗干扰 271
思考与练习 275
附录A MCS-51系列单片机指令表 276
附录B ASCII码字符表 281
参考文献 282
⑤ 单片机原理及应用技术的目录
第1章 单片机概述
1.1 单片机相关的基本概念
1.1.1 什么是单片机
1.1.2 什么是单片机系统
1.1.3 单片机应用系统
1.2 单片机技术的发展
1.2.1 单片机的发展历程
1.2.2 单片机的发展趋势
1.3 单片机应用系统开发过程
1.4 单片机的应用领域
1.5 常用51系列单片机介绍
1.6 本书配套单片机开发板简介
第2章 单片机的结构及工作原理
2.1 AT89s51单片机的主要特性
2.2 单片机的硬件结构
2.2.1 中央处理器
2.2.2 存储器
2.2.3 I/0接口
2.2.4 特殊功能部件
2.3 51系列单片机的引脚及功能
2.3.1 51单片机的引脚分类
2.3.2 三总线结构
2.4 单片机的存储器配置
2.4.1 程序存储器
2.4.2 数据存储器
2.5 时钟电路与CPU时序
2.5.1 振荡器和时钟电路
2.5.2 CPU时序
2.5.3 51单片机的指令时序
2.6 单片机的工作方式
2.6.1 复位方式
2.6.2 程序执行方式
2.6.3 低功耗工作方式
2.7 单片机最小系统
习题
第3章 80C51单片机的指令系统
3.1 51单片机指令系统概述
3.1.1 指令格式
3.1.2 指令字节
3.1.3 指令类型
3.1.4 常用符号说明
3.2 寻址方式
3.2.1 直接寻址
3.2.2 立即寻址
3.2.3 寄存器寻址
3.2.4 寄存器间接寻址方式
3.2.5 变址寻址
3.2.6 位寻址
3.2.7 相对寻址
3.3 80C51指令集
3.3.1 数据传送与交换指令
3.3.2 算术运算指令
3.3.3 逻辑运算及移位指令
3.3.4 控制转移指令
3.3.5 位操作类指令
3.4 51单片机汇编语言程序设计
3.4.1 设计步骤
3.4.2 伪指令
3.4.3 顺序程序设计
3.4.4 分支程序设计
3.4.5 循环程序设计
3.4.6 子程序设计
3.4.7 小结
习题
第4章 单片机C程序设计基础
4.1 C51程序开发概述
4.2 C51数据类型
4.2.1 C51的标识符与关键字
4.2.2 数据类型
4.2.3 数据的存储器类型
4.2.4 常量和变量
4.2.5 51单片机硬件结构的C51定义
4.3 C51运算符和表达式
4.3.1 赋值运算符
4.3.2 算术运算符和算术表达式
4.3.3 关系运算符和关系表达式
4.3.4 逻辑运算符和逻辑表达式
4.3.5 位运算符和位运算
4.3.6 复合运算符及其表达式
4.4 C51控制语句和结构化程序设计
4.4.1 C51语句和程序结构
4.4.2 表达式语句、复合语句和顺序结构程序
4.4.3 选择语句和选择结构程序
4.4.4 循环语句和循环结构程序
4.5 C51构造数据类型简介
4.5.1 数组
4.5.2 指针
4.5.3 结构体
4.5.4 联合体
4.6 C51函数
4.6.1 函数的说明与定义
4.6.2 函数的调用
4.6.3 中断函数
4.6.4 重人函数
4.7 预处理命令、库函数
4.7.1 预处理命令
4.7.2 库函数
4.8 汇编语言与C语言混合编程
4.8.1 C程序与汇编程序之间的参数传递
4.8.2 C语言与汇编语言混合编程实例
4.9 模块化程序设计
4.1 051单片机C程序开发过程
4.10.1 C51程序开发过程及程序结构
4.10.2 C51程序设计的步骤及注意事项
习题
第5章 KeilVision2编译环境
5.1 初识Keil软件
5.1.1 KeilC软件的初始化界面
5.1.2 KeilC菜单与窗口
5.2 KeilC工程建立
5.2.1 新建工程
5.2.2 添加代码文件
5.2.3 配置工程
5.2.4 编译链接
5.3 Keil软件的调试方法及技巧
5.3.1 Keil软件的调试方法
5.3.2 常用调试窗口介绍
5.3.3 通过Peripherals菜单观察仿真结果
习题
第6章 80C51单片机内部功能单元及应用
6.1 并行I/O端口
6.1.1 PO口
6.1.2 P1口
6.1.3 P2口
6.1.4 P3口
6.1.5 I/O端口的负载能力和端口要求
6.1.6 基本I/O口的应用举例
6.2 中断系统
6.2.1 中断系统概述
6.2.2 中断的控制与实现
6.2.3 中断的处理过程
6.2.4 中断服务程序的设计步骤
6.2.5 外部中断的应用举例
6.3 定时器/计数器:
6.3.1 定时器/计数器的基本结构与工作原理
6.3.2 定时器/计数器的控制与实现
6.3.3 定时器/计数器的工作方式
6.3.4 定时器/计数器的综合应用
6.4 串行通信
6.4.1 串行通信基础
6.4.2 串行口的结构
6.4.3 串行口相关特殊功能寄存器
……
第7章 单片机常用接口电路设计
第8章 常用串行总线介绍及应用
第9章 单片机PROTEUS仿真
第10章 51单片机应用系统开发与设计
附录1 开发板实验目录表
附录2 80C51单片机指令表
附录3 C语言优先级及其结合性
附录4 ASCII码表
参考文献 本书配套开发板
l 主芯片为ATMELh或stc的51系列单片机
l 晶振:基本配置为11.0592MHz,也可由用户自己选定适合的晶振。l P0、P1、P2、P3的每一个I/O口均引至实验用户板上,方便实验。
l Watchdog:配置有带复位的看门狗电路。l 程序存贮器为64KB。
l 数据存贮器为4KB(24C04)。
l 提供20个发光二极管,供实验使用。
l 标准RS232串行通信接口。l 标准微型打印机接口。
l 液晶显示接口,液晶为LCD1602。
l 具有动态共阴数码管8个。
l 8 ×8点阵显示。l 具有4×4矩阵键盘。
l 具有4个独立的键盘输入。
l 串行数转并行数电路采用74HC595芯片。
l 配有日历时钟电路(DS1302芯片)。l
1路8位A/D三线串行转换芯片:采用TLC549,每个通道均引出其测试点。l
提供8位D/A,使用TLC。具有0~-5V、-5V~0V、-5V~+5V输出。l
日历时钟芯片使用DS1302,可在数码管上显示年、月、日、星期、时、分、秒。l
提供扬声器驱动电路,提供不同的频率,输出多种音乐。l
提供蜂鸣器电路。l 脉冲电路。l
在系统编程,提供在线下载,方便调试。