单片机-80C51

单片机-80C51,第1张

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控制发光二极管的亮或灭。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9475314.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存