51汇编语言 按键显示实例
- 格式:doc
- 大小:198.00 KB
- 文档页数:2


51单片机汇编语言a)单个与多个LED灯,位操作与字节操作—输出ORG 0000HSTART:CLR CMOV P0.0,CMOV P1.1,CMOV P2.2,CMOV P3.3,CCLR ACPL AMOV P0,AMOV P1,AMOV P2,AMOV P3,AEND程序说明:可以用7段数码管来代替各端口的8个LED灯,硬件的这种显示方式使得数字表达成为实用。
数字显示由数码管的硬件结构与工作原理(7个LED灯的几何变形组合)和数字表达的数据格式确定。
如:共阳极数码管显示数字3,则有P1口送数据#4FH;MOVP1, #0B0H共阴极数码管显示数字8,则有P1口送数据#80H;MOVP1, #7F H用数据表表示则有:TABshuziyang: //阳极管(共阴极管取反即可)DB(数字0~F)C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H,88H,83H,C 6H,A1H,86H,8EHTABshuziyin: //阴极管(共阳极管取反即可)DB(数字0~F)3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,3 9H,5EH,79H,71Hb)单个与多个LED灯闪烁—延时子程序—注意定时器前边已经看到,通过改变位或字节的赋值,可以使得LED灯亮或灭,以此形成闪烁效果。
但是硬件的响应时间太短,使得效果不佳。
虽然可以通过改变单片机的时钟设置来改变效果。
但时钟的改变极其不方便,因此需要利用延时指令(注意定时器功能)获得理想的效果。
延时效果是利用单片机空转来实现的。
ACALLDELAY;调延时子程序************************************************* ************************DELAY:;延时子程序—这是一个非常有用、而且常见的一个子程序MOV R5,#04H;将16进制数04H传递给寄存器R5F3:MOV R6,#0FFH;将16进制数0FFH传递给寄存器R6F2:MOV R7,#0FFH;将16进制数0FFH传递给寄存器R7F1:DJNZR7, F1;寄存器R7减1非0跳转到F1,直到减为0顺序执行下一指令DJNZR6, F2;寄存器R6减1非0跳转到F2,直到减为0顺序执行下一指令DJNZR5, F3;寄存器R5减1非0跳转到F3,直到减为0顺序执行下一指令RET;子程序结束,返回子程序入口处ACALLDELAY;调延时子程序************************************************* **************************应用实例MAIN:CLR CMOV P0.0,CMOV P1.1,CMOV P2.2,CMOV P3.3,CACALLDELAY;调延时子程序;CLR ACPL AMOV P0,AMOV P1,AMOV P2,AMOV P3,AACALL DELAY;调延时子程序SJMP MAIN ;相对转移时间短,用AJMP绝对转移时间长,RET是用于子程序的返回DELAY:;延时子程序-这是一个非常有用、而且常见的一个子程序MOV R5,#04H;将16进制数04H传递给寄存器R5F3:MOV R6,#0FFH;将16进制数0FFH传递给寄存器R6F2:MOV R7,#0FFH;将16进制数0FFH传递给寄存器R7F1:DJNZR7, F1 ;寄存器R7减1非0跳转到F1,直到减为0顺序执行下一指令DJNZR6, F2 ;寄存器R6减1非0跳转到F2,直到减为0顺序执行下一指令DJNZR5, F3 ;寄存器R5减1非0跳转到F3,直到减为0顺序执行下一指令RET;子程序结束,返回子程序入口处ACALLDELAY;调延时子程序END程序说明:注意延时子程序中的DJNZR7, F1;DJNZR6, F2;DJNZR5, F3;通过增加或减少循环数目控制或改变延时时间c)单个与多个LED灯流动—位循环、字节循环与延时子程序ORG 0000HMAIN:;****************位循环—扫描—流水灯—逐级增加灯的数目*******************CLR CMOV P0.0,CACALLDELAY;调延时子程序MOV P0.1,CACALLDELAY MOV P0.2,CACALLDELAY MOV P0.3,CACALLDELAYMOV P0.4,CACALLDELAYMOV P0.5,CACALLDELAYMOV P0.6,CACALLDELAY MOV P0.7,CACALLDELAY;注意前面各位状态一直持续。
期中大作业姓名:性别:专业:学号:课题:【利用51单片机、8255实现数码管显示按键值的程序实验】要求:【4*4矩阵键盘,按0-15数码管上分别显示0-9、a-f】一、芯片资料;8255:8255的内部结构,由三部分电路组成:与CPU的接口电路、内部控制逻辑电路和与外设连接的输入/输出接口电路。
D7~D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送数据。
(chip select):片选信号线,低电平有效时,芯片被选中。
A1, A0(port address):地址线,用来选择内部端口。
(read):读出信号线,低电平有效时,允许数据读出。
(write):写入信号线,低电平有效时,允许数据写入。
RESET(reset):复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。
PA7~PA0(port A):A口输入/输出信号线。
PB7~PB0(port B):B口输入/输出信号线。
PC7~PC0(port C):C口输入/输出信号线。
VCC:+5V电源。
GND:电源地线。
8255的工作方式方式0:基本输入输出方式适用于无条件传送和查询方式的接口电路方式1:选通输入输出方式适用于查询和中断方式的接口电路方式2:双向选通传送方式适用于与双向传送数据的外设适用于查询和中断方式的接口电路8255初始化编程8255的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的。
8255由编程写入的控制字有两个:方式控制字和置位/复位控制字。
方式控制字用于设置端口A, B, C的工作方式和数据传送方向;置位/复位控制字用于设置C口的PC7~PC0中某一条口线PC i(i=0~7)的电平。
两个控制字公用一个端口地址,由控制字的最高位作为区分这两个控制字的标志位。
(1)方式控制字的格式8255工作方式控制字的格式。
D0:设置PC3~PC0的数据传送方向。