单片机用什么语言编写程序

单片机用什么语言编写程序,第1张

一般是C语言或者汇编语言

1、大多数情况下,单片机运行的程序,都是C语言编写的。不过并不是纯粹的传统C语言,而是变种后的C51语言。

单片机C51语言是由C语言继承而来的。和C语言不同的是,C51语言运行于单片机平台,而C语言则运行于普通的桌面平台。C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件 *** 作能力。对于具有C语言编程基础的工程师,能够轻松地掌握单片机C51语言的程序设计。

2、汇编语言:

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的 *** 作码,用地址符号(Symbol)或标号(Label)代替指令或 *** 作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件 *** 作和高要求的程序优化的场合。驱动程序、嵌入式 *** 作系统和实时运行程序都需要汇编语言。

在一些情况下,C51并不能完美的实现功能,所以汇编语言是对C51的一个重要补充。一般来说,启动部分(基础硬件的初始化),往往是由汇编语言完成的。除此以外,一些要求时效性特别强,效率要求特别高时,也需要使用汇编语言完成。

1、

#include<reg51h>

unsigned char LED;

void t0isr() interrupt

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

P1=LED;

LED=(LED<<1)&0xfe;

}

main()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TR0=1;

ET0=1;

EA=1;

LED=0x01;

while(1);

}

2、

#include<reg51h>

sbit p11=P1^1;

void t0isr() interrupt

{

TH0=(65536-500)/256;

TL0=(65536-500)%256;

p11=~p11;

}

main()

{

TMOD=0x01;

TH0=(65536-500)/256;

TL0=(65536-500)%256;

TR0=1;

ET0=1;

EA=1;

while(1);

}

系统晶振是

110592

MHz

ORG

0000H

LJMP

START

ORG

0003H

;INT

0

中断入口地址

LJMP

INT0

ORG

0040H

START:

MOV

SP,#60H

SETB

EX0

;INT

0

中断有效

SETB

IT0

SETB

EA

LCALL

STATUS0

;初始状态(都是红灯)

CIRCLE:

LCALL

STATUS1

;南北绿灯,东西红灯

LCALL

STATUS2

;南北绿灯闪转黄灯,东西红灯

LCALL

STATUS3

;南北红灯,东西绿灯

LCALL

STATUS4

;南北红灯,东西绿灯闪转黄灯

LJMP

CIRCLE

INT0:

PUSH

PSW

;保护现场

PUSH

2

PUSH

ACC

MOV

DPTR,#8300H

MOV

A,#0FH

;南北,东西都亮红灯

MOVX

@DPTR,A

MOV

R2,#100

;延时10秒

LCALL

DELAY

POP

ACC

;恢复现场

MOVX

@DPTR,A

POP

2

POP

PSW

RETI

STATUS0:

;南北红灯,东西红灯

MOV

DPTR,#8300H

MOV

A,#0FH

MOVX

@DPTR,A

MOV

R2,#10

;延时1秒

LCALL

DELAY

RET

STATUS1:

;南北绿灯,东西红灯

MOV

DPTR,#8300H

MOV

A,#96H

;南北绿灯,东西红灯

MOVX

@DPTR,A

MOV

R2,#200

;延时20秒

LCALL

DELAY

RET

STATUS2:

;南北绿灯闪转黄灯,东西红灯

MOV

DPTR,#8300H

MOV

R3,#03H

;绿灯闪3次

FLASH:

MOV

A,#9FH

MOVX

@DPTR,A

MOV

R2,#03H

LCALL

DELAY

MOV

A,#96H

MOVX

@DPTR,A

MOV

R2,#03H

LCALL

DELAY

DJNZ

R3,FLASH

MOV

A,#06H

;南北黄灯,东西红灯

MOVX

@DPTR,A

MOV

R2,#10

;延时1秒

LCALL

DELAY

RET

STATUS3:

;南北红灯,东西绿灯

MOV

DPTR,#8300H

MOV

A,#69H

MOVX

@DPTR,A

MOV

R2,#200

;延时20秒

LCALL

DELAY

RET

STATUS4:

;南北红灯,东西绿灯闪转黄灯

MOV

DPTR,#8300H

MOV

R3,#03H

;绿灯闪3次

FLASH1:

MOV

A,#6FH

MOVX

@DPTR,A

MOV

R2,#03H

LCALL

DELAY

MOV

A,#69H

MOVX

@DPTR,A

MOV

R2,#03H

LCALL

DELAY

DJNZ

R3,FLASH1

MOV

A,#09H

;南北红灯,东西黄灯

MOVX

@DPTR,A

MOV

R2,#10

;延时1秒

LCALL

DELAY

NOP

RET

DELAY:

;延时子程序

PUSH

2

PUSH

1

PUSH

0

DELAY1:

MOV

1,#00H

DELAY2:

MOV

0,#0B2H

DJNZ

0,$

DJNZ

1,DELAY2

;延时

100

mS

DJNZ

2,DELAY1

POP

0

POP

1

POP

2

RET

END

1:针对需要开发的设备构建原理图,可以用AD09,PROTEUS 软件

2:针对需要实现的功能编程,使用KEIL编写调试(51,AVR单片机)

3:程序编好测试,测试包括功能测试,老化测试,可靠性测试等

单片机编程就是简单的嵌入式软件开发过程,首先你应该精通C语言(当然也有使用汇编语言的,不过主流还是使用C的),能够熟练运用C语言实现相应的单片机要实现的功能。所谓的单片机开发,就必须对单片机有一定的了解。这就是为什么嵌入式的工资高,入门难的原因,它必须要有一定的硬件基础,还需配合很好的编码能力。如果你掌握了单片机硬件,同时也精通编程,那么写单片机程序也就是水到渠成的事了。

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。

单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。

以上就是关于单片机用什么语言编写程序全部的内容,包括:单片机用什么语言编写程序、单片机编程、用单片机汇编写一个程序,求高手帮忙等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存