单片机应用技术课程整体教学设计.doc

上传人:xin****828 文档编号:6678481 上传时间:2020-03-02 格式:DOC 页数:40 大小:1.40MB
返回 下载 相关 举报
单片机应用技术课程整体教学设计.doc_第1页
第1页 / 共40页
单片机应用技术课程整体教学设计.doc_第2页
第2页 / 共40页
单片机应用技术课程整体教学设计.doc_第3页
第3页 / 共40页
点击查看更多>>
资源描述
单片机应用技术整体教学设计(2015 2016学年第2学期) 课程名称: 单片机应用技术 所属系部: 信息与智能工程系 制定人: 郭志勇 巩雪洁 合作人: 李自成 张留忠 制定时间: 2016.1.16 安徽电子信息职业技术学院一、课程基本信息课程名称:单片机应用技术课程代码:085011学分:6.5学时:90授课时间:第2学期授课对象:高职学生课程类型:计算机控制技术等专业职业能力必修课先修课程:计算机电路、C语言程序设计后续课程:嵌入式系统、智能机器人一、课程定位本课程主要是以智能控制、智能电子产品、智能机器人工程项目为主线,采用企业真实工作任务,通过“项目驱动”教学模式,对国内外广泛应用的MCS-51系列单片机的AT89S52单片机工作原理、应用系统的剖析,使学生获得有关单片机硬件、软件的基本概念、基本知识和单片机应用系统的设计编程入门知识以及用C语言进行程序设计、运行、调试等基本技能,培养学生分析问题和解决问题的能力。1. 岗位分析:本课程主要培养具有智能电子产品和智能控制设计、分析、调试和制作能力的技术技能型人才,可以从事智能电子产品和智能控制设计开发、生产、销售与服务等相关工作,如图1所示。单片机应用技术(专业技术课程)计算机控制技术、物联网应用技术等相关专业智能电子产品生产、销售和服务智能电子产品开发和智能控制岗位群专业课程图1 课程与岗位2. 课程分析:本课程是计算机控制技术、物联网应用技术等相关专业的职业能力必修课程,是计算机控制技术专业核心课程。在计算机控制技术专业课程体系中,基于单片机应用技术的课程结构如图2所示。计算机应用基础计算机电路C语言程序设计单片机应用技术(核心课程)嵌入式系统、智能移动终端、智能机器人等专业课程图2 基于单片机应用技术的课程结构位于最底层的是本课程的先修课程,也是专业基础课程;本课程是专业核心课程;位于最上层的是本课程的后续课程,既专业课程。基于单片机应用技术的课程结构实现了无缝对接,同时也是我们学校其它相关专业的骨干课程,如嵌入式技术、电子信息工程技术、机电一体化、电气自动化、数控技术等专业都开设本课程。二、课程目标设计总体目标:学通过本课程的学习,学生能熟练使用Proteus仿真软件、C语言编程,能完成简单的智能电子产品和智能控制设计开发;能根据智能电子产品和智能控制设计要求进行元器件焊接组装、软硬件调试;培养学生具有一定的创新思维能力,科学的工作方法和良好的职业道德意识,为提高学生职业技能奠定良好基础。能力目标:(1)会运用keil集成开发环境,能用C语言编写控制程序、下载调试、查阅帮助的技能;(2)会运用Proteus仿真软件,在计算机上完成从单片机电路设计、调试与仿真运行的技能;(3)会智能电子产品、智能控制的开发流程和设计方法;(4)能编制出智能电子产品、智能控制的总体设计方案;(5)能根据智能电子产品、智能控制设计要求,完成元器件采购、焊接组装、软硬件调试; (6)具备智能电子产品、智能控制的运行维护、技术改造、生产管理岗位的能力。 知识目标: (1)知道MCS-51单片机的组成、内部结构和引脚功能;(2)会C51的C语言程序基本结构、数据类型和基本语句;(3)会C语言程序分析、应用程序设计和中断服务程序编写;(4)知道MCS-51单片机中断的概念及中断系统;(5)会灵活应用MCS-51单片机的定时器/计数器;(6)能应用MCS-51单片机的I/O接口,完成显示、键盘、D/A转换、A/D转换、串行通信的设计。素质目标:(1)能制定出切实可行的工作计划,提出解决实际问题的方法;(2)具有对新知识、新技术的学习能力,通过不同途径获取信息的能力,以及对工作结果进行评估的能力;(3)具有决策能力,能记录、收集、处理、保存各类专业技术的信息资料。(4)具有良好的思想品德、敬业与团队精神及协调人际关系的能力;(5)具有一定的语言和文字表达能力;(6)具有科学的创新精神、决策能力和执行能力;(7)具有从事专业工作安全生产、环保、职业道德等意识。职业技能证书要求:本课程对应的职业技能证书要求如表1所示。表1 职业技能证书表序号职业资格名称颁证单位等级1家用电子产品维修工人力资源和社会保障部中级2计算机装调员人力资源和社会保障部中级3嵌入式单片机设计工程师中国软件行业协会嵌入式系统分会中级3、 课程内容设计:本课程主要是以智能电子产品和智能控制工程项目为主线,采用企业真实工作任务,通过Proteus仿真软件设计和C语言编程,实现在计算机上完成从单片机电路设计、软件设计、调试与仿真一气呵成,同时在每个项目中融入了元器件焊接组装、软硬件调试,真正实现从概念到产品的完整设计与制作。本课程内容与职业岗位标准密切接轨,从职业岗位技能出发,课程内容分为技能基础、技能提高和技能综合应用(即单片机项目开发实训)三部分部分,其中技能综合应用是停课一周进行,如图3所示。LED控制模拟量输入输出设计键盘控制电机方向转速LED循环点亮控制数码管显示控制键盘的设计与实现定时器/计数器应用串行通信设计按键设置液晶电子钟8路温度采集监控系统点阵显示设计与实现单片机项目开发技能基础训练技能提高训练技能综合训练技术逐渐综合难度逐渐增加图3 课程内容组织设计总课时在90学时左右,用11个智能电子产品和智能控制项目作为载体组织教学内容,将相关知识、能力要求贯穿于每个项目实践中。技能基础模块安排64学时左右,主要注重职业岗位的基本技能训练,使学生能完成简单的智能电子产品设计制作和调试;技能提高模块可以根据实际需要选择项目,安排26学时左右,主要注重职业岗位的开发技能训练以及学生的课程设计,使学生具有智能电子产品和智能控制开发制作和调试的能力。本课程内容安排如表2所示。表2 课程内容安排表序号模块(或子模块)名称学时1技能基础模块(64学时)发光二极管LED控制82LED循环点亮控制103数码管显示控制104键盘的设计与实现105定时器/计数器综合应用86模拟量输入输出设计与实现87单片机串行通信设计与实现108技能提高模块(任选)键盘控制电机方向和转速89按键设置液晶电子钟8108路温度采集监控系统811点阵显示设计与实现10合 计904、 能力训练项目设计学习情境参考学时情境名称情境描述学习情境1技能基础部分(1)知道单片机的组成、内部结构和引脚功能;(2)知道C语言程序基本结构、数据类型和基本语句;(3)会C语言程序分析、应用程序设计和中断服务程序编写;(4)知道中断的概念及MCS-51单片机的中断系统;(5)会灵活使用定时器/计数器;(6)会应用I/O接口、显示、键盘接口、D/A、A/D转换接口、串行接口;(7)能完成智能电子产品元器件焊接组装、软硬件调试。64学时学习情境2技能提高部分(1)会智能电子产品和智能控制电路设计以及实现的方法;(2)会用C语言编写智能电子产品和智能控制程序以及实现的方法;(3)会编制智能电子产品和智能控制的系统总体设计方案;(4)能根据产品系统设计方案和要求进行元器件采购、焊接组装、软硬件调试;(5)具备单片机技术应用系统的系统维护、技术改造、运行管理岗位的能力。26学时学习情境3单片机项目开发实训部分.通过单片机项目开发实训完成,学生能识别电子元器件,会电路板元器件焊接以及电路板调试,能完成单片机项目开发程序设计,能完成单片机项目开发软硬件运行与调试。停课一周26学时五、项目情境设计学习情境1 参考学时:64学时学习目标:(1)知道单片机的组成、内部结构和引脚功能;(2)知道C语言程序基本结构、数据类型和基本语句;(3)会C语言程序分析、应用程序设计和中断服务程序编写;(4)知道中断的概念及MCS-51单片机的中断系统;(5)会灵活使用定时器/计数器;(6)会应用I/O接口、显示、键盘接口、D/A、A/D转换接口、串行接口;(7)能完成智能电子产品元器件焊接组装、软硬件调试。学习情境教学方法和建议子情境1任务载体采用“教、学、做”一体化教学方法模式。项目的实施可采用小组合作的学习方法。能完成单片机最小系统和输出电路设计,能应用C语言程序完成单片机输入输出控制,实现对LED控制的设计、运行及调试。发光二极管LED控制子情境2任务载体采用“教、学、做”一体化教学方法模式。项目的实施可采用小组合作的学习方法。能完成单片机的输入输出电路设计,能应用C语言程序完成单片机输入输出控制,实现对LED循环点亮控制的设计、运行及调试。LED循环点亮控制子情境3任务载体采用“教、学、做”一体化教学方法模式。项目的实施可采用小组合作的学习方法。能熟练掌握单片机与数码管的接口技术,能完成单片机的数码管动态及静态显示电路设计,能完成数码管动态和静态显示的C语言程序的设计、运行及调试。数码管显示控制子情境4任务载体采用“教、学、做”一体化教学方法模式。项目的实施可采用小组合作的学习方法。能独立完成单片机键盘电路的设计,能使用C语言实现对键盘的扫描和按键识别控制程序的设计、运行及调试。键盘的设计与实现子情境5任务载体采用“教、学、做”一体化教学方法模式。项目的实施可采用小组合作的学习方法。能完成单片机的定时器/计数器相关电路的设计,能应用C语言程序完成单片机定时器初始化及相关编程控制,实现对定时器应用于相关电路的设计、运行及调试。定时/计数器综合应用子情境6任务载体采用“教、学、做”一体化教学方法模式。项目的实施可采用小组合作的学习方法。能完成单片机与ADC0808/ADC0809模/数转换芯片、DAC0832数/模转换芯片的电路和C语言程序设计,掌握ADC0808/ADC0809、DAC0832与单片机的连接及编程技能。模拟量输入输出设计与实现子情境7任务载体采用“教、学、做”一体化教学方法模式。项目的实施可采用小组合作的学习方法。通过串行通信基本知识和单片机串行通信基本原理的学习,能够掌握单片机点对点、点对多数据传输的设计方法及编程方法。单片机串行通信设计与实现学习情境2 参考学时:26学时学习目标:(1)会智能电子产品和智能控制电路设计以及实现的方法;(2)会用C语言编写智能电子产品和智能控制程序以及实现的方法;(3)会编制智能电子产品和智能控制的系统总体设计方案;(4)能根据产品系统设计方案和要求进行元器件采购、焊接组装、软硬件调试;(5)具备单片机技术应用系统的系统维护、技术改造、运行管理岗位的能力。学习情境教学方法和建议子情境1任务载体采用“教、学、做”一体化教学方法模式。项目的实施可采用小组合作的学习方法。能利用AT89S52单片机及独立键盘,通过C语言程序实现键盘控制步进电机和直流电机的速度和方向,完成单片机输入输出控制系统的设计、运行及调试。键盘控制电机方向和转速子情境2任务载体采用“教、学、做”一体化教学方法模式。项目的实施可采用小组合作的学习方法。能利用AT89S52单片机及RT12864液晶屏,通过按键设置液晶电子钟电路设计、C语言程序设计,完成按键设置液晶电子钟的设计、运行及调试。按键设置液晶电子钟子情境3任务载体采用“教、学、做”一体化教学方法模式。项目的实施可采用小组合作的学习方法。能利用AT89S52单片机及DS18B20单总线数字传感器,通过C语言程序实现8路温度采集监控,完成单片机输入输出控制系统的设计、运行及调试。8路温度采集监控系统子情境4任务载体采用“教、学、做”一体化教学方法模式。项目的实施可采用小组合作的学习方法。能完成点阵显示电路设计,充分理解电路中关于I/O扩展、存储扩展和I2C总线等硬件电路的设计方法和原理,并能够用C语言实现对点阵屏、I2C通讯总线的控制和对外扩存储的访问,最终实现点阵屏汉字、日期和温度显示等功能。点阵显示设计与实现学习情境3 参考学时:26学时学习目标:通过单片机项目开发实训完成,学生能识别电子元器件,会电路板元器件焊接以及电路板调试,能完成单片机项目开发程序设计,能完成单片机项目开发软硬件运行与调试。学习情境教学方法和建议子情境1任务载体采用“教、学、做”一体化教学方法模式。项目的实施可采用小组合作的学习方法。(1)认识电子元器件;(2)电路设计及电子元器件焊接;(3)编写C语言程序及调试;(4)系统整体调试。(5)单片机项目开发实训任务考核(1)火车站台警戒系统驱动板(2)滚梯节能控制系统(3)温度控制语音播报系统(4)门窗防盗系统(5)智能超声波测距系统六、课程进程表见单片机应用技术授课计划。7、 第一次课设计和最后一次课设计项目一 发光二极管LED控制1.1 工作模块1 点亮一个LED(第一次课)工作任务:使用AT89S52单片机的I/O引脚接发光二极管LED,通过C语言程序控制,点亮一个发光二极管。终极目标:能完成单片机最小系统和输出电路设计,能应用C语言程序完成单片机输入输出控制,实现对LED控制的设计、运行及调试。促成目标:1. 知道AT89S52单片机结构;2. 知道AT89S52单片机的引脚功能;3. 会AT89S52单片机最小系统电路设计;4. 会C语言基本构成和基本语句;5. 会利用单片机I/O口实现点亮一个LED。教学方法:采用“教、学、做”一体化教学方法模式,项目的实施可采用小组合作的学习方法。教学设计:在工作模块1点亮一个发光二极管中,用Proteus仿真软件完成第一个单片机电路、用Keil C51完成第一个C语言LED控制程序;通过“边做边学”,学习AT89S52单片机结构、引脚功能,完成最小系统电路和LED电路设计;通过“边做边学”,学习基于单片机的C语言基本构成和基本语句,完成单片机点亮一个LED的程序设计。课时:4学时教学过程:1.1.1 用Proteus设计第一个LED控制电路Proteus是英国Labcenter Electronics公司开发的多功能EDA软件。Proteus不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,也是目前较先进的单片机和嵌入式系统的设计与仿真平台。它实现了在计算机上完成从原理图与电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成PCB的完整的电子设计、研发过程。1点亮一个LED电路按照工作任务要求,点亮一个LED电路由AT89S52单片机最小系统和一个LED电路构成。LED点亮电路设计如图1-1所示。图1-1 LED点亮电路在LED点亮电路中,LED的阳极通过220W限流电阻后连接到5V电源上,限流电阻在这里起到了限流的作用,使通过LED的电流被限制在十几毫安左右。P1.0引脚接LED的阴极,P1.0引脚输出低电平时对应的LED点亮,输出高电平时对应的LED熄灭。2用Proteus仿真软件完成点亮一个LED电路用Proteus仿真软件完成第一个LED控制电路,步骤如下:(1)双击桌面上的ISIS 7 Professional图标或者单击屏幕左下方的“开始”“程序”Proteus 7 ProfessionalISIS 7 Professional,进入Proteus ISIS集成环境;(2)新建设计文件、设置图纸尺寸、设置网格、保存设计文件为“点亮一个LED.DSN”;(3)从Proteus元器件库中选取元器件AT89S52也可用AT89C52代替(单片机)、CRYSTAL(晶振)、CAP(电容)、CAP-ELEC(电解电容)、RES(电阻)、LED-RED(红色发光二极管);(4)按图1-1所示放置元器件、编辑元器件、放置终端,然后进行连线和属性设置;(5)最后进行电气规则检测。单击“工具”“电气规则检查”命令,弹出检查结果窗口,完成电气检测。若检测出错,根据提示修改电路图并保存,直至检测成功。1.1.2 用Keil C51设计第一个C语言LED控制程序Keil C51是德国Keil软件公司开发的基于8051 内核的微控制器软件开发平台,是51系列单片机C语言软件开发系统,是目前开发8051 内核单片机的主流工具。Keil C51软件提供了丰富的库函数和功能强大的集成开发调试工具,可以完成工程建立和管理、编译、连接、目标代码的生成、软件仿真和硬件仿真等完整的开发流程。1编写点亮一个LED程序由于P1.0引脚接LED的阴极,LED的阳极通过220限流电阻后连接到5V电源上,所以从P1.0引脚输出低电平就可以点亮LED。“点亮一个LED”的C语言程序如下:#include /包含AT89X52.H头文件sbit LED=P10; /定义LED为P1.0引脚void main (void) LED=0; /P1.0引脚输出低电平点亮LED while(1);程序编程说明:(1)“#include ”语句是一个“文件包含”处理,是将AT89X52.H头文件的内容全部包含进来。这里程序中包含AT89X52.H头文件的目的是为了要使用P10这个符号,即通知C编译器,程序中所写的P10是指AT89S52单片机的P1.0引脚。(2)P1.0不能直接使用,这里用 “sbit LED=P10;”就是定义用符号LED来表示 P1.0 引脚,也可以起P1_0 或P10一类的名字。(3)“LED=0;”语句是使P1.0引脚输出低电平,点亮发光二极管LED。(4)“while(1);”语句的表达式是1,也就是说while语句的表达式始终为真,进入死循环,LED始终点亮。(5)Keil C 支持 C+风格的注释,可以用“/”进行注释,也可以用/*/进行注释。2建立第一个C程序项目双击桌面上的Keil Vision2图标或者单击屏幕左下方的“开始”“程序”Keil Vision2,进入Keil Vision2集成开发环境。(1)建立工程文件,选择单片机。单击“工程”“新建工程”命令,在弹出的“新建工程”对话框中指定文件夹,输入文件名“点亮一个LED”,单击“保存”按钮,在弹出的为目标Target 1选择设备对话框中选择单片机型号(Atmel的89S52),单击“确定”按钮。(2)建立源文件并加载。单击 “文件”“新建”命令,在文件编辑窗口输入“点亮一个LED”的C语言源程序,单击 “文件”“保存”命令,在弹出的“另存”对话框中指定文件夹(一般与工程文件放在同一文件夹中),输入文件名“点亮一个LED.c”(c为C语言源程序的后缀),单击“保存”按钮,完成源文件的建立。在工程窗口中右击Target 1文件夹下的Source Group 1文件夹后,单击弹出菜单的AddFiels to GroupSource Group 1,在弹出的AddFiels to GroupSource Group 1对话框中将文件类型设为C Source file (*.c),单击刚才保存的源文件名“点亮一个LED.c”,单击Add按钮再单击“关闭”按钮,完成源文件加载。(3)设置工程的配置参数。在工程窗口中右击Target 1文件夹,单击弹出快捷菜单中的Options for TargetTarget 1,在弹出的Options for TargetTarget 1对话框中做以下设置:Target标签页的晶振频率栏设为12MHz,Output标签页选中Create Hex Files复选框,其余采用默认设置。单击“确定”按钮,完成配置参数设置。(4)进行编译和连接。单击“工程”“构造目标”,完成编译,生成名为“点亮一个LED.hex”的HEX文件。通过输出窗口查看编译信息,若提示出错,双击输出窗口的出错信息行,文件编辑窗口中出错指令所在行左侧会有箭头提示,逐个排除错误后重新编译。(5)进入调试模式,打开P1口对话框。在调试模式中,单击 “外围设备”I/O-PortsPort 1,打开P1口对话框。(6)全速运行程序。单击“调试”“运行到”或调试工具栏的“运行”按钮,通过P1口对话框观察P1.0引脚是否输出低电平,打勾为高电平,不打勾则为低电平,Pins为引脚的状态。1.1.3 用Proteus仿真运行调试1加载“点亮一个LED.hex ”目标代码文件首先打开Proteus的“点亮一个LED”电路,然后双击单片机AT89S52,在弹出的“编辑元件”对话框中单击Program File栏的“打开”按钮,在弹出的“选择文件名”对话框中找到前面编译生成的“点亮一个LED.hex”文件,单击“打开”按钮,完成“点亮一个LED.hex ”文件的加载。同时将Clock Frequency栏中的频率设为12MHz,单击“确定”按钮,即可完成加载目标代码文件。2仿真运行调试(1)单击仿真工具栏的“单步运行”按钮,进入单步运行状态。单击“调试”8051 CPU Registers,单击“调试”8051 CPU SFR Memory,分别打开工作寄存器窗口和特殊功能寄存器窗口。单击源代码调试窗口的“单步执行”按钮一次,执行一条指令,通过各调试窗口观察每条指令执行后数据处理的结果,以加深对硬件结构和指令的理解。(2)单击仿真工具栏的“运行”按钮,单片机全速运行程序,对“点亮一个LED”进行Proteus仿真运行。在编辑区“点亮一个LED”电路中,可以看到接在P1.0引脚上的LED被点亮,同时在打开的工作寄存器窗口和特殊功能寄存器窗口中也能看到P1口为0xFE,即P1.0引脚为低电平,其他引脚都为高电平。【技能训练1-1】单片机最小系统应用开关控制LED点亮模块1是通过程序使P1.0引脚输出低电平来点亮LED的。在这里如果通过开关控制LED点亮,那么如何实现呢?1电路设计开关控制LED点亮是AT89S52单片机的一种最简单电路,它包含3个部分:单片机最小系统、输入电路和输出电路。单片机最小系统由AT89S52单片机、晶振电路和上电复位电路构成。输入部件是开关SW,输出部件是LED,如图1-2所示。由于只使用内程序存储器,AT89S52的EA端接电源正端。图1-2 开关控制LED点亮电路2程序设计(1)开关控制点亮LED分析。开关闭合:P1.0=0,LED点亮;开关断开:P1.0=1,LED熄灭。流程图如图1-3所示。图1-3 开关控制点亮LED流程图(2)编写开关控制LED点亮程序。#include /包含AT89X52.H头文件sbit SW=P30; /定义SW是P3.0位对应的引用符号sbit LED=P10; /定义LED是P1.0位对应的引用符号void main (void) while(1) if(SW=0) LED=0; /开关闭合SW=0:P1.0=0,LED点亮 else LED=1; /开关断开SW=1:P1.0=1,LED熄灭 【焊接制作训练】单片机最小系统和LED电路的制作与调试1.制作任务在万能板上,焊接制作AT89S52单片机最小系统以及LED电路,并通过ISP接口下载程序,实现LED点亮和闪烁功能。2.制作目的(1)了解单片机最小系统制作过程,掌握电子元器件检测、识别和焊接方法及硬件电路关键点测试方法。(2)学会用ISP软件加载程序到AT89S52单片机芯片,观察LED运行情况是否与设计功能相符,并掌握基本的调试手段和方法。3.制作过程焊接单片机最小系统和LED电路的元器件如表1-1所示。表1-1 单片机最小系统和LED电路元件清单元件注释封装数量元件注释封装数量单片机AT89S52PDIP1轻微按键SW1晶振11.0592MJZ1电阻10KAXIAL0.31瓷片电容104RAD0.12电阻1KAXIAL0.31电解电容10FRAD0.11LEDLED-11IC插座 DIP401根据“工作模块1”图1-1所示电路图,完成单片机最小系统和LED电路电路焊接制作。焊接电子元器件原则是由小到大、由矮到高,首先焊接电阻、电容、发光二极管,然后焊接按键、晶振,最后焊接IC插座、接线端子。焊接好的电路板如图1-4所示。图1-4 单片机最小系统和LED电路实物照片元器件焊接时注意事项如下:(1)电解电容(瓷片电容不分正负极)、发光二极管都具有一长一短两个引脚,长脚为正极、短脚为负极。 (2)焊接底座时要先焊接两个对角引脚,将其固定在线路板子上,防止底座焊接不平,然后焊接其它引脚。底座焊接完后,将单片机芯片两排引脚分别向内侧压一下,以便插入芯片底座。(3)晶振电路尽量靠近单片机芯片进行焊接,以减少寄生电容,更好地保证振荡器稳定和可靠地工作。选用复位电路所使用的开关时,最好选用点触开关,便于操作。(4)焊接后,元器件外观要整齐、焊点要饱满(防止虚焊)、引脚不宜过高。在放置元器件时,还要考虑为方便以后开发,在线路板上预留一定空间。4.硬件检测与调试(1)上电前,检测单片机VCC 和GND 是否短路。上电后,检测单片机40脚和20脚之间是否有5V电压。(2)检测晶振两端(第18-19引脚)电压是否为0.5-1.6V,如果有则说明晶振电路工作正常。(3)按下复位按键,检测第9脚的电压是否会变化。如果按键没有按下时电压为0V,按键按下后电压立刻变为5V,之后很快降为0V,则表示复位电路正常。5.软件下载与调试通过ISP下载器把“项目一LED控制.hex”文件烧入单片机芯片中,如果LED运行结果与设计功能相符,说明上面焊接过程和程序均正常,否则需进行调试,直到功能实现。软件下载、调试步骤如下:(1)首先在计算机上打开Easy 51Pro.exe,出现如图1-5所示主窗口画面。点击右下角的设置按扭,弹出如图1-6所示程序烧录界面,在编程器类型中设置选择“使用Easy ISP下载线”。 图1-5 ISP下载器主窗口 图1-6 ISP下载线设置界面(2)把下载器的8P的排线和单片机的ISP下载接口相接,另一端连接到PC机。接着在烧录界面中选择实际要烧录的芯片型号(AT89S52),再点击“检测器件”的按钮看是否可以检测到所烧录的目标芯片。(3)单击“自动打开文件”按钮,选择需要下载的程序HEX文件,可以一步一步的手动完成,也可以点击“自动完成”后,就会一项一项的往下进行,烧录完成就可以运行实验程序了。上电后,即可观察到LED能点亮或闪烁,直到电源关闭才能熄灭。教学小结:1Proteus能在计算机上完成从原理图与电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成PCB的完整的电子设计、研发过程。2Keil C51是基于8051内核的微控制器软件开发平台,是51系列单片机C语言软件开发系统。可以完成工程建立和管理、编译、连接、目标代码的生成、软件仿真和硬件仿真等完整的开发流程。3单片机主要应用在家用电器、智能卡、智能仪器仪表、网络与通信以及工业控制等方面。4AT89S52单片机最小系统就是指由单片机和一些基本的外围电路所组成的一个可以工作的单片机系统。一般来说,它包括单片机、电源、晶振电路和复位电路。5“#include ”语句是一个“文件包含”处理,是将AT89X52.H头文件的内容全部包含进来。 “sbit LED=P10;” 语句是定义用符号LED来表示 P1.0 引脚。Keil C支持C+风格的注释,可以用“/”进行注释,也可以用/*/进行注释。 【问题与讨论】1-1 简述Keil C51和Proteus软件的主要功能。1-2 简述单片机的主要应用领域。1-3 简述单片机的主要特点。1-4 单片机最小系统由哪几部分组成?现要求LED的阳极接在P1.0引脚上,请完成LED点亮电路及其C语言程序设计。项目十一 点阵显示设计与实现11.2 工作模块28 1632LED点阵显示设计(最后一次课)工作任务:利用AT89S52单片机及88点阵显示模块,完成1632点阵显示电路设计,采用逐列扫描方法,用C语言程序实现1632点阵分屏显示和移动显示4个汉字。终极目标:能利用AT89S52单片机及88点阵显示模块,完成1632点阵显示电路设计,充分理解电路中关于I/O扩展等硬件电路的设计方法和原理,能够用C语言程序实现1632点阵分屏显示和移动显示汉字等功能,完成1632点阵显示的设计、运行及调试。促成目标:1知道88点阵显示模块结构和工作原理;2会利用88点阵显示模块构建1632点阵显示模块以及测试方法;3知道74LS138、74LS154和74LS595芯片的功能和使用方法;4会利用74LS138、74LS154和74LS595芯片设计行列驱动电路;5会1632LED点阵逐列扫描显示和逐行扫描方法,以及1632点阵显示程序的设计方法。教学方法:采用“教、学、做”一体化教学方法模式,项目的实施可采用小组合作的学习方法。教学设计:目前,在市场上常见的LED点阵显示屏主要有 57、88、1616 等几种规格。若要显示阿拉伯数字、英文字母、特殊符号等,可采用 57、88 的点阵即可够用,若要显示中文字,则需要 4 片 88 的点阵组成 1616 LED点阵显示屏才能显示一个中文字。通过“边做边学”,学习88点阵LED的内部电路、工作过程、88点阵显示模块构建1632点阵显示模块以及测试方法,完成1632点阵显示电路设计;通过“边做边学”,学习1632LED点阵逐列扫描显示和逐行扫描方法,以及1632点阵显示程序的设计方法,完成1632点阵显示程序设计、运行与调试。课时:4学时教学过程:11.2.1 1632LED点阵显示电路设计随着信息产业的高速发展,LED 显示屏作为信息传播的一种重要手段成为现代信息化社会的一个闪亮标志。LED点阵显示屏制作简单,安装方便,可以用来显示温度、日期和文字信息等,主要应用场合有:排队叫号、公交车报站、广告屏等。1认识LED点阵汉字显示屏LED点阵显示屏是由高亮发光二极管点阵组成的矩阵模块,通过控制这个二极管矩阵达到在显示屏上显示符号、文字等信息的目的。目前,在市场上常见的LED点阵显示屏主要有 57、88、1616 等几种规格。若要显示阿拉伯数字、英文字母、特殊符号等,可采用 57、88 的点阵即可够用,若要显示中文字,则需要 4 片 88 的点阵组成 1616 LED点阵显示屏才能显示一个中文字。1632LED点阵汉字显示电路由AT89S52单片机最小系统、LED显示屏、行驱动电路和列驱动电路等模块构成。21632LED点阵汉字显示模块设计按照工作任务要求,1632LED点阵汉字显示模块的列数据由P0口和P2口发送,P1口送列码,通过逐列扫描实现1632LED点阵汉字显示。构建一块1632LED点阵模块,需要八块88 LED点阵模块,设计1632LED点阵模块步骤如下:(1)先把八个“MATRIX-8X8-RED”元器件对应的行线和列线分别进行连接,每一条行线引脚接一行32个LED,每一条列线引脚接一列16个LED。(2)然后标注行列引脚连线标号,相同行标注同一个连线标号,相同列标注同一个连线标号。18行引脚连线标号分别为P00 P07,916行引脚连线标号分别为P20 P27;132列引脚连线标号分别为S00 S31,如图11-1所示。图11-1 1632 LED点阵行列引脚连线标号(3)分开的88 LED点阵模块并不能达到好的效果,需要把8个88 LED点阵模块并拢成1632 LED点阵模块。先选中一块88 LED点阵模块,然后拖动并使其与另一块相并拢,原来的连线已经自动隐藏了。做成的LED点阵的行线有16个引脚(在左侧),列线有32个引脚(在右侧只能看到16个引脚,其他16个引脚隐藏了),行线高电平有效,列线低电平有效,如图11-2所示。图11-2 1632 LED点阵显示模块Proteus仿真小技巧:完成以后,在仿真运行时你会发现1632LED点阵模块会有红绿小点闪烁,那是在Proteus中实时显示的电平信号。解决这个问题方法是:可以在“System”菜单下点击“Set Animation Options”子菜单;打开“Anmated Circuits Configuration”对话框;然后将“Animation Options”选项下面的“Show Logic State of Pins?”复选框中去掉选中标志。改变设置以后,重新仿真运行就不会有红绿小点闪烁了。3列控制电路设计列驱动电路是由2个74LS154译码器和一个74LS04反相器构成。U2芯片74LS154的4个输入端(A、B、C、D)接P1口的P1.0、P1.1、P1.2和P1.3引脚,E1端接P1口的P1.4引脚(作为片择信号), 16个输出端(015)分别接1632 LED点阵的前16列(S00S15列);U 3芯片74LS154的4个输入端(A、B、C、D)接P1口的P1.0、P1.1、P1.2和P1.3引脚,E1端经过U4芯片74LS04接P1口的P1.4引脚,16个输出端(015)分别接1632 LED点阵的后16列(S16S31列),如图11-3所示。图11-3 1632 LED点阵列驱动电路74LS154为4线16线译码器,74LS154的四个输入端(A、B、C、D)是四位二进制代码、有十六种状态,十六个输出端(015)分别对应其中一种输入状态,输出端以低电平译出。74LS154译码器每次可输出相应一个I/O口的低电平,正好与点阵屏的低电平选中列相对。74LS154的E1和E2为二个控制输入端(又称使能端)。当E1、E2为低电平时,译码器处于工作状态,否则译码器被禁止,所有的输出端被封锁在高电平上。在这里,我们把2个74LS154的E2端接地,P1口的P1.4引脚直接接U2芯片74LS154的E1端,并通过74LS04反相器接U3芯片74LS154的E1端。当P1.4引脚为低电平时,选中U2芯片74LS154;为高电平时,经过74LS04反相为低电平,选中U3芯片74LS154。这样,就可以通过P1.0、P1.1、P1.2、P1.3和P1.4引脚,完成对1632LED点阵的32列逐列扫描控制了。3行控制电路设计行驱动电路是由2个74LS245芯片和一个排阻构成。U5芯片74LS245的8个输入端接P0口,8个输出端接1632 LED点阵的前8行(P00P07行),排阻是P0口的上拉电阻;U6芯片74LS245的8个输入端接P2口,8个输出端接1632 LED点阵的后8行(P20P27行),如图11-4所示。图11-4 1632 LED点阵行驱动电路41632LED点阵显示电路设计通过前面的1632LED点阵汉字显示模块、列控制电路和行控制电路设计,下面我们利用Proteus软件实现1632LED点阵显示电路设计,如图11-5所示。图11-5 1632 LED点阵行驱动电路运行Proteus软件,新建“1632LED点阵显示” 设计文件。按图11-11所示放置并编辑AT89S52、CRYSTAL、CAP、CAP-ELEC、RES、RESPACK-8、74LS245、74LS154、74LS04、BUTTON和MATRIX-8X8-RED等元器件。完成1632LED点阵显示电路设计后,进行电气规则检测,直至检测成功。11.2.2 1632LED点阵汉字显示程序设计按照工作任务要求和电路设计,P0口和P2口送列数据,P1口送列码,C语言程序通过逐列扫描实现1632LED点阵分屏显示和移动显示4个汉字。在这里,显示的4个汉字是“电子学院”。1PCtoLCD2002获取汉字字模1632LED点阵汉字显示的内容是“电子学院”,那么这4个汉字的汉字字模是如何获取的呢,下面主要介绍PCtoLCD2002作为1632LED点阵汉字显示字模提取软件的使用方法。(1)认识汉字字模什么是汉字字模呢?可以这么理解汉字字模是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载字符或汉字的形状。如汉字的1616点阵“你”的字模,如图11-6所示。图11-6 “你”汉字字模从上图我们可以看出,一个1616点阵的汉字字模需要占用32个字节。如果需要显示4个汉字那么就需要128 Byte,也就是需要声明一个4行32列的二维数组,来存放4个汉字的汉字字模。(2)PCtoLCD2002字模选项设置单击菜单栏的“选项”按钮,打开“字模选项”的对话框,如图11-7所示。用户可以根据自己的实际需要而进行设置,设置完成后,单击左下角的确定保存。下面简单介绍主要字模选项。图11-7 字模选项对话框取模方式有逐列式、逐行式、列行式和行列式四种方式。逐行式是横向逐行取点,逐列式是纵向逐列取点。1)列行式首先是从第1列开始向下取前8个点作为第1个字节、第2列开始向下取前8个点作为第2个字节、第16列开始向下取前8个点作为第16个字节,然后在从第1列开始向下取后8个点作为第17个字节、第2列开始向下取后8个点作为第18个字节、第16列开始向下取后8个点作为第32个字节。由此可以看出,列行式的取模方式是先取上半字的16个字节,后取下半字的16个字节。2)行列式首先是从第1行开始向右取前8个点作为第1个字节、第2行开始向右取前8个点作为第2个字节、第16行开始向右取前8个点作为第16个字节,然后在从第1行开始向右取后8个点作为第17个字节、第2行开始向右取后8个点作为第18个字节、第16行开始向右取后8个点作为第32个字节。同样可以看出,行列式的取模方式是先取左半字的16个字节,后取右半字的16个字节。3)取模走向有逆向和顺向,逆向是低位在前、高位在后,顺向是高位在前、低位在后。4)点阵格式有阴码和阳码,阴码是“1”为点亮、阳码是“0”为点亮。(3)获取汉字字模1632LED点阵汉字显示是采用1616点阵、宋体、列行式、阴码、逆向、十六进制数等方式,来获取“电子学院”4个汉字的字模,如图11-8所示。图11-8 “电子学院”字模获取“电”的字模:0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00,.字模中的数据,16进制转化为2进制,2进制中的“1”就代表1632LED点阵上相应的点亮起来,“0”代表不亮,这样在1632LED点阵上显示出来了,如图11-9所示。图11-9 1632LED点阵上显示的效果21632LED点阵汉字显示相关变量定义(1)1632LED点阵接口相关变量定义#define LED_L16 P0 /1632LED点阵低16行接口#define LED_H16 P2/1632LED点阵高16行接口#define LED_COL P1/1632LED点阵列选接口(2)1632LED点阵显示相关变量定义uchar i,j; /定义二维数组aFontji的下标uchar s; /定义逐列扫描变量,从0列到31列uchar time; /定义刷新显示次数变量,保持内容显示一定时间uchar start; /定义显示的起始列变量/*声明一个二维数组,用来存放“电子学院”4个汉字的字模*/uint code aFont432=/*“电”,0,前16B是“电”的上半字,后16B是“电”的下半字*/0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00,.;3延时程序1632LED点阵汉字显示的延时程序,在逐列扫描显示时,主要是保持每列点亮一段时间和熄灭一段时间,延时时间是根据形式参t来决定的。4切换显示程序显示1个汉字需要166点阵,1632点阵可以显示2个汉字,4个汉字只能分成2屏显示,分屏显示代码如下:void Leddis(uchar p)for(time=0;time100;time+) /每屏刷新显示100次,保持一定时间 s=0; for(j=(p-1)*2;j(p-1)*2+2;j+) for(i=0;i16;i+) LED_COL=s; /逐列扫描显示 LED_L16=aFontji; /显示上半字 LED_H16=aFontji+16; /显示下半字 delay(40); LED_L16=0; /显示完一列,重新初始化防止重影 LED_H16=0; delay(2); s+; /End Leddis()5左移显示程序左移显示分为右进显示和左出显示两个过程。在这里,左移显示是每次左移8列,既左移半个字。右进显示先从右边开始显示第1个字的前半个字,也就是从第24列开始显示,并保持显示一定时间。然后在左移右进8列显示,直至满屏显示前2个汉字,右进显示完成;左出显示先从第1个字的后半个字、第2个字和第3个字的前半个字开始显示,并保持显示一定时间。然后在左出8列显示,直至左出完成。(1)右进显示代码如下:/*右进显示(只右进显示第一屏)num为一屏显示的字数,movecol为每次右进的列数*/void RightJ(uchar num,uchar movecol) start=16*num-movecol; /计算右进显示的起始列 while(1) for(time=0;time100;time+) s=start; /把右进显示的起始列赋给逐列扫描变量 for(j=0;j4;j+) for(i=0;i31) break; if(s31) break; if(start0)start-=movecol; /每次右进显示的起始列加movecol列elsebreak;/如果右进显示的起始列到了第0列,右进显示结束 (2)左出显示代码参考右进显示代码61632LED点阵汉字显示主程序到目前为止,就完成了1632LED点阵汉字显示所有子程序的设计,那么这些子程序怎样组成一个完整的系统呢?单片机的源程序一般由主程序(只能有一个主程序)、完成特定功能的子程序及等部分组成。程序的运行是从主程序开始的,然后在主程序中调用相应的子程序,从而实现系统的功能。1632LED点阵汉字显示main()函数代码如下:void main(void) 初
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 中学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!