项目十九 计数器应用练习_第1页
项目十九 计数器应用练习_第2页
项目十九 计数器应用练习_第3页
项目十九 计数器应用练习_第4页
项目十九 计数器应用练习_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

计数器应用练习项目十九1(1)了解单片机计数器的工作过程。23项目指南(2)巩固定时器/计数器方式寄存器TMOD各位定义及功能的知识。(3)学会根据需要计算计数器初值。4(4)学会使用单片机的计数器功能。567项目指南(5)了解光耦的功能和用法。(6)了解继电器的功能和用法。(7)了解单片机的寻址方式。用Proteus软件仿真运行8个物品装箱计数并显示系统。(1)实践清单如前文所述,计数器是定时器/计数器的一种功能,它的使用方法与定时器基本相同,只是计数对象变成了单片机引脚上的脉冲。本项目我们来练习使用计数器模拟货物的计数。知识链接当把定时器/计数器的模式选择位C/T设置为1时,定时器/计数器工作在计数模式下,T0对T0(P3.4)引脚、T1对T1(P3.5)引脚脉冲计数。当单片机检测到上一周期引脚为高电平、下一周期变为低电平时计数器+1,因此计数脉冲的周期至少为2个机器周期,也就是计数脉冲的频率最大为晶振频率的1/24。其他关于计数器的启动、寄存器的+1、溢出和中断请求、工作方式和寄存器初值设定等方法与定时器相同。一、51单片机的计数器的功能知识链接生活中常见到成盒的乒乓球、成箱的牛奶等,这些物品在制造完毕后需要打包或装箱,如乒乓球6个装一盒,牛奶12盒装一箱等。物品从传送带送到箱子里,它们的数量计算是自动完成的,当传送了正确数量的物品后,机器就开始装箱打包的步骤。本项目使用光耦来模拟检测物品通过传送带的事件,利用单片机的计数器功能接收光耦的信号对传送的物品进行计数,利用数码管显示物品数量,当达到要求的数量时通过单片机控制继电器点亮一个LED来模拟生产过程中下一步装箱动作的开始信号,在实际生产中可以使用这个继电器去控制气缸的电磁阀等元件去完成下一步的装箱动作。二、控制任务知识链接光耦全称光电耦合器,是一种把电信号转变为光信号再转变为电信号的元件,它一般用于电信号传递的隔离,即一个元件将电信号传递给另一个元件时,通过光来传递信号,因此输出端和输入端是电气绝缘的,并且光信号的传递是单向的,因此输入端的干扰信号不能送到输出端,因此光耦具有良好的抗干扰性能。图19-1是NPN输出型光耦元件在Proteus软件中的符号。其中1、2为电信号输入端,1、2间连接发光二极管;4、5为电信号输出端,4、5为光敏三极管的集电极和发射极,光敏三极管的工作受到光照强度的控制;6为光敏三极管的基极引出端,也可以通过它控制光敏三极管的工作。三、光耦知识链接实际生产中可以使用光电传感器检测传送带上的物品,如一只发光管照射另一只受光管,两管中间如果有物品经过,则光线受到遮挡,受光管通断状态发生改变。本项目练习中使用按钮来控制发光二极管发光,即模拟物品遮挡光线,从而控制右侧光敏三极管是否受到光照而导通,光耦控制电路如图19-2所示。在电路中发光二极管所连接电阻为1000Ω,此时二极管电流约为3.6mA,其光照强度能使光敏三极管饱和导通。光敏三极管集电极连接电阻为10kΩ,当二极管不发光时,5脚电压约为5V;当二极管发光时,5脚电压约为0.14V,电流仅为0.5mA。本练习不需要控制三极管基极电位,因此6脚悬空。知识链接图19-1NPN输出型光耦元件在Proteus软件中的符号图19-2光耦控制电路知识链接系统电路如图19-3所示。图中光耦元件的5脚通过或门连接至P3.4,即T0引脚,5脚的电平变化与或门一致,即5脚电平变化通过或门传输至T0。按钮闭合时二极管发光,光敏三极管受光导通,5脚为低电平,此时模拟没有物品状态;按钮断开时二极管不发光,光敏三极管不受光而截止,5脚为高电平,此时模拟物品正通过光电传感器的遮光状态;即物品没到达传感器时5脚为低电平状态、正通过传感器时为高电平状态,物品过去后5脚变为低电平状态。四、系统电路由于计数器对引脚T0的下降沿计数,因此当物品经过传感器时,在离开传感器的时刻5脚会产生下降沿,把5脚电平传输至T0引脚,则可以利用单片机的计数器对通过的物品计数。或门名称为OR,这里增加或门的原因是软件中单片机引脚与电源间电阻较小且输出电流较大(可超过100mA),因此直接将引脚连接至5脚时会影响5脚电压,从而使T0不能正确检测5脚电压变化,增加或门后引脚电流不能进入光耦,消除了单片机对5脚电压的影响。知识链接知识链接图19-3系统电路继电器使用的是G2R-14-DC5,由于继电器线圈需要大电流驱动,因此选择单片机P3.0引脚控制PNP三极管基极电压,利用三极管驱动线圈工作。该线圈额定电压为5V,线圈电阻为47Ω,因此其额定电流约为106mA,其最小工作电压为70%额定电压,即3.5V。知识链接由于三极管导通后UEC较小,因此采用三极管接5V电源可以驱动其线圈工作。设其工作电流为100mA,三极管放大倍数为100,则基极电流应为1ms。设引脚低电平为0.2V,UEB为0.8V,则基极电阻为(5-0.2-0.8)/0.001=4000Ω。继电器常开触点连接的LED模拟电磁阀等元件的工作,LED亮起时代表该线路导通。实际应用时,应根据电磁阀需要控制的元件的工作电压和电流来选择电磁阀,再根据电磁阀线圈的工作电压和电流来选择三极管和计算各处电阻或者使用其他功率放大元件。系统通过数码管显示物品数量,单片机将数值从P2.3~P2.0输出至译码器,通过译码器驱动数码管显示数字。知识链接本练习建议使用8位计数器自动重装初值的工作方式,即方式2。以物品满8个装箱为例,将计数器初值设置为256-8=248,则每次有物品经过(按钮断开再闭合)时计数器寄存器自动+1,发生溢出中断代表已通过8个物品,同时计数器初值自动重装。因此,中断程序只需要处理数码管显示数量“8”,并令模拟装箱动作的LED亮起和延时熄灭。在实际生产中,装箱未完成时传送带应暂停传送物品,可以使用LED熄灭作为传送物品的前提条件,这个问题在本项目中省略。本项目令LED亮起1s后熄灭,代表装箱动作完成,且手动按钮模拟传送物品。主程序只需要做好程序存储位置设置、中断和计数器设置、开启计数器和循环显示数量4个步骤,其中显示数量可以利用计数器寄存器数量的变化来实现,具体设置方法和步骤可参考前两项目的相关部分。具体程序如【程序19-1】所示。五、程序仿真运行【程序19-1】ORG

00HSJMP

MAINORG

0BHSJMP

ZDORG

20HMAIN:

;主程序开始MOV

IE,#10000010B

;设置中断允许控制位MOV

TMOD,#00000110B

;设置定时器/计数器模式MOV

TH0,#248

;设置重装初值MOV

TL0,#248

;设置初值SETB

TR0

;启动计数器仿真运行【程序19-1】LOOP:

;循环开始MOV

A,TL0

;准备计算物品数量ADD

A,#8

;计算物品数量MOV

P2,A

;显示物品数量SJMP

LOOP

;循环显示ZD:

;中断程序开始MOV

P2,#8

;显示数量“8”CLR

P3.0

;LED亮(模拟装箱开始)MOV

R0,#100

;延时1s,模拟装箱过程仿真运行【程序19-1】D2:MOV

R1,#20D1:MOV

R2,#248DJNZ

R2,$DJNZ

R1,D1DJNZ

R0,D2SETB

P3.0

;LED灭,模拟装箱结束RETI

;子程序结束END项目训练(1)单片机的T1计数器是对哪个引脚的脉冲计数?(2)要设置T1为计数器工作模式,应设置哪个寄存器的哪一位数值?(3)使一个LED以灌电流方式连接在P2.1,单片机上电时为熄灭状态,要求使用T1做计数器,利用计数器功能完成按下一个按钮5次后LED亮起1s后自动熄灭;再按下按钮能够重复上述步骤。仿真运行参照电路如图19-3所示。一、参照电路仿真元件列表见表19-1。二、所用元件列表参照程序如【程序19-1】所示。三、参照程序表19-1仿真元件列表点击图标可观看仿真运行:8个物品装箱计数并显示拓展延伸(3)立即数寻址(5)变址寻址(1)寄存器寻址(7)和位寻址单片机的寻址方式单片机的大多数指令由助记符和操作数组成,寻址方式就是寻找指令中操作数所在地址的方式。51单片机的寻址方式有7种:(2)直接寻址(4)寄存器间接寻址(6)相对寻址拓展延伸1.寄存器寻址寄存器寻址是操作数存储在寄存器中,指令中使用寄存器名获得操作数的寻址方式。例如:MOV

A,R0ADD

A,R0R0是寄存器名,操作数存储在R0中。寄存器寻址的寻址范围,即应用范围是4个工作寄存器组和部分专用寄存器,如累加器A、寄存器B、数据指针DPTR等。注意:大多数寄存器指令寻址累加器A时都可以写作“A”,但个别指令需要写作“ACC”,若出现含“A”指令编译错误,可以尝试改为“ACC”。2.直接寻址直接寻址就是指令中直接给出操作数的存储单元的地址,从而获得操作数的方式。对于特殊功能寄存器既可以使用它们的地址,也可以使用它们的名字。例如:MOV

A,3EH其中,3EH就是第二个操作数的存储单元地址。MOV

A,P1P1是第二个操作数的存储寄存器,该寄存器是特殊功能寄存器P1,其地址为90H。指令里使用了寄存器名P1,将P1换成它的地址90H,二者实现的功能是一样的。直接寻址的寻址范围是全部片内RAM。拓展延伸3.立即数寻址立即数寻址就是直接将数值作为操作数,为了区别直接寻址,立即数寻址的数值前要加#。例如:MOV

A,#3EH这里表示将3EH这个十六进制数存储在A中。而前面“MOVA,3EH”这条指令是将存储在3EH单元中的数值存储到A中。需要注意的是,由于DPTR是16位寄存器,因此以DPTR为目的操作数的指令的数值应当是2个字节立即数,例如:MOV

DPTR,#203EH拓展延伸YOURLOGO4.寄存器间接寻址拓展延伸寄存器间接寻址是把操作数存放在指定单元中,然后把存储单元的地址存放在寄存器中,指令中使用寄存器来间接获得操作数的方式。51单片机使用R0和R1作为间接寻址的寄存器,可间接寻址的范围是片内RAM低128B单元和片外RAM256B单元,片内RAM高128单元即特殊功能寄存器区不能间接寻址。51单片机使用DPTR作为间接寻址寄存器可以寻址片外RAM64KB。间接寻址寄存器用@Ri和@DPTR来表示,例如:MOV

A,@R1

;将R1中存储的数值作为地址,将该地址中存储的数值存入AMOVX

A,@DPT

;将DPTR中存储的数值作为地址,将片外RAM该地址中存储

的数值存入A堆栈操作指令也是寄存器间接寻址,其间接寻址寄存器为堆栈指针SP。YOURLOGO5.变址寻址拓展延伸变址寻址是以某一个寄存器的内容为基地址,然后在基地址基础上加上地址偏移量作为操作数的地址。51单片机将DPTR或PC作为基地址存储寄存器,将A作为地址偏移量寄存器。例如:MOVC

A,@A+DPTR;将A和DPTR中存储的数值相加之和作为地址,将该地址中存储的数值存储在A中变址寻址方式只能对程序存储器进行寻址。相对寻址用于相对转移指令中,以PC执行完转移指令后数值为基地址,PC+偏移量rel为转移地址。偏移量rel的范围是-128~+127。拓展延伸位寻址的操作数是8位二进制数的某一位,指令中使用位地址来获得操作数。例如:MOV

C,

温馨提示

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

评论

0/150

提交评论