STC8H8K64U串口打印自身flash代码的代码

IRC时钟 45.1584, 波特率 115200

#include <stdio.h>
#include <string.h>
#include "STC8H.H"

#define MAIN_Fosc 45158400L  // 定义主时钟
#define Baudrate1 115200L    // 115200波特率

typedef unsigned char uint8;
typedef char int8;
typedef unsigned int uint16;
typedef int int16;
typedef unsigned long uint32;
typedef long int32;

// 串口1使用定时器2作为波特率
void initTimer2() {
  SCON |= 0x50;                                                  // set1 Serial port Mode 8位数据,波特率可变, 允许接收串口数据
  AUXR |= (1 << 2);                                              // 1T模式
  TH2 = (uint8)((65536UL - (MAIN_Fosc / 4) / Baudrate1) / 256);  // 0xFF
  TL2 = (uint8)((65536UL - (MAIN_Fosc / 4) / Baudrate1) % 256);  // 0x9E
  AUXR |= (1 << 4);                                              // 定时器2开始计时
  ES = 1;                                                        // 允许串口1中断
  EA = 1;
}

void print_rom_content(uint16 start_addr, uint16 end_addr) {
    uint16 i = start_addr;
    uint16 j;
    uint8 code_byte;
    uint8 ascii;
    printf("DumpHex: \r\nADDR : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F  |       ASCII     ");
    do {
        if (i % 16 == 0) {
            printf("\r\n%04XH: ", i);
        }
        code_byte = *(uint8 code *)i;
        printf("%02bX ", code_byte);
        if ((i!=0) && ((i+1)%16 == 0)) {
            printf(" | ");
            // 常规可打印字符
            j = 15;
            do {
                ascii =  *(uint8 code *)(i-j);
                if (ascii >= 32 && ascii <= 126) {
                    putchar(ascii);
                } else {
                    putchar('.');
                }
                j--;
                if (j == 0) break;
            } while (1);
        }
        if (i == end_addr) break;
        i++;
    } while (1);
    puts("\r\n");
}
void main(void) {
  // 初始化定时器2作为串口1的波特率发生器
  initTimer2();
  TI = 1;
  print_rom_content(0x0000, 0x588); // 打印前0x588H字节ROM代码区
  while (1);
}

输出如下

DumpHex: 
ADDR : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F  |       ASCII     
0000H: 02 05 7D E5 37 24 2B F8 E6 05 37 22 78 28 30 07  | ..}.7$+...7"x(0
0010H: 02 78 2B E4 75 F0 01 12 04 63 02 04 0B 20 00 EB  | .x+.u....c... .
0020H: 7F 2E D2 00 80 18 EF 54 0F 24 90 D4 34 40 D4 FF  | .......T.$..4@.
0030H: 30 04 0B EF 24 BF B4 1A 00 50 03 24 61 FF E5 38  | 0...$....P.$a..
0040H: 60 02 15 38 05 3B E5 3B 70 02 05 3A 30 07 0D 78  | `..8.;.;p..:0..
0050H: 28 E4 75 F0 01 12 04 63 EF 02 04 51 02 05 31 74  | (.u....c...Q..1
0060H: 03 D2 07 80 03 E4 C2 07 F5 37 8B 28 8A 29 89 2A  | .........7.(.).
0070H: E4 F5 38 F5 3A F5 3B E5 38 60 07 7F 20 12 00 3E  | ..8.:.;.8`.. ..
0080H: 80 F5 75 39 FF C2 01 C2 00 C2 02 C2 03 C2 05 C2  | ..u9...........
0090H: 06 C2 08 12 00 0C FF 70 0D 30 07 05 7F 00 12 00  | .......p.0.....
00A0H: 4F AF 3B AE 3A 22 B4 25 5F C2 D5 C2 04 12 00 0C  | O.;.:".%_......
00B0H: FF 24 D0 B4 0A 00 50 1A 75 F0 0A 78 38 30 D5 05  | .$....P.u..x80.
00C0H: 08 B6 FF 01 06 C6 A4 26 F6 20 D5 04 70 02 D2 03  | .......&. ..p..
00D0H: 80 D9 24 CF B4 1A 00 EF 50 04 C2 E5 D2 04 02 02  | ..$.....P......
00E0H: 4F D2 01 80 C6 D2 00 80 C0 D2 02 80 BC D2 D5 80  | O..............
00F0H: BA D2 05 80 B4 7F 20 12 00 3E 20 02 07 74 01 B5  | ...... ..> ..t.
0100H: 38 00 40 F1 12 00 03 FF 12 00 3E 02 00 77 D2 08  | 8.@.......>..w.
0110H: D2 06 80 95 12 00 03 FB 12 00 03 FA 12 00 03 F9  | ...............
0120H: 4A 4B 70 06 79 20 7A 03 7B FF 20 02 2E E5 38 60  | JKp.y z.{. ...8
0130H: 2A 7E 00 8E 82 75 83 00 12 04 24 60 06 0E EE 65  | *~...u....$`...
0140H: 39 70 F0 C2 D5 EB C0 E0 EA C0 E0 E9 C0 E0 EE 12  | 9p.............
0150H: 02 96 D0 E0 F9 D0 E0 FA D0 E0 FB 12 04 0B FF 60  | ...............
0160H: AA EB C0 E0 EA C0 E0 E9 C0 E0 12 00 3E D0 E0 24  | ............>..
0170H: 01 F9 D0 E0 34 00 FA D0 E0 FB E5 39 04 60 DC D5  | ....4......9.`.
0180H: 39 D9 80 87 7B FF 7A 02 79 92 D2 02 80 9C 79 10  | 9...{.z.y.....y
0190H: 80 02 79 08 C2 06 C2 08 80 08 D2 D5 79 0A 80 04  | ..y.........y..
01A0H: 79 0A C2 D5 E5 39 04 70 02 F5 39 E4 FA FD FE FF  | y....9.p..9....
01B0H: 12 00 03 FC 7B 08 20 01 13 12 00 03 FD 7B 10 30  | ....{. ......{.
01C0H: 00 0A 12 00 03 FE 12 00 03 FF 7B 20 EC 33 82 D5  | ..........{ .3.
01D0H: 92 D5 50 13 C3 E4 30 00 06 9F FF E4 9E FE E4 20  | ..P...0........
01E0H: 01 03 9D FD E4 9C FC E4 CB F8 C2 01 EC 70 0C CF  | .............p.
01F0H: CE CD CC E8 24 F8 F8 70 F3 80 17 C3 EF 33 FF EE  | ....$..p.....3.
0200H: 33 FE ED 33 FD EC 33 FC EB 33 FB 99 40 02 FB 0F  | 3..3..3..3..@..
0210H: D8 E9 EB 30 01 05 F8 D0 E0 C4 48 B2 01 C0 E0 0A  | ...0......H....
0220H: EC 4D 4E 4F 78 20 7B 00 70 C2 EA B5 39 00 40 BC  | .MNOx {.p...9.@
0230H: C0 E0 12 02 98 D0 F0 D0 E0 20 01 04 C4 C0 E0 C4  | ......... .....
0240H: B2 01 C0 F0 12 00 27 D0 F0 D5 F0 EB 02 00 77 12  | ......'.......w
0250H: 04 73 01 14 53 01 8E 58 00 E5 4C 00 E1 42 01 92  | .s..S..X..L..B.
0260H: 4F 01 9A 44 01 9A 49 00 FA 43 01 A0 55 01 84 46  | O..D..I..C..U..
0270H: 01 84 45 01 84 47 03 40 50 00 E9 2D 00 ED 2E 01  | ..E..G.@P..-...
0280H: 10 2B 00 F1 23 01 0E 20 03 29 2A 00 A9 48 00 00  | .+..#.. .)*..H.
0290H: 01 08 3F 3F 3F 00 79 0A A2 D5 20 03 14 30 05 09  | ..???.y... ..0.
02A0H: B9 10 02 04 04 B9 08 01 04 A2 D5 20 06 02 50 01  | ........... ..P
02B0H: 04 20 02 68 92 02 B5 38 00 50 34 C0 E0 7F 20 30  | . .h...8.P4... 
02C0H: 03 19 7F 30 A2 02 72 06 72 05 50 0F 12 02 EF C2  | ...0..r.r.P....
02D0H: 02 C2 06 C2 05 C2 08 7F 30 80 0F 30 05 03 E9 C0  | ........0..0...
02E0H: E0 12 00 3E 30 05 03 D0 E0 F9 D0 E0 B5 38 CC 30  | ...>0........8.
02F0H: 05 17 7F 30 B9 10 0C 12 00 3E 7F 58 30 04 07 7F  | ...0.....>.X0..
0300H: 78 80 03 B9 08 03 12 00 3E 30 02 05 7F 2D 02 00  | x.......>0...-.
0310H: 3E 7F 20 20 08 F8 7F 2B 20 06 F3 22 92 02 80 CF  | >.  ...+ .."...
0320H: 28 6E 75 6C 6C 29 00 D2 01 12 00 03 30 01 F8 C2  | (null)......0..
0330H: 01 78 38 30 D5 01 08 F6 02 00 A9 2D 50 43 49 58  | .x80.......-PCI
0340H: 12 00 03 24 03 B4 05 00 40 01 E4 90 03 3B 93 12  | ...$....@....;.
0350H: 00 2F 74 3A 12 00 2F D2 03 75 38 04 02 01 8E 8C  | ./t:../..u8....
0360H: 22 8D 23 8E 24 8F 25 7B FF 7A 04 79 99 12 00 65  | ".#.$.%{.z.y...
0370H: E5 25 54 0F 70 0F 7B FF 7A 04 79 EF 85 24 2B 85  | .%T.p.{.z.y..$+
0380H: 25 2C 12 00 65 85 25 82 85 24 83 E4 93 7B FF 7A  | %,..e.%..$...{.
0390H: 04 79 F9 F5 2B 12 00 65 E5 25 45 24 60 4D E5 25  | .y..+..e.%E$`M.
03A0H: 24 01 FF E4 35 24 EF 54 0F 70 40 7B FF 7A 05 79  | $...5$.T.p@{.z.
03B0H: 00 12 00 65 75 26 00 75 27 0F C3 E5 25 95 27 FF  | ...eu&.u'...%.'
03C0H: E5 24 95 26 8F 82 F5 83 E4 93 FF C3 94 20 40 08  | .$.&......... @
03D0H: EF D3 94 7E 50 02 80 02 7F 2E 12 05 31 E5 27 15  | ...~P.......1.'
03E0H: 27 70 02 15 26 E5 27 45 26 70 CF E5 25 65 23 70  | 'p..&.'E&p..%e#
03F0H: 04 E5 24 65 22 60 0B 05 25 E5 25 70 02 05 24 02  | ..$e"`..%.%p..$
0400H: 03 70 7B FF 7A 05 79 04 02 05 07 BB 01 06 89 82  | .p{.z.y........
0410H: 8A 83 E0 22 50 02 E7 22 BB FE 02 E3 22 89 82 8A  | ..."P.."...."..
0420H: 83 E4 93 22 BB 01 0C E5 82 29 F5 82 E5 83 3A F5  | ...".....)....:
0430H: 83 E0 22 50 06 E9 25 82 F8 E6 22 BB FE 06 E9 25  | .."P..%..."....
0440H: 82 F8 E2 22 E5 82 29 F5 82 E5 83 3A F5 83 E4 93  | ..."..)....:...
0450H: 22 BB 01 06 89 82 8A 83 F0 22 50 02 F7 22 BB FE  | "........"P..".
0460H: 01 F3 22 FA E6 FB 08 08 E6 F9 25 F0 F6 18 E6 CA  | ..".......%....
0470H: 3A F6 22 D0 83 D0 82 F8 E4 93 70 12 74 01 93 70  | :.".......p.t..
0480H: 0D A3 A3 93 F8 74 01 93 F5 82 88 83 E4 73 74 02  | .....t.......st
0490H: 93 68 60 EF A3 A3 A3 80 DF 44 75 6D 70 48 65 78  | .h`......DumpHe
04A0H: 3A 20 0D 0A 41 44 44 52 20 3A 20 30 30 20 30 31  | : ..ADDR : 00 0
04B0H: 20 30 32 20 30 33 20 30 34 20 30 35 20 30 36 20  |  02 03 04 05 06
04C0H: 30 37 20 30 38 20 30 39 20 30 41 20 30 42 20 30  | 07 08 09 0A 0B 
04D0H: 43 20 30 44 20 30 45 20 30 46 20 20 7C 20 20 20  | C 0D 0E 0F  |  
04E0H: 20 20 20 20 41 53 43 49 49 20 20 20 20 20 00 0D  |     ASCII     .
04F0H: 0A 25 30 34 58 48 3A 20 00 25 30 32 62 58 20 00  | .%04XH: .%02bX 
0500H: 20 7C 20 00 0D 0A 00 12 04 0B 60 1C FF 09 E9 70  |  | .......`....
0510H: 01 0A C0 E0 EA C0 E0 EB C0 E0 12 05 31 D0 E0 FB  | ............1..
0520H: D0 E0 FA D0 E0 F9 80 DF 7F 0A 12 05 31 E4 FE FF  | ............1..
0530H: 22 EF B4 0A 07 74 0D 12 05 3C 74 0A 30 98 11 A8  | "....t...<t.0..
0540H: 99 B8 13 0C C2 98 30 98 FD A8 99 C2 98 B8 11 F6  | ......0........
0550H: 30 99 FD C2 99 F5 99 22 43 98 50 43 8E 04 75 D6  | 0......"C.PC..u
0560H: FF 75 D7 9E 43 8E 10 D2 AC D2 AF 22 12 05 58 D2  | .u..C......"..X
0570H: 99 7D 88 7C 05 E4 FF FE 12 03 5F 80 FE 78 7F E4  | .}.|......_..x.
0580H: F6 D8 FD 75 81 3B 02 05 6C 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值