单片机基础
分享
课程详情
课程评价
spContent=从鼠标、键盘、智能手环、手机,到微波炉、电冰箱,单片机作为一款经典的微控制器,应用到我们生活的各个方面。同时,单片机涉及到C语言编程、电路设计,还是学习CPU、计算机、DSP、FPGA的入门。可以说单片机是设计电子信息系统的基础。因此,各学校电子信息类专业均开设了单片机课程。 本门课程从大家熟悉的Arduino讲起,逐步介绍各类输入输出、传感器、电机模块,再到AVR单片机和ESP32单片机,同时穿插交通灯、密码锁、智能车、水火箭、机器猫等综合项目和创新作品。为大家提供一个循序渐进学习单片机的途径。
—— 课程团队
课程概述

        Arduino这一硬件标准化、软件代码开源的单片机模块,是由意大利的Massimo为方便学生,开发的。以他常去的酒吧di Re Arduino命名。Arduino降低了单片机开发难度,因此迅速得到普及。Arduino已经形成了成熟的生态圈。有各种社区。已经成为中小学生,创新创业的重要工具。正因为Arduino应用广泛,在大学生中有一定的基础。因此我们以Arduino开始讲解本门课程。

        我们以点亮发光二极管为例,讲解Arduino的构成、开发软件。利用blink闪灯程序,循序渐进,学习函数控制,IO口、定时器、中断、串口的原理和方法。IO口部分掌握程序控制硬件的方法,理解编程控制Arduino硬件和纯粹计算机编程的差异,理解硬件编程中变量和硬件之间的关系。同样是1秒计时,理解delay、millis函数,和定时器的异同。串口将Arduino和计算机连接起来,任务进阶。解决讲解SPI、IIC等常用功能。利用温度传感器,学习Arduino控制其他模块的方法,学习传感器、执行机构、通信模块。奠定开发基础。

        掌握编程控制Arduino,帮助同学快速入门,通过创新作品, 培养系统设计和创新能力。Arduino有助于我们去理解单片机。

        单片机部分,是在Arduino的基础上,讲解讲解单片机的结构和运行机制,帮助同学建立程序与硬件、C语言与单片机的关系,培养系统设计和实现能力,也为后续计算机结构、DSP、FPGA、甚至是处理器设计奠定基础。

        单片机部分,简单介绍单片机结构。还是以点亮发光二极管为例,以51单片机为例,介绍单片机执行程序的过程,帮助同学们理解,单片机执行指令的过程,建立起硬件和软件之间的关系,主要是单片机寄存器的作用。程序是通过寄存器控制单片机,同时通过查询寄存器得到不同部分的状态。

        接着介绍Arduino通过IO口点亮LED的电路结构,理解程序是如何通过不同寄存器控制IO口。还有定时器、中断、串口、SPI口的原理、结构、寄存器控制方法。一方面理解Arduino函数是如何执行的,另一方面了解单片机结构,为开发复杂单片机功能打下基础。

        除了以上基本知识外,本课程还提供了大量综合项目和创新作品供大家学习使用。

        总之,本门课程希望通过编程控制Arduino,理解单片机工作机制,设计创新作品,培养学生循序渐进学习知识、运用知识、创新创业的能力。同时为后续课程奠定基础。

授课目标

目标1:理解Arduino的概念内涵和开源硬件特点,掌握Arduino开发的流程、软硬件使用方法、Arduino编程技术,能够基于Arduino等开源硬件开发小型电子系统。

目标2:理解单片机的基本概念,掌握单片机的基本原理、结构、指令系统、程序设计、接口控制等,能够基于单片机开展复杂电子系统设计。

目标3:通过一系列实例,熟练掌握电子系统开发、设计和调试等技能、具备根据任务需求,开展系统分析、软硬件设计、代码调试、文档撰写等准产品开发的能力。


课程大纲
预备知识

具备如电子设计基础、数字电路技术、C语言等基础知识

参考资料

教材:

王俊、张玉玺 等,《单片机基础与Arduino应用》(普通高等教育“十三五”规划教材),电子工业出版社,2017年9月。

常见问题

Q :  单片机学习的关键是什么?

A :  单片机是实践性比较强的课程,学好单片机的关键是编程和动手实践。重点掌握定时器、中断、通信的编程实现,在实践过程中学会发现问题、分析问题,从而解决实践中的问题。


Q :  本课程需要哪些编程软件和仿真工具?

A :  需要Proteus仿真软件、Fritzing仿真软件、Arduino IDE开发环境。


Q :  本课程是否需要单片机硬件,需要哪种开发板?

A :  本课程实践性比较强,建议同学配一块Arduino UNO开发板,有条件的同学可以买Arduino UNO套件,更加方便学习。


Q :  课程对电子工程的专业知识要求是否很强?

A :  学习Arduino单片机可以完全不需要了解其内部硬件结构和寄存器设置,仅仅知道它的端口作用即可;可以不懂硬件知识,只要会简单的C语言,就可用Arduino单片机编写程序。