日志档案

发表于 2007-3-30 14:11:21

37

标签: 第一个程序  

初学者的第一个单片机程序

/*
***************************************************************************
*     (C) Copyright 2007,单片机初学者园地
*                          All Rights reserved.
*
*项目名称:    51单片机学习开发系统
*             
*本文件名称:first_mcu.c      
* 完成作者 : 歪歪 
* 当前版本 : V1.0   
* 描    述 :      这个程序专门为刚刚开始接触单片机的学习者设计的,
*             主要是帮助其学会单片机是怎么调试的,如何自己编写的程
*             序,从课本的迷团中走出来。
*                本程序结构简单、合理,有帮助于初学者养成良好的编
*             程风格。
****************************************************************************
*/


#include        <reg52.h>   //调用头文件(单片机内部的寄存器定义)

/******本段为硬件I/O口定义********/
sbit  LED0   = P0 ^ 0;
sbit  LED1   = P0 ^ 1;
sbit  LED2   = P0 ^ 2;
sbit  LED3   = P0 ^ 3;

/************主程序**************/
main()
{
    LED0=1;    //LED0发光二极管灭
    LED1=0;    //LED1发光二极管亮
    LED2=1;    //LED2发光二极管灭
    LED3=0;    //LED3发光二极管亮

  while(1);    //单片机在这里等待(待机
}

;*                               与上面对应的汇编程序
;**************************************************************************
;      (C) Copyright 2007,单片机初学者园地
;                          All Rights reserved.
;
;项目名称:    51单片机学习开发系统
;              
;本文件名称:first_mcu.asm     
; 完成作者 : 歪歪 
; 当前版本 : V1.0   
; 描    述 :      这个程序专门为刚刚开始接触单片机的学习者设计的,
;             主要是帮助其学会单片机是怎么调试的,如何自己编写的程
;             序,从课本的迷团中走出来。
;                本程序结构简单、合理,有帮助于初学者养成良好的编
;             程风格。
;***************************************************************************
;*
;***********本段为硬件I/O口定义************
LED0             EQU                   P0.0
LED1             EQU                   P0.1
LED2             EQU                   P0.2
LED3             EQU                   P0.3

               ORG    0000H                ;上电后程序从这里运行
               AJMP  MAIN
              
MAIN:        SETB  LED0               ;LED0发光二极管灭
                   CLR    LED1               ;LED1发光二极管亮
                   SETB  LED2               ;LED2发光二极管灭
                   CLR    LED3               ;LED3发光二极管亮
                   SJMP   $                     ;单片机在这里等待(待机)
                   END

系统分类: 单片机   |   用户分类: 单片机入门   |   来源: 原创   |   【推荐给朋友】

    阅读(1542)    回复(12)  

投一票您将和博主都有获奖机会!

  • 2007-5-30 21:35:05

    支持一下 ,虽然看不懂.....呵呵

  • ahai0306

    2007-4-18 21:53:15

    以上的程序虽然很简单,但也经过了下载测试,完全正常,本程序的目的是为了让初学者实验程序是否下载成功。是初学者从书本到实践迈出第一步的好程序。

    本程序的功能是,点亮LED1和LED2。

    以后本博客会陆续发表C和汇编的原创文章。

  • hkcai

    2007-4-14 0:19:49

    好,期待博主贴出更多的程序,并能附上电路图。

  • ahai0306

    2007-3-30 16:23:34

    静态显示,不需要延时,呵呵

    我的想法是把最简单的程序送给初学者!

  • 甜津津

    2007-3-30 16:39:49

    不错,写的很详细.让人容易看懂.

  • 海洋

    2007-3-30 18:48:29

    不错呀,嘻嘻。可以让人看懂。要是能把LED的接线图贴上去,初学者会看得更明白。到以后程序复杂了一点之后就一定要贴图。要不然初学者很难理解。嘻嘻,这是我个人的看法。

  • wch6661

    2007-3-30 15:57:07

    没延时!

  • ahai0306

    2007-3-31 9:51:31

    以上程序都是在程序上面做了硬件端口定义,而不是在程序中采用直接操作I/O口的方式,这样方便了程序的移植。(在换了单片机或着更改了I/O口时,只需要改上面的端口定义即可)。

    帮助初学者养成良好的编程习惯。

  • ahai0306

    2007-5-22 20:16:49

    只要有兴趣,坚持学,就能行

  • 蛐蛐

    2007-5-18 9:57:08

    要学习单片机,能给些建议么?

  • 搜索

    2007-8-8 12:33:11

    张立海:你行啊!

  • e_times

    2008-1-26 14:19:57

                如果没有    SJMP   $   程序会怎样?