广州周立功单片机发展有限公司 Tel
(020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
功能的实现 P89C51RD2 的 Boot ROM 与 ISP 功能的实现
青岛海洋大学工程学院 刘 滨 綦声波 杨 梅 马志强
The Boot ROM of P89C51RD2 and the Realization of ISP
Engineering Academy, Ocean University of QingDao Liu Bin Qi Shengbo Yang Mei Ma Zhiqiang
摘要 本文对 P89C51RD2 的 ISP 和 IAP 功能进行了简单论述 给出了实现读取其 Boot ROM 源代码的 硬件电路和程序 并对其 ISP 功能中的波特率自动跟踪技术 命令字的接收格式和执行方式进行了初步探讨 并给出了部分源代码 关键词 P89C51RD2 Boot ROM ISP(IAP)功能
1
概述
P89C51RD2 是 PHILIPS 公司内核基于 8 位 80C51 单片机的派生产品 它在完全保留 80C51 指令系统和
硬件结构的大框架外 发生了多方面的加强 扩展 翻新和创新 在最大限度地利用原有的结构的方方面面 可以说做到了淋漓尽致 P89C51RD2 将原有的对外数据和程序存储器的 16 位寻址机制加以利用 把片上的 RAM 扩展到 1K 字节 片上的 FLASH EPROM 扩展到 64K 字节 满足当今用嵌入式高级语言对片上大存储 容量的需要 P89C51RD2 最 显 著 的 特 点 莫 过 于 其 ISP In-System Programming 功 能 和 IAP In-Application Programming 功能 ISP 为在系统可编程 是指电路板上的空白器件可以编程写入最终用户代码 而不需要 从电路板上取下器件 已经编程的器件也可以用 ISP 方式擦除或再编程 IAP 为在应用中可编程 是指 MCU 可以在系统中获取新代码并对自己重新编程 即可用程序来改变程序 ISP 技术和 IAP 技术是未来仪器仪表 的发展方向 PHILIPS 公司为了使 ISP 技术和 IAP 技术得以推广 在芯片上免费提供 Boot ROM 固件 并且 巧妙地解决了固件和 FLASH 的地址覆盖问题和一些具体实现细节问题 使它们的实现变得简单而现成 对于 Boot ROM 中的内容 PHILIPS 公司是不公开的 但很多技术人员对于 Boot ROM 固件中 ISP(IAP) 功能的实现非常感兴趣 就 ISP 状态而言 上位机直接跟 Boot ROM 固件中的程序打交道 因此必须根据 PHILIPS 公司提供的流程和协议来编制上位机程序 至于 Boot ROM 内部是如何实现 ISP 功能的 则不得而 知 如果能够搞明白 ISP 功能实现的具体方法 则对于上位机软件的编制是大有好处的 以下是我们对 Boot ROM 中有关 ISP 功能的实现作了一些初步的探讨
2
Boot ROM 固件代码的读出方法
要对其 ISP 功能进行分析 必须读出 Boot ROM 中的源代码 为此 必须弄清楚 Boot ROM 空间和 FLASH
空间的关系 P89C51RD2 采用了最先进的 FLASH 快闪 EPROM 其容量为 64K 并且分成 8K 和 16K 的存储块 我们知道 80C51 系列 8 位单片机的最大寻址能力就是 64K FLASH EPROM 已经将全部寻址空间占据 同时 PHILIPS 公司为 P89C51RD2 在片内提供了一个名叫引导 ROM(Boot ROM)的 1K 字节的固件 固件上有引导装载 程序 可以接收主机经串口传来的命令和数据 如经 PC 机的 RS-232C 口 ENBOOT 位来进行的 ENBOOT=1 ENBOOT=0 硬件部分和软件部分 地址在 0FC00H 地址在 0FC00H 0FFFFH 范围 0FFFFH 范围 寻址到固件 寻址到 FLASH 这个固件是放在 64K 程序存储器 的最高端的 与片内 FLASH 地址 0FC00H 0FFFFH 相覆盖 两者之间的切换是通过特殊功能寄存器 AUXR1 的
既然当 ENBOOT=1 时 能够寻址到固件 则利用程序就可以将固件代码读出 下面就是实现代码读出时的
-1-
广州周立功单片机发展有限公司 Tel
(020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
硬件部分 为了读出 Boot ROM 中的内容 必须搭一个包括复位 晶振和串口通讯功能的基本硬件系统 如图 1 所 示 ICL232 为单电源串口转换芯片 可以完成 TTL 电平与 RS-232C 电平之间的转换
VCC VCC RST
4.7k
VCC
16
VCC
C1+
1
22uf
ALE RXD TXD
C4
22uF
2 6
C6
22uF V+ C1C2+
3 4
V-
C5
22uF
15 12 11
ICL232
VSS RO1 TI1 C2RI1 TO1
5 13 14
C7
22uF
P89C51RD2
33pf 11.0592M 33pf
XTAL1
参考电平
接 RX 上 TX 位 机
XTAL2 VPP GND /EA
VCC
图1
软件编制
基本硬件电路图
编制软件的目的 是为了从 Boot ROM 中读出源代码 并送往上位机显示 为了使用现成的软件 如超级 终端 程序中将读出的二进制代码转换成 ASCII 码 并组成 HEX 文件格式直接传给上位机 这样 将显示的 内容存盘并反汇编 就可以对 Boot ROM 中的内容进行分析 由于程序中涉及到二进制转换成 HEX 文件格式 故将有关 HEX 文件格式的有关内容表述如下 HEX 文件的 INTEL 格式 是 INTEL 公司提出的按地址排列的数据信息 数据宽度为字节 所有数据使用 16 进制数字表示 如 Boot ROM 从地址 FC00H 开始的前 16 个数据为 已经转换成 ASCII 码 75 89 02 75 C8 30 E4 F5 CD F5 CC 30 B0 FD 20 B0 则转换成 HEX 文件格式为 :10FC000075890275C830E4F5CDF5CC30B0FD20B073 : 符号表明记录的开始 后面的两个字符表明记录的长度 这里是 10H 即 16 个 16 进制数字 后面的四 个字符给出调入的地址 这里是 FC00H 再后面的两个字符表明记录的类型 00 表示数据记录 01 表示记录 文件结束 再后面的 16 个数据即为真正的数据记录 最后的两位 73 是校验 它加上前面所有的数据和为 0 所有 HEX 格式文件的最后一行为结尾行 :00000001FF 读 Boot ROM 代码的主程序编制如下 AUXR1 BOOT_ROM EQU EQU 0A2H 0FC00H 特殊功能寄存器 Boot ROM 的起始地址 它比较特殊 总是如下所示 16 进制
-2-
广州周立功单片机发展有限公司 Tel DAT_BUFFER EQU DAT_SUM ORG AJMP ORG START: MOV MOV MOV MOV MOV MOV MOV SETB MAIN: LCALL LCALL AJMP SP,#50H SCON,#50H T2CON,#30H TL2,#0E0H TH2,#0FEH RCAP2L,#0E0H RCAP2H,#0FEH TR2 READ_ROM SEND_END $ EQU 0000H START 0030H 30H 31H
(020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 数据暂存器 校验和
以 T2 作为波特率发生器 波特率为 2400bps
启动 T2 Boot ROM 内容读出子程序 结尾行送出子程序
主程序中用到了两个子程序 READ_ROM 和 SEND_END READ_ROM 子程序功能 从 FC00H 开始将代码读出 将其转变成 ASCII 码并拼凑成 HEX 文件记录的 形式传给上位机 READ_ROM: MOV MOV MOV RDRM1: MOV MOV ACALL MOV MOV ACALL MOV ACALL MOV ACALL MOV ACALL MOV RDRMO: CLR MOVC ACALL A A,@A+DPTR SEND_BYTE 送出数据 A,#3AH SBUF,A DELAY_200MS DAT_SUM,#0 A,#10H SEND_BYTE A,DPH SEND_BYTE A,DPL SEND_BYTE A,#00H SEND_BYTE R3,#16 送出"00"表示数据 见 HEX 文件格式 送出 DPTR 值 数据对应地址 见 HEX 文件格式 延时 DAT_SUM 为校验和 初始值送 0 见 HEX 文件格式 送出"10" 表示每一行为 16 个数据 送出" " 见 HEX 文件格式 DPTR,#BOOT_ROM AUXR1,#20H R2,#64 FC00H 送 DPTR ENBOOT=1 64×16 1024 寻址到固件 为固件长度 1K
-3-
广州周立功单片机发展有限公司 Tel INC DJNZ MOV CPL INC ACALL MOV MOV ACALL MOV MOV ACALL DJNZ RET SEND_END 子程序功能 SEND_END: MOV MOV KJH2: MOV MOVC MOV ACALL CLR INC DJNZ MOV MOV ACALL MOV MOV ACALL RET A,#00H A,@A+DPTR SBUF,A DELAY_200MS TI DPTR R3,KJH2 A,#0DH SBUF,A DELAY_200MS A,#0AH SBUF,A DELAY_200MS DPTR R3,RDRMO A,DAT_SUM A A SEND_BYTE A,#0DH SBUF,A DELAY_200MS A,#0AH SBUF,A DELAY_200MS R2,RDRM1
(020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
每次送 16 个数据
未完继续
DAT_SUM 在 SEND_BYTE 子程序中改变 将校验和送出 回车 控制字符
换行
控制字符
未完继续
送出结尾一行
即送出":00000001FF"字符串
STR_CODE: DB ':00000001FF' DPTR,#STR_CODE R3,#11 代码首地址 共 11 个字符
回车
控制字符
换行
控制字符
SEND_BYTE 子程序功能 将一个 16 进制数变为 ASCII 码 SEND_BYTE: MOV ANL SWAP ACALL MOV ACALL MOV DAT_BUFFER,A A,#0F0H A BIN_TO_ASCII SBUF,A DELAY_200MS A,DAT_BUFFER 先变高位 暂存
先高后低逐位送出
并将校验和进行处理
二进制变为 ASCII 码
-4-
广州周立功单片机发展有限公司 Tel ANL ACALL MOV ACALL MOV ADD MOV RET A,#0FH BIN_TO_ASCII SBUF,A DELAY_200MS A,DAT_SUM A,DAT_BUFFER DAT_SUM,A
(020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 再变低位 二进制变为 ASCII 码
校验和 相加 送 DAT_SUM
BIN_TO_ASCII 子程序的功能是将二进制转变为 ASCII 码 STR_ASCII: DB '0123456789ABCDEF' BIN_TO_ASCII: PUSH PUSH MOV MOVC POP POP RET DPH DPL DPTR,#STR_ASCII A,@A+DPTR DPL DPH
3
Boot ROM 固件的功能分析
通过对 Boot ROM 中的程序进行分析 可以对 ISP 的有关指令进行更深入的理解 在一些编程方法上也 下面对 ISP 的有关知识点进行阐述
可以向国外学习
3.1 关于自动确定波特率 在 PHILIPS 给出的 ISP 功能的第一个步骤为 上位机向下位机发送一个大写的英文字符"U"供下位机确 定波特率 3.1.1 工作原理 大写的英文字符"U" 有它的特殊性 它的 ASCII 码为 55H 转换成二进制为"01010101B" 也就是说它 是一个"0""1"相间的数据 如图 2 所示 如果能够算出其一个位的传输时间 tp 则对应的波特率就可以计算 出来
tp
起始位
D0
D1
D2
D3
D4
D5
D6
D7 停止位
图 2 串行口传送字符
U 波形图
3.1.2 tp 对应的计数值 首先看一下在 Boot ROM 中是如何计算一个位所对应的计数值的 以下为 Boot ROM 从地址 FC00H 至 FC17H 之间的源代码及反汇编程序 源代码 反汇编程序
-5-
广州周立功单片机发展有限公司 Tel FC00 75 89 02 FC03 75 C8 30 FC06 E4 FC07 F5 CD FC09 F5 CC FC0B 30 B0 FD FC0E 20 B0 FD FC11 D2 CA FC13 30 B0 FD FC16 C2 CA MOV MOV CLR MOV MOV JNB JB SETB JNB CLR
(020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com ;T1 工作模式 2 定时器 ;T2 工作为串行口波特率发生器
TMOD,#02H T2CON,#30H A TH2,A TL2,A P3.0,$ P3.0,$ TR2 P3.0,$ TR2
;T2=0000H ;若 P3.0=0 则等待直到其变为 1 ;若 P3.0=1 则等待 直到下降沿到来 ;启动 T2 定时器 ;若 P3.0=0 则等待 直到上升沿到来 ;关闭 T2 定时器 此时 T2 中的数值为 tp
首先将 T2 清 0 然后测下降沿 测到下降沿后 开始置 TR2=1 T2 开始计数 等测到上升沿后 置 TR2=0 停止计数 则此时 T2 中为传送 1bit 低电平 的计数值 以波特率 2400bps 为例 则传送 1bit 所用的时间为 1/2400 秒 即 416.67s 由图 1 可知 P89C51RD2 主频为 11.0592M 再由 PHILIPS 公司的数据手册可知 当 T2 工作于波特率发生器模式时 OSC 未经分频直接进入 T2 计数器 由此可得在 tp 时间内 T2 的理论计数 值为 (T2)=0.00041667×11059200=4608(十进制)=1200H 在这里 我们特别要强调的是 该数只是一个理论 值 我们对波特率为 2400bps 时的实际值进行了测试 发现实测值为 11FAH 左右 不管怎样测 实测值总是 小于理论值 6 个数左右 这个数据为我们下面的波特率计算提供了重要依据 3.1.3 波特率的计算 程序中对波特率的计算颇有特色 源代码 FC18 E5 CC FC1A C4 FC1B 54 0F FC1D F8 FC1E E5 CD FC20 C4 FC21 54 F0 FC23 48 FC24 F8 FC25 E5 CD FC27 C4 FC28 54 0F FC2A F9 FC2B E8 FC2C F4 FC2D F5 CC FC2F F5 CA FC31 E9 FC32 F4 FC33 F5 CD FC35 F5 CB 反汇编程序 MOV SWAP ANL MOV MOV SWAP A ANL ORL MOV MOV SWAP A ANL MOV MOV CPL MOV MOV MOV CPL MOV MOV A,TL2 A A,#0FH R0,A A,TH2 下面是地址 FC18H 至 FC36H 之间的源代码和反汇编程序
;取 TL2 高 4 位
A,#0F0H ;取 TH2 低 4 位 A,R0 R0,A ;组合后送入 R0 A,TH2 A,#0FH ;取 TH2 高 4 位 R1,A A,R0 ;以上程序实现 T2 中数据除以 16 A ;低位取反 TL2,A RCAP2L,A A,R1 A ;高位取反 TH2,A RCAP2H,A
送 R1 和 R0 保存
上述程序就是将 tp 对应值转换成波特率的程序 先来看一下波特率是怎样定义的 定时器 2 工作在波特 率发生器模式 外部时钟信号由 T2 脚进入 波特率为 波特率
定时器2溢出率 16
公式 1
所以程序中首先将 T2 中的计数值进行处理 相当于右移 4 位 将低 4 位去掉 11FAH 变为 011FH 对 应公式 1 中除以 16 送 R1 和 R0 保存 然后将 R1 和 R0 中的值取反 其值为 FEE0H 该值恰恰与根据公式 -6-
广州周立功单片机发展有限公司 Tel 计算出的数值相同
(020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com 即得 2400bps 对应的赋值
将该数值送 T2 和 RCAP2
3.1.4 波特率的校验 在波特率确定以后 首先设定 TR2=1 以启动波特率 并对串口控制字进行了设定 然后程序对其进行了 校验 方法是接收上位机的数据并以设定波特率回送该值 一方面通知上位机对送出和接收的数据是否相同 如果相同 则上位机则认为下位机的波特率设置正确 通讯成功 另一方面程序也将接收的数据与"U"的 ASCII 码相对照 如果相等则往下执行 如果不等 则继续重复上述过程 直到成功为止 否则进入死循环 只有 程序复位才能退出 下面是其源程序与反汇编程序 源代码 FC37 D2 CA FC39 75 98 52 FC3C 91 A0 FC3E B4 55 FB 反汇编程序 SETB MOV RREV0: ACALL CJNE TR2 SCON,#52H REV_SEND0 A,#55H,RREV0 ;串行口 方式 1 TI=1 FC37H 至 FC40H
;判断 A="U"
其中 REV_SEND0 子程序的功能是接收一个数据并回传给上位机 由上述程序可以看出 实际上要通 讯成功 上位机至少要向下位机发送两个"U" 第一个用于确定波特率 另一个用于校验波特率 并且这两 个字符之间必须隔一段时间 以便于波特率计算完毕并有效 所以有关手册中关于 ISP 第一步要发送一个"U" 来确定波特率的说法本身没有错 但如果在编制上位机程序时 仅仅发送一个"U"是不能够通讯成功的 特 提醒读者注意 3.2 命令字的接收 在通讯成功后 就可以接收 ISP 的命令字了 3.2.1 ISP 命令格式说明 ISP 编程由 Boot ROM 中的一系列引导子程序完成 这些子程序采用 Intel-Hex 记录格式接收 PC 主机的 命令和数据 Intel-Hex 记录格式上面已经有所介绍 其命令格式为 :NNAAAARRDD…DDCC 其中,:NNAAAA 以及 DDCC 的含义皆与上面论述的相同 RR 表示记录类型 其中 即传编程数据并完成编程 "00"表示数据记录 "01"表示文件结束标志 "02"指定振荡器频率 "03"表示杂项编程功能 "05"为各种读功能 3.2.2 命令字的处理 为了更容易看懂 DATA_ADDRL DATA_ADDRH DATA_SUM DATA_LEN DATA_FOSC DATA_MODE DATA_BUFFER REV_DAT_ADDR 将使用的通用寄存器和部分地址进行代换如下 EQU EQU EQU EQU EQU EQU EQU EQU 30H 31H 32H 33H 34H 35H 36H 80H 和后面的数据相配合完成擦除 加密等功能 "04"显示指定地址端 FLASH 的数据或做空白检查 只需对 RR 作以下说明
下面来看一下 Boot ROM 中的源代码与反汇编程序 -7-
广州周立功单片机发展有限公司 Tel
(020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
源程序
反汇编程序 MOV ACALL CJNE ACALL MOV ACALL MOV ACALL MOV ACALL MOV MOV MOV JZ MOV ACALL MOV INC DJNZ MOV ACALL MOV CJNE AJMP MOV AJMP DATA_SUM,#00H ;校验和单元 REV_SEND0 A,#3AH,MAIN ;判断 A=":" REV_DAT1_SUM DATA_LEN,DATA_BUFFER ;33h 字节数 REV_DAT1_SUM DATA_ADDRH,DATA_BUFFER ;31h 数据首地址高 8 位 REV_DAT1_SUM DATA_ADDRL,DATA_BUFFER ;30h 数据首地址低 8 位 REV_DAT1_SUM DATA_MODE,DATA_BUFFER ;35h 数据操作类型 A,DATA_LEN R2,A ;循环接收数据指针 RREV3 ;字节数=0 转 RREV3 R1,#REV_DAT_ADDR REV_DAT1_SUM @R1,DATA_MODE R1 R2,RREV2 R4,DATA_SUM ;校验和 REV_DAT1_SUM A,R4 A,DATA_BUFFER,RREV4 ;校验和不等转 RUN_MODE A,#58H ; A="X" SEND_DT
FC41 75 32 00 MAIN: FC44 91 A0 FC46 B4 3A F8 FC49 91 79 FC4B 85 36 33 FC4E 91 79 FC50 85 36 31 FC53 91 79 FC55 85 36 30 FC58 91 79 FC5A 85 36 35 FC5D E5 33 FC5F FA FC60 60 09 FC62 79 80 FC64 91 79 RREV2: FC66 A7 36 FC68 09 FC69 DA F9 FC6B AC 32 RREV3: FC6D 91 79 FC6F EC FC70 B5 36 02 FC73 81 BF FC75 74 58 RREV4 FC77 81 FA
首先 对程序中用到的子程序做如下的说明 REV_SEND0 子程序 接收一个数据并回传给上位机 REV_DAT1_SUM 子程序 接收 2 个 ASCII 字符并回传 将 2 个 ASCII 码合成 1 字节二进制数并计算 校验和 SEND_DT 该地址执行送字符"X"给上位机 RUN_MODE 该地址解释并执行命令字 对上段程序分析如下 首先将校验和单元清零 然后开始接收第 1 个 ASCII 码 并判断是否为":" 如果 是 则说明是一个命令字的开始 下面便依次接收字节数 DATA_LEN 数据首地址高 8 位 DATA_ADDRH 数据首地址低 8 位 DATA_ADDRL 和数据操作类型 DATA_MODE 这跟其命令字格式是完全对应的 然后 程序根据接收数据字节数 DATA_LEN 来决定下面的数据接收 并将接收的数据存储在从 80H 开始的内部数 据存储器中 以备下一步的处理 然后进入校验和的接收 将程序计算所得的校验和与上位机传输的校验和 作比较 如果不等 回传"X"字符 通知上位机进行异常处理 如果相等 则转入相应的命令执行 3.3 命令的执行 命令解释和执行的源代码和反汇编程序如下 源程序 反汇编程序 MOV RL MOV JMP AJMP AJMP AJMP AJMP AJMP AJMP A,DATA_MODE ;35h 数据操作类型 A ;A=A*2 DPTR,#BASE_ADDR ;程序散转 @A+DPTR PRO_DATA ;00=传送编程数据并完成编程 SEND_CHAR_OK ;01=传文件结束符 SETUP_FOSC ;02=指定振荡器频率 MPRO_DAT ;03=杂项编程功能 READ_CHECK ;04=显示指定地址段 FLASH 数据或查空 READ_DATA ;05=各种读功能 -8FCBF E5 35 RUN_MODE: FCC1 23 FCC2 90 FC C6 FCC5 73 FCC6 81 D4 BASE_ADDR: FCC8 81 F8 FCCA 81 FE FCCC A1 70 FCCE A1 04 FCD0 A1 9F
广州周立功单片机发展有限公司 Tel
(020)38730976 38730977 Fax: 38730925 http://www.zlgmcu.com
FCD2 A1 B3 AJMP SETUP_BPS ;06=直接装载波特率 在命令正确地接收后 通过 DATA_MODE 项 即命令格式中的 RR 来判断功能并转入相应的程序处理 程序中对每一个跳转地址都作出了相应的注释
4. 几点说明
本文给出的带源代码的程序均是 Boot ROM 中反汇编得来的 并且大部分是连续的 这一点可以从地 址分布上看出来 读者可以将其合并在一起看 相信可以加强理解 有兴趣的读者也可以参照以上给出的方 法将全部代码读出 电路图和源程序几乎都不必重编了 Boot ROM 中既包括了 ISP 的程序 也包括了 IAP 的程序 限于篇幅 本文只给出了 ISP 的部分源程 序 部分子程序只作了说明而未列出源程序 有兴趣的读者可对其继续进行研究
参考文献 1 2 3 P89C51Rx+/Rx2/66x 系列单片机的在线编程. 广州周立功单片机发展有限公司 P89C51RB2/P89C51RC2/P89C51RD2 DATA SHEET. 2001 Jun 27. Philips Semiconductors. 何立民,MCS-51 系列单片机应用系统设计,北京,北京航空航天大学出版社,1990.1
联系方式 邮编 地址 单位 联系人 电话 266071 山东省青岛市香港东路 23 号 青岛海洋大学工程学院机电工程系 綦声波 013656487526
E-MAIL: qsboo1@md-mail.ouqd.edu.cn
-9-
- stc单片机isp官方下载 > 广州周立功单片机发展有限公司
-
广州周立功单片机发展有限公司
下载该文档 文档格式:PDF 更新时间:2002-08-01 下载次数:0 点击次数:1文档基本属性 文档语言: Traditional Chinese 文档格式: pdf 文档作者: user 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: com 分类: 创建时间: 上次保存者: 修订次数: 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 段落数: 字节数: 备注: 演示格式: 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
- PDF格式下载
- 更多文档...
-
上一篇:avr 单片机的并口isp 下载线diy - 杭州微特电子
下一篇:嵌入式智能仿真开发平台
点击查看更多关于stc单片机isp官方下载的相关文档
- 您可能感兴趣的
- stc单片机isp下载软件 宏晶stc单片机isp下载 自制stc单片机isp 单片机的isp程序下载 51单片机isp下载线 stc单片机程序下载 stc单片机封装库下载 stc单片机下载线 stc单片机下载软件
- 大家在找
-
- · 职业道德考试复习题
- · 2013年福建阳光工程培训基地汇总表
- · 一汽奔腾b50自动档
- · 安全用电应急预案
- · 电子制冷片恒温控制
- · 北就国联肝病研究院
- · 智能温度控制系统的设计
- · 欧式天花拼花cad图库
- · 自己组装收音机
- · 电力系统安全施工协议
- · cf官网q币抽奖
- · 自然曲度腰枕治疗仪
- · 印刷品质检测与控制课件
- · 大学英语第一册课文
- · 夏树カォル中文字幕
- · 船舶货运
- · 上海硅酸盐所
- · 西安fm105.5歌单
- · 垂直提升机
- · 地球内部圈层划分结果
- · 河北省公务员考试
- · 管理学习题与案例
- · pes2011妖人门将
- · 电机使用寿命
- · 电子电路图
- · 若贝尔奖施敏
- · 玄武开传36话
- · 赣州市物流规划
- · 医学类院校排名2011
- · 属鼠人2012年运程预测
- · 滚筒采煤机牵引部设计
- · 大学数学线性代数
- · 化工安全操作规程
- · 简单电机控制回路图
- · 刀尖上行走全集
- · www.ce678.com
- · 增值表损益表联系
- · www.yu.333.com
- · 行政事业单位会计试题
- · 交通行政执法规范全文
- 赞助商链接