原创 我整理的单片机的资料

2009-3-9 10:23 2081 5 5 分类: MCU/ 嵌入式

点击开大图


功能 动态显示数字4321


C语言程序如下


#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={
    0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
    0xf8,0x80,0x90
};
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;


void delay(uchar );
void main( )
{      //P2控制显示数字
            //P1控制位选 //定时计数器0初始化;
 while(1)
 {
    k1=0;
    P2=0xf9;
    delay(200);
    k1=1;
    P2=0xff;


    k2=0;
    P2=0xa4;
    delay(200);
    k2=1;
    P2=0xff;



    k3=0;
    P2=0xb0;
    delay(200);
        k3=1;
    P2=0xff;



    k4=0;
    P2=0x99;
    delay(200);
    k4=1;
    P2=0xff;    


 


   
 }
}
void delay(uchar z)
{
 uchar a;
 for(a=z;a>0;a--);


}


 


汇编语言程序如下


K1 BIT P1.0
K2 BIT P1.1;
K3 BIT P1.2
K4 BIT P1.3


 ORG  0000H
 LJMP START
START: MOV DPTR,#TAB
  MOV R2,0;R2里面存放TAB里面要取的数字
   
MAIN:   MOV R2,#0
  CLR K1
         LCALL XIAN
  SETB K1
  MOV P2,#0FFH


        CLR K2
        LCALL XIAN
  SETB K2
  MOV P2,#0FFH


        CLR K3
  LCALL XIAN
  SETB K3
  MOV P2,#0FFH


        CLR K4
  LCALL XIAN
  SETB K4
  MOV P2,#0FFH
  LJMP MAIN
XIAN: INC R2
  MOV A,R2
  MOVC A,@A+DPTR
  MOV P2,A
  LCALL DELAY
  RET
DELAY:MOV R5,#20
DEL1:MOV R6,#100
DEL2:NOP
  NOP
  DJNZ R6,DEL2
  DJNZ R5,DEL1
  RET
TAB:DB 0C0H,0F9H, 0A4H,0B0H,99H,92H,82H
END


不知道为什么,我上次写的日志怎么没有了,我 圣圣九 河南理工大学 QQ:604901085


最近真的太忙了,周六周日忙着考研,还有比赛,今天上午没有课,闲着随便写点吧,还有一个IIC 总线的程序,太长了,很好,C语言的已经有了,汇编的程序还在努力!!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /3 下一条