《(中职)单片机技术应用项目教程项目二任务一电子课件.pptx》由会员分享,可在线阅读,更多相关《(中职)单片机技术应用项目教程项目二任务一电子课件.pptx(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、(中职)单片机技术应用项目教程项目二任务一电子课件项目二 芯片“眨眼睛”LED灯闪烁1.51单片机并行I/O端口的结构2.C51中关键字的概念和常量变量的用法。知识准备项目实施编写程序绘制仿真电路图仿真并调试下载程序并测试识读电路图绘制流程图搭建电路用单片机控制8个彩灯中的某一个彩灯(用LED模拟)闪烁,要求亮1秒,灭1秒。任务一单LED灯闪烁1)能熟练完成单片机I/O端口的读写操作2)会用KeilC51编写及修改简单的C51源程序3)能够使用Proteus完成单片机的仿真调试技能目标1)了解51单片机并行I/O端口的结构。2)掌握C51中关键字的概念和常量变量的用法。知识目标【任务实施】活动
2、一:识读电路图单彩灯闪烁电路是基于单片机最小系统电路,在P1口增加了一个发光二极管(LED1)和限流电阻(R1)。P1.0输出高电平时,LED1不发光;P1.0输出低电平时,LED1被点亮。其电路原理图如图2-2所示。活动二:绘制流程图单彩灯闪烁程序流程如图2-3所示,P1共有8个I/O端口,当单片机P1的某一个端口(例如P1.0)输出低电平时,LED灯就会发光,延时1秒后,P1.0输出高电平,LED灯就会熄灭,再延时1秒,如此反复,就可以看到LED一直在闪烁。活动三:编写程序使用Keil编写源程序,然后编译,生成HEX文件。/参考程序#includereg51.h/包含51单片机寄存器定义的
3、头文件#defineuintunsignedint/预编译,简化关键字的书写#defineucharunsignedcharsbitLED1=P10;/端口定义voiddelay(uintms);/函数声明/*-主函数-*/voidmain(void)while(1)/无限循环LED1=0;/点亮LED1delay(1000);/调用延时函数LED1=1;/熄灭LED1delay(1000);/调用延时函数活动三:编写程序使用Keil编写源程序,然后编译,生成HEX文件。/*-延时函数-*/voiddelay(uintms)uchari;uintj;for(j=0;jms;j+)for(i=0
4、;i125;i+);活动四:用Proteus绘制仿真电路图图2-4为单彩灯闪烁Proteus仿真电路,仿真电路中省略了单片机最小系统中的复位、时钟和电源电路。注意:软件仿真时最小系统电路可以省略,不影响电路正常工作,实际电路中是不可以省略的。具体操作步骤如下:1启动Proteus仿真软件。单击“开始”菜单,在“程序”项中选中“Proteus8Professional”,然后在子菜单中单击“Proteus8Professional”,启动Proteus仿真软件,图2-5为其仿真软件界面。具体操作步骤如下:2.设置图纸大小。单击“系统”菜单中的“设置纸张大小”命令,打开“设置纸张大小”对话框,就可
5、以设置图纸大小了,其默认图纸大小为“A4”,如图2-6所示。具体操作步骤如下:3.搜索元件。单击左侧的命令按钮“P”(或按下快捷键“P”)(如图2-7所示),弹出元件搜索窗口(PickDevice),如图2-8所示。然后,在“关键字”一栏中输入元件的名称“89C51”,这时在结果栏中会出现89C51系列芯片,选中其中的“AT89C51”,然后单击“确定”按钮。然后按照上述步骤依次搜索红色发光二极管(LED-RED)和电阻(RES),进入元件模式具体操作步骤如下:4.放置仿真元器件按照图2-10所示步骤,在Proteus工作窗口依次放置单片机(AT89C51)、发光二极管(LED-RED)和电阻
6、(RES)。放置好的元器件如图2-11所示。具体操作步骤如下:5.放置电源符号,连接导线按照图2-12所示步骤设置电源端符号,然后根据原理图拖动鼠标连接导线。具体操作步骤如下:6.修改元器件参数和网络标号双击要修改参数的元器件,在“编辑元件”对话框中完成元器件参数的修改。调试经验:Proteus电路仿真时,复位和时钟电路可省略掉,单片机电源端与地端被隐藏,默认的网络标号分别为VCC和GND。7.保存文件。按Ctrl+S保存工程,Proteus仿真工程文件扩展名为.pdsprj。也可以选择“文件”菜单的“另存为”选项,为工程文件另命名为“单彩灯闪烁”。活动五:软件仿真,调试程序软件仿真和调试程序
7、具体步骤如下:(1)启动Protues仿真软件,打开“单彩灯闪烁”仿真电路图;(2)双击单片机元件,弹出“编辑元件”对话框,如图2-14所示;(3)单击ProgramFile栏右侧的文件夹,找到要加载的HEX文件;(4)设置晶振频率为12MHz,单击“确定”按钮;(5)单击左下角的“仿真”工具栏中的“开始”按钮,开始仿真操作,观察仿真结果。活动五:软件仿真,调试程序软件仿真和调试程序具体步骤如下:(1)启动Protues仿真软件,打开“单彩灯闪烁”仿真电路图;(2)双击单片机元件,弹出“编辑元件”对话框,如图2-14所示;(3)单击ProgramFile栏右侧的文件夹,找到要加载的HEX文件;
8、(4)设置晶振频率为12MHz,单击“确定”按钮;(5)单击左下角的“仿真”工具栏中的“开始”按钮,开始仿真操作,观察仿真结果。活动六:用万能实验板搭建硬件电路活动七:下载程序,验证功能将单片机插到电路板的DIP40IC插座上,使用下载器将HEX文件下载到单片机芯片中,在电源和地端加上+5V直流稳压电源,观察实际效果。【任务拓展】1.将彩灯闪烁速度提高一倍要求:绘制程序流程图,编写C源程序,使用仿真软件进行调试,验证其功能。操作提示:修改延时时间。2.两个彩灯轮流闪烁操作提示:使用P1口的P1.0和P1.1,当P1.0为高电平时,让P1.1为低电平,两个端口的电平正好相反即可。要求:绘制电路原
9、理图,绘制程序流程图,编写C源程序,使用仿真软件进行调试,验证其功能。一、C51的常量与变量1.常量在程序运行中,其值不能改变的量称为“常量”。(1)整型常量十进制数:直接书写,如12,-12。八进制数:在数值前面加“0”表示是八进制数,如012表示“10”。十六进制数:在数值前面加“0 x”表示是十六进制数,如0 x0e表示“14”。(2)实型常量:如23.14。(3)字符型常量:数据两边加单引号,如abc。一、C51的常量与变量1.常量(4)浮点型常量:采用科学计数法,如2.3E5表示2.3105【注意】在程序开头可以将一些常用的数据定义为符号常量,以便在后续程序中调用,在程序中其值不能随
10、意更改。其格式如下:constPI=3.1415926;一、C51的常量与变量2.变量在程序运行中,其值可以改变的量称为“变量”。每个变量都有一个变量名,在内存中占据一定的存储空间,并在该内存单元中存放该变量的值。变量必须先定义后使用,变量的定义格式如下:存储种类数据类型存储器类型变量名表;定义变量名必须符合标识符的命名规则:(1)要用合法的字符,如字母、数字和下划线,但第一个字符不能是数字。(2)字母大小写是有区分的,MS和ms不是同一个变量名。(3)其长度一般为8个字符。(4)给变量起名字最好要有意义,不但便于记忆还能增加程序的可读性。一、C51的常量与变量2.变量C51中变量主要由以下几
11、种:(1)位变量(bit):变量的类型是位,位变量的值为0或1。(2)字符型变量(char):字符变量的长度为1个字节(1B),即8位。这是最适合51单片机的变量,因为51单片机每次可以处理8位数据。无符号字符型(unsignedchar)变量的数值范围为0255,有符号变量为-127+128。(3)整型变量:整型变量通常可分为四类:一般整型(int)、短整型(short)、长整型(long)、无符号型。其中无符号型又有无符号整型(unsignedint)、无符号短整型(unsignedshort)和无符号长整型(unsignedlong)之分。整型的字节长度和取值范围如表2-2所示。一、C5
12、1的常量与变量2.变量数据数据类型型字字节长度度取取值范范围int2-3276832767short2-3276832767long4-21474836482147483647unsigned int2065535unsigned short2065535unsigned long404294967295表2-2整型的字节长度和取值范围一、C51的常量与变量2.变量(4)浮点型变量:浮点型变量分为单精度(float)和双精度(double)变量两种,单精度变量长度为4个字节(32位),双精度变量长度为8个字节(64位)。实际使用这些数据类型时,应尽量避免使用有符号的数据类型,因为单片机处理无符
13、号数更容易一些,生成的指令代码更简洁,另外还要尽量避免使用浮点数据类型,因为使用浮点数时,C编译器需要调用库函数,程序会变得庞杂,运算速度会变慢。常用的数据类型有“bit”和“unsignedchar”,这两种数据类型可以直接支持机器指令,运算速度最快。一、C51的常量与变量2.变量【注意】在编程时,为了书写方便,经常使用简化的缩写形式来定义变量的数据类型。其方法是在源程序开头使用宏定义语句#define。例如:#defineucharunsignedchar#defineuintunsignedintucharx,y;uinta;二、C51的关键字C51编程时,有一组特殊意义的字符串,即“关
14、键字”,这些关键字已经被软件本身使用,不能再作为常量、变量和函数的名称使用。C51的关键字分为以下两大类:1.由ANSI标准定义的关键字(1)数据类型关键字:用来定义变量、函数或其他数据结构的类型,如int,unsignedchar等。(2)控制语句关键字:程序中起控制作用的语句,如“while,if,case”等。(3)预处理关键字:表示预处理命令的关键字,如“include,define”等。(4)存储类型关键字:表示存储类型的关键字,如“auto,extern,static”等。二、C51的关键字C51编程时,有一组特殊意义的字符串,即“关键字”,这些关键字已经被软件本身使用,不能再作为
15、常量、变量和函数的名称使用。C51的关键字分为以下两大类:1.由ANSI标准定义的关键字(4)存储类型关键字:表示存储类型的关键字,如“auto,extern,static”等(5)其他关键字:如“sizeof,const”等。由ANSI标准定义的关键字共有32个:char、double、enum、float、int、long、short、signed、struct、union、unsigned、void,break、case、continue、default、do、else、for、goto、if、return、switch、while、auto、extern、register、static
16、、const、sizeof、typedef、volatile。二、C51的关键字2.KeilC51编译器扩充的关键字(1)访问51单片机内部寄存器关键字:KeilC51编译器扩充了关键字sfr和sbit,用于定义单片机中的特殊功能寄存器和其中的某一位。其定义方法如下:定义特殊功能寄存器:sfrP1=0 x90;/定义地址为“0 x90”的特殊功能寄存器的名称为P1。定义特殊功能寄存器中的某一位:sbitLED2=P12;/位定义LED2为P1.2(特殊功能寄存器P1的第2位)二、C51的关键字2.KeilC51编译器扩充的关键字(2)51系列单片机存储类型关键字KeilC51编译器扩充了如表所
17、示的6个关键字,用于定义51单片机变量的存储类型,如表2-1所示。存存储类型型与与51单片机存片机存储空空间的的对应关系关系data默默认存存储类型,可直接型,可直接寻址片内址片内RAM,访问速度最快速度最快(128个字个字节)bdata可位可位寻址片内址片内RAM,允,允许位与字位与字节混合混合访问(16个字个字节)idata间接接寻址片内址片内RAM,可,可访问片内全部片内全部RAM空空间(256个字个字节)pdata分分页寻址片外址片外RAMxdata可可访问片外片外RAM(64KB)code可可访问ROM存存储区,常用于存区,常用于存储程序和数据表,只能程序和数据表,只能读取数据取数据
18、表2-151系列单片机存储类型关键字三、电路仿真软件Proteus简介Proteus是英国Labcenter公司开发的电路分析与仿真及印制电路板设计软件,主要由ISIS和ARES两部分组成,ISIS的主要功能是原理图设计及与电路原理图的交互仿真,ARES主要用于印制电路板的设计。本教材主要使用ISIS,该软件的主要特点如下:1.具有模拟电路仿真、数字电路仿真、单片机系统仿真、RS-232动态仿真、C调试器、SPI调试器、键盘和LCD系统仿真功能;具有各种虚拟仪器:如示波器、逻辑分析仪、信号发生器等。2.支持多种类型的单片机:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。3.支持各种存储器和外围芯片。三、电路仿真软件Proteus简介图2-17为Proteus8的工作界面三、电路仿真软件Proteus简介图2-17为Proteus8的工作界面感谢聆听感谢聆听