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

📄 ports.h

📁 简易风盘控器程序 AVR GCC MEGA8
💻 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 + -