📄 define.h
字号:
/************************** (H) 2005 485表项目 *******************************
项 目: 485表项目
编译环境 : IARAVR 编译器 4.12A
模块名称 : Define.h
版 本 : V 1.0
建立时间 : 2008-5-3 21:52
修改时间 : 2008-5-3 23:00
作 者 : 郝瑜云
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
功能描述 : I/O 口和其他宏定义头文件
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
修改 :
******************************************************************************/
//-----------------------------Macro define------------------------------------
#include <iom88.h>
#define _VERSION 11 // 软件版本号 11 代表V1.1
// 定时删除有效 绍兴不灭零
//#define _DEL_ZERO
//-----------------------------汇编宏定义--------------------------------------
#define _WDR() asm("wdr")
#define _SEI() asm("sei")
#define _CLI() asm("cli")
#define _NOP() asm("nop")
#define _SLEEP() asm("sleep")
//-----------------------------变量宏定义--------------------------------------
#define INT8U unsigned char
#define INT16U unsigned int
#define INT32U unsigned long
#define INT8S signed char
#define INT16S signed int
#define INT32S signed long
#define Input 0
#define Output 1
// 位处理宏定义
//*****************************************************************************
#define REVBIT(x,y) (x ^=(1<<y)) // Reverse bit
#define SETBIT(x,y) (x |=(1<<y)) // Set bit y in byte x
#define CLRBIT(x,y) (x &=(~(1<<y))) // Clear bit y in byte x
#define CHKBIT(x,y) (x & (1<<y)) // Check bit y in byte x
//-----------------------------硬件相关定义------------------------------------
#define _FOSC 4915200 // 定义时钟频率
//#define _TCNT2_RELOAD (INT8U)(0xFF-(_FOSC/1024/100))
#define _TCNT1_LOAD (INT16U)(0xFFFF-(_FOSC/8/800)) // 定时1.25ms TIMER1重载值
#define _TCNT1_RELOAD (INT16U)(0xFFFF-(_FOSC/8/1200)) // 定时10/12ms TIMER1重载值
#define _OCR2A_LOAD (INT8U)(_FOSC/76000) // 定义TIMER2输出38k方波加载值
#define _SUMCONST 3 // 定义大分频数
//-----------------------------------------------------------------------------
#define _PULSE_LED_ON() CLRBIT(PORTB,IO_YGOUT) // 脉冲输出定义
#define _PULSE_LED_OFF() SETBIT(PORTB,IO_YGOUT)
#define _LCDPOWER_ON() SETBIT(PORTC,IO_BLED) // LCD驱动相关定义
#define _LCDPOWER_OFF() CLRBIT(PORTC,IO_BLED)
#define _IO_CLED_ON() SETBIT(PORTB,IO_CLED)
#define _IO_CLED_OFF() CLRBIT(PORTB,IO_CLED)
#define _STATUS_LED_ON() CLRBIT(PORTC,IO_STATUS)
#define _STATUS_LED_OFF() SETBIT(PORTC,IO_STATUS)
#define _FLASH_STATUS_LED() REVBIT(PORTC,IO_STATUS)
// 定义特殊功能寄存器初始值
//-----------------------------------------------------------------------------
#define _DDRB_INIT 0x2E
#define _DDRC_INIT 0x00
#define _DDRD_INIT 0x42
//-----------------------------------------------------------------------------
// BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
//WDTCSR WDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0
#define _WDTCSR_START 0x18 // WDT启动时序配置
#define _WDTCSR_INIT 0x0F // WDT初始值 2秒
//-----------------------------------------------------------------------------
// BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
//EICRA ISC11 ISC10 ISC01 ISC00
//PCICR PCIE2 PCIE1 PCIE0
//EIMSK INT1 INT0
//EIFR INTF1 INTF0
#define _EICRA_INIT 0x0E // INT1上升沿中断,INT0下降沿中断
#define _PCICR_INIT 0x00 // 禁止电平变化中断
#define _EIMSK_INIT 0x03 // 允许INT1中断,禁止INT0中断
#define _EIFR_INIT 0x03 // 清除INT1,INT0中断标志
//-----------------------------------------------------------------------------
// BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
//TCCR0A COM0A1 COM0A0 COM0B1 COM0B0 WGM01 WGM00
//TCCR0B FOC0A FOC0B WGM02 CS02 CS01 CS00
//TIMSK0 ICIE1 OCIE0B OCIE0A TOIE0
#define _TCCR0A_INIT 0x00 // TIMER0模式
#define _TCCR0B_INIT 0x07 // T0引脚上升沿触发
#define _TIMSK0_INIT 0x01 // 开TOIE0中断
#define _TCNT0_LOAD 0xFF // 计数
//#define _TCNT0_LOAD (INT8U)(0xFF-(_FOSC/64/800)) // 1200 bps 定时器起始值 OSC:8.000M
//#define _TCNT0_RELOAD (INT8U)(0xFF-(_FOSC/64/1200)) // 定时1ms 定时器0重载值 OSC:8.000M
//-----------------------------------------------------------------------------
// BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
//TCCR1A COM1A1 COM1A0 COM1B1 COM1B0 WGM11 WGM10
//TCCR1B ICNC1 ICES1 WGM13 WGM12 CS12 CS11 CS10
//TCCR1C FOC1A FOC1B
// ICIE1 OCIE1B OCIE1A TOIE1
//#define _OCR1A_LOAD (INT16U) (_FOSC/76000) // 定义OCR1A输出38k方波时OCR1A寄存器加载值
#define _TCCR1A_INIT 0x00 // TIMER1工作于CTC模式,OC1A输出
#define _TCCR1A_38K 0x40 // OC1A输出比较匹配取反脉冲
#define _TCCR1B_INIT 0x09 // TIMER1工作于CTC模式,1分频
#define _TCCR1C_INIT 0x00 // 禁止强制比较输出 FOC1A 和 FOC1B
#define _TIMSK1_INIT 0x20 // 与操作,避开ICIE1中断
//-----------------------------------------------------------------------------
// BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
//TCCR2A COM2A1 COM2A0 COM2B1 COM2B0 WGM21 WGM20
//TCCR2B FOC2A FOC2B WGM22 CS22 CS21 CS20
//TIMSK2 OCIE2B OCIE2A TOIE2
#define _ASSR_INIT 0x00
#define _TCCR2A_INIT 0x00 //
#define _TCCR2B_INIT 0x00 //
#define _TIMSK2_INIT 0x00 //
//-----------------------------------------------------------------------------
// MEGA88 I/O 口定义
//-----------------------------------------------------------------------------
//PORTB I/O 口定义
//*****************************************************************************
#define IO_RXD2 0 // PB0 I // DDRB |= 0B00101110 0x2E I 0 DDRB =0B00101010
#define IO_YGOUT 1 // PB1 O O 1 PORTB =0B00001010
#define IO_BLED 2 // PB2 O O 0
#define IO_TXD2 3 // PB3 O O 1
#define IO_PROG 4 // PB4 I I 0
#define IO_SCK 5 // PB5 O O 1
//PORTC I/O 口定义
//*****************************************************************************
#define IO_DISPLAY 0 // PC0 I // DDRC |= 0B00001110 0x0E O 1 DDRC =0B00001110
#define IO_KEYCLR 1 // PC1 I O 1 PORTC =0B11111111
#define IO_REVP_A 2 // PC2 I O 1
#define IO_SDAA 3 // PC3 I O 1
#define IO_SDA 4 // PC4 I I 1
#define IO_SCL 5 // PC5 I I 1
#define IO_REVP_B 6 // PC6 I
#define IO_REVP_C 7 // PC7 I
//PORTD I/O 口定义
//*****************************************************************************
#define IO_RXD1 0 // PD0 I // DDRD |= 0B10100010 0x82 I 0 DDRD =0B10100010
#define IO_TXD1 1 // PD1 O O 1 PORTD =0B10100010
#define IO_CF_A 2 // PD2 I I 0
#define IO_CF_B 3 // PD3 I I 0
#define IO_CF_C 4 // PD4 I I 0
#define IO_FAULT 5 // PD5 I O 1
//#define IO_PROG 6 // PD6 I I 0
#define IO_PWD 7 // PD7 I I 0
/*************************** END OF SUB **************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -