Раздел: Документация
0 ... 32 33 34 35 36 37 38 ... 55 Инициал, поел, порта на скорость 9600 бод. INIT9600: mov pcon,#80h /Частота приема/передачи УДВАИВАЕТСЯ, mov scon,#cch ;4сп-работает!;52h ;8 бит.,1 стоп, REN=0 (Запрет приема.: RENable=0) , ;TI=0,RI=0, Vo6m. определяется Tl, ;SMO=0,SM1=1,SM2=0(#4ch) - режим 1. TB8=RB3=1. ;SMO=l,SMl=l;SM2=0(#cch) - режим 3. TB8=RB8=1. Инициализация 2-х таймеров: Т1-для генерации Vo6m. по RS232C и ТО-как счетчика. Регистр TMOD: Tl: GATEl=0-ynp.oT процессора;С/Т1=0-таймер;М1.1=1,МО.1=0-реж.2 =>0010Ь ТО: ЭАТЕ0=1-управл. от INTO; С/Т0=1-счетчик,-Ml.0=0,М1.1=1-реж.1 =>1101Ь TMOD=00101101b или 2dh mov tmod,#2dh mov thl,#252 ;9600 бод при fKB.=7372800.
setb trl,Запуск Tl (TO пока не запущен) Конец инициализации на 9600 бод. START: Programming Enable setb RST call DEL2 5MS mov a,#10101100b OUTBS mov a,#01010011b OUTBS mov a,#ffh OUTBS Chip Erase mov a,#10101100b OUTBS mov a,#00000100b OUTBS OUTBS call DEL2 5MS call DEL2 5MS call DEL2 5MS call DEL2 5MS call DEL2 5MS call DEL2 5MS call DEL2 5MS Задержка 17.5ms (>16мс) Ввод байт по поел. порту ER0: DALEE : setb REN /Разрешение приема. INBYTE/Ввод буквы "w" cjne a,#77h,ER0 jmp DALEE jmp ER mov dptr,#0 INBYTE mov rO,a / Мл. байт длины INBYTE mov rl,a ; Ст. байт длины SPIN: INBYTE; Байт в a mov inpb,a mov a.dph orl a,#01000000b rl a rl a OUTBS ;output high addr for programming mov a<dpl OUTBS mov a,inpb OUTBS ;output ;data ;output low addr for programming data for programming call DEL2 5MS mov a,dph orl a,#00100000b rl a rl a rl a OUTBS;output high addr for reading mov a,dpi OUTBS;output low addr for reading INBS/reading data cjne a,inpb,ER inc dptr mov a,rl cjne a,dph,SPINO mov a,rO cjne a,dpl,SPINO jmp OK PINO : jmp SPIN Вывод байт по поел. порту clr REN mov a,#4fh /Запрет приема. . HQ" OUTBYTE jmp E Clr REN mov a,#45h OUTBYTE jmp E 0 ... 32 33 34 35 36 37 38 ... 55
|