一、简单讲:想要灯亮,就将对应端口置0。反之就是灯灭。
二、详细讲:假设用keil编写,新建工程->选择单片机型号->新建源文件->设置output(点魔术棒图标勾选create hex file)。
我坦神们用P2^0端口连接一个led(led另一端连电源)。先给端口起别名sbit led1=P2^0之后代码中需要灯亮就写led1=0;即可。(头文件自行导入)。
程序让知亏写好,编译后将生成的hex(路径在猛信之前的设置中)写入单片机或加载到仿真电路中运行。
我写的这芦拆个程序应该可以,按一下灯亮,再按一下灯灭陪衡枣#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
}
用这个程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)