daha öncede CCS ile uğrsıodum ve ccs taşınbilir olmadığı için ve biraz da hazırcılık olduğu için Standart C ile uğraşmaya karar verdim
ccs de
delay_ms(500)
diye bir komut vardı peki keil içerisinde bu gibi bi fonksiyonu nasıl kullanabilirim
Murray in delay kodunu inceleyin..
http://members.iinet.net.au/~vanluynm/click.php?Down/Delay_0.1.zip
ayrıca keil + 8051 için birçok kaynak.
http://members.iinet.net.au/~vanluynm/
Delay.h
/**
* \addtogroup Delay
* @{
*/
/*****************************************************************************/
/**
* \file Delay.h
* Delay routines for 8051 and Keil C51.
* \author Copyright (c) 2005, Murray R. Van Luyn. <vanluynm@iinet.net.au>
* \version 0.1
* \date 08-03-05
*/
/*****************************************************************************/
/*****************************************************************************
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
******************************************************************************/
#ifndef DELAY_H
#define DELAY_H
/**
* Hardware crystal frequency in Hz.
* Adjust \b DELAY_XTAL to match hardware.
* \hideinitializer
*/
#define DELAY_XTAL 12000000*2
// Delay routine timing parameters
#define DELAY_CPU_CLOCK DELAY_XTAL / 12 // 8051 clock rate (X1 mode)
#define DELAY_CONST 9.114584e-5 // Delay routine constant
#define DELAY_MULTPLR (unsigned char)(DELAY_CONST * DELAY_CPU_CLOCK)
/*****************************************************************************
*
* Public Function Prototypes
*
*****************************************************************************/
/**
* Millisecond software delay function.
* Implements a software timing loop based delay with millisecond precision.
* See 'Usage' for notes regarding upper bounds on the delay period that may
* be generated.
* \param count The number of milliseconds to delay as an \b unsigned \b int.
* \return -
*/
void delay_ms(volatile unsigned int count);
#endif
/** @} */
Delay.c
/**
* \addtogroup Delay
* @{
*/
/*****************************************************************************/
/**
* \file Delay.c
* Delay routines for 8051 and Keil C51.
* \author Copyright (c) 2005, Murray R. Van Luyn. <vanluynm@iinet.net.au>
* \version 0.1
* \date 08-03-05
*/
/*****************************************************************************/
/*****************************************************************************
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
******************************************************************************/
#include "Delay.h"
/*****************************************************************************
*
* Public Function Implementation
*
*****************************************************************************/
/*****************************************************************************
*
* delay_ms()
*
*****************************************************************************/
void delay_ms(volatile unsigned int count)
{
for(count *= DELAY_MULTPLR; count > 0; count--) continue;
return;
}
/** @} */
sağol(http://img151.imageshack.us/img151/9500/dilimdilim2ge7ak5.jpg) (http://imageshack.us) un arkadaşlar
basit olarak 0-9 sayıcı koyuyorum buraya
yeni başlaynlar varsa ben gibi keil e örnek olması amacıyla
download (http://rapidshare.com/files/18670027/7_seg.rar.html)
kolay gelsin
bir örnekte ben koyayım keil için. kodlar asm dilinde yazılmıştır.
Download (http://rapidshare.com/files/18710648/9999_ileri_geri_say__305_c__305_.rar)