keilC中c程序调用汇编的方法(流水灯C程序)

以下程序借以演示keilC中调用汇编程序的设置,程序中晶振采用12M晶振




上图为硬件仿真图


代码段:

 /*

  *NAME:Water lights
  *------------------------------------------------
  *Function:This program simulate a water lights of P1
  */


  #include
  #include


/*
 *Macro definition
 */
 
  #define uint unsigned int
  #define uchar unsigned char
  #define LEDCON 0x01
  #define MASK 0xff


/*
 *Function declaration
 */
 
 void delay(void);
 
/*
 *The main function
 */


  void main(void)
  {
    uint temp,i;
while(1)  {
for(i = 0;i<8;i++)  {
  temp = _crol_(LEDCON,i);
  P1 = (~temp);
  delay();
}
i = 0;
   }
  }


/*
 *Delay function
 */


  void delay(void)
  {
   #pragma asm
     DEL1S: MOV R3,#10
DEL5: MOV R4,#200
DEL2: MOV R5,#248
DEL3: DJNZ R5,DEL3
NOP
DJNZ R4,DEL2
DJNZ R3,DEL5
#pragma endasm

  }

代码编写完成后点击左边的c文件,右键选择Option.....选项

出现如图示的对话框,选择对话框右边有勾那一排,选中图示的两项,注意需要前面的勾为黑色而不是灰色表示选中


点击确定,然后就可以编译了。


编者寄语:自己学单片机C编程时间善短,以上代码属急时只做供演示用,其中存在一个警告,有朋友查到问题可再次与大家交流,同时望看到文章的朋友理解,同时有看到有问题的地方希望大家留言指出,当然如果大家觉得还可以的话也可以留言表示支持(当然不留也是没关系的,呵呵),小飞特在此谢过。

你可能感兴趣的:(单片机)