汇编语言或C语言编写一个控制灯闪烁的程序

汇编语言或C语言编写一个控制灯闪烁的程序,第1张

我写的这芦拆个程序应该可以,按一下灯亮,再按一下灯灭陪衡枣

#include

"REG52.H"

sbit

LED1_01

=

P1^1

/拦碧/LED灯

sbit

KEY0_01

=

P1^2

//按键

void

Delay_1ms(unsigned

int

Time)

{

unsigned

int

x,

y

for(x

=

Time

x

>

0

x--)

for(y

=

120

y

>

0

y--)

}

int

main(void)

{

LED1_01

=

1

//打开LED灯点亮

while(1)

{

if(KEY0_01

==

0)

//检测按键是否按下

{

Delay_1ms(10)

//延时去抖动

if(KEY0_01

==

0)

//确定按键按下

{

LED1_01

=

~

LED1_01

//取反LED灯

[

.

]

}

while(KEY0_01

==

0)

//检测松手

}

}

}

你的图里有A/D转换器

AD转换函数ADC_DIS.C

#include

<REGX51.H>

#include"def.h"

#include"lib.h"

sbit

adc_cs=P1^0

sbit

adc_rd=P1^1

sbit

adc_wr=P1^2

/***ADC0804启动转换函数***/

INT8U

start_ad()

{

INT8U

temp

adc_cs=0

adc_wr=1

delay(1)

adc_wr=0

delay(1)

adc_wr=1

delay(1)

//启动AD

adc_rd=1

delay(1)

adc_rd=0

delay(1)

temp=P2

delay(1)

adc_rd=1

delay(1)

//读取数据

return

temp

}

用这个程序。

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

//延时

void DelayMS(uint x)

{

uchar i

while(x--)

{

for(i=0i<120i++)

}

}

//主程序

void main()

{

uint s

while(1)

{

P0=0xfe

DelayMS(150)

for(s=8s>1s--)

{

P0=_crol_(P0,1) //P0 的值向左循环移动

DelayMS(150)

}

P0=0x00

DelayMS(150)

p0=0xff

DelayMS(150)

扩展资料:

常用单片机汇编指令:

1 .MOV A,Rn 寄存器内容送入累加器

2 .MOV A,direct 直接地址单元中的数据送入累加器

3 .MOV A,@Ri (i=0,1)间接RAM 中的数据送入累加器

4 .MOV A,#data 立即数送入累加器

5 .MOV Rn,A 累加器内容送入寄存器

6 .MOV Rn,direct 直接地址单元中的数据送入寄存器

7 .MOV Rn,#data 立即数送入寄埋昌存器

8 .MOV direct,A 累加器内容送入直接地址单元

9 .MOV direct,Rn 寄存器内容送入直接地址单元

10. MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元

11 .MOV direct,@Ri (i=0,1)间接RAM 中的数据送入直接地址单元

12 MOV direct,#data 立即数送入直接地址单元

13 .MOV @Ri,A (i=0,1)累加器内容送间接RAM 单元

14 .MOV @Ri,direct (i=0,1)直接地址单元数据送入间接RAM 单元

15 .MOV @Ri,#data (i=0,1)立即数送入间接RAM 单元

16 .MOV DPTR,#data16 16 位立即数送入地址寄存器

17 .MOVC A,@A+DPTR 以DPTR为基地址变址好宽寻址单元中的数据送入累加器

18 .MOVC A,@A+PC 以PC 为基地址变址寻址单元中的弯袜扒数据送入累加器

19 .MOVX A,@Ri (i=0,1)外部RAM(8 位地址)送入累加器

20 .MOVX A,@DPTR 外部RAM(16 位地址)送入累加器

21 .MOVX @Ri,A (i=0,1)累计器送外部RAM(8 位地址)

22 .MOVX @DPTR,A 累计器送外部RAM(16 位地址)

23 .PUSH direct 直接地址单元中的数据压入堆栈

24 .POP direct d栈送直接地址单元

25 .XCH A,Rn 寄存器与累加器交换

26 .XCH A,direct 直接地址单元与累加器交换

27 .XCH A,@Ri (i=0,1)间接RAM 与累加器交换

28 .XCHD A,@Ri (i=0,1)间接RAM 的低半字节与累加器交换

参考资料来源:百度百科-单片机汇编指令


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

原文地址: http://outofmemory.cn/yw/12395065.html

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

发表评论

登录后才能评论

评论列表(0条)

保存