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

📄 main.c

📁 freecale 公司16位单片机芯片资料
💻 C
字号:
//==============数字量输出=================================//
//程序名称: number_display.prj														 //
//程序描述:用modulus-dowm-counter每0.1秒产生中断,控制八位 //
//          数字量输出,数字量每秒自增1					           //
//引脚连接:J14 (PT0-PT7) 与J1八个脚相连接。							 //
//=========================================================//

#include <hidef.h>     
#include <mc9s12dg128.h>
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"



#define Second 0xc530		//to generate an interrupt every 0.1second 
                        //mcpr1 and mcpr0 should be both set high level
#define Number_output PTT 
#define Pin_direction DDRT                       


//define user function
void number_output_int(void);
void number_count(void);


unsigned char index=0;

void main(void) {

  EnableInterrupts;
  
  number_output_int();
  number_count();

  for(;;) {
  			 if (index==10){
  			 Number_output--;
  			 index=0;
  			 }
  
  
  } 

}



void number_output_int(void){

//define register of the pin
  Pin_direction=0xff;					
  Number_output=0xff;
  
//define register of the modulus-down-counter
  MCCTL=0xc3;

}

void number_count(void) {		//number begain to increase
  MCCTL_MCEN =1;
  MCFLG_MCZF=1;
  MCCNT=Second;			
  
  MCCTL_FLMC=1;
 
}

#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt void interrupt_MCCNT(void) {
  DisableInterrupts;
  index++;
  MCFLG_MCZF=1;
  EnableInterrupts;
}


⌨️ 快捷键说明

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