📄 hal4sys.h
字号:
/*
//*************************************************************************
//
// P H I L I P S P R O P R I E T A R Y
//
// COPYRIGHT (c) 1999 BY PHILIPS SINGAPORE.
// -- ALL RIGHTS RESERVED --
//
// File Name: Hal4sys.H
// Author: Hilbert Zhang ZhenYu
// Created: Nov. 26 99
// Modified:
// Revision: 0.0
//
//*************************************************************************
//
//*************************************************************************
*/
#ifndef __HAL4SYS_H__
#define __HAL4SYS_H__
// 8051 I/O map
#define MCU_P0 P0
#define MCU_P1 P1
#define MCU_P2 P2
#define MCU_P3 P3
// 8051 Timer
#define TIMER0_AT12MHZ (0xFC)
#define TIMER0_AT24MHZ (0xF8)
#define TIMER0_AT36MHZ (0xF4)
#define TIMER0_AT48MHZ (0xF0)
// 8051 REG Map
#define D12INT_EDGE IT0
#define D12INT_PRIORITY PX0
#define D12INT_ENABLE EX0
#define TIMER0_MODE TMOD
#define TIMER0_LOW TL0
#define TIMER0_HIGH TH0
#define TIMER0_PRIORITY PT0
#define TIMER0_IRQ_ENABLE ET0
#define TIMER0_START TR0
//D12 map at P1
sbit D12CS_N = 0x96; //p1.6
// D12 map at P3
sbit IDE_CS = 0xB1; //P3.1 // 当为低电平,不可以CF卡移出
sbit D12INT_N = 0xB2; //p3.2 D12中断
sbit D12RST_N = 0xB5; //P3.5 D12复位
sbit D12WR_N = 0xB6; //P3.6 D12写(ATA)
sbit D12RD_N = 0xB7; //P3.7 D12读(ATA)
sbit D12SUSPD = 0x97; //P3.3 D12器件处于挂起状态(小板)
//sbit D12SUSPD = 0xB3; //P3.3 D12器件处于挂起状态(小板)
//ATA map at P3
sbit ATA_RST_N = 0xB4; //ATA复位
#define D12_command 0x4001 //D12 命令
#define D12_data 0x4000 //D12 数据
//ATA总线驱动器PIO(并行输入输出)的存贮器地址:
#define ATAREG4OUT_DATA 0x8000
#define ATAREG4IN_DATA 0x8002
#define ATAREG4OUT_FEATURE 0x8004
#define ATAREG4IN_ERROR 0x8004
#define ATAREG4OUT_SECTOR_COUNT 0x8005
#define ATAREG4IN_SECTOR_COUNT 0x8005
#define ATAREG4OUT_SECTOR_NUMBER 0x8006
#define ATAREG4IN_SECTOR_NUMBER 0x8006
#define ATAREG4OUT_CYLINDER_LOW 0x8007
#define ATAREG4IN_CYLINDER_LOW 0x8007
#define ATAREG4OUT_CYLINDER_HIGH 0x8008
#define ATAREG4IN_CYLINDER_HIGH 0x8008
#define ATAREG4OUT_DEVICE_HEAD 0x8009
#define ATAREG4IN_DEVICE_HEAD 0x8009
#define ATAREG4OUT_COMMAND 0x800a
#define ATAREG4IN_STATUS 0x800a
#define ATAREG4OUT_CONTROL 0x800b
#define ATAREG4IN_ALTERNATE_STATUS 0x800b
#define ATARead2BWriteD12_1B 0x4002
#define ATARead0BWriteD12_2B 0x4004
// Functions
#define RaiseIRQL() EA=0
#define LowerIRQL() EA=1
#define Hal4Sys_InitMCU() /*Give up all ports*/ \
MCU_P0 = 0xFF;\
MCU_P1 = 0xFF;\
MCU_P2 = 0xFF;\
MCU_P3 = 0xFF
INT16 Hal4Sys_SwapINT16(INT16 wData);
INT32 Hal4Sys_SwapINT32(INT32 dData);
void Hal4Sys_InitTimer0(void);
void Hal4Sys_Wait4US(void);
void Hal4Sys_WaitInUS(INT16 time);
void Hal4Sys_WaitInMS(INT8 time);
void Hal4Sys_D12CmdPortOutB( INT8 val);
void Hal4Sys_D12DataPortOutB( INT8 val);
unsigned char Hal4Sys_D12DataPortInB( void);
void Hal4Sys_ResetD12(void);
void Hal4Sys_InitD12(void);
// something different
void Hal4Sys_ATAPortOutB(INT16 Addr, INT8 Data);
INT8 Hal4Sys_ATAPortInB(INT16 Addr);
INT16 Hal4Sys_ATADataPortInW(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -