51单片机旋转编码器程序_51单片机旋转木马程序

hacker|
174

一个简单的51单片机编程,求程序,谢谢!

#includereg51.h

#define uchar unsigned char;

uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //0到f

uchar number;

sbit key1=P1^0;

sbit key2=P1^1;

uchar dat=0;

void t0isr() interrupt 1

{

TH0=(65536-5000)/256;

TL0=(65536-5000)%256;

number++;

if(number1)number=0;

switch(number)

{

case 0:P2=0x02;P0=distab[dat/10];

break;

case 1:P2=0x01;P0=distab[dat%10];

break;

default:break;

}

}

main()

{

TMOD=0x01;

TH0=(65536-5000)/256;

TL0=(65536-5000)%256;

TR0=1;

ET0=1;

EA=1;

while(1)

{

if(key1==0)

{

while(key1==0);

dat++;

dat%=100;

}

if(key2==0)

{

if(dat0)dat--;

}

}

}

END

51单片机设计跑马灯的程序用(c语言)编写

|P1口接8个发光二极管共阳

#include AT89X51.H

unsigned char i;

unsigned char temp;

unsigned char a,b;

void delay(void)

{

unsigned char m,n,s;

for(m=20;m0;m--)

for(n=20;n0;n--)

for(s=248;s0;s--);

}

void main(void)

{

while(1)

{

temp=0xfe;

P1=temp;

delay();

for(i=1;i8;i++)

{

a=tempi;

b=temp(8-i);

P1=a|b;

delay();

}

for(i=1;i8;i++)

{

a=tempi;

b=temp(8-i);

P1=a|b;

delay();

}

}

}

扩展资料:

Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。

参考资料来源:百度百科-51单片机

51单片机,用汇编编程,,,新手跪求帮助,,,改程序,,,急。。。。。。。。。。。。

ORG 00H

LJMP START

ORG 30H

START:MOV R2,#12H

MOV A, #7FH

LOOP: RL A

INC A

MOV P1, A

LCALL DELAY

DJNZ R2,LOOP

MOV R2,#12H

LOOP1: ; 下面的程序就是让LED灯一盏接一盏的亮, 最后全亮

MOV R2,#8

MOV A,#0FFH

LOOP2:

RL A

CLR ACC.0

MOV P1, A

LCALL DELAY

DJNZ R2, LOOP2

LJMP START

用MCS-51单片机汇编语言实现下列的程序:

;1--片内RAM30H字节单元的存储内容传送到片内RAM20H字节单元

MOV 20H,30H

;2--片内RAM30H字节单元的存储内容传送到片外RAM2000H字节单元

MOV A,30H

MOV DPH,#20H

MOV DPL,#00H

MOVX @DPTR,A

;3--片外ROM30H字节单元的存储内容传送到片内RAM30H字节单元

MOV DPH,#00H

MOV DPL,#30H

CLR A

MOVC A,@A+DPTR

MOV 30H,A

;4--片外ROM3000H字节单元的存储内容传送到片外RAM2000H字节单元

MOV DPH,#30H

MOV DPL,#00H

CLR A

MOVC A,@A+DPTR

MOV DPH,#20H

MOV DPL,#00H

MOVX @DPTR,A

;5--片外ROM3000H字节单元的存储内容传送到片外ROM2000H字节单元

;这道题目是错误的,ROM不可修改,所以无法将任何数据传送到ROM里

;所以,“内容传送到片外ROM2000H字节单元”是无法实现的。

51单片机汇编语言编写一个跑马灯的程序,初学者做实验用,具体要求如下,好了可以加分

程序1:

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:

MOV SP,#5FH

LOOP:

MOV A,P2

MOV B,A

MOV P0,A

MOV P1,#0FFH

LOOP1:

LCALL DELAY

MOV C,P1.7

MOV A,P0

RLC A

MOV P0,A

MOV A,P1

RLC A

MOV P1,A

MOV A,P2

CJNE A,B,LOOP

SJMP LOOP1

DELAY:

MOV R2,#60

DELAY1:

MOV R3,#250

DJNZ R3,$

DJNZ R2,DELAY1

RET

END

程序2:

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:

MOV SP,#5FH

JNB P2.0,LOOP1 ;

JNB P2.1,LOOP2 ;

SJMP MAIN

LOOP1:

MOV P0,#0FEH

MOV P1,#0FFH

LOOP11:

MOV C,P1.7

MOV A,P0

RLC A

MOV P0,A

MOV A,P1

RLC A

MOV P1,A

JNB P2.1,LOOP2

SJMP LOOP11

LOOP2:

MOV P0,#0FCH

MOV P1,#0FFH

LOOP21:

MOV C,P1.7

MOV A,P0

RLC A

MOV P0,A

MOV A,P1

RLC A

MOV P1,A

JNB P2.0,LOOP1

SJMP LOOP21

DELAY:

MOV R2,#60

DELAY1:

MOV R3,#250

DJNZ R3,$

DJNZ R2,DELAY1

RET

END

0条大神的评论

发表评论