找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9259|回复: 31
收起左侧

如何写一个最简单单片机程序

  [复制链接]
ID:193266 发表于 2017-4-25 00:23 | 显示全部楼层 |阅读模式
  • 双击运行kile编译软件,并新建工程,选择你的开发板对应的单片机型号,我的是STC90C51,选择对应的型号为AT89C51。

  • 设置输出项,设置产生输出hex文件,单片机晶振选择对应的频率。然后我们就可以开始写程序啦!在编辑器里写入以下代码:
    #include <reg51.h>     //51系列单片机头文件
    sbit led=p1^1 ;             //位定义,声明P1口的第一位
    void main()
        {
                   led=0 ;         //点亮第一个发光二极管

         }



回复

使用道具 举报

ID:27916 发表于 2017-4-25 08:23 | 显示全部楼层
不完整哦,LED = 0;下面增加while (1);
回复

使用道具 举报

ID:157057 发表于 2017-4-25 09:50 | 显示全部楼层
嗯。楼主你已经写出来了。
回复

使用道具 举报

ID:123289 发表于 2017-4-25 10:41 | 显示全部楼层
抄书。。。。
回复

使用道具 举报

ID:186936 发表于 2017-4-25 11:40 | 显示全部楼层
对着呢啊
回复

使用道具 举报

ID:193347 发表于 2017-4-25 12:04 | 显示全部楼层
上面的代码有有点小瑕疵,我认为要加上这样一个void main()     {                led=0 ;         //点亮第一个发光二极管       }
回复

使用道具 举报

ID:193347 发表于 2017-4-25 12:04 | 显示全部楼层
上面的代码有有点小瑕疵,我认为要加上这样一个void main()     {      while(1)        led=0 ;         //点亮第一个发光二极管       }
回复

使用道具 举报

ID:193347 发表于 2017-4-25 12:05 | 显示全部楼层
上面的代码有有点小瑕疵,我认为要加上这样一个要这样改#include <reg51.h>     //51系列单片机头文件 sbit led=p1^1 ;             //位定义,声明P1口的第一位void main()     {      while(1)      {  led=0 ;}   }      //点亮第一个发光二极管       }
回复

使用道具 举报

ID:193495 发表于 2017-4-25 17:21 来自手机 | 显示全部楼层
这是教程?
回复

使用道具 举报

ID:193496 发表于 2017-4-25 17:24 | 显示全部楼层
看书 书上有最简单的
回复

使用道具 举报

ID:193591 发表于 2017-4-25 21:04 | 显示全部楼层
你可以写一个最小系统的代码,书上有,很简单
回复

使用道具 举报

ID:194107 发表于 2017-4-27 11:44 | 显示全部楼层
一个LED闪烁
/****************************** (C) COPYRIGHT 2013 YQDZ **************************
* 文  件  名      : 闪烁1个LED.C
* 作      者      : YQDZ
* 版      本      : V1.0
* 日      期      : 2013/07/02
* 主  控  MCU     : STC89C52RC
* 主      频      : 11.0592MHz
* 编  译  器      : Keil C51 V4.22
* 描      述      : P1口的1个LED灯闪烁,该程序是单片机学习中最简单最基础的,通过程
*                                        序,了解如何控制端口的高低电平。
*********************************************************************************/
#include"reg52.h"                                                 /* 调用头文件,单片机内部寄存器都定义在此,用的时候需要先调用 */

typedef        unsigned char UINT8;            /* 给unsigned char重新定义一个别名UINT8,用的时候直接写UINT8就可以 */
typedef unsigned int  UINT16;                        /* 给unsigned int重新定义一个别名UINT16,用的时候直接写UINT16就可以 */
                  
/******************************** 引脚定义 **************************************
                        单片机                    LED
                         P10                L2
*********************************************************************************/
sbit        L2 = P1^0;                                                /* 定义L2到P1^0 */

/*******************************************************************************
* 函  数  名      : DelayMs
* 描      述      : 毫秒延时.
* 输      入      : UINT8 Ms:
*                   要延时的Ms时间. Ms值范围为0-65535,数值越大延时时间越长
* 返      回      : 无.
*******************************************************************************/
void DelayMs( UINT16 Ms )
{
        UINT8 i;
         
        while (Ms--)
          {
            for ( i = 0; i < 114; i++ );        /* 循环114大概是1MS时间 */
          }
}

/*******************************************************************************
* 函  数  名      : main
* 描      述      : 主函数
* 输      入      : 无.
* 返      回      : 无.
********************************************************************************/
void main (void)
{                                          
        while(1)                                                 /* 主循环 */        
        {
                L2 = 1;                                                        /* 端口送高电平,LED熄灭 */
                DelayMs(1000);                                        /* 延时大概1S */
                L2 = 0;                                                        /* 端口送低电平,LED点亮 */
                DelayMs(1000);                                        /* 延时大概1S */
        }
}
回复

使用道具 举报

ID:192776 发表于 2017-4-27 18:35 | 显示全部楼层
楼主写的也太简单了吧!
回复

使用道具 举报

ID:84000 发表于 2017-4-27 18:57 | 显示全部楼层
重要的事情说三遍。
P1^1
P1^1
P1^1
其实也无所谓,反正最后还是要在板子上试的。没在板子上试过的程序都不能叫完整的。
回复

使用道具 举报

ID:190583 发表于 2017-4-27 20:40 | 显示全部楼层
没问题
回复

使用道具 举报

ID:194345 发表于 2017-4-27 20:42 | 显示全部楼层
首先可以根据里程写,然后与自己编写
回复

使用道具 举报

ID:194367 发表于 2017-4-27 21:29 | 显示全部楼层
要学会看懂人家的程序先
回复

使用道具 举报

ID:139992 发表于 2017-4-27 21:49 | 显示全部楼层
流水灯
回复

使用道具 举报

ID:194388 发表于 2017-4-27 21:51 | 显示全部楼层

抄书。。。。
回复

使用道具 举报

ID:194405 发表于 2017-4-27 22:36 | 显示全部楼层
楼主加油吧!!
回复

使用道具 举报

ID:194407 发表于 2017-4-27 23:23 | 显示全部楼层
努力啊
回复

使用道具 举报

ID:194421 发表于 2017-4-27 23:33 | 显示全部楼层
首先你得有相应的软件
回复

使用道具 举报

ID:194496 发表于 2017-4-28 10:51 | 显示全部楼层
点亮一个LED灯#include <reg51.h>     //51系列单片机头文件 sbit led=p1^1 ;             //位定义,声明P1口的第一位 void main()     {                led=0 ;         //点亮第一个发光二极管       }
回复

使用道具 举报

ID:47933 发表于 2017-5-1 10:51 | 显示全部楼层
这个已经是最简单的了,已经不能再简单了。
回复

使用道具 举报

ID:194034 发表于 2017-5-4 11:16 | 显示全部楼层
双击运行kile编译软件,并新建工程,选择你的开发板对应的单片机型号,我的是STC90C51,选择对应的型号为AT89C51。  设置输出项,设置产生输出hex文件,单片机晶振选择对应的频率。然后我们就可以开始写程序啦!在编辑器里写入以下代码: #include <reg51.h>     //51系列单片机头文件 sbit led=p1^1 ;             //位定义,声明P1口的第一位 void main()     {                led=0 ;         //点亮第一个发光二极管       }
回复

使用道具 举报

ID:194034 发表于 2017-5-4 11:19 | 显示全部楼层
在kile编译软件中,新建工程,选择单片机型号,一般都是AT89C51。  设置好hex文件。然后开始写程序,#include <reg51.h>              void main()     {                led=0 ;         //点亮第一个发光二极管       }
回复

使用道具 举报

ID:195401 发表于 2017-5-5 01:01 | 显示全部楼层
播放音乐也行
回复

使用道具 举报

ID:175793 发表于 2017-5-5 06:45 | 显示全部楼层
先想好做什么,一点点写,慢慢来
回复

使用道具 举报

ID:192615 发表于 2017-5-5 08:55 | 显示全部楼层
自己找百度原理图 用仿真文件画吧
回复

使用道具 举报

ID:196836 发表于 2017-5-5 10:42 | 显示全部楼层
看郭天祥的视频
回复

使用道具 举报

ID:196852 发表于 2017-5-5 11:08 | 显示全部楼层
楼主加油啊
回复

使用道具 举报

ID:196847 发表于 2017-5-5 11:30 | 显示全部楼层
单片机书上有
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表