单片机应用技术教程(基于Keil与Proteus)课标教案_第1页
单片机应用技术教程(基于Keil与Proteus)课标教案_第2页
单片机应用技术教程(基于Keil与Proteus)课标教案_第3页
单片机应用技术教程(基于Keil与Proteus)课标教案_第4页
单片机应用技术教程(基于Keil与Proteus)课标教案_第5页
已阅读5页,还剩108页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《单片机应用技术》PAGE3/9《单片机应用技术》课程标准课程定位《单片机应用技术》课程主要以51单片机为基础,介绍单片机的概念、内部结构、引脚分布及功能、最小的单片机控制电路、单片机的开发流程、单片机的控制语言C51、单片机的各种控制情况(如:作为输出端口对LED发光二极管、数码管、LED、LCD的控制;作为输入端时键盘功能应用;A/D、D/A转换模式等),培养学生在自动化和智能化方面的控制能力,为后续从事自动化和智能化相关岗位工作奠定基础。该课程是高等院校和技工院校新能源汽车技术、机电一体化、工业机器人技术、电气控制技术及现代移动通信技术等相关专业的专业课程,是培养工业生产自动化、智能化及智能电子产品等技术应用及开发型人才的经典课程。课程目标知识目标掌握单片机的基础知识;掌握单片机开发流程中软件的使用;掌握C51语言的编程手法,会编读(试写)各经典模块的控制程序;单片机控制电路的搭建、检修、调试能力;掌握将源程序生成单片机代码文件的技能;掌握单片机的代码烧录技能;能力目标学会KeilC软件开发环境的使用,能完成程序的编辑、编译、调试、下载;能熟练的使用C51语言进行控制电路代码的编写;能熟练在Protues软件种搭建控制电路和控制效果调试;能熟练的利用YL-237单片机试验箱调试硬件电路;素质目标1)具有良好的思想品德、行为规范和职业道德。2)具有良好的人文素养和身心素质。3)具有吃苦耐劳、踏实肯干、谦虚好学的作风。4)具有团队协作精神和创新精神。本课程教学设计本课程共安排10个项目,共64学时,其中30个理论学时,30个实践学时。机动学时4学时。课程按四个部分进行教学实施;第一部分:单片机的基础知识(6学时)(一)教学目标1.了解数字的转换及数和字符在计算机内的表示;2.了解51单片机的概念、内部结构、外部引脚、最小单片机系统;3.了解MCS-51单片机工作方式、时序、存储结构;(二)教学内容1.数字的转换、数和字符在计算机内的表示;2.51单片机概念、内部结构、外部引脚、最小单片机系统;3.MCS-51单片机工作方式、时序、存储结构;第二部分:单片机应用常用开发流程(4学时)(一)教学目标1.了解单片机应用的流程;2.掌握单片机硬件开发工具;3.掌握单片机软件开发工具;(二)教学内容1.单片机控制的流程;2.掌握Protues软件搭建应用电路的流程;3.掌握keilC软件编写应用代码的流程;4.掌握YL-237单片机试验箱调试的流程;第三部分:C51单片机编程语言(10学时)(一)教学目标了解单片机程序设计语言概述;掌握C51数据类型和数据存储类型;掌握C51运算符和表达式;掌握C51程序结构;掌握C51函数;(二)教学内容单片机程序设计语言种类,特点;C51数据类型和数据存储类型;C51运算符和表达式;掌握C51程序结构;掌握C51函数;第四部分:单片机的各种控制方式(40学时)(一)教学目标掌握单片机实现对LED灯控制的方法和技巧;掌握单片机实现对数码管显示控制的方法和技巧;掌握单片机键盘的设计与实现;掌握单片机定时器和计数器的使用;掌握单片的对LED点阵的控制方法;掌握单片机对LCD液晶的控制方法;(二)教学内容单片机对LED灯的控制,点亮一个LED、LED灯闪烁、LED灯流水;单片机对数码管的控制,数码管结构,静态显示,动态显示,0-99计数器;单片机键盘控制,键盘结构,单键盘,矩阵键盘控制,中断概念提出;单片机定时器和计数器的控制,霓虹灯的设计,时钟设计;单片机LED点阵的控制;单片机LCD液晶的控制;课程结束后进行课程总结、复习与机动(4学时)教学条件教学团队要求1)从事本课程教学的专任教师,应具备以下相关知识、能力和资质:具备高校教师资格;具有相关中级工以上职业资格;2)从事本课程教学的兼职教师,应具备以下资质:具备3年以上教学经验,2年以上相关企业工作经验。具有相关中级工以上职业资格证。校内外实习实训条件校内实训条件:单片机实训室,含软件(KEILC软件、Protues软件)、计算机、多媒体、音响等。教学实施建议教学模式采取项目导向、任务驱动的教学模式。教学方法与手段1)案例教学、项目教学为主;2)由教师进行操作性示范,学生进行实际操作,教师再提出拓展任务,根据学生完成情况进行点评和延伸。考核与评价1)考核形式:考查。2)评价方法:本课程按照百分制进行考查,主要包括平时表现、过程考核和期末考查,平时表现与过程考核合计占50%,期末考查占50%。序号考核方式考核内容考核标准权重(%)1平时表现考勤、学习态度旷课1次扣2分;课堂学习态度不端正一次扣1分。202过程考核作业完成情况、实训报告实训报告未完成扣4分/次,缺席作业扣2分/次。303期中考核考查试题试题评分标准204期末考查考查试题试题评分标准30合计100教材、教学参考书及网站(1)教材《单片机应用项目化教程》王宇湖南师范大学出版社《单片机原理及应用》,董国增,清华大学出版社;《51单片机应用技术》,孙立书,清华大学出版社;(2)参考书陈石胜.《单片机技术“做中学”教程》.国防工业出版社,2012.10陈石胜.《单片机基础及应用》.中国劳动社会保障出版社,2009.05陆彬.《21天学通51单片机开发》.电子工业出版社,2011.08(3)参考网站/--中国电子网本课程教学实施计划项目任务主要知识点主要技能点理论学时实践学时备注(多个专业共用一个课标,根据专业要求说明选学、必学)第一部分:单片机的基础知识(6学时)任务1:数字转换任务2:数和字符在计算机内的表示十进制、二进制、十六进制的表示和它们之间的转换;数和字符在计算机内的表示计算机内部的信息表示20新能源汽车技术、机电一体化技术、工业机器人技术、电气控制技术、现代移动通信技术都必学任务1:单片机的概念任务2:单片机的内部结构任务3:单片机的引脚1.单片机的概念2.单片机的内部结构3.单片机的引脚单片机的理论基础20任务4:最小的单片机系统任务5:单片机的工作方式和时序任务6:单片机的存储结构1.最小单片机系统2.单片机的工作方式和时序3.单片机的存储结构单片机能起控制作用的基本条件20第二部分:单片机系统常用开发流程(4学时)任务1:单片机系统仿真开发流程1.Protues软件搭建单片机控制电路2.keilC软件编写控制代码1.Protues软件应用2.keilC软件的使用11任务2:单片机实训箱开发流程1.YL-237单片机试验箱调试电路应用1.实训箱控制电路的搭建2.程序烧录方式11第三部分:C51单片机程序设计(10学时)任务1:单片机程序设计语言概述1.单片机程序设计语言种类2.C51语言的特点3.例讲C51程序介绍为什么要选择C51作为单片机控制的编程语言2任务2:C51数据类型和数据存储类型1.常量与变量2.整型数据3.实型数据4.字符型数据5.数组类型6.指针类型7.keilC51中的数据类型(位变量、特殊功能寄存器)常量、变量概念整型数、实型数、字符型数2任务3:运算符和表达式1.算术运算符和算术表达式2.自增/自减运算符3.赋值运算符和赋值表达式4.逗号运算符和逗号表达式5.关系运算符和关系表达式6.逻辑运算符和逻辑表达式7.位操作运算符和表达式各种运算符和表达式2任务4:C51程序结构1.顺序结构2.选择结构3.循环结构if语句、if…else语句、switch语句、for语句、break语句、continue语句2任务5:C51函数1.函数的定义2.函数的调用3.局部变量和全局变量4.中断函数函数的定义、调用2第四部分:单片机的各种控制(40学时)任务1:单片机对LED灯的控制1.点亮一个LED灯2.LED灯的闪烁控制3.LED流水灯的控制单根引脚和1个8位I/O口的控制方式24任务2:单片机对数码管的控制1.数码管的结构2.数码管的静态显示0-F3.数码管的动态显示123456784.数码管计数器0-99数码管的静态和动态显示26任务3:单片机键盘控制1.键盘的概念,结构,控制方式2.中断的概念,外部中断的应用3.单键盘控制4.矩阵键盘或多键盘输入单片机的输入方式中断的概念26任务4:单片机定时器计数器的控制1.定时器/计数器的概念,结构,控制方式2.定时器/计数器的应用3.霓虹灯的设计4.时钟设计单片机精准时间控制26任务5:单片机LED点阵控制1.LED点阵的概念,结构,控制方式2.点阵应用单片机点阵控制字模提取方式22任务6:单片机LCD液晶控制1.LCD液晶的概念,结构,控制方式2.液晶应用单片机液晶控制字模提取方式24合计643030机动4课程作品输出1.实训报告:1本2.电子作品:1-2个

《单片机应用技术教程》教案课程代码:总学时/周学时:开课时间:授课班级:使用教材:授课教师:重

课程介绍一、课程性质、地位和作用1、课程性质:《单片机应用技术》课程主要以51单片机为基础,介绍单片机的概念,内部结构、引脚及功能、单片机最基本的控制条件、工作方式和时序;单片机的开发环境和开发流程;单片机的开发语音C51应用;51单片机各种控制方式的讲解。培养学生在智能控制方面的应用能力,为后续从事智能化相关岗位工作奠定基础。该课程是高等院校和技工院校新能源汽车技术、机电一体化、工业机器人技术、电气控制技术及现代移动通信技术相关专业的专业课程,是培养工业生产自动化、智能化及智能电子产品等技术应用及开发型人才的经典课程。2、课程的地位和作用:《单片机应用技术》为专业课程,前导课程是《电工电子技术》、《C语言程序设计》、《传感器检测与应用》,在专业课程中属于B类课程,课程教学中引入大量的仿真实训,让同学们理解单片机的工作原理,掌握单片机的控制方法,体会智能控制的快乐。二、课程教学目标1、能力目标:学会KEIL软件开发环境的使用,能完成程序的编辑、编译、调试、下载;能熟练的使用C51语言进行单片机控制软件程序设计;能熟练的利用YL-237单片机试验箱调试硬件电路;2、知识目标:掌握C51语言的编程手法,会编写各经典模块的控制程序;单片机应用电路安装、检修、调试能力;掌握将源程序生成单片机代码文件的技能;掌握单片机的代码烧录技能;会编写由单片机控制的电子产品的系统控制程序。三、课程设计1、课程进度安排:(详细情况见进度表)授课进度计划表2、教学方法与手段:讲授法,演示法,案例教学法3、考核方式:项目实操4、选用教材、推荐的教学参考资料:(1)教材《单片机应用技术项目教程》郭志勇人民邮电出版社《单片机应用项目化教程》王宇湖南师范大学出版社《单片机原理及应用》(C51语言)董国增清华大学出版社《51单片机应用技术》,孙立书,清华大学出版社(2)参考书陈石胜.《单片机技术“做中学”教程》.国防工业出版社,2012.10陆彬.《21天学通51单片机开发》.电子工业出版社,2011.08(3)参考网站/--中国电子网STC单片机()51黑电子论坛(/bbs/)单片机教学视频(/)电子发烧友(/)中国电子网()电子技术应用(/)

《单片机应用技术教案》本单元课题第一部分51单片机基础知识课次本单元共课次备课节数共6节授课节数共6节授课时间第周授课地点教学用具多媒体教室、仿真软件、动画演示等教学方法演示法、讲解法、讨论法等教学目标1.数字转换、数和字符在计算机内的表示2.了解单片机概念;3.理解单片机的内部结构;4.掌握51单片机的封装和引脚介绍;5.掌握最小的单片机工作系统;6.了解单片机的工作方式和时序;7.了解单片机的存储空间;8.培养逻辑思维和利用知识解决实际问题的能力;重点难点重点:单片机的封装和引脚介绍;最小的单片机工作系统;难点:单片机的工作时序和存储空间;参考资料《单片机应用技术项目教程》郭志勇人民邮电出版社《单片机原理及应用》(C51语言)董国增清华大学出版社《51单片机应用技术》孙立书,清华大学出版社等课程思政教学流程说明教学组织过程设计课前案例引入(5ʹ)进入新课学习(5ʹ)师生互动,教师重点帮助学生理解有关概念(25ʹ)【创设情景新课导入】我们在工业生产领域机器人代替人类进行工作,在生活领域接触到各类智能性的电子产品,甚至是人机对话;大家有没有去思考过,机器人或电子产品是如何懂得我们的语言和想法?我们的单片机芯片如何才能工作起来呢?工作时又有哪些方式呢?它的内部存储空间如何?【引导探究学习新课】任务一:数制的转换及数和字符在计算机内的表示数制的转换(1)几种进制数十进制数:数码包括0、1、2、3、4、5、6、7、8、9十个数,后缀用D表示;基数为10;二进制数:数码包括0、1两个数,后缀用B表示;基数为2;八进制数:数码包括0、1、2、3、4、5、6、7八个数,后缀用O表示;基数为8;十六进制数:数码包括0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六个数,后缀用H表示;基数为16;非十进制数转换为十进制数将二进制数、八进制数和十六进制数转换成十进制数,可按位权展开求和进行计算;eg:十进制数转换为其他进制数整数部分:“除R取余数,直到商为0”的方法;R为R进制数;小数部分:“乘R取整,直到小数部分为0”的方法;R为R进制数;二进制数和十六进制数的对应关系数和字符在计算机内的表示原码:反码:补码:补码的加减运算:BCD码:常用字符的ASCII码:任务二:单片机概念1、什么是计算机一台计算机是由运算器、控制器、存储器、输入设备以及输出设备五部分构成。2、什么是单片机3、计算机和单片机直接的关系4、常见的单片机系列5.单片机的应用单片机属于数字控制类芯片,凡是与控制或简单计算有关的电子设备都可以用单片机来实现。(1)工业自动化(2)智能仪器仪表(3)消费量电子产品(4)通信方面(5)武器装备方面阅读教材学生讨论(15ʹ)学生总结(3ʹ)师生互动,教师重点帮助学生理解有关概念学生总结(3ʹ)教师小结(2ʹ)课后作业任务三51单片机内部结构1.单片机基本组成单片机系统和计算机是由运算器、控制器、存储器、输入设备以及输出设备五部分构成。因单片机体积小,价廉,在组成部分里做了调整。2.51单片机的内部结构图3.51单片机内部结构中各自的作用(1)CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;(2)RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;(3)ROM:用以存放程序、一些原始数据和表格;(4)I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;(5)T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;(6)五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率取决于单片机型号及性能。(7)各部分之间由总线进行连接,总线有地址总线,数据总线,控制总线。任务四:51单片机外部引脚介绍1.51单片机外部引脚分布情况2.双列直插式PDIP40封装51单片机引脚分类(1)主电源引脚20脚和40脚(2)外接晶体震荡引脚18脚和19脚(3)4组输入/输出(I/O)引脚(32条)P0、P1、P2、P3(4)控制引脚4条9脚、29脚、30脚、31脚任务五:最小的单片机系统1.单片机最小系统的概念2.单片机最小系统图(1)单片机:起控制作用的集成芯片。(2)电源电路:向单片机供电。(3)时钟电路:单片机工作的时间基准,决定单片机工作速度。(4)复位电路:确定单片机工作的起始状态,完成单片机的启动过程。任务六:51单片机的工作方式和时序1.51单片机的工作方式2.51单片机的时序任务七:51单片机的存储器空间1.半导体存储器的类型2.随机存取存储器3.只读存储器ROM4.计算机存储器的配置结构和单片机存储器5.51单片机的内存空间》【学生总结感受收获】学生总结本节课内容,谈谈心得体会【课后作业练习巩固】1.十六进制数的基数是?前缀是?后缀是?2.什么是单片机?3.51单片机的内部结构?4.51单片机的外部40个引脚分布方式?5.51单片机能起控制作用的单片机电路组成是?6.51单片机的工作速度取决于?7.51单片机的存储空间有多大?教学后记本节内容理即有最基本单片机的概念;也有复杂难懂得I/O口内部结构;外部引脚及功能;单片机的存储空间;单片机的工作时序和工作方式;整个部分作为对单片机的认知和后续应用的提升部分,可以分初学和再学两个环节进行。《单片机应用技术教案》本单元课题第二部分单片机应用常用的开发流程课次本单元共课次备课节数共4节授课节数共4节授课时间第周授课地点教学用具多媒体教室、仿真软件、动画演示等教学方法演示法、讲解法、讨论法等教学目标1.了解单片机控制的开发流程;2.掌握单片机控制仿真开发流程;3.掌握单片机仿真情况(Proteus)和实训箱(YL-237)情况控制电路的搭建;4.掌握51单片机控制电路代码的编写流程;5.掌握硬件和软件的调试流程和控制效果的调试流程;6.培养逻辑思维和利用知识解决实际问题的能力;重点难点重点:单片机控制电路的开发环境;单片机控制代码编译软件;难点:熟练进行控制效果调试;参考资料《单片机应用技术项目教程》郭志勇人民邮电出版社《单片机原理及应用》(C51语言)董国增清华大学出版社《51单片机应用技术》孙立书,清华大学出版社等课程思政教学流程说明教学组织过程设计学生举例参与仿真演示创设情景(5ʹ)进入新课学习出示课题(5ʹ)师生互动,教师重点帮助学生理解有关概念(25ʹ)【创设情景新课导入】我们在上一个章节的学习中学习了单片机的相关知识,但对于单片机是如何去控制电路的,我们还不够了解和认知,本章节我们一起来学习单片机的开发工具。案例引入单片机的控制,eg:机器人,电子血压计【引导探究学习新课】一.单片机系统的设计开发流程1.需求分析2.电路设计3.程序设计4.系统调试5.产品试生产6.产品大规模生产,销售二.单片机系统的仿真开发工具和流程1.在Proteus界面中进行控制电路图绘制(1)Proteus软件介绍PROTEUS是英国LabcenterElectronics公司开发的多功能EDA软件。PROTEUS不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,也是目前较先进的单片机和嵌入式系统的设计与仿真平台。它实现了在计算机上完成从原理图与电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成PCB的完整的电子设计、研发过程。(2)Proteus软件界面介绍阅读教材学生讨论和练习(5ʹ)(3)用PROTEUS设计控制电路的步骤:新建设计文件保存设计文件选取元器件放置元器件编辑元器件放置终端连线属性设置电气规则检测2.软件开发工具之KeilC51——集成开发软件编辑、编译和链接程序(编写控制代码)(1)KeilC51软件介绍KeilC51是德国Keil软件公司开发的基于8051内核的微控制器软件开发平台,是51系列单片机C语言软件开发系统,是目前开发8051内核单片机的主流工具。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。μVision2集成开发环境可以完成从工程建立和管理、编译、连接、目标代码的生成、软件仿真和硬件仿真等完整的开发流程。(2)KeilC51界面介绍(3)KeilC51的操作步骤介绍建立第一个C程序项目建立工程文件建立源文件加载源文件设置工程的配置参数进行编译和连接进入调试模式全速运行程序3.电路和控制代码综合调试阶段(1)在控制电路51芯片中带入keilC51生成的XXX.HEX文件(2)运行观看控制效果,是否同设计一致(3)不一致继续调试三.YL-237单片机试验箱开发流程1.在实训箱中搭建好控制电路2.在KEIL软件种编写好控制电路代码3.将代码利用编程器平台烧录到单片机芯片中四.开发流程介绍实操1.以点亮一个LED灯介绍软件开发流程2.以流水灯介绍实训箱控制流程【学生总结感受收获】学生总结本节课内容,谈谈心得体会【教师小结提炼升华】单片机仿真设计开发流程单片机实训箱控制流程控制代码的编写及控制代码编写原则,下一个环节重点介绍程序下载,烧录流程【课后作业练习巩固】1.预习下节新课内容2.单片机系统的设计开发流程有哪几步?3.单片机硬件电路设计有哪两种方式?软件实现的操作流程会操作!4.单片机控制程序的设计,熟悉代码编写软件的操作流程!教学后记本部分设计到开发流程,需在后续的控制中使用。《单片机应用技术教案》本单元课题第三部分C51单片机程序设计课次本单元共课次备课节数共10节授课节数共10节授课时间第周授课地点教学用具多媒体教室、仿真软件、动画演示等教学方法演示法、讲解法、讨论法等教学目标1.掌握单片机程序设计语言概述;2.理解C51数据类型和数据存储类型;3.掌握运算符和表达式的应用;4.掌握C51程序结构;5.掌握C51函数结构;6.掌握C51编程的基本方法和技巧;重点难点重点:C51程序结构、数据类型、运算符和表达式、函数;难点:C51综合应用;参考资料《单片机应用技术项目教程》郭志勇人民邮电出版社《51单片机应用技术》孙立书,清华大学出版社《单片机原理及应用》(C51语言)董国增清华大学出版社等课程思政教学流程说明教学组织过程设计学生举例参与仿真演示创设情景师生小结进入新课学习出示课题师生互动,教师重点帮助学生理解有关概念【创设情景新课导入】我们在前面学习中学习了单片机的相关知识,学习了单片机的开发流程,明确了“想”让电路如何工作,必须得把“想法”表述为电路能识别的语言。本部分介绍,把人的“想法”表述成计算机或电路能识别的语言--C51程序设计。C51是51系列单片机C语言软件开发系统,也是目前使用较为广泛的单片机编程语言。它和汇编语言相比,在功能、结构、可读性、可移植性、可维护性等方面都具有非常明显的优势,深受广大单片机开发人员的欢迎。【引导探究学习新课】任务一单片机程序设计语言概述1.单片机程序设计语言单片机可使用机器语言、汇编语言及高级语言编程,但不管使用何种语言,最终还是要“翻译”成单片机能够识别的机器码,单片机才能执行。(1)机器语言能够被单片机直接识别和执行的语言,由“0”、“1”组成。(2)汇编语言用助记符形式来表示的机器指令称为汇编语言指令,汇编语言是一种采用助记符表示指令、数据和地址来设计程序的语言。(3)高级语言不依赖于具体单片机且面向问题或过程的语言,其形式类似于自然语言、数学公式等。51单片机采用的是C51语言。2.源程序与目标程序(1)源程序源程序是指用汇编语言或高级语言编写的程序。汇编语言,以.asm为程序文件的扩展名;C语言,以.c为程序文件的扩展名。(2)目标程序目标程序是由机器语言(机器码)构成的,可为单片机直接识别、执行的程序。一般以.obj为程序文件的扩展名,经连接器连接后可生成.bin或.hex文件,供单片机使用。3.汇编和编译(1)汇编汇编是将汇编语言源程序转换成目标程序的过程,分为人工汇编与机器汇编。(2)编译编译是将高级语言源程序转换成目标程序、可执行程序(文件)的过程。例如C语言的工作方式。4.C51语言的特点将单片机特有的资源与C语言结合,使其能够满足单片机的开发要求,形成了单片机C语言,为了和ANSIC区别,把51单片机C语言称为C51语言。C51语言与标准的C语言也有一定的区别。用C51编写单片机程序时,需要根据单片机存储结构及内部资源定义相应的数据类型和变量,而标准的C语言不需要考虑这些问题。另外,C51包含的数据类型、变量存储模式、输入输出处理、函数等方面与标准的C语言也有一定的区别。其他的语法规则、程序结构及程序设计方法则与标准的C语言相同。学生猜想危害机理教师讲解拓展延伸阅读教材学生讨论C51语言的优点如下:(1)语言简洁,使用方便灵活,可大幅度提高开发速度,系统越复杂,开发效率越高。(2)编程者无需深入了解单片机内部结构和复杂的单片机汇编语言指令集。(3)可进行模块化开发,软件逻辑结构清晰,有条理,易于分工合作。(4)可移植性好,写好的一个C语言算法可方便地移植到其他单片机上,而汇编语言相对要复杂得多。(5)可直接操作硬件。结论:(1)C51程序和C程序一样,也是由函数构成的。一个C51程序至有且只有一个main函数,可以有零个或多个其他函数,因此函数是C51程序的基本单位。main函数可以直接书写语句或者调用其他函数来实现功能,被调用的函数可以是编译器提供的库函数,也可以是用户根据需要编写的函数(如delay函数)。使用KeilC编写的任何程序都可以直接调用其提供的库函数,调用时只需要包含具有该函数的头文件即可。KeilC提供了100多个库函数供用户直接使用。(2)一个函数由以下两部分组成。函数的首部,包括函数名、函数类型、函数参数名、参数类型。如例3.1中delay函数的首部为voiddelay(uintt)↓↓↓↓函数类型函数名参数类型参数名函数体,即函数首部下面大括号里的内容。(3)一个C51程序从main函数开始执行,不管main函数在什么位置。(4)C51中字母区分大小写,如定义是sbitLED=P2^7,若后面写成p2^7,在编译时就会出现错误。(5)C51书写自由,一行可以写几个语句,一个语句也能写在几行上。(6)每个语句必须以分号结束。(7)C51中的注释可以采用两种符号。第一种是“/*…*/”符号,从“/*”开始直到“*/”为止,中间的内容全部都是注释;第二种是“//”引导的注释语句,“//”后面的内容是注释,这种注释只对本行有效。任务二C51数据类型和数据存储类型1.常量与变量(1)常量和符号常量在程序运行过程中,其值不能改变的量称为常量,如:10、0、0x45等。常量也可以用一个标识符来表示,称之为符号常量。sbitLED=P2^7;//位变量定义,用LED符号表示P2.7引脚(2)变量在程序运行过程中值可以改变的量称为变量,因为值发生改变,所以需要安排一个存储单元保存该变量。因此一个变量应该有一个名字,在存储器中占据一定的存储单元,在该存储单元中存放变量的值。C51对变量的命名规则:变量名只能由字母、数字和下划线3部分构成,第一个符合不能为数字;C51对变量的定义格式如下:[存储种类]数据类型[存储器类型]变量名表;inta;2.整型数据(1)整型常量的表示方法整型常量即整常数,包括正整数、负整数和0,不能是小数。可以是十进制、八进制(以0开头)和十六进制(以0x开头)。(2)整型变量整型变量的基本类型是int,可以根据数值的范围将变量定义为基本整型、短整型或长整型,在int之前分别加上修饰符:short(短整型)或long(长整型)。对KeilC51来说,基本整型和short型都是用2字节来存储,long型用4个字节来存储。类型字节数数值范围int2-215~215-1unsigned[int]20~216-1short[int]2-215~215-1unsignedshort[int]20~216-1long[int]4-231~231-1unsignedlong[int]40~232-1C51中变量必须先定义才能使用,定义整型变量的方式为:修饰符变量名;例如:inta; //定义一个整型变量aunsignedinta1,a2;//定义两个整型变量a1,a2longb; //定义一个长整型变量bunsignedlongb1,b2;//定义两个长整型变量b1,b23.实型数据(1)实型常量的表示方法实数又称为浮点数,指带小数点的数据。实数有以下两种表示形式。a.十进制小数形式。由数字和小数点组成,如12.5、6.7等。b.指数形式。如34e2或34E2都代表34×102。(2)实型变量标准C语言中的实型变量分为单精度(float)、双精度(double)和长双精度(longdouble)三种,但KeilC不支持后两种,所以这里不做介绍。float型占用4个字节,定义实型变量的形式如下:float变量名1[,变量名2,…];C51中实型数的使用应该注意以下几点:a.在8位单片机中一般不要使用实型数,这样会降低程序的运行速度,增加程序的长度。b.程序中如果确实用到了实型数,一般不是因为要使用小数点,而是因为用其他类型的变量范围不够大。c.很多时候,可以用长整型来代替实型。4.字符型数据(1)字符型常量的表示方法C51中字符型常量是用单引号括起来的一个字符,如‘a’、‘x’、‘?‘等都是字符型常量。(2)字符型变量的表示方法字符型变量用来存放字符常量,一个字符型变量只能存放一个字符。字符型变量的定义形式为:char变量名;如:chara;表示定义了一个字符型变量a,a中可以存放一个字符,可以用下面的赋值语句给a赋值:a='c';5.数组类型(1)一维数组的定义数组的维数是指表示数组使用的下标个数,如果数组中每个元素只带有一个下标,称这样的数组为一维数组。一维数组的定义形式为:类型说明符数组名[常量表达式];如:inta[4];(2)一维数组的引用C51中,一个数组不能整体应用,数组名是一个地址常量,不能对其赋值,只能使用数组中的元素。方法如下:数组名[下标]下标可以是整型变量或整型表达式,如a[0]、a[i](i是一个整型变量)。(3)一维数组的初始化a.在定义数组时对数组元素初始化,如:inta[4]={1,2,3,4};经过初始化后,a[0]=1、a[1]=2、a[2]=3、a[3]=4。b.可以只给一部分元素赋值,如:inta[4]={1,2};经过初始化后,a[0]=1、a[1]=2、a[2]=0、a[3]=0。c.对全部数组元素赋值时,可以不指定数组长度。如:“inta[4]={1,2,3,4};”可以写成“inta[]={1,2,3,4};”。(4)二位数组(省略)(5)字符数组字符数组是指数组中元素的数据类型是字符类型的一维数组。字符数组引用、初始化的方法都与一维数组相同,只是要注意字符数组的元素是字符,有特殊的字面表示格式。另外,KeilC提供了专用于字符数组的库函数。(6)指针类型指针的含义是地址,所谓变量的指针就是指变量的地址,定义指针类型的变量实际上是定义一种用来存储地址的变量。具体定义为:charxdata*ptr;a.定义指针类型变量时,在变量名前加“*”,变量名取名规则和前面一般变量相同。b.xdata是指ptr里存储的是定义在外部数据存储器里变量的地址,所以ptr占2个字节。(7)KeilC51中特有的数据类型a.位型变量位型变量实际是定义一个二进制位来存储数据,其值有“0”和“1”两种。定义形式如下:bit变量名;如:bitflag; //定义一个位变量flagb.特殊功能寄存器(sfr)型变量51单片机内部的特殊功能寄存器并不能直接被C51所接受,为了定义这些特殊功能寄存器,增加了sfr、sfr16、sbit这3个关键词。sfr是定义特殊功能寄存器和其地址的对应关系,其用法为sfr变量名=地址值;在特殊功能寄存器中,有一些是由两个地址连续的8位寄存器组成,如DPTR是由DPH和DPL组成,可以分开定义这两个特殊功能寄存器,也可以用sfr16来定义,如:sfr16DPTR=0x82;sbit是定义特殊功能寄存器中可以位寻址的相应位,sbit的用法有以下三种。sbit位变量名=位地址值;sbit位变量名=SFR名称^变量位地址值;sbit位变量名=SFR地址^变量位地址值;(8)数据的存储类型及存储器的存储模式C51存储类型与51单片机存储空间的对应关系存储区描述data片内RAM的低128字节,可在一个周期内直接寻址bdata片内RAM的位寻址区,16字节idata片内RAM的256字节,必须采用间接寻址xdata外部数据存储区,使用DPTR间接寻址pdata外部存储区的256字节,通过P0口的地址对其寻址。使用MOVX@Ri,需要两个指令周期code程序存储区,使用DPTR寻址任务三运算符和表达式1.算术运算符和算术表达式(1)基本的算术运算符a、+加法运算符,如4+3。b、-减法运算符,如5-3。c、*乘法运算符,如5*8。d、/除法运算符,如10/3。e、%求模运算符或取余运算符,“%”两侧应该都为整型数据,如10%3。(2)自增/自减运算符a、++自增运算符。b、--自减运算符。(3)算术表达式和运算符的优先性与结合性用算术运算符和括号将操作数(运算对象)连接起来,形成符合C51语法规则的表达式,称为算术表达式,操作数包括常量、变量、函数等,如a*b+(5-c/3)。(4)各类数值性数据间的混合运算C51中,整型数据、字符型数据、实型数据都可以进行混合运算。运算时不同类型的数据要先转换成相同类型的数据,然后才能进行运算,转换方式有两种。二是强制转换,需要使用强制类型转换运算符,其形式为:(类型名)表达式;2.赋值运算符和赋值表达式(1)赋值运算符符号“=”为赋值运算符,其作用是将一个数据赋给一个变量,如x=5的作用是将常数5赋给变量x。也可以将一个表达式的值赋给变量,如x=5+y。(2)类型转换赋值运算符的两侧如果类型不一样,也是可以赋值的,但赋值时需要进行数据类型转换。(3)赋值表达式赋值表达式的一般形式为:变量赋值运算符表达式(4)复合赋值运算符+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=3.逗号运算符和逗号表达式在C51中,多个表达式可以用逗号分开,如3+5,5+6,7+8,其中的逗号称为逗号运算符,由逗号运算符组成的表达式称为逗号表达式,其一般形式为:表达式1,表达式2,…,表达式n逗号表达式的求解过程是:先求表达式1,再求表达式2,直到最后一个表达式,但整个表达式的值是最后一个表达式的值。如3+5,5+6,7+8逗号表达式的值为154.关系运算符和关系表达式(1)关系运算符C51中提供了以下6种关系运算符。a. <小于。b. <=小于等于。c. >大于。d. >=大于等于。e. ==等于。f. !=不等于(2)关系表达式用关系运算符将两个表达式连接起来的式子称为关系表达式,如:a>b、a+b>b+c、a!=b。关系表达式的值只有两种:“真”和“假”。在C51中,运算结果如果是“真”,则用数值“1”表示;运算结果如果是“假”,则用“0”表示。5.逻辑运算符和逻辑表达式(1)逻辑运算符C51提供了以下3种逻辑运算符。a. &&逻辑与。b. ||逻辑或。c. !逻辑非。“!”的优先性高于算术运算符,而“&&”和“||”的优先性相同,处于关系运算符和赋值运算符之间。(2)逻辑表达式用逻辑运算符将两个表达式连接起来的式子称为逻辑表达式,逻辑表达式的运算结果用“1”表示“真”,用“0”表示“假”。但在判断一个量是否为“真”时,以0代表“假”,而以非0代表“真”,如6.位操作运算符和表达式C51提供了如下的位操作运算符。a. &按位与。b. |按位或。c. ^按位异或。d. ~按位取反。e. <<位左移。f. >>位右移。任务四C51程序结构1.顺序结构顺序结构,是按程序的书写顺序执行的一种结构。【例3.5】求两个数的和。定义两个变量,先对其进行赋值,再求出两个数的和,程序代码如下。voidmain(){ inta,b,sum; a=3; b=2; sum=a+b;}2.选择结构选择结构,是一种根据选择方式,可以选择书写的语句进行执行的一种结构(1)if语句if(表达式)语句如果表达式为“真”,则执行语句,否则执行if语句后面的语句,如:if(a<5)b=3;if(表达式)语句1 else语句2如果表达式为“真”,则执行语句1,否则执行语句2,如:if(a<5)b=3;elseb=-3;if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3……elseif(表达式m)语句melse语句n如:if(a>10)b=1;elseif(a>6)b=2;elseif(a>2)b=3;elseb=4;例如:1.采用if-else-if语句实现汽车转向灯控制2.电路如图3-4所示。要求:通电初始,灯全灭;按住K1,8个LED灯全亮;松开K1,灯全灭。(2)if语句的嵌套(省略)(3)条件运算符条件运算符的一般格式为:表达式1?表达式2:表达式3如:if(a>b)max=a;elsemax=b;可以用max=(a>b)?a:b来表示。其中(a>b)?a:b为条件表达式,执行过程是:如果(a>b)为“真”,表达式的值为a;如果(a>b)为“假”,表达式的值为b。(4)switch语句实际问题中,往往遇到以一个变量或表达式的值为判断条件,将此变量或表达式的值分成几段,每一段对应一种选择或操作,这种情况用if语句来嵌套非常麻烦,于是,C51提供了switch语句。switch语句的一般结构如下:switch(表达式){case常量表达式1:语句1;break;case常量表达式2:语句2;break;case常量表达式n:语句n;break;default:语句n+1;break;}switch语句后面的表达式可以是任何类型。若表达式的值与某一个case后面的常量表达式值相同,就开始执行其后面的语句;如果没有一个case后面的常量表达式值与表达式值相同,则执行default后面的语句。每一个case后面的常量表达式值必须不同。执行完一个case后面的语句后,系统并不跳出,而是执行后面的case语句,直到结束。如果需要执行完当前case语句后,系统就跳出,需要在后面加break,如:case常量表达式:语句;break;【例3.9】电路如图3-4所示。要求:通电初始,灯全灭;按住K1,D1亮;按住K2,D2亮;不按K1和K2,D3~D8亮。程序如下:#include<reg51.h>voidmain(){ unsignedcharkey;//八个按键从P3口输入,定义为无符号字符型 while(1) { P3=0xff; //准双向口输入前先置1 key=P3; //读入P3口所连接按键 switch(key) { case0xfe:P1=0xfe;break; //K1键按下D1亮 case0xfd:P1=0xfd;break; //K2键按下D2亮 default:P1=0x03; //否则D3~D8全亮 } }}3.循环结构循环结构是一种一部分语句需要重复执行的一种结构。循环是指反复执行某一部分程序行的操作,重复执行的这一部分程序行称为循环体。循环结构使得程序结构变得简单、清晰、易于修改、占用较少内存。常见的循环结构有两种:当型循环和直到型循环。无论是哪种类型的循环,都必须包含四个组成部分:循环条件的初始化,循环控制,循环体和循环条件的修改。循环条件初始化部分:主要为循环做准备工作,包括设置有关的循环计数的初始值、其他变量的初始值等。循环控制部分:用于控制是否继续循环,即判断循环条件是否满足要求,满足要求则继续循环,否则结束循环。该部分是循环结构设计的关键,每个循环结构必须选择一个控制循环结构运行或结束的条件。通常判断循环是否结束主要有两种方法:计数器控制的循环、条件控制循环。计数器控制的循环用于循环次数已知的情况;条件控制循环用于循环次数难以确定、需要根据条件决定是否结束的情况。循环体部分:循环体是循环结构的核心部分,是每次循环都要重复执行的程序段,用于完成各种具体操作。循环条件修改部分:循环不是相同的重复,而是有规律的变化,趋向于使任务完成。为了保证每次循环都与上次不同,并能够正常结束,就需要修改某些条件。构成循环结构的主要有while、do-while和for等语句。(1)while循环语句while语句的一般表达形式为: while(表达式) {语句}当表达式的判断为“真”时,执行大括号内的语句,否则不执行。(2)do-while循环语句do-while语句是先执行循环体,然后判断循环条件是否成立,其一般形式为:do{语句}while(表达式);while和do-while语句虽然都是循环语句,但是两者是有区别的,do-while语句不管条件是否成立,至少都会执行一次循环体;而while语句,如果条件不成立,则不会执行循环体。(3)for循环语句for语句的一般形式为:for(表达式1;表达式2;表达式3){语句}for循环语句的执行过程如下。a.先求解表达式1。b.求解表达式2,如果结果为“真”,即条件成立,则执行循环体语句;如果结果为“假”,转到第(5)步。c.求解表达式3。d.转回第(2)步。e.退出for循环语句,执行下面的语句。for循环中有几种特例,分析如下。a.表达式1可以没有,但其分号不能省略。b.表达式2也可以没有,同样分号不能省略,这样认为条件永远满足。c.表达式3也可以省略。d.如果三个表达式都省略,即for(;;),它的作用相当于while(1),构成了一个无限循环的过程。(4)break语句和continue语句在一个循环语句中,可以通过判断条件来退出循环,也可以通过break语句来强制退出循环。continue语句用于结束本次循环,即跳过循环体下面的语句,而直接进行下一次是否循环的判断。eg:任务五函数1.函数的定义一个完整的C51程序可由一个主函数和若干个子函数组成,由主函数调用子函数,子函数之间也可以互相调用,同一个函数可以被一个或多个函数调用任意次。函数定义的一般形式为:函数返回值类型函数名(形式参数列表) //函数首部{ 声明部分; 执行部分;}说明:函数包括两部分:函数首部和函数体。函数体用大括号“{}”括起来;函数体包括两部分:声明部分和执行部分。声明部分主要用于定义变量,以及对定义在该函数之后的函数进行声明;执行部分完成函数功能;如果没有形式参数列表,则为无参函数,但函数名后的括号必须有;如果函数有返回结果,则返回值类型与结果类型一致,函数体中包括return语句;如果函数不需要返回结果,则将返回值类型定义为void类型,函数体中不需要return语句。2.函数的调用形式(1)函数调用的一般形式为: 函数名(实参列表);(2)调用函数的声明和函数原型在一个函数中调用另一个函数必须同时具备以下一些条件。a.被调函数一定存在,可以自己编写,也可以是库函数。b.如果是库函数,一般应在文件开头用#include命令将调用库函数时所用到的信息包含到文件中。c.如果使用用户自定义的函数,而且该函数与调用它的函数(主调函数)在同一文件中,一般还应该在主调函数中对被调用的函数做声明。(3)函数参数传递函数之间参数的传递由函数调用时主调函数的实际参数(简称实参)和被调函数的形式参数(简称形参)之间的单向复制。所谓的实际参数是指调用时函数名后面括号里的表达式,其个数和被调函数的形式参数个数一致,以intmax(intx,inty)为例,定义的形式参数有x和y两个,当主调函数调用时,将会写成如下形式:a=max(5,9);a是假设主调函数中的一个变量,5和9是实际参数,在调用时,把5赋给x、9赋给y。3.局部变量和全局变量a.局部变量在一个函数内部定义的变量称为局部变量,它只在这个函数内有效。b.全局变量一个源文件可以包含一个函数或若干个函数,在函数之外定义的变量称为全局变量,全局变量在本文件的任何函数中都可以使用。4.intrins.h库函数介绍5.中断函数(1)中断函数的格式void函数名(void)interruptn其中,n对应中断源的类型号。以51系列单片机为例,n的编号为0~4,分别对应定时/计数器0中断、外部中断0、定时/计数器1中断、外部中断1、串行中断。6.寄存器组的切换学生总结教师小结课后作业【学生总结感受收获】学生总结本节课内容,谈谈心得体会【教师小结提炼升华】教师小结点评提出要求、期望本章节介绍了C51所涉及的相关语法约定和使用方式,具体介绍了1.介绍了C51概述2.介绍了数据类型、运算符、表达式、语句3.介绍了C51程序结构、函数结构希望大家在后面的实训项目学习中,多读程序,多试写程序。【课后作业练习巩固】1.预习下节新课内容2.阅读每种控制效果的设计程序代码,理解表达方式属于本部分那块内容!3.综合应用本节内容,读和写控制电路代码。教学后记本章节教学内容较多,很多内容会放在具体的实验项目中,通过试验项目加深理解和掌握。《单片机应用技术教案》本单元课题第四部分单片机的各种控制项目1单片机对LED灯的控制课次本单元共课次备课节数共6节授课节数共6节授课时间第周授课地点教学用具多媒体教室、仿真软件、动画演示等教学方法演示法、讲解法、讨论法等教学目标1.掌握单片机控制的开发控制流程;2.掌握单片机点亮一个LED灯;3.掌握单片机控制LED灯的闪烁;4.掌握单片机对LED灯循环点亮控制;5.培养逻辑思维和利用知识解决实际问题的能力;重点难点重点:单片机对LED灯的各种控制;难点:各类控制代码的读、写和设计;参考资料《单片机应用技术项目教程》郭志勇人民邮电出版社《单片机原理及应用》(C51语言)董国增清华大学出版社《51单片机应用技术》孙立书,清华大学出版社等课程思政教学流程说明教学组织过程设计学生举例参与仿真演示创设情景师生小结进入新课学习出示课题师生互动,教师重点帮助学生理解有关概念【创设情景新课导入】我们在前面章节学习了单片机的理论、开发流程、C51语言的相关知识,但对于单片机是如何去控制LED灯,让控制的LED灯电路发出一系列规律的点亮和关闭,我们还不够了解和认知,本章节我们一起来学习单片机对LED的各种控制。【引导探究学习新课】任务一点亮一个发光二极管1.工作任务使用AT89S52单片机,P1.0引脚接发光二极管(LED)的阴极,通过C语言程序控制,从P1.0引脚输出低电平,使发光二极管点亮。2.控制电路用PROTEUS设计点亮一个LED控制电路新建设计文件保存设计文件选取元器件放置元器件编辑元器件放置终端连线属性设置电气规则检测3.控制代码学生猜想危害机理教师讲解拓展延伸阅读教材学生讨论用KEILC51编写第一个C语言程序建立第一个C程序项目建立工程文件建立源文件加载源文件设置工程的配置参数进行编译和连接进入调试模式全速运行程序#include<AT89X52.H>//包含AT89X52.H头文件sbitLED=P1^0;//定义LED是P1.0位对应的变量名(为sbit型变量)voidmain(void){LED=0;//P1.0=0,LED点亮while(1);}4.将在KeilC中生成的LED点亮的HEX类型文件带入电路里进行调试。5.完善和总结。6.学生练习点亮一个LED灯的控制。任务二LED闪烁控制与实现1.任务要求LED的阳极通过220Ω限流电阻后连接到5V电源上,P1.0引脚接LED的阴极,P1.0引脚输出低电平时,LED点亮;输出高电平时,LED熄灭。LED闪烁功能的实现过程如下:(1)P1.0引脚输出低电平,LED点亮;(2)延时;(3)P1.0引脚输出高电平,LED熄灭;(4)延时;(5)重复第一步(循环),这样就可以实现LED闪烁。2.控制电路3.控制代码用KeilC设计LED闪烁控制与实现控制电路程序#include<AT89X52.H>//包含AT89X52.H头文件sbitLED=P1^0;//定义LED是P1.1位对应的变量名(为sbit型变量)voidDelay()//延时函数{unsignedchari,j;for(i=0;i<255;i++)for(j=0;j<255;j++);}voidmain(){while(1){LED=0;//P1.1=0,LED点亮Delay();//延时LED=1;//P1.1=1,LED熄灭Delay();}}4.将在KeilC中生成的LED闪烁的HEX类型文件带入电路里进行调试。5.完善和总结。并提出多个LED灯如何实现闪烁?6.让学生完成实习LED等得闪烁并拓展任务三LED循环点亮控制与实现1.任务要求通电时,最右边的第一盏灯先亮,然后熄灭,第二盏灯亮,再灭,按此方式直到第八盏灯,一个轮回后继续重复上一轮回直到断电。2.用PROTEUS设计LED循环点亮控制电路3.用KeilC设计LED循环点亮控制电路程序#include<AT89X52.H>//包含AT89X52.H头文件voidDelay()//延时函数{unsignedchari,j;for(i=0;i<255;i++)for(j=0;j<255;j++);}voidmain(){unsignedchari;unsignedchartemp;P1=0x00;//十六进制全0,熄灭所有LEDwhile(1){temp=0x01;//第一位为1for(i=0;i<8;i++){P1=temp;//temp值送P1口Delay();temp=temp<<1;//temp值左移一位}}}4.将在KeilC中生成的LED循环点亮的HEX类型文件带入电路里进行调试。5.完善和总结。并提出多个LED灯如何实现花样循环点亮?6.学生完成LED流水灯效果。并在实训箱上验证。【学生总结感受收获】学生总结本节课内容,谈谈心得体会【教师小结提炼升华】教师小结点评提出要求、期望本单位通过三个任务让大家对LED灯的控制进行了深入认知,希望大家完成三个任务的实训,并读懂代码,进行适当的套用。1.点亮一个LED2.LED闪烁控制与实现3.LED循环点亮控制与实现【课后作业练习巩固】1.预习下节新课内容2.阅读每种控制效果的设计程序代码,进行仿写!3.明白每种控制电路的搭接,电路具备工作条件,代码才起控制作用。教学后记本项目通过三个任务讲解和完成LED灯的控制,在此基础上,进一步理解C51的应用,熟悉单片机实训仿真流程,试写控制代码。《单片机应用技术教案》本单元课题第四部分单片机的各种控制项目2单片机数码管显示控制课次本单元共课次备课节数共8节授课节数共8节授课时间第周授课地点教学用具多媒体教室、仿真软件、动画演示等教学方法演示法、讲解法、讨论法等教学目标1.掌握数字、字符转换成显示段码的软件译码方法;2.掌握静态显示的原理;3.掌握动态显示的原理;4.掌握数码管程序设计的方法;5.培养逻辑思维和利用知识解决实际问题的能力;重点难点重点:单片机对数码管的控制;难点:各类控制代码的设计;参考资料《单片机应用技术项目教程》郭志勇人民邮电出版社《单片机原理及应用》(C51语言)董国增清华大学出版社《51单片机应用技术》孙立书,清华大学出版社等课程思政教学流程说明教学组织过程设计学生举例参与仿真演示创设情景师生小结进入新课学习出示课题师生互动,教师重点帮助学生理解有关概念【创设情景新课导入】我们在上一个章节的学习中学习了单片机对LED灯的控制,本章节我们一起来学习单片机对数码管的各种控制。【引导探究学习新课】任务一认识数码管1.数码管的外形和结构2.数码管的内部结构图3.LED显示字形代码。学生猜想危害机理教师讲解拓展延伸阅读教材学生讨论任务二数码管的静态显示1.数码管静态显示的概念单片机将所要显示的数据送出去后,数码管始终显示该数据(不变),到下一次显示时,再传送一次新的显示数据。静态显示的接口电路采用一个并行口接一个数码管,数码管的公共端按共阴极或共阳极分别接地或接VCC。这种接法,每个数码管都要单独占用一个并行I/O口,以便单片机传送字形码到数码管,控制数码管的显示。静态显示:优点:显示的数据稳定,无闪烁,占用CPU时间少。缺点:是由于数码管始终发光显然其缺点就是当显示位数多时,占用I/O口过多。功耗比较大。2.数码管循环显示0到F(1)用PROTEUS设计数码管循环显示0到F控制电路(2)用KeilC设计数码管循环显示0到F控制电路程序#include<AT89X52.H>unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};unsignedcharK;voiddelay(void){unsignedchari,j,k;for(i=40;i>0;i--)for(j=40;j>0;j--)for(k=248;k>0;k--);}voidmain(void){while(1){for(K=0;K<16;K++){P2=table[K];delay();}}}(3)将在KeilC中生成的数码管循环显示0到F的HEX类型文件带入电路里进行调试。(4)完善和总结。如果数码管换成共阳数码管如何实现0到F的显示?如何在数码管上循环显示F-0数字?若是连接共阳极数码管呢?1-8怎么显示?任务三多个数码管动态扫描显示0123451.六个共阴数码管动态扫描显示要求动态显示也称扫描显示;显示器由6个共阴极LED数码管构成;P2口输出显示段码,经由一片74LS245驱动输出给LED管;P1口输出位码(片选)。2.用PROTEUS设计6个共阴数码管动态扫描显示控制电路3.用KeilC设计6个共阴数码管动态扫描显示控制电路程序#include<AT89X52.h>unsignedcharcodeTab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C};unsignedcharcodeCol[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};voidDelay(){unsignedchari;for(i=0;i<250;i++);}voidmain()//同时显示012345{unsignedcharj;while(1){for(j=0;j<6;j++) {P3=Tab[j];P1=Col[j];//开第一个(共阴)数码管Delay();P1=0xff;//关数码管 Delay();}}}4.将在KeilC中生成的6个共阴数码管动态扫描显示的HEX类型文件带入电路里进行调试。5.完善和总结。并提出6个共阳数码管动态扫描显示012345,如何实现?任务四数码管静态扫描显示0-99计数器1.利用AT89S52单片机来制作一个0~99计数器。要求使用一个手动计数按钮,实现0~99的计数,并且通过两个共阳级数码管显示计数结果,数码管显示采用静态显示方式。静态显示;显示器由2个共阳级极数码管组成;2.0-99计数器电路设计3.0-99计数显示c语言程序#include<AT89X52.H>//包含AT89X52.H头文件/*定义0~9十个数字的字型码表*/unsignedcharcodetable[]={0xc0,0xf9,0xA4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90};unsignedcharCount;//定义变量放置计数数值voiddelay10ms(void)//定义10ms延时函数{unsignedchari,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}voidmain(void){Count=0;//计数变量初始为0P0=table[Count/10];//十位管显示P2=table[Count%10];//个位显示while(1)//计数显示处理{if(P1_0==0)//键按下?{delay10ms();//延时去抖动if(P1_0==0)//确定键按下{Count++;//计数加1if(Count==100)//计数到100?{Count=0;//到100回0学生总结教师小结课后作业}P0=table[Count/10];//显示十位数P2=table[Count%10];//显示个位数while(P1_0==0);//等键释放}}}【学生总结感受收获】学生总结本节课内容,谈谈心得体会【教师小结提炼升华】教师小结点评提出要求、期望本项目学习了数码管的理论知识和如何静态和动态控制数码管1.数码管的结构2.数码管静态显示3.数码管动态显示4.00-99计数器【课后作业练习巩固】1.预习下节新课内容2.阅读每种控制效果的设计程序代码,进行仿写!3.明白每种控制电路的搭接,电路具备工作条件,代码才起控制作用。教学后记略《单片机应用技术教案》本单元课题第四部分单片机的各种控制项目3单片机键盘的设计与实现课次本单元共课次备课节数共8节授课节数共8节授课时间第周授课地点教学用具多媒体教室、仿真软件、动画演示等教学方法演示法、讲解法、讨论法等教学目标1.掌握键盘的接口方法和编程方法。2.了解中断的基本概念和功能。3.掌握51单片机中断系统的结构和控制方式。4.掌握中断系统的中断处理过程。5.培养逻辑思维和利用知识解决实际问题的能力;重点难点重点:单片机键盘的接口方法和编程方法;中断的概念,功能,结构和控制方式;难点:中断的出来过程;参考资料《单片机应用技术项目教程》郭志勇人民邮电出版社《单片机原理及应用》(C51语言)董国增清华大学出版社《51单片机应用技术》孙立书,清华大学出版社等课程思政教学流程说明教学组织过程设计学生举例参与仿真演示创设情景师生小结进入新课学习出示课题师生互动,教师重点帮助学生理解有关概念【创设情景新课导入】我们在前面的学习中,学习了单片机对LED灯和对数码管的控制,涉及的是从51芯片输出信号去进行控制,本章节我们一起来学习如何输入数据进入单片机,引入键盘的相关知识。【引导探究学习新课】任务一认识键盘1.键盘是单片机应用系统中人机交流不可缺少的输入设备。键盘由一组规则排列的按键组成,一个按键实际上是一个开关元件。键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换为电气上的逻辑关系(1和0)。2.常见的种类有:查询(独立)式键盘矩阵式键盘3.键盘的常见分类(1)按键按照结构原理可分为两类触点式开关按键,如机械式开关、导电橡胶式开关等;无触点开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。(2)按键按照接口原理可分为两类全编码键盘,全编码键盘能够由硬件逻辑自动提供与键对应的编码,一般具有去抖动和多键、串键保护电路。这种键盘使用方便,但需要较多的硬件,价格较贵,一般的单片机应用系统较少采用。非编码键盘,主要是由软件来实现按键的定义与识别,硬件结构简单,软件编程量大。这里我们主要介绍单片机中常用的触点式开关按键、非编码键盘。4.独立按键的工作原理键盘结构与特点:键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。也就是说,它能提供标准的TTL逻辑电平,以便与通用数字系统的逻辑电平兼容。按键编码一组按键或键盘都要通过I/O口线查询按键的开关状态。根据键盘结构的不同,采用不同的编码。无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的跳转。键盘防抖动措施软件上采取的措施是在检测到有按键按下时,执行一个10ms左右(具体时间应视所使用的按键进行调整)的延时程序,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态,从而消除抖动的影响。学生猜想危害机理教师讲解拓展延伸阅读教材学生讨论任务二.独立式键盘设计与实现1.使用AT89S52单片机,设计一个具有8个按键的独立式键盘,每个按键对应一个发光二极管。功能要求:无键按下时,键盘输出全为“1”,发光二极管全部熄灭;有键按下时,其所对应发光二极管点亮。2.用PROTEUS设计按键控制电路图如下3.用KeilC设计控制代码如下voidmain()//主函数{unsignedcharx;P0=0xff;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论