汽车单片机技术 教案 项目1、2 汽车转向灯的控制(IO输出)、出租车计价器显示_第1页
汽车单片机技术 教案 项目1、2 汽车转向灯的控制(IO输出)、出租车计价器显示_第2页
汽车单片机技术 教案 项目1、2 汽车转向灯的控制(IO输出)、出租车计价器显示_第3页
汽车单片机技术 教案 项目1、2 汽车转向灯的控制(IO输出)、出租车计价器显示_第4页
汽车单片机技术 教案 项目1、2 汽车转向灯的控制(IO输出)、出租车计价器显示_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

教学方案项目一汽车转向灯的控制学时:12教学目标应知1.AT89S52单片机结构;2.AT89S52单片机的引脚功能;3.AT89S52单片机最小系统电路设计;4.C51语言基本构成和基本语句;应会1.能完成单片机最小系统和输出电路设计;2.能应用C语言程序完成单片机输入输出控制,实现对LED控制的设计、运行及调试。工作任务任务一点亮一个LED学时:4任务二LED循环点亮控制学时:4任务三防盗报警器的实现学时:4教学重点对单片机结构及所有引脚功能的理解,C51语言的理解与应用,使用Proteus软件建立仿真电路,Keil软件建立项C51目软件工程产生单片机执行代码,Proteus软件和Keil软件联动调试实现项目要求,帮助理解技术要点。教学难点单片机仿真电路建立和C51目软件工程建立。Proteus软件和Keil软件联动调试。教学方法本项目通过任务教学法实施教学,教学过程中体现以学生为主体,教师进行讲解、演示、引导与评估。任务一是课程导入性学习,使用AT89S52单片机,P1.0引脚接发光二极管(LED)的阴极,通过C语言程序控制,从P1.0引脚输出低电平,使发光二极管点亮。任务二使用AT89S52单片机,控制八只发光二极管按一定的规律循环点亮。任务三使用AT89S52单片机,制作汽车防盗报警器任务的完成使用Proteus软件建立仿真电路,Keil软件建立项C51目软件工程产生单片机执行代码,Proteus软件和Keil软件联动调试实现项目要求,帮助理解技术要点。利用课程网站及其他学习资源,引导学生自主学习。教师应提前准备好各种媒体学习资料、Proteus软件和Keil软件安装、仿真电路、程序代码,实现联动调试完整,做好单元教学活动设计。任务一点亮一个LED学时:4内容要点教学方式工具与媒体评价考核时间学情分析未接触单片机和C51说课课程介绍教师讲授PPT15min任务布置点亮一个LED。教师讲授e-learning软件5min任务分析实施方案讲解综合分析项目功能要求,确定实施方案:单片机仿真电路+程序设计讲授PPT10min电路设计仿真电路建立教师讲授学生操作Proteus软件计算机35min单片机结构单片机硬件结构教师讲授PPT40min引脚功能单片机引脚功能教师讲授PPT30min软件设计使用keil软件建立项目工程。软件项目工程设计、关联电路仿真教师讲授学生操作Keil软件计算机Proteus软件30minC51程序构成由一个或多个函数构成的,最简单的程序只有一个main函数教师讲授PPT30minC51基本语句表达式语句、函数调用语句、控制语句、复合语句、空语句教师讲授PPT40min提出问题解决问题要求实现闪灯任务。教师演示程序修改学生操作Proteus软件Keil软件30min操作与评价学生扮演不同角色进行分组操作,记录仿真结果,填写原始记录单。教师讲授学生操作Proteus软件Keil软件原始记录单操作评价原始记录单评价15min课后安排完成习题集任务一内容。任务二LED循环点亮控制学时:4内容要点教学方式工具与媒体评价考核时间学情分析已经掌握单片机最小系统、C51程序设计入门任务布置通过课程网站布置任务,要求学生按学习指南做好自学。网络交流课程网站课余自学1.C51语言应用;2.C51函数应用。自学互联网课程网站课余调查分析流水灯的应用,霓虹灯的发展。网络查询互联网课程网站15min任务分析实施方案讲解综合分析项目功能要求,确定实施方案:单片机仿真电路+程序设计讲授PPT10min电路设计仿真电路建立教师讲授学生操作Proteus软件计算机35min软件设计使用keil软件建立项目工程。软件项目工程设计、关联电路仿真教师讲授学生操作Keil软件计算机Proteus软件30min提出问题解决问题要求改变流水灯闪亮变化速度,布置三种速度任务。教师演示程序修改学生操作Proteus软件Keil软件20min提出问题解决问题要求改变流水灯闪亮变化节奏,布置节奏要求。教师讲授学生操作Proteus软件Keil软件35min操作与评价学生扮演不同角色进行分组操作,记录仿真结果,填写原始记录单。教师讲授学生操作Proteus软件Keil软件原始记录单操作评价原始记录单评价15min课后安排完成习题集任务二内容。任务三防盗报警器的实现学时:4内容要点教学方式工具与媒体评价考核时间学情分析已经掌握单片机最小系统、C51程序设计入门任务布置通过课程网站布置任务,要求学生按学习指南做好自学。网络交流课程网站课余自学1.自学音频驱动电路;2.C51函数应用。自学互联网课程网站课余调查分析汽车防盗报警器的用途、功能与种类。网络查询互联网课程网站15min任务分析实施方案讲解综合分析项目功能要求,确定实施方案:单片机仿真电路+程序设计讲授PPT10min电路设计仿真电路建立教师讲授学生操作Proteus软件计算机35min软件设计使用keil软件建立项目工程。软件项目工程设计、关联电路仿真教师讲授学生操作Keil软件计算机Proteus软件30min提出问题解决问题要求改变声音音频高低,布置三种声音任务。教师演示程序修改学生操作Proteus软件Keil软件20min提出问题解决问题要求改变声音节奏,布置节奏要求。教师讲授学生操作Proteus软件Keil软件35min操作与评价学生扮演不同角色进行分组操作,记录仿真结果,填写原始记录单。教师讲授学生操作Proteus软件Keil软件原始记录单操作评价原始记录单评价15min课后安排完成习题集任务三内容教学后记项目一汽车转向灯的控制(I/O输出)【学习目标】一.知识目标 1.AT89S52单片机结构;2.AT89S52单片机的引脚功能;3.AT89S52单片机最小系统电路设计;4.C51语言基本构成和基本语句;二.技能目标 1.能完成单片机最小系统和输出电路设计;2.能应用C语言程序完成单片机输入输出控制,实现对LED控制的设计、运行及调试。三.态度目标1.培养良好的交流沟通能力2.培养严谨的工作态度和坚韧不拔的性格3.培养自主、开放的学习能力4.培养团队协作意识工作任务一点亮一个LED【工作任务描述】使用AT89S52单片机,P1.0引脚接发光二极管(LED)的阴极,通过C语言程序控制,从P1.0引脚输出低电平,使发光二极管点亮。【工作过程】一.组织教学情境导入、咨讯引导学生了解单片机的内部结构与主要型号;掌握单片机引脚功能;掌握单片机I/O口的基本功能;掌握用I/O口实现简单控制的方法;单片机最小系统电路设计;C51语言基本构成和基本语句。1.单片机的发展第一阶段(1974-1976年)为单片机初级阶段由于受工艺及集成度的限制,单片机采用双片形式,且功能比较简单。第二阶段(1976-1978年)为低性能单片机阶段单片机采用单芯片形式,是“小而全”。第三阶段(1978-1982年)为高性能单片机阶段,也是单片机普及阶段第四阶段(1982年以后)为16位单片机阶段2.单片机的特点由于单片机是在一块芯片上集成了一台微型计算机所需的CPU、存储器、输入/输出部件和时钟电路等。因此它具有体积小,使用灵活、成本低、易于产品化、抗干扰能力强,可在各种恶劣环境下可靠地工作等特点。3.单片机的应用单片机主要应用在以下几个方面:家用电器、智能卡、智能仪器仪表、网络与通信、工业控制4.单片机的分类单片机可分为通用型单片机和专用型单片机两大类。MCS-51是美国Intel公司的8位高档单片机系列,也是我国目前应用最为广泛的一种单片机系列。Atmel公司的AT89系列单片机AT89系列单片机不但具有一般MCS-51单片机的所有特性,而且其Flash程序存储器可以用电擦除方式瞬间擦除、改写,写入单片机内的程序还可以进行加密。5.单片机硬件结构中央处理器(CPU)中央处理器是单片机的核心,完成运算和控制功能。串行口一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。6.AT89S52单片机结构一个8位CPU;一个片内振荡器及时钟电路;8K字节可重复擦写的Flash闪速存储器;三级加密程序存储器;256×8字节内部RAM;3个16位定时器/计数器;32条可编程的I/O线(四个8位并行I/O端口);一个可编程全双工串行口;具有8个中断源、两个优先级嵌套中断结构。7.AT89S52引脚功能(P11)电源线:VCC(+5V)、VSS(地)振荡电路:XTAL1、XTAL2复位引脚:RST并行口:P0、P1、P2、P3EA:访问程序存储控制信号PSEN:外部ROM读选通信号ALE:地址锁存控制信号AT89S52引脚功能VCC(40脚):电源端,接+5V电源。VSS(20脚):接地端。时钟引脚(2根)XTAL1(19脚):接外部晶振和微调电容的一端。XTAL2(18脚):接外部晶振和微调电容的另一端。8.C语言程序的构成C语言的程序是由一个或多个函数构成的,最简单的程序只有一个main函数。一个函数由两部份组成函数的首部、即函数的第一行;包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。函数体,即函数首部下面的大括号¡°{}¡±内的部份。函数体一般包括:声明部份:定义所用到的变量,如voidDelay()中的unsignedchari,j;。执行部份:由若干个语句组成。标识符C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。变量名、常数名、数组名、函数名、文件名与类型名等统称为标识符。标识符分为预定义标识符和用户标识符。9.C语言基本语句C语言的程序是由一个或多个函数组成的,而函数又是由若干个语句组成的。语句是由一些基本字符和定义符按照C语言的语法规定组成的,每个语句以分号结束,分号是C语句的必要组成部份。C语言的语句可分为以下5种类型:表达式语句、函数调用语句、控制语句、复合语句、空语句二.决策和计划公布项目信息使用AT89S52单片机,P1.0引脚接发光二极管(LED)的阴极,通过C语言程序控制,从P1.0引脚输出低电平,使发光二极管点亮。要求学生理解项目信息并制订项目计划。三.实施实时干预,适时指导。硬件制作,软件调试,分步检测,完成作品。(一)用PROTEUS设计第一个LED控制电路新建设计文件、保存设计文件、选取元器件、放置元器件、编辑元器件、放置终端、连线、属性设置、电气规则检测(二)编写程序用KEILC51编写第一个C语言程序1.建立C程序项目2.建立工程文件3.建立源文件4.加载源文件5.设置工程的配置参数6.进行编译和连接7.进入调试模式8.全速运行程序9.用PROTEUS仿真运行调试10.加载“点亮一个LED.hex”目标代码文件11.打开Proteus“LED循环点亮”电路。12.双击单片机“AT89S52”,在弹出的“编辑元件”对话框中单击“ProgramFile”栏的打开按钮,在弹出的“选择文件名”对话框找到前面编译生成的“点亮一个LED.hex”HEX文件,单击“打开“按钮,完成“LED循环点亮.hex”HEX文件加载。13.将“ClockFrequency”栏中的频率设为12MHz,单击“确定”,即可完成加载目标代码文件。14.仿真运行调试15.单击仿真工具栏“运行”按钮,单片机全速运行程序。P1.0引脚接发光二极管(LED)的阴极,P1.0引脚输出低电平时,发光二极管点亮。LED点亮程序#include<AT89X52.H>//包含AT89X52.H头文件sbitLED=P1^0;//定义LED是P1.0引脚对应的变量名voidmain(void){LED=0;//P1.0=0,LED点亮while(1);}四.检查提出问题,反馈信息,调整落实。视情况修正计划,交流汇报,分享经验问题1:为什么P1.0引脚输出低电平,发光二极管点亮?通过程序控制,使P1.0引脚输出低电平,使发光二极管点亮。问题2:程序怎么使P1口的引脚输出低电平?五.评估项目总结,教师评价和小组互评。填写工作过程评价表(教师评价和学生互评)1.C语言的程序是由一个或多个函数构成的,最简单的程序只有一个main函数。2.单片机最小系统只是单片机能满足工作的最低要求,它不能对外完成控制任务,实现人机对话。3.P1.0引脚接发光二极管(LED)的阴极,P1.0引脚输出低电平时,发光二极管点亮。工作任务二LED循环点亮控制【工作任务描述】使用AT89S52单片机,控制八只发光二极管按一定的规律循环点亮【工作过程】一.组织教学情境导入、咨讯引导学生掌握P0、P1、P2和P3功能及应用技能;掌握C语言数据类型、常量和变量;1.C51数据类型C51定义了标准C语言的所有数据类型;同时对标准C语言进行了扩展,更加注意对系统资源的合理利用,如表所示。C51基本数据类型char字符类型长度是一个字节(8位)int整型长度为两个字节(16位)long长整型长度为四个字节(32位)float浮点型长度为四个字节(32位)2.C语言常量与变量常量是在程序运行过程中不能改变的,而变量是可以在程序运行过程中不断变化的。变量的定义可以使用所有C51编译器支持的数据类型,而常量的数据类型只有整型、浮点型、字符型、字符串型和位变量。定义一个变量的格式如下:[存储种类]数据类型[存储器类型]变量名表3.并行I/O端口电路单片机有4组8位并行I/O端口,称为P0口、P1口、P2口和P3口;每个端口都各有8条I/O口线,每条I/O口线都能独立地用作输入或输出;P0口负载能力为8个TTL门电路,P1口、P2口和P3口负载能力为4个TTL门电路;归入特殊功能寄存器之列,具有字节寻址和位寻址功能。二.决策和计划公布项目信息使用AT89S52单片机,控制八只发光二极管按一定的规律循环点亮。要求学生理解项目信息并制订项目计划。三.实施实时干预,适时指导。硬件制作,软件调试,分步检测,完成作品。(一)用PROTEUS设计LED循环点亮控制工作流程:新建设计文件、保存设计文件、选取元器件、放置元器件、编辑元器件、放置终端、连线、属性设置、电气规则检测(二)编写程序用KEILC51编写LED循环点亮控制程序1.建立C程序项目2.建立工程文件3.建立源文件4.加载源文件5.设置工程的配置参数6.进行编译和连接7.进入调试模式8.全速运行程序9.用PROTEUS仿真运行调试10.加载“LED循环点亮.hex”目标代码文件11.打开Proteus“LED循环点亮”电路。12.双击单片机“AT89S52”,在弹出的“编辑元件”对话框中单击“ProgramFile”栏的打开按钮,在弹出的“选择文件名”对话框找到前面编译生成的“LED循环点亮.hex”HEX文件,单击“打开“按钮,完成“LED循环点亮.hex”HEX文件加载。13.将“ClockFrequency”栏中的频率设为12MHz,单击“确定”,即可完成加载目标代码文件。14.仿真运行调试15.单击仿真工具栏“运行”按钮,单片机全速运行程序。P1口接发光二极管(LED)的阴极,P1口的管脚输出低电平时对应的发光二极管点亮。LED循环点亮程序Voidmain(){unsignedchari;unsignedchartemp;P1=0xff;//十六进制全1,熄灭所有LEDwhile(1){temp=0x01;//第一位为1for(i=0;i<8;i++){P1=~temp;//temp值取反送P1口Delay();temp=temp<<1;//temp值左移一位}}四.检查提出问题,反馈信息,调整落实。视情况修正计划,交流汇报,分享经验。问题1:LED采用的是共阴极接法还是共阳极接法?为什么P1口的管脚输出低电平,对应的发光二极管点亮?通过程序按一定的规律向P1口的管脚输出低电平和高电平,控制八只发光二极管循环点亮。问题2:程序怎么使P1口的管脚循环输出低电平和高电平?LED循环点亮功能实现分析由于LED循环点亮电路的LED是采用共阳极接法,这样我们就可以通过0和1来控制LED的亮和灭。五.评估项目总结,教师评价和小组互评。填写工作过程评价表(教师评价和学生互评)1.单片机有4组8位并行I/O端口,称为P0口、P1口、P2口和P3口;2.通过程序按一定的规律向P1口的管脚输出低电平和高电平,控制八只发光二极管循环点亮;3.课后思考:如何改变循环点亮的方向?工作任务三音频控制——汽车防盗报警器的实现【工作任务描述】使用AT89S52单片机,制作汽车防盗报警器【工作过程】一.组织教学情境导入、咨讯引导学生了解汽车防盗报警器的用途、功能。汽车防盗器是集GSM网络数字移动通信技术和GPS卫星定位技术于一体的高科技防盗产品,是继单向防盗器、双向防盗器后的新一代汽车防盗产品。它利用移动通信网络,彻底解决了普通防盗器无法解决的距离限制和易于破解的难题。除具有普通防盗器功能外,还具有手机控制、短信定位、远程监听、远程报警、全语音提示操作等功能。无论在何时何地,您只要通过电话就可对您的爱车进行监控,让它得到最佳的保护。二.决策和计划公布项目信息使用AT89S52单片机,实现汽车防盗报警器的功能。要求学生理解项目信息并制订项目计划。三.实施实时干预,适时指导。硬件制作,软件调试,分步检测,完成作品。(一)用PROTEUS设计汽车防盗报警器电路图工作流程:新建设计文件、保存设计文件、选取元器件、放置元器件、编辑元器件、放置终端、连线、属性设置、电气规则检测(二)编写程序用KEILC51编写防盗报警器控制程序1.建立C程序项目2.建立工程文件3.建立源文件4.加载源文件5.设置工程的配置参数6.进行编译和连接7.进入调试模式8.全速运行程序9.用PROTEUS仿真运行调试10.加载“防盗报警器.hex”目标代码文件11.打开Proteus“LED循环点亮”电路。12.双击单片机“AT89S52”,在弹出的“编辑元件”对话框中单击“ProgramFile”栏的打开按钮,在弹出的“选择文件名”对话框找到前面编译生成的“防盗报警器.hex”HEX文件,单击“打开“按钮,完成“防盗报警器.hex”HEX文件加载。13.将“ClockFrequency”栏中的频率设为12MHz,单击“确定”,即可完成加载目标代码文件。14.仿真运行调试15.单击仿真工具栏“运行”按钮,单片机全速运行程序。P1口接发光二极管(LED)的阴极,P1口的管脚输出低电平时对应的发光二极管点亮。用P0.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号。 #include<AT89X52.H> #include<INTRINS.H> unsignedcharcount; voiddely500(void)//延时500us,即0.5ms { unsignedchari; for(i=250;i>0;i--) { _nop_(); } } voidmain(void) {while(1) {if(P1_7==0) {for(count=200;count>0;count--) {//1KHz信号响100ms P1_0=~P1_0; dely500(); } for(count=200;count>0;count--) {//500Hz信号响200ms P1_0=~P1_0; dely500(); dely500(); } } } }四.检查提出问题,反馈信息,调整落实。视情况修正计划,交流汇报,分享经验。1.电路图是否正确?2.程序调试是否正确?问题1:如何利用AT89S52端口驱动扬声器发声,声音的频率高低由延时长短控制。五.评估项目总结,教师评价和小组互评。填写工作过程评价表(教师评价和学生互评)1.音频控制电路由单片机最小系统、放大滤波电路和扬声器构成。放大滤波电路由NPN三极管Q1、电阻R3、电容C4构成,Q1的基极经电阻R2接到P0.0引脚。音频控制流程图2.利用AT89S52端口输出脉冲方波,方波经放大滤波后,驱动扬声器发声,声音的频率高低由延时长短控制。音频控制程序教学方案项目二出租车计价器显示学时:12教学目标应知(1)七段数码管显示原理(2)BCD码译码的多位数码管扫描显示应会能利用AT89S52单片机及液晶显示器等器件,通过C51语言程序实现出租车计价器的制作。工作任务任务一无译码的七段数码管显示学时:4任务二BCD码译码的多位数码管扫描显示学时:4任务三出租车计价器的价格显示学时:4教学重点对直流电机、出租车计价器的认识,C51语言的理解与应用,使用Proteus软件建立仿真电路,Keil软件建立项C51目软件工程产生单片机执行代码,Proteus软件和Keil软件联动调试实现项目要求,帮助理解技术要点。教学难点单片机仿真电路建立和C51目软件工程建立。Proteus软件和Keil软件联动调试。教学方法本项目通过任务教学法实施教学,教学过程中体现以学生为主体,教师进行讲解、演示、引导与评估。任务一是利用AT89S52单片机及独立键盘,通过C语言程序实现键盘控制直流电机的速度和方向,完成单片机输入输出控制系统的设计、运行及调试。任务二利用AT89S52单片机及液晶显示器等器件,通过C51语言程序实现出租车计价器的制作。任务的完成使用Proteus软件建立仿真电路,Keil软件建立项C51目软件工程产生单片机执行代码,Proteus软件和Keil软件联动调试实现项目要求,帮助理解技术要点。利用课程网站及其他学习资源,引导学生自主学习。教师应提前准备好各种媒体学习资料、Proteus软件和Keil软件安装、仿真电路、程序代码,实现联动调试完整,做好单元教学活动设计。项目二出租车计价器显示学时:12内容要点教学方式工具与媒体评价考核时间学情分析已经掌握单片机最小系统、C51程序设计入门任务布置通过课程网站布置任务,要求学生按学习指南做好自学。网络交流课程网站课余自学1.C51语言应用;2.C51函数应用。自学互联网课程网站课余调查分析计价器的应用与发展网络查询互联网课程网站15min任务分析实施方案讲解综合分析项目功能要求,确定实施方案:单片机仿真电路+程序设计讲授PPT10min电路设计仿真电路建立教师讲授学生操作Proteus软件计算机35min软件设计使用keil软件建立项目工程。软件项目工程设计、关联电路仿真教师讲授学生操作Keil软件计算机Proteus软件30min提出问题解决问题1.要求了解单片机如何控制计价器2.要求了解里程计算、计价单元是如何设计的。教师演示程序修改学生操作Proteus软件Keil软件20min提出问题解决问题1.要求了解单片机如何控制计价器2.要求了解里程计算、计价单元是如何设计的。教师讲授学生操作Proteus软件Keil软件35min操作与评价学生扮演不同角色进行分组操作,记录仿真结果,填写原始记录单。教师讲授学生操作Proteus软件Keil软件原始记录单操作评价原始记录单评价15min课后安排完成习题集任务二内容教学后记项目二出租车计价器显示【学习目标】一.知识目标(1)七段数码管显示原理;(2)无译码的七段数码管显示;(3)BCD码译码的多位数码管扫描显示;(4)计价器价格显示.二.技能目标 能利用AT89S52单片机及数码管显示器等器件,通过C51语言程序实现出租车计价器的价格显示。三.态度目标1.培养良好的交流沟通能力2.培养严谨的工作态度和坚韧不拔的性格3.培养自主、开放的学习能力4.培养团队协作意识工作任务一数码管循环显示0-9【工作任务描述】利用AT89S52单片机及独立键盘,通过C语言程序实现键盘控制直流电机的速度和方向,完成单片机输入输出控制系统的设计、运行及调试。【工作过程】一.组织教学情境导入、咨讯引导学生认识直流电机。定义输出或输入为直流电能的旋转电机,称为直流电机,它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。1.直流电机结构2.转子旋转方向二.决策和计划公布项目信息利用AT89S52单片机及独立键盘,通过C语言程序实现键盘控制直流电机的速度和方向,完成单片机输入输出控制系统的设计、运行及调试。三.实施实时干预,适时指导。硬件制作,软件调试,分步检测,完成作品。(一)用PROTEUS设计直流电机电路。工作流程:新建设计文件、保存设计文件、选取元器件、放置元器件、编辑元器件、放置终端、连线、属性设置、电气规则检测(二)编写程序用KEILC51编写直流电机程序1.建立C程序项目2.建立工程文件3.建立源文件4.加载源文件5.设置工程的配置参数6.进行编译和连接7.进入调试模式8.全速运行程序9.用PROTEUS仿真运行调试10.加载“直流电机.hex”目标代码文件11.打开Proteus“直流电机”电路。12.双击单片机“AT89S52”,在弹出的“编辑元件”对话框中单击“ProgramFile”栏的打开按钮,在弹出的“选择文件名”对话框找到前面编译生成的“直流电机.hex”HEX文件,单击“打开“按钮,完成“租车计价器.hex”HEX文件加载。13.将“ClockFrequency”栏中的频率设为12MHz,单击“确定”,即可完成加载目标代码文件。14.仿真运行调试15.单击仿真工具栏“运行”按钮,单片机全速运行程序。直流电机程序#include<at89x52.h>#include<intrins.h>#include<main.h>bitMoto_Dir=0;ucharirq_count;ucharirq_count_t;ucharPWM_TIME_H,PWM_TIME_L;biti=0;/***********************短延时*******************************/voidShortDelay(void){ucharx,y;for(x=0;x<5;x++)for(y=0;y<125;y++) _Nop();return;}/************************主函数******************************/voidmain(void){PWM1=0;PWM2=0;PWM3=1;PWM4=1;irq_count=0;i=0;PWM_TIME_H=80;PWM_TIME_L=20;ET1=1;//T1使能TMOD=0x11;//T1都为方式1计时*/TH1=0xFC;TL1=0x18;//T1初值TR1=1;//定时器启动EA=1;//开全局中断while(1){//**************按键处理*****************************/if(LEFT_KEY){ShortDelay();if(LEFT_KEY)//延时去抖{Moto_Dir=1;PWM3=0;PWM4=1;}//endif(LEFT_KEY)while(LEFT_KEY);}//endif(LEFT_KEY)if(RIGHT_KEY){ShortDelay();if(RIGHT_KEY)//延时去抖{Moto_Dir=0;PWM3=1;PWM4=0;}//endif(RIGHT_KEY)while(RIGHT_KEY);}//endif(RIGHT_KEY)if(UP_KEY){ShortDelay();if(UP_KEY)//延时去抖{if(PWM_TIME_H>70){PWM_TIME_H--;PWM_TIME_L=100-PWM_TIME_H;}}//endif(UP_KEY)while(UP_KEY);}//endif(UP_KEY)if(DOWN_KEY){ShortDelay();if(DOWN_KEY)//延时去抖{if(PWM_TIME_H<96){PWM_TIME_H++;PWM_TIME_L=100-PWM_TIME_H;}}//endif(DOWN_KEY)while(DOWN_KEY);}//endif(DOWN_KEY)}//endwhile(1)}voidtimer1(void)interrupt3using1//T1定时器中断发PWM脉冲{TH1=0xFC;TL1=0x18;irq_count++;if(irq_count>=irq_count_t){irq_count=0;i=~i;if(i==1)irq_count_t=PWM_TIME_H;elseirq_count_t=PWM_TIME_L;if(Moto_Dir==1){PWM2=~PWM2;PWM1=1;}else{PWM2=1;PWM1=~PWM1;}}}四.检查提出问题,反馈信息,调整落实。视情况修正计划,交流汇报,分享经验。1.直流电机的速度是如何控制的?调节直流电机转速最方便有效的调速方法是对电枢(即转子线圈)电压U进行控制。控制电压的方法有多种,广泛应用脉宽调制PWM技术来控制直流电机电枢的电压。所谓PWM控制技术,就是利用半导体器件的导通与关断,把直流电压变成电压脉冲序列,通过控制电压脉冲宽度或周期以达到变压的目的。2.直流电机的方向是如何控制的?直流电机的转子转动方向可由直流电机上所加电压的极性来控制,可用桥式电路来控制直流电机的转动方向。控制直流电机正反转的桥式驱动电路有单电源和双电源两种驱动方式,通常采用单电源的驱动方式。五.评估项目总结,教师评价和小组互评。填写工作过程评价表(教师评价和学生互评)通过本项目,便学生了解直流电机的结构和工作原理;进一步掌握单片机C语言程序设计;掌握直流电机的控制的程序设计。工作任务二出租车计价器显示【工作任务描述】利用AT89S52单片机及液晶显示器等器件,通过C51语言程序实现出租车计价器的制作。【工作过程】一.组织教学情境导入、咨讯引导学生认识出租车计价器。计价器显示的营运金额是营运里程与价格的函数(等候时间一般折算成一定比例的里程来计算)。出租车计价器通过传感器与行驶车辆连接。出租汽车的实际里程通过传感器的脉冲信号在计价器里折算成一定的计价营运里程。目前市场上出租车计价器功能主要有具有数据的复位功能、白天/晚上转换功能、数据输出功能、计时计价功能等等,但能够进行语音播报数据信息的出租车计价器还是比较少见的,针对这一点我们来设计一款多功能出租车计价器,在原有功能的基础上增加单价输出、单价调整、路程输出、显示当前的系统时间、语音播报数据信息等功能。

二.决策和计划公布项目信息使用AT89S52单片机,使用51单片机设计与实现租车计价器。要求学生理解项目信息并制订项目计划。1..设计任务设计一款基于AT89S51单片机的出租车计价器。2.设计要求(1)15公里以内每公里收费2元;(2)15公里以上每公里收费3元;(3)停车等候时,每累计5分钟加2元;(4)超过30公里后,超出部分加收50%的空返费;(5)起步价3公里10元。三.实施实时干预,适时指导。硬件制作,软件调试,分步检测,完成作品。(一)用PROTEUS设计租车计价器电路。工作流程:新建设计文件、保存设计文件、选取元器件、放置元器件、编辑元器件、放置终端、连线、属性设置、电气规则检测(二)编写程序用KEILC51编写租车计价器程序1.建立C程序项目2.建立工程文件3.建立源文件4.加载源文件5.设置工程的配置参数6.进行编译和连接7.进入调试模式8.全速运行程序9.用PROTEUS仿真运行调试10.加载“租车计价器.hex”目标代码文件11.打开Proteus“租车计价器”电路。12.双击单片机“AT89S52”,在弹出的“编辑元件”对话框中单击“ProgramFile”栏的打开按钮,在弹出的“选择文件名”对话框找到前面编译生成的“车载温度显示.hex”HEX文件,单击“打开“按钮,完成“租车计价器.hex”HEX文件加载。13.将“ClockFrequency”栏中的频率设为12MHz,单击“确定”,即可完成加载目标代码文件。14.仿真运行调试15.单击仿真工具栏“运行”按钮,单片机全速运行程序。租车计价器程序#include<at89x52.h>#include<intrins.h>#include<main.h>#include<lcd.h>#defines1.0//车轮周长#definespace13.0//起步价里程#definespace215.0//标准价格里程#definespace330.0//需收空返费里程#defineprice12.0//标准价格#defineprice23.0//远程价格#defineprice34.5//加空返费的价格#definestar_price10.0//起步价ucharirq_count=0;//定时器中断计数uintcount_pulse=0;//脉冲计数器floatspace=0;//距离(里程/公里)uintmoney_time=0;//等待时间折算的钱uintmoney=0;//总价//定义秒、分寄存器ucharsecond=0;ucharminute=0;//定义显示寄存器uchardsp_data_money[7]="000.00";uchardsp_data_price[5]="0.00";uchardsp_time[6]="00:00";uchardsp_space[6]="000.0";//定义状态标志位bitStart_Stop=0;//开始/停止计价1:开始;0:停止bitPause_Start=0;//开始/停止停车等待1:停车等待;0:正常行驶bitprice_bit=0;//=========================延时===============================//voidShortDelay(void){ucharx,y;for(x=0;x<5;x++)for(y=0;y<125;y++) _Nop();return;}//=======================按键处理==============================//voidkey_manage(void){if(KEY1)//============计价开始/停止===========//{ShortDelay();if(KEY1){if(Start_Stop==0)//未计价{PWM1=0;PWM2=1;PWM3=1;PWM4=0;//启动Start_Stop=1;//开始计价price_bit=1;irq_count=0;count_pulse=0;space=0;money=10;}else{Start_Stop=0;//停止计价Pause_Start=0;TR0=0;PWM1=1;PWM2=1;PWM3=1;PWM4=1;//停止前进irq_count=0;count_pulse=0;space=0;money_time=0;while(!KEY2);//Led_Disp(money);}}while(KEY1);//Led_Disp(money);}if(KEY3)//=============中除停车/恢复==============//{ShortDelay();if(KEY3){if(Start_Stop==1){if(Pause_Start==0){PWM1=1;PWM2=1;PWM3=1;PWM4=1;Pause_Start=1;TR0=1;}else{PWM1=0;PWM2=1;PWM3=1;PWM4=0;Pause_Start=0;TR0=0;}}}while(KEY3);//Led_Disp(money);}if(KEY2)//=============显示清零===============//{ShortDelay();if(KEY2){if(Start_Stop==0){money=0;price_bit=0;second=0;minute=0;space=0;}}while(KEY2);//Led_Disp(money);}}//=====================单价显示处理============================//voidprice_manage(void){if(price_bit==1){if(space<space2){dsp_data_price[0]=(int)(price1*10.0)/10+'0';dsp_data_price[2]=(int)(price1*10.0)%10+'0';}elseif(space>space2&&space<space3){dsp_data_price[0]=(int)(price2*10.0)/10+'0';dsp_data_price[2]=(int)(price2*10.0)%10+'0';}elseif(space>space3){dsp_data_price[0]=(int)(price3*10.0)/10+'0';dsp_data_price[2]=(int)(price3*10.0)%10+'0';}}else{dsp_data_price[0]='0';dsp_data_price[2]='0';}}//=====================里程显示处理============================//voidspace_manage(void){uintx=0;x=(uint)(space*10.0);dsp_space[0]=x/1000+'0';dsp_space[1]=(x/100)%10+'0';dsp_space[2]=(x%100)/10+'0';dsp_space[4]=x%10+'0';}//========================总价计算===========================//voidmoney_manage(void){if(Start_Stop==1){if(space<=space1)money=(uint)(star_price);elseif(space>space1&&space<=space2)money=(uint)((space-space1)*price1+star_price);elseif(space>space2&&space<=space3)money=(uint)((space-space2)*price2+star_price+price1*(space2-space1));elseif(space>space3)money=(uint)((space-space3)*price3+star_price+price1*(space2-space1)+price2*(space3-space2));}elsemoney=0;money=money+money_time;dsp_data_money[0]=money/100+'0';dsp_data_money[1]=(money%100)/10+'0';dsp_data_money[2]=money%10+'0';dsp_data_money[4]='0';dsp_data_money[5]='0';}//======================时间显示处理=========================//voidtime_manage(void){dsp_time[0]=minute/10+'0';dsp_time[1]=minute%10+'0';dsp_time[3]=second/10+'0';dsp_time[4]=second%10+'0';}//======================LCD界面初始化========================//voidLCD_Init_interface(void){Out_Char(0,0,1,"里程:");Out_Char(96,0,1,"公里");Out_Char(0,2,1,"单价:");Out_Char(112,2,1,"元");Out_Char(0,4,1,"等候时间:");Out_Char(0,6,1,"总价:");Out_Char(112,6,1,"元");Out_Char(48,0,1,dsp_space);Out_Char(72,2,1,dsp_data_price);Out_Char(80,4,1,dsp_time);Out_Char(56,6,1,dsp_data_money);}//========================数据显示===========================//voidlcd_display(void){Out_Char(48,0,1,dsp_space);Out_Char(72,2,1,dsp_data_price);Out_Char(80,4,1,dsp_time);Out_Char(56,6,1,dsp_data_money);}//=========================主函数============================//voidmain(void){PWM1=1;PWM2=1;PWM

温馨提示

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

评论

0/150

提交评论