📄 qy4.txt
字号:
#include <hidef.h>
#include <MC68HC908QY4.h>
//中断函数和子函数声明部分
void _ADC_Interrupt(void); //ADC中断子程序
void _KBD_Interrupt(void); //键盘中断子程序
void _TOF_Interrupt(void); //定时器溢出中断子程序
void _TCH1_Interrupt(void);//定时器通道1中断子程序
void _TCH0_Interrupt(void);//定时器通道0中断子程序
void _IRQ_Interrupt(void); //外部中断中断子程序
void _Startup(void); //复位中断子程序
//用户子程序定义
void SYS_Init(void); //系统初始化子程序
//宏定义
#define CONFIG1_VAL 0x3D //用户配置config1寄存器的值
#define CONFIG1_ADR 0xFDEA //CONFIG1_VAL存放的地址
#define JMP_TAB_ADR 0xFDEB //用户中断向量起始地址
#define JMP_Code 0xCC //跳转指令直接寻址方式的指令码
typedef void (*tIntFunc)(void); //声明一个指向函数的数据类型
typedef struct jumpEntry { //声明一个结构体jumpEntry类型
unsigned char jmpIstr;
tIntFunc intFunc; //定义一个tIntFunc类型的变量
} JumpEntry;
//CONFIG1_VAL存放到CONFIG1_ADR定义的地址中
const unsigned char CONFIGX @CONFIG1_ADR = CONFIG1_VAL;
const JumpEntry IntJmpTable[] @JMP_TAB_ADR = { //定义数组IntJmpTable,元素为JumpEntry类型
JMP_Code, _ADC_Interrupt, //AD转换中断矢量地址:$FDEB
JMP_Code, _KBD_Interrupt, //键盘唤醒中断矢量地址:$FDEE
JMP_Code, _TOF_Interrupt, //定时计数器溢出中断矢量地址:$FDF1
JMP_Code, _TCH1_Interrupt, //定时器通道1溢出中断矢量地址:$FDF4
JMP_Code, _TCH0_Interrupt, //定时器通道0溢出中断矢量地址: $FDF7
JMP_Code, _IRQ_Interrupt, //IRQ矢量地址: $FDFA
JMP_Code, _Startup //复位矢量地址:$FDFD
};
//主程序开始
void main(void)
{
SYS_Init();
for(;;){
if(PTA_PTA2=1)
{ PTA_PTA1=0;
}
else PTA_PTA1=1;
}
}
/***********************************************************************/
/* 文件名: 系统初始化子程序 */
/* 程序描述:包括config寄存器的设置、端口寄存器的设置 */
/* 输入参数:无 */
/* 返回: 无 */
/***********************************************************************/
void SYS_Init(void)
{
CONFIG2=0;
CONFIG1=0x3d;
DDRA=0x03;
PTA_PTA1=1;
PTAPUE_PTAPUE2=1;
EnableInterrupts;
TSC=0x20;
TMOD=80;
TCH0=40;
TSC0=0x1a;
TSC_TSTOP=0;
}
interrupt void _ADC_Interrupt(void) {
}
interrupt void _KBD_Interrupt(void){
}
interrupt void _TOF_Interrupt(void){
}
interrupt void _TCH1_Interrupt(void){
}
interrupt void _TCH0_Interrupt(void){
}
interrupt void _IRQ_Interrupt(void){
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -