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

📄 spyglass.h

📁 单片机的软件
💻 H
字号:
/*! \file spyglass.h \brief Spyglass Control Panel UI Board Driver. */
//*****************************************************************************
//
// File Name	: 'spyglass.h'
// Title		: Spyglass Control Panel UI Board Driver
// Author		: Pascal Stang - Copyright (C) 2005
// Created		: 7/20/2005
// Revised		: 7/23/2005
// Version		: 0.9
// Target MCU	: Atmel AVR series
// Editor Tabs	: 4
//
//  SPYGLASS PINOUT for 10-pin I/O header:
//
//			    ----
//		+5V - 1 |++| 2 - +5V
//		SCL - 3 |++| 4 - GND
//		SDA - 5 |++| 6 - GND
//		      7 |++| 8 - BEEPER PWR (+5V)
//		      9 |++| 10
//		        ----
//
//  CONNECTIONS:
//		Connect power to the +5V and ground pins.  And connect the SCL/SDA
//	pins to the corresponding SDA/SCL pins of your processor's I2C bus.
//
//
// This code is distributed under the GNU Public License
//		which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************

#ifndef SPYGLASS_H
#define SPYGLASS_H

// defines
// Base I2C node addresses
#define PCF8574_I2C_BASE_ADDR	0x40
#define MAX517_I2C_BASE_ADDR	0x58

// PCF8574 node addresses
#define PCF_NODE_BUTTONS		0x00
#define PCF_NODE_LCD_DATA		0x01
#define PCF_NODE_CONTROL		0x02

// Control node bit-defines
#define SPYGLASS_LED0		0x01
#define SPYGLASS_LED1		0x02
#define SPYGLASS_BEEPER		0x04
#define SPYGLASS_LCD_RS		0x20
#define SPYGLASS_LCD_RW		0x40
#define SPYGLASS_LCD_E		0x80


// functions
//! initialize the I2C bus for communication with the spyglass UI.
void spyglassInit(void);

// *********** MISC INPUT/OUTPUT commands ***********

//! Read the state of pushbuttons on the spyglass UI
/// Returns an 8-bit number representing the state of buttons S1-S7 in bits 0-6 respectively.
///  - '0' bit value = button not pressed
///  - '1' bit value = button is pressed
u08 spyglassGetPushbuttons(void);

//! Sets the state of LEDs on the spyglass UI
/// Argument is a 2-bit number representing the desired state of LEDs D2 & D3 respectively.
///  - '0' bit value = LED off
///  - '1' bit value = LED on
void spyglassSetLeds(u08 leds);

//! Sets the state of the beeper on the spyglass UI
/// - '0' state => beeper off
/// - '1' state => beeper on
void spyglassSetBeeper(u08 state);

u08 spyglassSetLcdContrast(u08 contrast);

// *********** LCD commands ***********

//! Initialize LCD for operation
void spyglassLcdInit(void);
//! Set write/cursor position to upper left. 
void spyglassLcdHome(void);
//! Clear LCD display.
void spyglassLcdClear(void);
//! Set write/cursor posision on LCD display (x=col, y=line).
void spyglassLcdGotoXY(u08 x, u08 y);
//! Write control or display data to LCD.
void spyglassLcdWrite(u08 rs, u08 data);
//! Write character to LCD.
void spyglassLcdWriteChar(u08 c);

// *********** LOW-LEVEL ACCESS ***********

//! Write I/O Data to PCF8574 I2C<->Digital I/O chip.
u08 pcf8574Write(u08 nodeAddr, u08 data);
//! Read I/O Data from PCF8574 I2C<->Digital I/O chip.
u08 pcf8574Read(u08 nodeAddr);

#endif

⌨️ 快捷键说明

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