⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sample_s3f9454.c

📁 IAR-C中的常用的几个必需工程设置选项
💻 C
字号:
//********************************
//产品名称: IAR-C编程示例
//使用MCU: S3F9454
//FOSC = 3.2MHZ
//以下示例中很多变量及定义可能并未
//用到,在此仅仅作为示范性列示
//********************************
#include "ioS3C9454.h"//
#include "intrinsics.h"//包含内部函数
//************************************************
//**此处为宏定义替换******
#define uchar unsigned char
#define uint  unsigned int

#define nop (__no_operation())          //将后者指令行缩写为nop;
#define di  (__disable_interrupt())     //将后者指令行缩写为di;
#define ei  (__enable_interrupt())      //将后者指令行缩写为ei;
//************************************************
//**此处定义程序所用到的全局变量*******
uchar RUNFLAG   = 0;
uchar DISPFLAG  = 0;
uchar ERRFLAG   = 0;                //错误代码标志寄存器
uchar KEY_CODE  = 0;                //键扫描码
//*************************************************************************
//位操作寄存器定义

//*************************************************************************
//***程序所用函数声明*****
//***凡程序中所用到的函数请先在这里声明***
__interrupt  void  int_9454();
void    chip_init();
void    LedScan();
//*************************************************************************
//*************************************************************************
//**定义9454的SMART OPTION值****
//**003CH,must be initialized to 0
//**003DH,must be initialized to 0
//**003EH,enable LVR(2.3V)
//**003FH,internal RC(3.2MHZ in Vdd=5V)
//*************************************
__code  const  volatile  uchar SmartOption[4] @0x003c = {0x0,0x0,0xe7,0x03};
//*************************************************************************
//*************************************************************************
//数码管显示代码定义(在ROM=0X40)
__code  const volatile uchar DigitCode[12] @0x0040 = 
{
  0x03,   //'0'
  0x9f,   //'1'
  0x25,   //'2'
  0x0d,   //'3'
  0x99,   //'4'
  0x49,   //'5'
  0x41,   //'6'
  0x1f,   //'7'
  0x01,   //'8'
  0x09,   //'9'
  0xff,   //'A'
  0x61,   //'E'
};
//**************************************************************************
//========================主程序控制===========================
void main(void)
{
  uint  loop;
  //***填充系统SMART OPTION***/
  uchar buffer = SmartOption[0];
  asm("push P0");
  //***芯片启动初始化过程***//
  chip_init();          
  //***主循环开始***//
  while(1)
  {
    P2      = 0x00;
    //以下定时取反P2口输出状态//
    for(loop=0;loop<50;loop++);
    P2      = 0xff;
    for(loop=0;loop<50;loop++);
  }
}
//******************************************************************
//****启动时IO初始化子过程******
void  chip_init()
{
    BTCON = 0xa3;         //Watch-dog disable
    CLKCON  = 0x18;       //selet non-divided CPU clock
    P0PND   = 0x0;        //P0/INT disable
    P0CONH  = 0xdf;       //P0.7 is as A/D convert port
                          //P0.6 is PWM output
                          //P0.5 is as A/D convert port  
                          //P0.4 is as A/D convert port
    P0CONL  = 0xfa;       //P0.3 is as A/D convert port 
                          //P0.2 is as A/D convert port  
                          //P0.0,P0.1 is as push-pull output port 
    P0 = 0x0;                             			
    P1CON = 0xa;          //P1.0 is as push-pull output port  
                          //P1.1 is as push-pull output port 
    P1 = 0x0;
   
    P2CONH = 0x2a;        //P2.0-P2.5 is as push-pull output
    P2CONL = 0xaa;        //P2.6 is as A/D input
    P2 = 0x1e;    
    
    PWMDATA = 0x0; 
    PWMCON = 0x5c;        //PWM input clock is fosc/8,enable PWM output
                          //reload from 6 bit coun
    T0DATA = 0x32;
    T0CON =0x4a;          //TMR0 start count,f=fosc/256
                          //enable TMR0 interrupt/4ms	
    P2 = 0xff;
  
}
//*************************************************************************
//**中断向量及服务程序定义********
#pragma vector=0x00
__interrupt void int_9454()
{
  T0CON = T0CON & 0xfe;     //必须清T0中断标志
   
  LedScan();                //数码管显示扫描过程
}
//*************************************************************************
void  LedScan(void)
{
  //这里是LED显示定时扫描过程
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -