十年专注单片机方案开发的方案公司英锐恩,分享用PIC16F877A仿真28脚器件,RB6 RB7可用的方法。英锐恩现提供服务产品涉及主控芯片:8位单片机、16位单片机、32位单片机及各类运算放大器等。
//用RD7代RB7、RD6代RB6
//RD6,RD7各加24K上拉电阻,以下是头文件,包含后就可用PORTB_D 代PORTB编写程序了。就是电平变化中断还不能用,只能用查询
#if defined(_16F877A)
#define TRISB_D TRISB=TRISD
#define PORTB_D PORTB=PORTD
#define TRISB_D0 TRISB0
#define TRISB_D1 TRISB1
#define TRISB_D2 TRISB2
#define TRISB_D3 TRISB3
#define TRISB_D4 TRISB4
#define TRISB_D5 TRISB5
#define TRISB_D6 TRISB6=TRISD6
#define TRISB_D7 TRISB7=TRISD7
#else
#define TRISB_D TRISB
#define PORTB_D PORTB
#define TRISB_D0 TRISB0
#define TRISB_D1 TRISB1
#define TRISB_D2 TRISB2
#define TRISB_D3 TRISB3
#define TRISB_D4 TRISB4
#define TRISB_D5 TRISB5
#define TRISB_D6 TRISB6
#define TRISB_D7 TRISB7
#endif
/*说明:以上是PICC 如果你用的是汇编,请参考《PIC单片机实用教程-基础篇》李学海 第370页 "用PIC16F877作为PIC16C74B系统的开发和调试"
PORTB_D=0x7f; 就是 PORTB=PORTD= 0x7f; 汇编: MOVLW 7FH MOVWF PORTD MOVWF PORTB
TRISB_D6=0; 就是 TRISB6=TRISD6=0; 汇编: BANKSEL TRISA BCF TRISB,6 BCF TRISD,6