
ORG 1000H ;伪指令,指定后面的程序从1000H单元开始存放,本指令不占用存储单元。
TAB1 EQU 1234H ;伪指令,定义程序中出现的TAB1的值是1234H,本指令不占用存储单元。
TAB2 EQU 3000H ;伪指令,定义程序中出现的TAB2的值是3000H,本指令不占用存储单元。
DB “MAIN” ;伪指令,指定1000H--1003H单元依次存放四个大写字母 M A I N 的ASCII码值4DH, 41H, 49H, 4EH。
DW TAB1,TAB2,70H ;伪指令,指定1004H--1008H单元依次存放TAB1,TAB2,0070H。即1234H,3000H,0070H(因为DW定义的是字,故字节70H前要加00H变成字0070H),也就是12H,34H,30H,00H,00H,70H 。
所以然答案为:4DH, 41H, 49H, 4EH, 12H,34H,30H,00H,00H,70H
我的显示4位数的程序,你拿去修改一下吧
#include<reg51h>
#include <intrinsh>
sbit digital0=P2^0;
sbit digital1=P2^1;
sbit digital2=P2^2;
sbit digital3=P2^3;
void delay(unsigned char i) //延时程序
{
unsigned j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, //0,1,2,3,4,5,6,7,8,9
0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0x7f,0x89,0x8c, //A,b,C,d,E,F,-,,H,P
0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //0,1,2,3,4,5,6,7,8,9
void display(unsigned char qian_c,unsigned char bai_c,unsigned char shi_c,unsigned char ge_c) //显示程序
{
unsigned i;
for(i=0;i<8;i++){
digital0=1;
digital1=1;
digital2=1;
digital3=1;
P1=table[qian_c]; //显示千位
digital0=1;
digital1=1;
digital2=1;
digital3=0;
delay(5);
digital2=1;
P1=table[bai_c]; //显示百位
digital0=1;
digital1=1;
digital2=0;
digital3=1;
delay(5);
digital2=1;
P1=table[shi_c]; //显示十位
digital0=1;
digital1=0;
digital2=1;
digital3=1;
delay(5);
digital1=1;
P1=table[ge_c]; //显示个位
digital0=0;
digital1=1;
digital2=1;
digital3=1;
delay(5);
digital0=1;
digital1=1;
digital2=1;
digital3=1;
}
}
void main() // 主程序
{
unsigned char abc0,abc1,abc2,abc3;
while(1)
{
display(abc0,abc1,abc2,abc3);
abc0++;
abc1++;
abc2++;
abc3++;
if (abc0>30)abc0=4;
if (abc1>30)abc1=3;
if (abc2>30)abc2=2;
if (abc3>30)abc3=1;
} //送去显示各位。
}
假设P30接K1信号,P31接K2信号,P32接K3信号
ORG
4000H
LJMP
START
START:MOV
A,P3
ANL
A,#07H
//屏蔽P3口高5位,只有P30-P32
JZ
L1
//
A=0,说明P30-P32全为0
CJNE
A,#07H,L2
//A=7,说明P30-P32全为1
L1:
MOV
P1,#00H
SJMP
L3
L2:
CJNE
A,#03H,L4
//P30、P31=1
MOV
P1,#04H
SJMP
L3
L4:
CJNE
A,#06H,L5
//P31、P32=1
MOV
P1,#01H
SJMP
L3
L5:
CJNE
A,#05H,L6
//P30、P32=1
MOV
P1,#02H
SJMP
L3
L6:
MOV
P1,A
L3:
RET
以上就是关于单片机-80C51全部的内容,包括:单片机-80C51、用80C51单片机设计一个程序、求个高手帮忙用80c51单片机汇编编写一段程序,通过实验箱上的钮子开关K1、K2、K3控制发光二极管的亮或灭。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)