求大神在keil上帮写51单片机C语言程序 25

第一个实验:通过P0口控制8个LED灯,通过K1按键改变亮灯位置。具体为:程序开始时,D11灯点亮,其余7个灯(D12-D18)处于熄灭状态;按1次K1按键,D11灯熄灭... 第一个实验:通过P0口控制8个LED灯,通过K1按键改变亮灯位置。具体为:程序开始时,D11灯点亮,其余7个灯(D12-D18)处于熄灭状态;按1次K1按键,D11灯熄灭,D12灯点亮,此时D13-D18仍然处于熄灭状态;以此类推,每按1次K1按键,亮灯的位置发生一次变化,当D18亮完后,又循环到D11点亮。
第二个实验:通过P0口控制8个LED灯,通过定时器查询工作方式,实现D11-D18顺序轮流点亮,每个灯亮半秒再灭半秒(即程序开始运行后,D11首先点亮,半秒后D11熄灭,再半秒钟后D12点亮,以此类推,D18熄灭半秒后再循环到D11点亮)。晶振频率为12Mhz
展开
 我来答
silence335
2018-10-10
知道答主
回答量:24
采纳率:0%
帮助的人:8.8万
展开全部
//第一个实验:
//假设8个LED阴极指向单片机,D11连接P0.1,D12连接P0.2 ... D18连接P0.7
//假设K1按键在P2.3引脚
#include<reg51.h>
#include<intrins.h>
sbit k1=P2^3;//假设K1按键在P2.3引脚
void main()
{
P0=0xfe;
while(1)
{
if(k1==0)
{
while(k1==0);
P0=_crol_(P0,1);
}
}

}

//第二个实验:
//假设8个LED阴极指向单片机,D11连接P0.1,D12连接P0.2 ... D18连接P0.7
#include<reg51.h>
char led[]={0xfe,0xff,0xfd,0xff,0xfb,0xff,0xf7,0xff,0xef,0xff,0xdf,0xff,0xbf,0xff,0x7f,0xff};

void main()
{
char i=0;
char counter=0;
TMOD=0x01;//T0 工作方式1
TH0=(655356-50000)/256;//延时50ms
TL0=(655356-50000)%256;//延时50ms
TR0=1;//启动T0
while(1)
{
if(TF0==1)//查询
{
TH0=(655356-50000)/256;//重新延时50ms
TL0=(655356-50000)%256;//重新延时50ms
counter++;
if(counter==10)//延时0.5秒
{
counter=0;//重新开始新一轮0.5秒延时
i++;
if(i==16)
{
i=0;
}
P0=led[i];//点灯
}
}
}
}
佼胤雅Wj
2018-10-09 · TA获得超过141个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:30.4万
展开全部
Keil写的C51单片机程序里面为C语言,也可以是汇编语言。里面保存格式决定用汇编或C语言
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式