用户工具

站点工具


侧边栏

抱歉,您没有权限增加页面
3.单片机c语言:1.点亮一个led

8位流水灯学单片机C语言之点亮一个LED

在学习单片机之前,相信百分之九十的人在学校都是学过C语言的,如果还有没学过的,那就买本《C程序设计语言》然后电脑上下个软件 turboc2.0 C语言编程软件练练基本的语法。不想看书,就在网上找C语言的视屏教程来看,得把最基本的东西学会。关于搭建单片机开发环境请查看STC51 Discovery开发板教程第一节。刚学C语言的时候第一个程序都是输出一个HelloWorld吧,这节来开始我们的第一个单片机程序,点亮一个LED灯。看不懂没关系,直接抄在keil中编译下载到单片机,看到灯亮了,再去深究。为照顾初学者我们先来看C语言输出HelloWord的代码如下:

#include <stdio.h>  
 
void main()
{
  printf("Hello World \n");
}
  • include称为文件包含命令,扩展名为.h的文件称为头文件,其意义是把尖括号<>或引号““内指定的文件包含到本程序来,成为本程序的一部分。C语言的头文件中包括了各个标准库函数的函数原型。因此,凡是在程序中调用一个库函数时,都必须包含该函数原型所在的头文件,你也可以把你常用的函数写在自己命名的头文件里来引用,放到你自己的工程文件夹下就可以了。
  • void main表示这是一个主函数,每一个C源程序都必须有,且只能有一个主函数(main函数)。
  • 函数调用语句,printf函数的功能是把要输出的内容送到显示区去显示。printf函数是一个由系统定义的标准函数,可在程序中直接调用,由头文件stdio.h提供。

好了,来开始看点亮一个LED灯的代码:

#include<stc12.h> //STC12系列头文件 复制到工程目录下
sbit LEDK = P1^4;//位定义 定义一个IO口控制三极管基极

void main(void)
{
  LEDK=0;  //置0使PNP型三极管导通LED负极接地
  P0=0x00;	//P0口电平初始化为0 关闭全部LED
  P0M1=0x00;
  P0M0=0xff; //P0口全部设置为推挽输出 见手册87页 IO口模式配置
  while(1)//大循环,否则程序跑一次就停止了
  {
	P0=0x01;//直接赋值操作P0口最低位LED置高点亮,0x01=0000 0001
  }
}
以上代码完整工程在\STC51 Discovery\实验例程\基础实验\实验一

下面再来看一个流水灯代码,使用intrins.h头文件中的左移右移函数来实现,不懂没关系,把代码抄一遍,看看效果吧,刚开始就要练一下手感,提高学习兴趣。

#include<stc12.h> //STC12系列头文件 复制到工程目录下
#include <intrins.h>  //提供了左移右移和NOP等函数,在Keil安装目录,
				  //C51\INC文件夹中有些常用头文件以后还会用到
sbit LEDK = P1^4;// 控制三极管基极

void main(void)
{   
    unsigned int i; 
    LEDK=0;  //置0使PNP型三极管导通LED负极接地
    P0M1=0x00;
    P0M0=0xff; //P0口全部设置为推挽输出 见手册87页 IO口模式配?
    P0=0x01;   //P0赋值先点亮最低位的一个灯,为左移做准备。0000 0001
  //P0=0x80;  //右移初始值 为右移做准备
    for(i=0;i<60000;i++); //亮一会
    
    while(1)
    {	//使用此函数每次读取P0口寄存器中的值,左移一位在赋给P0口
       P0=_crol_(P0,1);//左移并赋值到P0口0x01<<1 依此循环
    // P0=_cror_(P0,1); //右移并赋值到P0口
       for(i=0;i<60000;i++); //亮一会
    }
}
以上代码完整工程在\STC51 Discovery\实验例程\基础实验\实验二
3.单片机c语言/1.点亮一个led.txt · 最后更改: 2017/02/23 16:04 由 wawooo