📄 ports.h
字号:
/**************** (c) 2005 佛山菱电 *****************************************
PROJECT : 简易风盘控制器
COMPILER : AVR ICC for m48
MODULE : ports.c
VERSION : 1.0.0
DATE : 2005/12/08
AUTHOR : 朱坤
MODIFICATIONS :
DESCRIPTION : ADC routines
******************************************************************************/
#ifndef PORT_DEF
#define PORT_DEF
#include <avr/io.h>
#include <avr/wdt.h>
#include "lib.h"
#include "version.h"
#include "main.h"
#include "fan.h"
#include "buz.h"
#include "scom.h"
#include "timer.h"
/* PB 定义 */
#ifdef EnPGFENGJI
#define PGZero ((u8)0) /* PB0 过零检测 */
#define PGFan ((u8)1) /* PB1 风机输出 */
#define PGFeed ((u8)2) /* PB2 风机反馈 */
#define PGFanOn() (PORTB &= ~(1 << PGFAN))
#define PGFanOff() (PORTB |= (1 << PGFAN))
#define GetPGZero() ((u8)(PINB & (1 << PGZero)))
#define GetPGFeed() ((u8)(PINB & (1 << PGFeed)))
#define DDRBSET ((u8)0x3a) /* PB2,PB0 输入,其他输出 */
#define PORTBSET ((u8)0x1d)
#else
#define LFAN ((u8)0) /* PB0 */
#define MFAN ((u8)1) /* PB1 */
#define HFAN ((u8)2) /* PB2 */
#define SetHiFan() (PORTB |= (1 << HFAN))
#define SetMiFan() (PORTB |= (1 << MFAN))
#define SetLoFan() (PORTB |= (1 << LFAN))
#define ClrHiFan() (PORTB &= ~(1 << HFAN))
#define ClrMiFan() (PORTB &= ~(1 << MFAN))
#define ClrLoFan() (PORTB &= ~(1 << LFAN))
#define DDRBSET ((u8)0x3f) /* PB5 - 0 All are Output */
#define PORTBSET ((u8)0x18)
#endif
/* HT1621 接口定义 */
#define CS_HT1621 ((u8)3)
#define WR_HT1621 ((u8)4)
#define DATA_HT1621 ((u8)5)
#define SetCS_HT1621() (PORTB |= (1 << CS_HT1621))
#define SetWR_HT1621() (PORTB |= (1 << WR_HT1621))
#define SetDATA_HT1621() (PORTB |= (1 << DATA_HT1621))
#define ClrCS_HT1621() (PORTB &= ~(1 << CS_HT1621))
#define ClrWR_HT1621() (PORTB &= ~(1 << WR_HT1621))
#define ClrDATA_HT1621() (PORTB &= ~(1 << DATA_HT1621))
/* PC 定义 */
#define JP5 ((u8)5) /* PC5 SW5 1:掉电记忆 */
#define JP4 ((u8)4) /* PC4 SW4 */
#define JP3 ((u8)3) /* PC3 SW3 */
#define JP2 ((u8)2) /* PC2 SW2 */
#define JP1 ((u8)1) /* PC1 SW1 */
#define GetJP(jp) ((u8)(PINC & (1 << (jp)))) /* 掉电记忆选择 */
#define GetSW() ((u8)((PINC >> 1) & 0x0f)) /* 本机地址 */
#define DDRCSET ((u8)0x00) /* PC5 - 0 All Input */
#define PORTCSET ((u8)0x0e) /* 上拉选择 */
/* A/D - PC0 为 3470B 温度传感器输入
新板可以考虑将温度传感器输入移到 AD7 或 AD6, 将 PC0 作房卡输入
程序需要相应更改
*/
/* PD 定义 */
#define BackLight 7 /* LCD 背光 0:点亮 */
#define LCD_BK_Off() (PORTD |= (1 << BackLight))
#define LCD_BK_On() (PORTD &= ~(1 << BackLight))
#define OnOffKey ((u8)6) /* 开关按钮 */
#define ModeKey ((u8)5) /* 模式按钮 */
#define FanKey ((u8)4) /* 风速按钮 */
#define DownKey ((u8)3) /* - 按钮 */
#define UpKey ((u8)2) /* + 按钮 */
#define SW1 ((u8)(1 << OnOffKey)) /* 0x40 */
#define SW2 ((u8)(1 << ModeKey)) /* 0x20 */
#define SW3 ((u8)(1 << FanKey)) /* 0x10 */
#define SW4 ((u8)(1 << DownKey)) /* 0x08 */
#define SW5 ((u8)(1 << UpKey)) /* 0x04 */
#define SWALL ((u8)(SW1|SW2|SW3|SW4|SW5))
#define vOnOffKey ((u8)(SW2|SW3|SW4|SW5)) /* 开关按钮 */
#define vModeKey ((u8)(SW1|SW3|SW4|SW5)) /* 模式按钮 */
#define vFanKey ((u8)(SW1|SW2|SW4|SW5)) /* 风速按钮 */
#define vDownKey ((u8)(SW1|SW2|SW3|SW5)) /* - 按钮 */
#define vUpKey ((u8)(SW1|SW2|SW3|SW4)) /* + 按钮 */
#define vModeFanKey ((u8)(SW1|SW4|SW5)) /* 模式按钮 */
#define HoldKeyTmSet ((u8)(150)) /* 3s On 20mS */
#define GetKey() ((u8)(PIND & SWALL))
#define DDRDSET ((u8)0x82)
#define PORTDSET ((u8)0x7E) /* 上拉选择 */
/* 通信端口设置 */
#define TxD 1 /* 通信输出 */
#define RxD 0 /* 通信输入 */
#define SetTxD() (PORTD |= (1 << TxD))
#define ClrTxD() (PORTD &= ~(1 << TxD))
#define GetRxD() ((u8)(PIND & (1 << RxD)))
void PORTS_Init(void);
void PORTS_Ref(void);
void Get_JP(void);
void Key_Scan(void);
void Downward(void);
void Upward(void);
extern u8 SWTime; /* 按键激活 LCD 显示时间 */
extern u8 AckTm; /* 修改参数计时 */
extern u8 SWKeyHoldTm; /* 保持按键时间 */
#endif
/*** (c) 2005 佛山菱电 **************************** END OF FILE *************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -