全部课程 >微机原理与单片机技术Microcomputer principle and technology of single chip microcomputer

课程基本信息

课程编码:031802

课程类别:专业基础课(必修),

先修课程:模拟电子技术、数字电子技术、C语言程序设计等

适用专业:电气工程及其自动化,

开课院部:电子工程与智能化学院

课程负责人:宋跃

课程教学团队:

课程展示

课程简介

   《微机原理与单片机技术》是《微机原理及应用》和《单片机原理与应用》合二为一的课程,教学中以单片机原理及应用为主线,围绕单片机的教学需要,适时推出相应所需的微机基本理论与原理,最后简单介绍80X86 CPU与PC计算机基本原理与开发应用,重点突出单片机技术的先进性、工程性、实用性,从而实现微机原理与单片机教学的合二为一。

   本课程重在培养学生对单片机基本理论和实验的初步理解和编程实践能力,掌握计算机的基本原理,更重要的体现是在培养学生应用单片机技术解决实际问题的能力;课程的学习不仅要为后续课程的学习储备必要的理论知识和实践基本能力,更为今后从事实际工作奠定扎实的技术基础。

   根据目前我校生源是部分专业普通一本、部分专业普通二本的现状,同时结合本校高水平理工科大学建设需要,以及学校要建设成为一所具有创新特色的名牌地方院校的办学定位,实现为地方经济发展培养应用型、创新型、实用型人才的培养目标,将本课程设置为 “电子信息工程” 、“ 通信工程”、“自动化”、“电气工程及其自动化”、“光信息科学与技术”等专业必修的学科基础课程,学时80(含实验16),注重理论与实践结合,在掌握基础理论与原理的同时,强调应用和工程的实践与训练。

                     

课程教学要求

课程教学目标

1.掌握51单片机结构与原理、指令系统与汇编程序设计、中断系统与定时计数器、串行并行口、系统扩展技术、常用接口芯片的接口原理及应用、微机系统存储器设计。

2.理解51单片机时序、应用系统设计方法和过程;了解C51、80X86CPU及INTEL微机系统; 具有较广阔的微机控制系统分析能力以及较熟练的单片机硬软件开发工具使用技能。

3.理解相关的数学知识和分析方法如何应用于电子工程、微机控制等领域,并具备理论与工程实际相结合的分析、思维能力。

 

 

本课程与学生核心能力培养之间的关联:

核心能力1. 具有扎实的专业知识,能够运用数学物理等基础科学理论以及电子电路和信息系统的基本知识。

核心能力2. 项目管理和团队合作的能力。

核心能力3. 从事电子信息工程相关行业所需的技术、技巧以及使用软硬件工具的能力。

核心能力4. 设计与实施电子信息工程相关实验,并且能够进行资料的分析与解释。

核心能力5. 设计电子系统和元器件的能力。

核心能力6. 认识时事议题和珠三角产业趋势,了解工程技术对环境、社会及全球的影响,并且培养跨领域持续学习习惯和能力,以及外语能力。

核心能力7. 发现、分析及处理复杂工程问题的能力。

核心能力8. 培养职业道德以及认识社会责任。

 

课程教学内容

理论教学进程表

周次

教学主题

教学时长

教学的重点与难点

教学方式

作业安排

1

1微机基础知识(4)4

2 微机的存储器(2)5

6

码制,编码,微机概述、单片机概述,单片机常用开发与仿真软件

存储器结构、地址译码、CPU与存储器的接口原理

课堂讲授

1.1(1)(3)

1.3

1.5

2

2 微机的存储器(3)5

3 51结构和原理(1)6

4

基本结构,总线,资源配置,时序,存储器,存贮器组织,I/O口

课堂讲授

2.2

2.3

2.8(#3)

3

3 51结构和原理(5)6

4 指令系统(1)6

6

寻址方式,7大类指令

课堂讲授

3.1

3.5

3.8

3.12

3.14

4

4 指令系统(4)6

4

 

课堂讲授

 

5

4 指令系统(1)6

5汇编语言程序设计(4)4

6单片机C语言程序设计(0.5)0.5

讨论0.5节

6

伪指令,基本程序,子程序,程序的编制与汇编

课堂讲授

小组讨论

4.1

4.6(4)(6)

4.11

4.13

 

5.4

5.6

5.12

5.14

6

7 51中断系统及定时/计数器(4)8

4

中断系统结构、原理,定时/计数器的结构、原理与应用

C51编程应用设计方法,OBE工程案例1个

课堂讲授

小组讨论

6.3

6.9

7

7 51中断系统及定时/计数器(4)8

8 51串口及串行总线扩展(2)8

6

串行通信口的结构、原理与应用,串行通信总线

课堂讲授

 

7.10

7.17

7.19(汇编语言)

8

8 51串口及串行总线扩展(4)8

4

 

课堂讲授

 

9

8 51串口及串行总线扩展(2)8

9 51系统扩展(2)9,

实验2节

6

I/O、存储器扩展,时序接口、显示、键盘系统

课堂讲授,实验

8.3

8.6

10

9 51系统扩展(2)9,实验2节

4

 

课堂讲授,实验

 

11

9 51系统扩展(4)9,实验2节

6

 

课堂讲授,实验

 

 

12

9 51系统扩展(1)9,

10 模拟量接口(1)7,实验2节

4

A/D、D/A转换器的接口硬件与软件

课堂讲授,实验

 

13

10 模拟量接口(4)7,实验2节

6

 

课堂讲授,实验

9.3

9.15

9.16

 

 

14

10 模拟量接口(2)7,实验2节

4

 

课堂讲授,实验

10.4

10.9(2)10.10(2)

15

11 应用系统设计与制作(1)1

实验2节,讨论1节,习题2节

6

OBE工程案例1个

 

课堂讲授

实验

小组讨论

11.2

 

12.6

12.7

16

12 微处理器及微机系统(1)1,讨论1节, 实验2节

4

8086CPU结构、流水线技术、存储器、工作模式等

课堂讲授

实验

小组讨论

 

 

合计:

80

 

 

35

实践教学进程表

周次

实验项目名称

学时

重点与难点

项目类型(验证/综合/设计)

教学

方式

备注

9

清零汇编程序实验

2

学习windows软件模拟的调试方法

验证

实验(必做)

课内

 

P口及控制实验(1)P3.0口输入P1口输出实验(2)P1口亮灯实验

2

掌握I/O口使用与编程调试技能

验证

实验

选做(2选1)

课外

10

INTO中断实验

2

掌握51单片机中断原理及编程使用方法

验证

实验(必做)

课内

11-13

定时/计数器产生矩形波实验

6

掌握定时/计数器原理及调试编程使用。

综合/设计

(OBE设计实验)

实验(必做)

课内

 

串并转换实验(1)  164串进并出实验(2) 165并串转换实验

6

掌握串行口编程原理、接口设计方法

 

综合/设计

 

实验

选做(2选1)

课外

 

并口扩展实验(1)8255 PA口控制PB(2)工业顺序控制

2

掌握8155(或8255)编程使用

验证

实验

选做(2选1)

课外

 

8段LED数码管显示实验

6

掌握数码管动态显示原理及编程应用技术

 

综合/设计

 

实验

选做

课外

14-16

ADC 转换实验

6

掌握ADC转换应用设计技术

综合/设计

(OBE大综合设计实验)

实验(必做)

课内

合计:

32

 

 

 

课内16、课外16

 

考核要求及成绩评定

成绩评定方法及标准

考核形式

评价标准

权重

实验(闭卷)

1. 评价标准:试卷参考解答及评分标准。

2. 要求:理解掌握所有的必做和选做试验。

15%

期中考试(闭卷)

1. 评价标准:试卷参考解答及评分标准。

2. 要求:能灵活运用所学微机原理与单片机知识和方法进行求解,独立、按时完成题目的解答。

15%

期末考试(闭卷)

1. 评价标准:试卷参考解答及评分标准。

2. 要求:能灵活运用所学微机原理与单片机知识和方法进行求解,独立、按时完成考试。

70%

 

学生学习建议

单片机该如何学习,给你12个建议

   单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。

1、万事开头难、要勇敢迈出第一步。
  开始的时候,不要老是给自己找借口,说KEIL不会建项目啦、没有实验板啦之类的。遇到困难要一件件攻克,不会建项目,就先学它,这方面网上教程很多,随便找找看一下,做几次就懂了。然后可以参考别的人程序,抄过来也无所谓,写一个最简单的,让它运行起来,先培养一下自己的感觉,知道写程序是怎么一回事,无论写大程序还是小程序,要做的工序不会差多少,总得建个项目,再配置一下项目,然后建个程序,加入项目中,再写代码、编译、仿真、生成HEX,刷进单片机中、运行。必须熟悉这一套工序。个人认为,一块学习板还是必要的,写好程序在上面运行一下看结果,学习效果会好很多。单片机是注重理论和实践的,光看书不动手,是学不会的。
  2、知识点用到才学,不用的暂时丢一边。
  厚厚的一本书,看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序。比如你写流水灯,完全就没必要看中断的知识,专心把流水灯学好就是了,这是把整本书化整为零,一小点一小点的啃。
  3、程序不要光看不写,一定要自己写一次。
  最开始的时候,啥都不懂,可以抄人家的程序过来,看看每一句是干什么用的,达到什么目的,运行后有什么后果,看明白了之后,就要自己写一次,你会发现,原来看明白别人的程序很容易,但到自己写的时候却一句也写不出来,这就是差距……当你自己能写出来的时候,说明你就真的懂了。
  4、必须学会掌握调试程序的方法。
  不少人写程序,把代码写好了,然后一运行,不是自己想要的结果,就晕了,然后跑到论坛上发个帖子,把程序一贴,问:为什么我的程序不能正常运行?然后就等别人来给自己分析。这是一种很不好的行为,应该自己学会发现问题和学会如何解决问题。这就需要学习调试程序的方法,比如KEIL里,可以下断点啦,查看寄存器内容等等,这些都是调试程序的手段,当你发现你写的程序运行结果和你想象中不一样的时候,你可以单步,也可以下断点,然后跟踪,查看各相关寄存器内容,看看程序运行过中是不是有什么偏差,找出影响结果的地方,改正过来。这一个过程非常重要,通过程序的排错,你可以学到的知识是书上得不到的。
  5、找到解决问题思路比找到代码更重要。
  我们用单片机来控制周边器件,达到我们想到的目的,这是一个题目,而如何写出一个程序,来控制器件按你想要的结果去运作,这个就是解题的思路。要写程序,就得先找到解决问题的思路,你学会找出这个解题思路,比你找到代码更为重要。不少人很喜欢找人家的代码,有的人甚至有了代码就直接复制到自己的程序中,可以说,这不是一种学习的态度,无助于你编程水平的提高。我几乎不怎么看人家的代码,多数时候是看别人的思路,有方框图最好,没有的话文字说明也可以,要从代码中看出别人处理问题的思路,是相当困难的,特别是大型的程序,看起来是非常的累人,所以现在我也明白了,以前读书时说的程序流程图很重要,现在算是知道了。当你知道一个问题怎么去解决了,那么剩下的只是你安排代码去完成,这就已经不是什么问题了。举个例子:数码管动态扫描,没写过的初学者可能搞不清是怎么回事,其实,就是分时让每一时间段时只控制一只数码管显示数字,几只数码管轮流显示,由于速度很快,人眼的看起来是全部数码管都亮的。明白是这么一回事,事情就好办了,剩下的事情,无非是你安排让一只只数码管轮流显示出相应的数值。显示数字,然后延时一下,再下一只显示数字,延时,知道是这样,我们实际程序上只要做到这样就可以:往段口送段码,然后打开位选显示一只,延时一下,再关闭位选,再送出段码,再打开另一只位选,仅此而已。有了解决问题的思路,我们就能问题拆分开来,然后逐一的解决,如果动态扫描的原理都没懂,不知道如何做,那么这个程序是怎么也写不出来的。
  6、开动脑筋,运用多种方法,不断优化自己的程序。
  想想用各种不同方法来实现同一功能。这是一个练习和提高的过程,一个问题,你解决了,那么你再想想,能不能换种写法,也可以实现同一功能,或者说,你写出来的代码,能不能再精简一点,让程序执行效率更高,这个过程,就是一个进步的过程。很多知识和经验的获得,并不是直接写在书让你看就可以得到的,需要自己去实践,开动脑筋,经验才能得到积累,编程水平才能有所提高。
  7、看别人的代码,学习人家的思路。
  这个在学习初期是很有用,通过看别人的代码,特别是有多年编程经验的人写出的具有一定水平的代码,可以使自己编程水平得到迅速的提高,同时,也可以结合别人的编程手法,与自己的想法融合在一起,写出更高水平的代码,从中得到进步。但要注意,切忌将学习变成抄袭,更不是抄袭完了就认为自己学会了,这样做只会使你退步。
  8、尝试编写一下综合应用的程序。
  从流水灯学起,到动态扫描,再到中断,那么,你可以试试写一下时钟这种综合性应用的程序,不要小看时钟,要写好它不是一件容易的事情,它包括了单片机大部分的知识,比如有按键(IO读取)、动态扫描(IO输出)、中断等,如何协调好各功能模块正常工作,才是编程者需要学习的地方,当你单独写一个功能的时候,比如按键读取,你可能感觉很容易,因为你的程序啥也不做,只是读按键。但把它和其它功能混合在一起,如何在整个程序运行中使每一部分都正常工作,这就不是写一个按键读取这么容易的事情,功能模块之间有可能会互相影响,比如你需要让数码管既能显示,又要去处理按键读取,怎么使这两部分都正常工作,这就是一个协调过程。当你有了这个处理协调能力,你就算是入门了。
  9、着重于培养解决问题的能力,而不是具体看自己编写了多少代码或者做过什么。
  “学单片机重点在于学习解决问题的思路,而不是局限于具体的芯片类型和语言”这一直是我的座右铭,是我学单片机多年来感悟出来的。经常看到有人说“你会驱动XX芯片,真牛啊”“你搞过XX项目,真厉害”之类的话,其实这是非常片面的,搞过XX芯片,搞过XX项目,只能说明你做过这一项目,它只是你的业绩,并不是代表能力就一定高。真正的能力应该是:“遇到没有解决过的问题或器件,能利用自己已学的知识,迅速找到解决问题的方法。”这个才是能力。写程序的过程就是一个创造的过程,几乎没有完全一样的项目,每次你遇上的几乎都不相同,所以你拥有的必须是你面对新项目时的创造能力,而不是标榜着你以往做过多少项目。当然,业绩也能从另一侧面反映你的经验和水平。
  10、如果有可能,多学习计算机专业的知识,比如数据结构等。
  这些是你解决问题的基础知识,你把这些知识应用得越好,就会发现越容易找到解决问题的方法,这就是为什么一个学计算机专业的人编的程序和一个非计算机专业的人编的程序有差异的原因。也是一个菜鸟进军到高手所要配备的知识。如果我们把编程分为宏观编程和微观编程,那么微观编程就是写具体的代码,比如控制某某器件的语句;而宏观编程就是如何对整个程序进行布局、安排,使功能模块以你想要的方式去运行,得出你想要的结果。如前所说“会控制XX器件”这些只能算是微观编程,能做到这一步还只能算是菜鸟级别,如果面对一个新的器件,你心里没底,没把握去写这个控制程序,那说明你还是一个初级的菜鸟。当你有了一定的编程经验,控制过相当数量的器件之后,你就会发现,控制器件这些工作都是相似的、重复的工作,体现不出编程的水平,最多也是写得好与不好的差别,只能算是一些小技巧的应用。而对整个程序进行布局、安排这些才是最头痛的事情,能达到宏观编程和微观编程都做好才是真正的高手。对于规模越大的程序,越能体现出这一点。
  11、面对一个新项目时,多自己开动脑筋,不要急于找别人的程序。
  有不少人面对一个新项目时,第一步想到的就是网上找别人写过的代码,然后抄一段,自己再写几句,凑在一起就完成任务,这虽然可能是省时间,但绝对不利你的学习。当你接到一个新项目时,应该先自己构思一下整个程序的架构,想想如何来完成,有可能的话,画一个流程图,简单的可以画在脑子里,对程序中用到的数据、变量有一个初步的安排,然后自己动手去写,遇到实在没办法解决的地方,再去请教别人,或看别人是怎么处理的,这样首先起码你自己动过脑想过,自己有自己的思路,如果你一开始就看别人的程序,你的思维就会受限在别人的思维里,自己想再创新就更难了,这样你自己永远也没办法提高,因为你是走在别人的影子里。
  12、多利用网络的搜索,学会提问题。
  一般来说,学习过程中,你遇上的问题,前人们多数也有遇上的,所以如果有什么不懂,在自己解决不了的时候,最好先到网上搜索一下,看能不能找到答案,找不到再到论坛里发问,发问也要有目的性,尽量简单明了的描述问题,让帮助你的人可以用最少的时间就看懂你说什么,毕竟人家帮助你是免费的,时间也是有限的。

 摘自网络。

 

课程文档下载

课程大纲下载 课程历年试题下载

课程其它文档下载

本站 所有信息归:东莞理工学院 版权所有

技术支持: 北京文华在线教育科技股份有限公司    建议在IE8以上浏览器1024*768分辨率下浏览本站