⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ram.asm

📁 采用QT设计的S08仿真器程序 带源代码 使用串口方式,成本很低
💻 ASM
字号:
;----------------------------------------------------------------------------;
; RAM.MAS               Variables/Constantes                                 ;
; =======                                                                    ;
;----------------------------------------------------------------------------;
;                       Programado por Ing.Gabriel Dubatti (c)2005-2006      ;
;                       info@ingdubatti.com.ar                               ;
;                       www.ingdubatti.com.ar                                ;
;----------------------------------------------------------------------------;

; PORTA:
;  PA0 = (OUT)          BKD 68HCS908 (via un negador OC)
;  PA1 = (IN)           BKD 68HCS908 (input capture)
;  PA2 = (IN)  (IRQ)    BKD 68HCS908 (lee con BIL/BIH)
;  PA3 = (IN)           RX puerta serie PC
;  PA4 = (OUT)          RESET 68HCS908 (via un negador OC)
;  PA5 = (OUT           TX puerta serie PC
PA_B_BKD        EQU     0           ;OUT BKD NEGADO
PA_B_BKDIN      EQU     1           ;IN BKD (lee con Input capture)
PA_B_INBKD      EQU     2           ;IN BKD (lee con IRQPIN)
PA_B_RX         EQU     3
PA_B_RESET      EQU     4
PA_B_TX         EQU     5

DDRA_INIT       EQU     %11110001   ;direccion inicial del PORTA
PORTA_INIT      EQU     %00100000   ;valor inicial del PORTA (TX=1)

;ancho del pulso de SYNC en unidades de 4 ciclos de 4MHZ
;clock BDM = 4MHZ * 128 / (syncwidth*4) => 128MHZ / syncwidth
;
;syncwidth=  128MHz / clock BDM
;  3 => 32-40 MHZ (clock BDM)
;  4 => 26-32 MHZ (clock BDM)
;  5 => 21-26 MHZ (clock BDM)
;  6 => 18-21 MHZ (clock BDM)
;  7 => 16-18 MHZ (clock BDM)
;...
; 16 => 7.5-8 MHZ (clock BDM)
syncwidth       ds      2           ;

;ancho de 1 bit = 16 pulsos BDM (= syncwidth/2)
bitwidth        ds      2           ;

;tx0pos= (bitwidth * 13 / 16)-1
tx0pos          ds      2           ;hasta donde llega el "0"

;tx1pos= (bitwidth + 3 / 4)-1
tx1pos          ds      2           ;hasta donde llega el "1"

;treadpos= ((bitwidth * 5 +1) / 8)
treadpos        ds      2           ;donde leer los bits

;ancho de 1 bit redondeado a 4 ciclos para la rutina de delay
;modulo para el timer
;bitrTMOD= (bitwidth+7) & FFFC -1,  minimo 55
bitrTMOD        ds      2           ;
;delay variable= delay total - delay fijo (56 ciclos)
;bitrDELAY= (bitrTMOD+1)/4 - 7 (ajustado para la rutina de delay X:A)
bitrDELAY       ds      2           ;

rxdata          ds      1           ;respuesta recibida

tempo           ds      1           ;temporal
data1           ds      1           ;dato de comando
data2           ds      1           ;dato de comando

numbytes        ds      1           ;1) num bytes
databuf         ds      !22         ;buffer para cargar en RAM
                                    ;2) direccion HI y LOW
                                    ;3) datos (1..20)
rxchksum        ds      1           ;4) checksum recibido
checksum        ds      1           ;checksum generado (00=>OK)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -