|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2012-8-27 19:44:34
|
显示全部楼层
halloocc 发表于 2012-8-27 16:59 ![](static/image/common/back.gif)
谢LZ阿, 今天拿了片89c52rc,将3.3v的npn/pnp 的驱动部分省略, 直接将LGT的引脚和 P0 接,开始担心LGT 会 ...
虽然有直接用5v连接的冲动, 但是我始终没有测试, 因为我那芯片是焊接在洞洞板上 要是烧了重新焊接会崩溃
4051的主要问题是在ram 程序用了idata如果非要降低ram的使用连着上位机都要修改 是相当麻烦
STC11F04E 这个既然你能找到端口设定相信你也找到了ispTransmit_sw'
509 ;Allocation info for local variables in function 'ispTransmit_sw'
510 ;------------------------------------------------------------
511 ;out_byte Allocated to registers r7
512 ;i Allocated to registers r6
513 ;------------------------------------------------------------
514 ; isp.c:218: uchar ispTransmit_sw(uchar out_byte)
515 ; -----------------------------------------
516 ; function ispTransmit_sw
517 ; -----------------------------------------
0047 518 _ispTransmit_sw:
0047 AF 82 519 mov r7,dpl
520 ; isp.c:221: do
0049 7E 08 521 mov r6,#0x08
004B 522 00103$:
523 ; isp.c:223: MOSI = out_byte & 0x80;
004B EF 524 mov a,r7
004C 33 525 rlc a
004D 92*00 526 mov _ispTransmit_sw_sloc0_1_0,c
004F 92 80 527 mov _P0_0,c
528 ; isp.c:224: out_byte <<= 1;
0051 EF 529 mov a,r7
0052 2F 530 add a,r7
0053 FF 531 mov r7,a
532 ; isp.c:225: MCLK = 1;
0054 D2 82 533 setb _P0_2
534 ; isp.c:227: if(MISO)
0056 30 83 01 535 jnb _P0_3,00102$
536 ; isp.c:228: out_byte += 1;
0059 0F 537 inc r7
005A 538 00102$:
539 ; isp.c:229: MCLK = 0;
005A C2 82 540 clr _P0_2
541 ; isp.c:231: while(--i);
005C DE ED 542 djnz r6,00103$
543 ; isp.c:232: return out_byte;
005E 8F 82 544 mov dpl,r7
0060 22 545 ret
原型
uchar ispTransmit_sw(uchar out_byte)
{
uchar i=8;
do
{
MOSI = out_byte & 0x80;
out_byte <<= 1;
MCLK = 1;
/* __asm nop __endasm; */ /* for slow peripherals */
if(MISO)
out_byte += 1;
MCLK = 0;
}
while(--i);
return out_byte;
}
如果io定义没问题, 插nop就是了
真希望lgt手册上写兼容5v的电平 |
|