硬件设置:
1、P0口接共阳极数码管,P0口与数码管串接300~470欧电阻;
2、P10接按键,低电平有效;
3、晶振为12M
软件部分如下:
ORG 00H
LJMP MAIN
ORG 100H
MAIN:
MOV 30H,#00H
MOV DPTR,#TAB
START:
LCALL SHOW_DATA
JB P10,START
LCALL DELAY_50MS
JNB P10,$
MOV A,30H
MOV B,#09H
DIV AB
JZ ADD_1:
MOV 30H,#00H
SJMP START
ADD_1:
INC 30H
SJMP START
DELAY_50MS:
MOV R7,#200D
LP:
MOV R6,#250D
DJNZ R6,$
DJNZ R7,LP
RET
SHOW_DATA:
MOV A,30H
MOVC A,@A+DPTR
MOV P0,A
RET
TAB: ;表:共阳数码管 0-9 A-F
DB 0C0H,0F9H,0A4H,0b0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH
END
早上起来没有什么事,跟你写个简单的供您学习与参考吧,这个程序是对应某个按键按下,对应序列号的灯就亮起来,释放按键,则灯灭,都是低电平有效。至于其他功能,你可以自己扩展吧。我只写2个,8个太多了,懒的动了。
#include<REG51H>
#include<stdioh>
sbit KEY1 = P1^0;
sbit KEY2 = P1^1;
sbit LED1 = P2^0;
sbit LED2 = P2^1;
void main(void)
{
//有必要的话,这里先对单片机各类寄存器进行初始化,这里因为简单,未做相关初始化工作
for(;;)
{
if(KEY1==0)//如果按键1被按下
{LED1=0;}//开启LED1灯
else{LED1=1;}//否则关闭LED1等,以下雷同
if(KEY2==0)
{LED2=0;}
else{LED2=1;}
}//end main-for(;;)
}//end main;
以上就是关于请高手帮我用8051单片机用汇编一个数字的显示 开关按一下 数字增加一 从0到9 汇编程序全部的内容,包括:请高手帮我用8051单片机用汇编一个数字的显示 开关按一下 数字增加一 从0到9 汇编程序、在C51单片机中编写8个开关控制8个小灯的程序,用C语言和汇编语言两种编写、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)