User Tag List

Показано с 1 по 10 из 91

Тема: AY-микросхемы

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Talking

    Вот текст программы для C51F120:
    Код:
    ; AY-8912 Emulator On C51F330 - 16grn=$3.1  25-MIPs 4-Timers
    ;                  On C51F332 - 12grn=$2.4  25-MIPs 4-Timers
    
            Include '51F120.inc'
            Include 'intel.inc'
    
    
    
    
    RCAP    EQU (12*14-6)/12
    
            .Delay
             PUSH DPL
             PUSH DPH
             MOV DPTR,#-@.0
             CALL Dela
             POP DPH
             POP DPL
            ..
    
    
    
            DEFDB R_AY15
            DEFDB R_AY14
            DEFDB R_AY13
            DEFDB R_AY12
            DEFDB R_AY11
            DEFDB R_AY10
            DEFDB R_AY09
            DEFDB R_AY08
            DEFDB R_AY07
            DEFDB R_AY06
            DEFDB R_AY05
            DEFDB R_AY04
            DEFDB R_AY03
            DEFDB R_AY02
            DEFDB R_AY01
            DEFDB R_AY00
    
            DEFDS Ch_AC,3
            DEFDS Ch_BC,3
            DEFDS Ch_CC,3
            DEFDS Ch_EC,3
            DEFDS Ch_NC,3
    
            ORG 0
            JMP Start
    
    
       ORG   03Bh
       RETI
    
       ORG 00BH
       JMP Timer0INT
    
    
    
            ORG 100H
    
    Start:
                   MOV SP,#SPMAX            ;DSEG$+1
    
    
                   MOV WDTCN, #0DEh
                   MOV WDTCN, #0ADh
    
    
    ;ENABLE INTERNAL PLL (MNOGO MEGAGERTZZZSS)
    
                   MOV SFRPAGE,#0FH
                   ORL PLL0CN,#00000001B
    
                   MOV PLL0DIV,#1
                   MOV PLL0MUL,#1
                   CLR A
                   DJNZ ACC,$
                   ORL PLL0CN,#00000010B
    MMM2:          MOV A,PLL0CN
                   JNB ACC.4,MMM2
                   MOV OSCICN,#10000011B
                   MOV CLKSEL,#00000010B
    ;
    
    
    
                   ; Enable the Port I/O Crossbar
    ;               MOV   P1MDIN,#11111111B
    
                   MOV XBR0,#00010111B
                   MOV XBR1,#00000000B
                   MOV XBR2,#01000100B
    
                   MOV   P0MDOUT,#0FFH
                   MOV   P1MDOUT,#0FFH
                   MOV   P2MDOUT,#000H
                   MOV   P3MDOUT,#000H
                   MOV   P4MDOUT,#000H
                   MOV   P5MDOUT,#000H
                   MOV   P6MDOUT,#000H
                   MOV   P7MDOUT,#11111111B
    
                   MOV SFRPAGE,#00H
    
    
    
            MOV SFRPAGE,#00H
            MOV REF0CN,#00001011B
            MOV DAC0CN,#10000100B
            MOV SFRPAGE,#01H
            MOV DAC1CN,#10000100B
            MOV SFRPAGE,#00H
    
            MOV DPTR,#4095
            MOV DAC0L,DPL
            MOV DAC0H,DPH
            MOV SFRPAGE,#00H
    
    
    ;Serial port
    
            MOV SFRPAGE,#0
            MOV RCAP2L,#LOW(-RCAP)
            MOV RCAP2H,#HIGH(-RCAP)
            MOV TMR2CN,#00000100B
            MOV TMR2CF,#00001010B
            MOV TMR2L,#0FFH
            MOV TMR2L,#0FFH
    
            MOV SCON0,#01010000B
            MOV SSTA0,#00000101B
    
    
    
    
    
            MOV TMOD,#00010010B
            MOV TL0,#LOW(-T0REL)
            MOV TH0,#LOW(-T0REL)
            SETB TR0
            ORL IE,#00000010B
    
            SETB EA
    
    
            CLR A
            MOV Ch_AC+0,A
            MOV Ch_AC+1,A
            MOV Ch_AC+2,A
            MOV Ch_BC+0,A
            MOV Ch_BC+1,A
            MOV Ch_BC+2,A
            MOV Ch_CC+0,A
            MOV Ch_CC+1,A
            MOV Ch_CC+2,A
            MOV Ch_EC+0,A
            MOV Ch_EC+1,A
            MOV Ch_EC+2,A
    
            MOV R_AY00,A
            MOV R_AY01,A
            MOV R_AY02,A
            MOV R_AY03,A
            MOV R_AY04,A
            MOV R_AY05,A
            MOV R_AY06,A
            MOV R_AY07,#00111111B
            MOV R_AY08,#15
            MOV R_AY09,#15
            MOV R_AY10,#15
            MOV R_AY11,A
            MOV R_AY12,A
            MOV R_AY13,A
            MOV R_AY14,A
            MOV R_AY15,A
    
    
            MOV R7,#1
    M1
            ;MOV R_AY00,#100
            ;MOV R_AY04,#200
    ;        CPL P1.6
    
    ;        MOV A,#10101010B
    ;        CALL Write_Sbuf0
    ;        DELAY 1
    ;
    ;        MOV A,#30
    ;        CALL Write_Sbuf0
    ;        DELAY 1
    
    
            JNB RI0,MM1
    .0
            MOV A,R7
            ANL A,#10000000B
            JNZ M3
            CPL P1.6
    M3      MOV R7,#255
    ..
            CALL Read_Sbuf0
            MOV B,A
            ANL B,#00001111B
            SWAP A
            ANL A,#00001111B
    
            JNZ MCM1
            MOV R0,B
            JMP MM1
    MCM1:   DEC A
            JNZ MCM2
            MOV R1,B
    MCM2:   DEC A
            JNZ MCM3
            MOV A,R0
            ANL A,#00001111B
            ADD A,#R_AY00
            MOV R0,A
            MOV A,B
            SWAP A
            ORL A,R1
            MOV @R0,A
            MOV R1,B
    MCM3:
    ;        CALL Write_Sbuf0
    
    MM1:
    
            JMP M1
    
    
    
    
    
    
    
    
    
    
    Read_Sbuf0:
            MOV SFRPAGE,#0
            JNB RI0,$
            MOV A,SBUF0
            CLR RI0
            RET
    
    Write_Sbuf0:
            MOV SFRPAGE,#0
            MOV SBUF0,A
            JNB TI0,$
            CLR TI0
            RET
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    DelNOP:                 ;CALL = 2   &   RET = 1    ...   25-3=22
            DS 245-3-2
            RET
    
    
    
    
    Dela:           ;DPTR=Delay
            PUSH ACC
    DELA1:  MOV A,#95
    DELA2:  CALL DelNOP
            DJNZ ACC,DELA2
            INC DPTR
            MOV A,DPL
            ORL A,DPH
            JNZ DELA1
            POP ACC
            RET
    
    
    ;5025536 TELEFON V ZALE NA RABOTE
    
    
           .PnDec ,ы
            CLR C
            MOV A,@.0+0
            SUBB A,#2
            MOV @.0+0,A
            JNC @P_DE1
    
            MOV A,@.1+0
            ANL A,#00011111B
            INC A
            RL A
            RL A
            MOV @.0+0,A
            INC @.0+2
    
    ;        MOV B,A
    ;@P_DE2  INC @.0+2
    ;        ADD A,@.0+0
    ;        MOV @.0+0,A
    ;        MOV A,B
    ;        JNC @P_DE2
    
    @P_DE1  MOV A,@.0+2
            MOVC A,@A+DPTR
           ..
    
    
           .PzDec ,ы
            CLR C
            MOV A,@.0+0
            SUBB A,#LOW(DECCER)
            MOV @.0+0,A
            MOV A,@.0+1
            SUBB A,#HIGH(DECCER)
            MOV @.0+1,A
            JNC @P_DE1
    ;        ANL @.1+1,#00001111B
            MOV A,@.1+0
            ORL A,@.1+1
            JNZ @P_DE2
            MOV @.0+0,A
            MOV @.0+1,A
    ;        MOV @.0+2,#1
            JMP @P_DE1
    @P_DE2  INC @.0+2
            MOV A,@.0+0
            ADD A,@.1+0
            MOV @.0+0,A
            MOV A,@.0+1
            ADDC A,@.1+1
            MOV @.0+1,A
            JNC @P_DE2
    @P_DE1  MOV A,@.0+2
            JNB ACC.4,@P_DE3
            INC DPH
    @P_DE3  ANL A,#00001111B
            MOVC A,@A+DPTR
           ..
    
           .PxDec ,,,ы
            CLR C
            MOV A,@.0+0
            SUBB A,#LOW(DECCER)
            MOV @.0+0,A
            MOV A,@.0+1
            SUBB A,#HIGH(DECCER)
            MOV @.0+1,A
            JNC @P_DE1
            ANL @.1+1,#00001111B
            MOV A,@.1+0
            ORL A,@.1+1
            JNZ @P_DE2
            MOV @.0+0,A
            MOV @.0+1,A
            ORL @.0+2,#1
            JMP @P_DE1
    @P_DE2  INC @.0+2
            CLR C
            MOV A,@.0+0
            ADDC A,@.1+0
            MOV @.0+0,A
            MOV A,@.0+1
            ADDC A,@.1+1
            MOV @.0+1,A
            JNC @P_DE2
    @P_DE1  MOV A,@.0+2
            RRC A
            MOV A,@.2
            JNB ACC.4,@P_DE3
            MOV A,R0
    @P_DE3  ANL A,#00001111B
            RLC A
    ;        JB @.3+3,@P_DE4
    ;        MOV C,B.0
    ;        ORL C,ACC.0
    ;        MOV ACC.0,C
    @P_DE4:
            MOV C,@.3
            RLC A
            MOVC A,@A+DPTR
            RL A
    
           ..
    
    
    
    
    
    
    
    
    
    
    
    DECCER  EQU 4
    T0REL   EQU DECCER*11
    
    
    Timer0INT:
    
    ;        CLR TR0
            CLR TF0
    
    
    
            SETB P1.6
            PUSH SFRPAGE
            PUSH ACC
            PUSH PSW
            PUSH DPTR
            PUSH R0
            PUSH R1
            PUSH R2
            PUSH B
    .0
            MOV A,R7
            JZ M2
            DEC R7
            MOV A,R7
            JNZ M2
            CLR P1.6
    M2
    ..
    ... Продолжение следует ...
    AAA когда меня режут, я терплю, но когда дополняют, становится нестерпимо.

    Этот пользователь поблагодарил Robus за это полезное сообщение:

    USERHOME(30.12.2020)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Как сопрягать микросхемы с разными VCC?
    от dhau в разделе Несортированное железо
    Ответов: 22
    Последнее: 08.06.2012, 16:59

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •