oyufei 发表于 2024-7-13 10:49:43

想把80C52的OLED代码移植到STC8H1K08T上去,但是没成功 | 从我们成熟的STC8H程序开始

想把51的OLED代码移植到STC8H1K08T上去,但是没成功,找不到原因,求大神指导。文件我附上去,STC8H1K08T对应的scl为P1.5.SDL对应P1.4口。我有点怀疑问题出在REG52.H头文件:


/*--------------------------------------------------------------------------
REG52.H

Header file for generic 80C52 and 80C32 microcontroller.
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/

#ifndef __REG52_H__
#define __REG52_H__

/*BYTE Registers*/
sfr P0    = 0x80;
sfr P1    = 0x90;
sfr P2    = 0xA0;
sfr P3    = 0xB0;
sfr PSW   = 0xD0;
sfr ACC   = 0xE0;
sfr B   = 0xF0;
sfr SP    = 0x81;
sfr DPL   = 0x82;
sfr DPH   = 0x83;
sfr PCON= 0x87;
sfr TCON= 0x88;
sfr TMOD= 0x89;
sfr TL0   = 0x8A;
sfr TL1   = 0x8B;
sfr TH0   = 0x8C;
sfr TH1   = 0x8D;
sfr IE    = 0xA8;
sfr IP    = 0xB8;
sfr SCON= 0x98;
sfr SBUF= 0x99;

/*8052 Extensions*/
sfr T2CON= 0xC8;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2    = 0xCC;
sfr TH2    = 0xCD;


/*BIT Registers*/
/*PSW*/
sbit CY    = PSW^7;
sbit AC    = PSW^6;
sbit F0    = PSW^5;
sbit RS1   = PSW^4;
sbit RS0   = PSW^3;
sbit OV    = PSW^2;
sbit P   = PSW^0; //8H1K08T only

/*TCON*/
sbit TF1   = TCON^7;
sbit TR1   = TCON^6;
sbit TF0   = TCON^5;
sbit TR0   = TCON^4;
sbit IE1   = TCON^3;
sbit IT1   = TCON^2;
sbit IE0   = TCON^1;
sbit IT0   = TCON^0;

/*IE*/
sbit EA    = IE^7;
sbit ET2   = IE^5; //8052 only
sbit ES    = IE^4;
sbit ET1   = IE^3;
sbit EX1   = IE^2;
sbit ET0   = IE^1;
sbit EX0   = IE^0;

/*IP*/
sbit PT2   = IP^5;
sbit PS    = IP^4;
sbit PT1   = IP^3;
sbit PX1   = IP^2;
sbit PT0   = IP^1;
sbit PX0   = IP^0;

/*P3*/
sbit RD    = P3^7;
sbit WR    = P3^6;
sbit T1    = P3^5;
sbit T0    = P3^4;
sbit INT1= P3^3;
sbit INT0= P3^2;
sbit TXD   = P3^1;
sbit RXD   = P3^0;

/*SCON*/
sbit SM0   = SCON^7;
sbit SM1   = SCON^6;
sbit SM2   = SCON^5;
sbit REN   = SCON^4;
sbit TB8   = SCON^3;
sbit RB8   = SCON^2;
sbit TI    = SCON^1;
sbit RI    = SCON^0;

/*P1*/
sbit T2EX= P1^1; // 8052 only
sbit T2    = P1^0; // 8052 only
            
/*T2CON*/
sbit TF2    = T2CON^7;
sbit EXF2   = T2CON^6;
sbit RCLK   = T2CON^5;
sbit TCLK   = T2CON^4;
sbit EXEN2= T2CON^3;
sbit TR2    = T2CON^2;
sbit C_T2   = T2CON^1;
sbit CP_RL2 = T2CON^0;

#endif


神农鼎 发表于 2024-7-13 11:06:18

你从我们成熟的STC8H程序开始

OLED12864-GUI/U8g2-科学计算器 国芯技术交流网站 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

soma 发表于 2024-7-13 11:15:58

可以参考ssd1306的stc8h的例程,这个不是很多。为什么一定要移植过来。

oyufei 发表于 2024-7-13 11:24:33

soma 发表于 2024-7-13 11:15
可以参考ssd1306的stc8h的例程,这个不是很多。为什么一定要移植过来。

这个例程在哪里可以找到呢

soma 发表于 2024-7-13 11:39:19

oyufei 发表于 2024-7-13 11:24
这个例程在哪里可以找到呢

可以看这个系列《一起玩OLED屏幕》高清版-Part1-点亮OLED屏幕
页: [1]
查看完整版本: 想把80C52的OLED代码移植到STC8H1K08T上去,但是没成功 | 从我们成熟的STC8H程序开始