keil使用教程编写第一个led灯程序
1、新建一个空文件夹
2、打开keil-->newuVisionproject
3、选择目录,命名文件
4、选择芯片
5、添加文件
6、编写C51单片机程序
7、生成可以加载单片机里的hex文件
8、编译生成hex文件
9、将hex文件导入单片机
main:
mov P1,#0aah
acall delay
mov P1,#55H
acall delay
sjmp main
delay:mov r7,#0ffh
de:mov r6,#0ffh
djnz r6,$
djnz r7,de
ret
end 这就是你想要的效果,不妨试试哦!
初始化部分你要自己根据芯片资料写,数码管部分可以根据数码管的资料做数组xs[10]={0x3b……}要看数码管引脚定义了,看原理图看不出来的,可以做个200MS的定时器,然后计数5次就是1S
直接给数码管的IO口附数组的值,如P1=xs[5];要看你给的是哪个IO口了,我这边看不清你的原理图,LED亮200MS后就换动作太快,看不出效果,可以把时间加长
1C51硬件上,必须LED阴极接IO口,阳极接VCC,记得串个电阻。因为Ioh非常小。接反了,啥都不亮。(所以P11=1肯定不会亮的)
2楼上的程序不完善或不准确。P1^1语法错了,他们没有调试过,呵呵。我调过了
#include<reg51h>
#define ON 0
#define OFF 1
sbit LED11=P1^1;
main()
{
unsigned int i,j;
LED11=ON; //根据需要设定。最好如下做个延时,跳变能看到效果。
while(1)
{
for(i=0;i<5000;i++)for(j=0;j<200;j++);
LED11=OFF;
for(i=0;i<5000;i++)for(j=0;j<200;j++);
LED11=ON;
}
}
祝你马到成功,别把兴趣给消磨掉了。
// 12MHz晶振
#include<reg51h>
sbit LED=P1^0; //LED接P10
unsigned int cnts_per250us;
void main( )
{
LED=LED;
EA=1;
ET0=1;
TMOD=0x02; // 自动重装模式
TH0=TL0=6;
TR0=1;
while(1);
}
void t0() interrupt 1
{
if ( ++cnts_per250us==40000)
{
LED=~LED;
cnts_per250us=0;
}
}
void set_led(int n, int status)
{
// TODO, board specific
}
void wait_second(int n)
{
// TODO, board specific
}
int main()
{
int i, lastLED;
for (i=0; i<4; i++)
set_led(i, 0);
lastLED = 0;
while (1) {
for (i=0; i<4; i++) {
set_led(lastLED, 0);
set_led(i, 1);
lastLED = i;
wait_second(1);
}
}
}
点亮 小灯的程序我们第二课完成了,就是让 LED = 0。熄灭小灯的程序也很简单,就是 LED = 1。点亮和熄灭都会了,那么如果我们在亮和灭中间加个延时,反复不停的点亮和熄灭小灯,就成了闪烁了。
我们首先复习一下 Keil 写程序的过程,建立工程-->保存工程-->建立文件-->添加文件到工程-->编写程序-->编译-->下载程序。
LED 对于有 C 基础的同学来说很简单,那我先写出来,大家可以先看下。没有C 语言基础的同学也可以跟着抄一遍,下节课我会补充部分 C 语言基础知识,这样你先抄一遍后,再跟着看 C 语言基础知识的时候也比较容易理解透彻。
纯文本复制
#<reg52h>
sbit LED = P0^0;
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
main(){ //void 即函数类型
//以下为声明语句部分
unsigned int i = 0; //定义一个变量 i,并赋初值 0
//以下为执行语句部分
ENLED = 0; //U3、U4 两片 74HC138 总使能
ADDR3 = 1; //使能 U3 使之正常输出
ADDR2 = 1; //经 U3 的 Y6 输出开启Q16
ADDR1 = 1;
ADDR0 = 0;
(1){
LED = 0; //点亮小灯
for (i=0; i<30000; i++); //延时一段时间
LED = 1; //熄灭小灯
for (i=0; i<30000; i++); //延时一段时间
}
}
大家把这个程序编译一下,下载到里,就会发现 LED2 这个小灯会闪烁了。
以上就是关于Keil四个LED灯点亮程序全部的内容,包括:Keil四个LED灯点亮程序、单片机间隔点亮一led灯的汇编语言程序、用简单的C语言程序控制LED灯的点亮等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)