
51单片机学习板是用来学习C语言的吗,怎么有人说用它可以学习汇编语言?
6个回答
展开全部
可以的,我用的51就是汇编编程,不过C更加好些。比方说流水灯的汇编:
ORG 00H
START:
MOV A, #0FFH
CLR C
MOV R1, #8
LEFT: ;向左流动
RLC A
MOV P1, A
CALL DELAY
DJNZ R1, LEFT
MOV R2, #7
RIGHT: ;向右流动
RRC A
MOV P1, A
CALL DELAY
DJNZ R2, RIGHT
JMP START
DELAY: ;延时200毫秒
MOV R3, #20
D1:
MOV R4, #20
D2:
MOV R5, #248
DJNZ R5, $
DJNZ R4, D2
DJNZ R3, D1
RET
END
如果用C语言的就是:
**************************************************************
文件名称:flash_led.c
文件说明:流水灯C程序
编写日期:2006年10月5日
程序说明:MCU采用AT89S51,外接12M晶振,P1口输出
*************************************************************/
#include //51系列单片机定义文件
#define uchar unsigned char //定义无符号字符
#define uint unsigned int //定义无符号整数
void delay(uint); //声明延时函数
void main(void)
{
uint i;
uchar temp;
while(1)
{
temp=0x01;
for(i=0;i<8;i++) //8个流水灯逐个闪动
{
P1=~temp;
delay(100); //调用延时函数
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++) //8个流水灯反向逐个闪动
{
P1=~temp;
delay(100); //调用延时函数
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++) //8个流水灯依次全部点亮
{
P1=temp;
delay(100); //调用延时函数
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++) //8个流水灯依次反向全部点亮
{
P1=temp;
delay(100); //调用延时函数
temp>>=1;
}
}
}
void delay(uint t) //定义延时函数
{
register uint bt;
for(;t;t--)
for(bt=0;bt<255;bt++);
}
建议楼主如果初学就用C语言吧。汇编检查错误比较麻烦的。鄙人就常常为这个问题担忧。
51单片机是初学者学习的,到后来可以用MSP430单片机,性能相当强大,而且超低功耗,ROM和RAM比51大十几倍至少。这款单片机也可以用C和汇编,但建议用C。呵呵,加油楼主,学习单片机学进去了是快乐的。
ORG 00H
START:
MOV A, #0FFH
CLR C
MOV R1, #8
LEFT: ;向左流动
RLC A
MOV P1, A
CALL DELAY
DJNZ R1, LEFT
MOV R2, #7
RIGHT: ;向右流动
RRC A
MOV P1, A
CALL DELAY
DJNZ R2, RIGHT
JMP START
DELAY: ;延时200毫秒
MOV R3, #20
D1:
MOV R4, #20
D2:
MOV R5, #248
DJNZ R5, $
DJNZ R4, D2
DJNZ R3, D1
RET
END
如果用C语言的就是:
**************************************************************
文件名称:flash_led.c
文件说明:流水灯C程序
编写日期:2006年10月5日
程序说明:MCU采用AT89S51,外接12M晶振,P1口输出
*************************************************************/
#include //51系列单片机定义文件
#define uchar unsigned char //定义无符号字符
#define uint unsigned int //定义无符号整数
void delay(uint); //声明延时函数
void main(void)
{
uint i;
uchar temp;
while(1)
{
temp=0x01;
for(i=0;i<8;i++) //8个流水灯逐个闪动
{
P1=~temp;
delay(100); //调用延时函数
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++) //8个流水灯反向逐个闪动
{
P1=~temp;
delay(100); //调用延时函数
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++) //8个流水灯依次全部点亮
{
P1=temp;
delay(100); //调用延时函数
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++) //8个流水灯依次反向全部点亮
{
P1=temp;
delay(100); //调用延时函数
temp>>=1;
}
}
}
void delay(uint t) //定义延时函数
{
register uint bt;
for(;t;t--)
for(bt=0;bt<255;bt++);
}
建议楼主如果初学就用C语言吧。汇编检查错误比较麻烦的。鄙人就常常为这个问题担忧。
51单片机是初学者学习的,到后来可以用MSP430单片机,性能相当强大,而且超低功耗,ROM和RAM比51大十几倍至少。这款单片机也可以用C和汇编,但建议用C。呵呵,加油楼主,学习单片机学进去了是快乐的。
展开全部
51单片机学习板既不是用来学c,也不是用来学汇编的,是用来学单片机的。只是在学习单片机的过程中,你需要用到c或者是汇编语言来进行编程。用c和汇编的区别在于c方便,可移植性高,而汇编可以更好的理解单片机的结构,建议初学者先用汇编,等对单片机较为熟练之后改用c
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
汇编语言一门语言,单片机是硬件,怎么能用那学习呀,纯粹是瞎扯,别听那些人瞎说,肯定是想让你买他的学习板把
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以学习汇编,当然也可以学习C语言。不过现在主要是C 编程了,因为它容易啊!汇编太生涩了,呵呵,祝学习愉快.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
学习板一般指硬件,编程语言可以是汇编,也可以是C,结合自己情况,看需要什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
都可以用,51可以用keil c语言编写,也可以用汇编写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询