- 打卡等级:初来乍到
- 打卡总天数:3
- 最近打卡:2024-03-26 11:31:32
注册会员
- 积分
- 86
|
"hareware.h"
#include <stc32g.h>
#define IOMODE_IO 0 // 双向IO 模式
#define IOMODE_PUSHPULL 1 // 推挽模式
#define IOMODE_HIGHIMP 2 // 高阻模式
#define IOMODE_DRAIN 3 // 开漏模式
#define IOMODE_P10 IOMODE_PUSHPULL
sbit PhotoResisterADC = P1^5; // 光敏电阻ADC5
#define IOMODE_P15 IOMODE_HIGHIMP
// 一个按键
sbit key_ap = P1^6;
#define IOMODE_P16 IOMODE_IO
// 两个LED指示灯
sbit LED1 = P1^7;
sbit LED2 = P1^3;
#define IOMODE_P17 IOMODE_IO
#define IOMODE_P13 IOMODE_IO
“hareware_io_preprocess.h”
#ifndef _HARDWARE_IO_PREPROCESS_
#define _HARDWARE_IO_PREPROCESS_
#include "hardware.h"
#ifndef IOMODE_P00
#define IOMODE_P00 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P01
#define IOMODE_P01 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P02
#define IOMODE_P02 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P03
#define IOMODE_P03 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P04
#define IOMODE_P04 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P05
#define IOMODE_P05 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P06
#define IOMODE_P06 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P07
#define IOMODE_P07 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P10
#define IOMODE_P10 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P11
#define IOMODE_P11 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P12
#define IOMODE_P12 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P13
#define IOMODE_P13 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P14
#define IOMODE_P14 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P15
#define IOMODE_P15 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P16
#define IOMODE_P16 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P17
#define IOMODE_P17 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P20
#define IOMODE_P20 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P21
#define IOMODE_P21 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P22
#define IOMODE_P22 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P23
#define IOMODE_P23 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P24
#define IOMODE_P24 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P25
#define IOMODE_P25 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P26
#define IOMODE_P26 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P27
#define IOMODE_P27 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P30
#define IOMODE_P30 IOMODE_IO
#endif
#ifndef IOMODE_P31
#define IOMODE_P31 IOMODE_IO
#endif
#ifndef IOMODE_P32
#define IOMODE_P32 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P33
#define IOMODE_P33 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P34
#define IOMODE_P34 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P35
#define IOMODE_P35 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P36
#define IOMODE_P36 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P37
#define IOMODE_P37 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P40
#define IOMODE_P40 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P41
#define IOMODE_P41 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P42
#define IOMODE_P42 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P43
#define IOMODE_P43 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P44
#define IOMODE_P44 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P45
#define IOMODE_P45 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P46
#define IOMODE_P46 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P47
#define IOMODE_P47 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P50
#define IOMODE_P50 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P51
#define IOMODE_P51 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P52
#define IOMODE_P52 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P53
#define IOMODE_P53 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P54
#define IOMODE_P54 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P55
#define IOMODE_P55 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P56
#define IOMODE_P56 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P57
#define IOMODE_P57 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P60
#define IOMODE_P60 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P61
#define IOMODE_P61 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P62
#define IOMODE_P62 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P63
#define IOMODE_P63 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P64
#define IOMODE_P64 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P65
#define IOMODE_P65 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P66
#define IOMODE_P66 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P67
#define IOMODE_P67 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P70
#define IOMODE_P70 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P71
#define IOMODE_P71 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P72
#define IOMODE_P72 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P73
#define IOMODE_P73 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P74
#define IOMODE_P74 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P75
#define IOMODE_P75 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P76
#define IOMODE_P76 IOMODE_HIGHIMP
#endif
#ifndef IOMODE_P77
#define IOMODE_P77 IOMODE_HIGHIMP
#endif
#define IOMODE_P0M0 (((IOMODE_P00) & 0x1) | (((IOMODE_P01) & 0x1) << 1) | (((IOMODE_P02) & 0x1) << 2) | (((IOMODE_P03) & 0x1) << 3) | (((IOMODE_P04) & 0x1) << 4) | (((IOMODE_P05) & 0x1) << 5) | (((IOMODE_P06) & 0x1) << 6) | (((IOMODE_P07) & 0x1) << 7))
#define IOMODE_P1M0 (((IOMODE_P10) & 0x1) | (((IOMODE_P11) & 0x1) << 1) | (((IOMODE_P12) & 0x1) << 2) | (((IOMODE_P13) & 0x1) << 3) | (((IOMODE_P14) & 0x1) << 4) | (((IOMODE_P15) & 0x1) << 5) | (((IOMODE_P16) & 0x1) << 6) | (((IOMODE_P17) & 0x1) << 7))
#define IOMODE_P2M0 (((IOMODE_P20) & 0x1) | (((IOMODE_P21) & 0x1) << 1) | (((IOMODE_P22) & 0x1) << 2) | (((IOMODE_P23) & 0x1) << 3) | (((IOMODE_P24) & 0x1) << 4) | (((IOMODE_P25) & 0x1) << 5) | (((IOMODE_P26) & 0x1) << 6) | (((IOMODE_P27) & 0x1) << 7))
#define IOMODE_P3M0 (((IOMODE_P30) & 0x1) | (((IOMODE_P31) & 0x1) << 1) | (((IOMODE_P32) & 0x1) << 2) | (((IOMODE_P33) & 0x1) << 3) | (((IOMODE_P34) & 0x1) << 4) | (((IOMODE_P35) & 0x1) << 5) | (((IOMODE_P36) & 0x1) << 6) | (((IOMODE_P37) & 0x1) << 7))
#define IOMODE_P4M0 (((IOMODE_P40) & 0x1) | (((IOMODE_P41) & 0x1) << 1) | (((IOMODE_P42) & 0x1) << 2) | (((IOMODE_P43) & 0x1) << 3) | (((IOMODE_P44) & 0x1) << 4) | (((IOMODE_P45) & 0x1) << 5) | (((IOMODE_P46) & 0x1) << 6) | (((IOMODE_P47) & 0x1) << 7))
#define IOMODE_P5M0 (((IOMODE_P50) & 0x1) | (((IOMODE_P51) & 0x1) << 1) | (((IOMODE_P52) & 0x1) << 2) | (((IOMODE_P53) & 0x1) << 3) | (((IOMODE_P54) & 0x1) << 4) | (((IOMODE_P55) & 0x1) << 5) | (((IOMODE_P56) & 0x1) << 6) | (((IOMODE_P57) & 0x1) << 7))
#define IOMODE_P6M0 (((IOMODE_P60) & 0x1) | (((IOMODE_P61) & 0x1) << 1) | (((IOMODE_P62) & 0x1) << 2) | (((IOMODE_P63) & 0x1) << 3) | (((IOMODE_P64) & 0x1) << 4) | (((IOMODE_P65) & 0x1) << 5) | (((IOMODE_P66) & 0x1) << 6) | (((IOMODE_P67) & 0x1) << 7))
#define IOMODE_P7M0 (((IOMODE_P70) & 0x1) | (((IOMODE_P71) & 0x1) << 1) | (((IOMODE_P72) & 0x1) << 2) | (((IOMODE_P73) & 0x1) << 3) | (((IOMODE_P74) & 0x1) << 4) | (((IOMODE_P75) & 0x1) << 5) | (((IOMODE_P76) & 0x1) << 6) | (((IOMODE_P77) & 0x1) << 7))
#define IOMODE_P0M1 ((((IOMODE_P00) & 0x2) >> 1) | ((IOMODE_P01) & 0x2) | (((IOMODE_P02) & 0x2) << 1) | (((IOMODE_P03) & 0x2) << 2) | (((IOMODE_P04) & 0x2) << 3) | (((IOMODE_P05) & 0x2) << 4) | (((IOMODE_P06) & 0x2) << 5) | (((IOMODE_P07) & 0x2) << 6))
#define IOMODE_P1M1 ((((IOMODE_P10) & 0x2) >> 1) | ((IOMODE_P11) & 0x2) | (((IOMODE_P12) & 0x2) << 1) | (((IOMODE_P13) & 0x2) << 2) | (((IOMODE_P14) & 0x2) << 3) | (((IOMODE_P15) & 0x2) << 4) | (((IOMODE_P16) & 0x2) << 5) | (((IOMODE_P17) & 0x2) << 6))
#define IOMODE_P2M1 ((((IOMODE_P20) & 0x2) >> 1) | ((IOMODE_P21) & 0x2) | (((IOMODE_P22) & 0x2) << 1) | (((IOMODE_P23) & 0x2) << 2) | (((IOMODE_P24) & 0x2) << 3) | (((IOMODE_P25) & 0x2) << 4) | (((IOMODE_P26) & 0x2) << 5) | (((IOMODE_P27) & 0x2) << 6))
#define IOMODE_P3M1 ((((IOMODE_P30) & 0x2) >> 1) | ((IOMODE_P31) & 0x2) | (((IOMODE_P32) & 0x2) << 1) | (((IOMODE_P33) & 0x2) << 2) | (((IOMODE_P34) & 0x2) << 3) | (((IOMODE_P35) & 0x2) << 4) | (((IOMODE_P36) & 0x2) << 5) | (((IOMODE_P37) & 0x2) << 6))
#define IOMODE_P4M1 ((((IOMODE_P40) & 0x2) >> 1) | ((IOMODE_P41) & 0x2) | (((IOMODE_P42) & 0x2) << 1) | (((IOMODE_P43) & 0x2) << 2) | (((IOMODE_P44) & 0x2) << 3) | (((IOMODE_P45) & 0x2) << 4) | (((IOMODE_P46) & 0x2) << 5) | (((IOMODE_P47) & 0x2) << 6))
#define IOMODE_P5M1 ((((IOMODE_P50) & 0x2) >> 1) | ((IOMODE_P51) & 0x2) | (((IOMODE_P52) & 0x2) << 1) | (((IOMODE_P53) & 0x2) << 2) | (((IOMODE_P54) & 0x2) << 3) | (((IOMODE_P55) & 0x2) << 4) | (((IOMODE_P56) & 0x2) << 5) | (((IOMODE_P57) & 0x2) << 6))
#define IOMODE_P6M1 ((((IOMODE_P60) & 0x2) >> 1) | ((IOMODE_P61) & 0x2) | (((IOMODE_P62) & 0x2) << 1) | (((IOMODE_P63) & 0x2) << 2) | (((IOMODE_P64) & 0x2) << 3) | (((IOMODE_P65) & 0x2) << 4) | (((IOMODE_P66) & 0x2) << 5) | (((IOMODE_P67) & 0x2) << 6))
#define IOMODE_P7M1 ((((IOMODE_P70) & 0x2) >> 1) | ((IOMODE_P71) & 0x2) | (((IOMODE_P72) & 0x2) << 1) | (((IOMODE_P73) & 0x2) << 2) | (((IOMODE_P74) & 0x2) << 3) | (((IOMODE_P75) & 0x2) << 4) | (((IOMODE_P76) & 0x2) << 5) | (((IOMODE_P77) & 0x2) << 6))
#define SET_IO_MODE_ALL \
P0M0 = IOMODE_P0M0; P1M1 = IOMODE_P0M1;\
P1M0 = IOMODE_P1M0; P1M1 = IOMODE_P1M1;\
P2M0 = IOMODE_P2M0; P2M1 = IOMODE_P2M1;\
P3M0 = IOMODE_P3M0; P3M1 = IOMODE_P3M1;\
P4M0 = IOMODE_P4M0; P4M1 = IOMODE_P4M1;\
P5M0 = IOMODE_P5M0; P5M1 = IOMODE_P5M1;\
P6M0 = IOMODE_P6M0; P6M1 = IOMODE_P6M1;\
P7M0 = IOMODE_P7M0; P7M1 = IOMODE_P7M1
#endif
"hardware.c"
void Hardware_Init()
{
EAXFR = 1; //开启访问XFR
CKCON = 0; //外部数据总线速度最快
WTST = 0x0; //程序执行速度最快
//设置端口状态
//PnM1,PnM0, 00=准双向,01=强输出,10=高阻,11=开漏
SET_IO_MODE_ALL;
... 以下略!
|
|