您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 25124-项目2单片机的并行IO口应用实践
项目2单片机的并行I/O口应用实践任务2显示开关量的输入状态任务3控制楼梯灯任务4制作跑马灯任务5制作流水灯任务2显示开关量的输入状态【相关知识】1.C51中的数据类型·C51所支持的基本类型数据如表2-1所示。2.常量与变量(1)常量·C51中常见常量的表示方法如表2-2所示。(2)变量·变量是一种在程序的运行过程中其值可以变化的量。3.赋值运算·“=”是C51的赋值运算符,其作用是给变量赋值。·转换的法则是,把“=”右边的类型转换成左边的类型,具体的规定如表2-3所示。4.特殊功能寄存器的定义(1)8位的特殊功能寄存器定义(2)16位的特殊功能寄存器的定义(3)可寻址位的定义格式一:格式二:格式三:5.并行端口P0的应用特性(1)P0口作普通的I/O口使用时的输出特性①每根端口线内部的输出驱动电路都是一个漏极开路的输出电路。②输出具有锁存功能。③输出数据操作。(2)P0口作普通的I/O口使用时的输入特性①输入具有缓冲功能。②读取引脚信号的方法比较特殊。③对P0进行“读-修改-写”操作时,所读入的数据为特殊功能寄存器P0中的数据。(3)P0口的输出驱动能力(4)单片机复位时P0口的状态6.并行端口P1的应用特性(1)输出特性·P1口的每一端口都是由一个场效应管构成的输出驱动电路构成,其结构如图2-2所示,场效应管的漏极通过一电阻R接至内部电源VCC,该电阻也就是通常所说的上拉电阻,其特点是,电阻R的一端接引脚(漏极),另一端接正电源VCC。(2)输入特性(3)输出驱动能力(4)复位状态【任务实施】1.搭建电路(1)电路图·实现本任务要求的硬件电路如图2-3所示。(2)元器件清单·完成本任务所需元器件如表2-4所示。2.编写程序(1)流程图·流程图符号如图2-4所示。·本例的流程图如图2-5所示。·实际的流程图如图2-6所示。(2)程序代码·将图2-6的流程图转换成C51语句就可以得到本例的软件程序。任务3控制楼梯灯【相关知识】1.关系运算·C51中的关系运算符如表2-5所示。2.逻辑运算·C51提供了3种逻辑运算,如表2-6所示。·逻辑运算符与其他运算符比较,优先级顺序如图2-7所示。·C51中逻辑运算法则如表2-7所示。3.表达式语句与复合语句(1)表达式语句·表达式语句的作用是求解表达。·例如:(2)复合语句·复合语句虽然是由多个语句构成,但在程序中应当成单条语句看待。·例如:4.if分支结构·if语句有3种形式,如表2-8所示。5.并行端口P2的应用特性(1)P2口作普通的I/O口使用(2)P2口作地址总线口使用6.并行端口P3的应用特性·P3口的第二功能及各口线工作于第二功能的状态的条件如表2-9所示。【任务实施】1.搭建硬件电路·任务3的硬件电路如图2-8所示。2.编写软件程序(1)程序流程图·任务3的流程序图如图2-9所示。(2)程序代码·实现本任务要求的程序代码如下:任务4制作跑马灯【相关知识】1.算术运算·C51提供了8种算术运算符,如表2-10所示。2.位操作运算·C51中有6种位操作运算,如表2-11所示。·用X表示一位取值任意的二进制数,位运算的法则如表2-12所示。3.循环结构(1)C51中常用的循环结构形式·这3种循环的结构如表2-13所示。(2)循环程序的设计方法①进行循环体设计。②选择控制循环的条件表达式。③设置初始条件。④修改循环条件。(3)应用举例·【例】用while循环求累加和sum=1+2+3+4+…+100。·设计分析如下。循环体:当前的累加和=前面的累加和+当前计数值,即sum=sum+i。·其中,sum的值超过了255,应定义成unsignedint型变量。·循环初值:sum=0,i=1。·用i作循环控制变量,则循环条件为i≤100,每次循环后应将i值加1。·求累加和的流程图如图2-10所示。·程序代码如下:·【例】用do-while循环求连乘积product=1×2×3×…×10。·设计分析:循环体:当前的积=前次的积×当前计数值,即product=product×i。·其中,product的值超过了255,应定义成unsignedint型变量。·循环初值:product=1,i=1。·用i作循环控制变量,则循环条件为i≤10,每次循环后应将i值加1。·求连乘积的流程图如图2-11所示。·程序代码如下:·【例】用for循环求累加和sum=1+2+3+4+……+100。·程序代码如下:(4)goto语句·goto语句是一条无条件转向语句,它的一般形式如下:·其中,语句标号是一个带有冒号(:)的标识符,语句的含义是无条件地转移至标号处。·goto语句与if语句一起可以构成循环。·由于滥用goto语句将会使程序流程无规律、可读性差,所以在C51程序设计中一般不用goto语句构成循环,如果是为了提高程序执行的效率,可以用goto语句从多层循环的内层循环跳至外层。·用goto语句构成do-while循环的一般形式如下:【任务实施】1.搭建硬件电路·任务4的硬件电路如图2-12所示。2.编写软件程序(1)流程图·由于P1口输出具有锁存功能,故每隔一定时间(例如1s)依次向P1口输出表2-14中的显示控制数据就可以实现跑马灯显示效果。·任务4的流程图如图2-13所示。(2)程序代码(3)代码说明①语句10是用位操作运算实现将m循环左移一位。②语句11实现的是1s延时。③修改延时时间,当延时时间很短时,我们会看到8只发光二极管“都被点亮”的现象。任务5制作流水灯【相关知识】1.函数(1)函数的定义·函数定义的一般形式如下:·求2个数的最大值函数max()的定义如下:(2)函数的返回值·return语句的格式如下:·主调函数调用被调函数的一般形式如下:②调用的方式。a.函数调用语句。b.函数表达式调用。c.作为函数参数调用。③有关函数调用的说明。a.被调用函数必须是已经定义了的函数。b.调用库函数时,需要在程序的开头处用下面的预处理命令将被调函数所在的头文件包括到当前程序文件中来。c.调用本文件中函数时,若被调函数的定义位于主调函数之后,则要在函数被调用之前对被调函数的返回值类型进行说明。d.调用其他文件中定义的函数时,需要做两方面的工作。2.C51中变量的存储类型·基于存储类型的变量定义格式如下:②定义变量时,如果不指定存储类型,则C51编译器按默认的存储类型给变量分配存储区域,默认的存储类型取决于用户设置的存储模式。·设置方法请参见图1-19,存储模式与变量的默认存储类型的关系如表2-18所示。3.一维数组(1)一维数组的定义(2)数组中的元素(3)数组的赋值①在程序执行的过程中用赋值语句对数组中的元素进行赋值。②在定义数组时给数组赋值。4.查表程序·用查表求5~10这6个数的平方根的具体方法如下:【任务实施】1.搭建硬件电路·任务5的硬件电路如图2-19所示。2.编写软件程序(1)流程图·用变量discnt作为时间计数器,则流水灯显示的流程图如图2-20所示。(2)程序代码。
本文标题:25124-项目2单片机的并行IO口应用实践
链接地址:https://www.777doc.com/doc-2913614 .html