ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

نمایش نتایج: از 1 به 5 از 5
  1. #1
    2008/01/26
    تهران
    30
    0

    کمک برای فرکانس متر با 8051

    سلام ، من یه پروژه فرکانس متر 8051 دارم که برنامشو نوشتم ولی توی پروتئوس روی lcd چیزی نشون نمیده :sad: فکر کنم برنامه ی lcd یا وقفه ها مشکل داره پایه های lcd رو هم درست وصل کرد. اینم برنامه:
    ORG 0
    LJMP MAIN
    ORG 000BH
    LJMP T0ISR
    ORG 001BH
    LJMP T1ISR
    ORG 0030H
    MAIN:
    MOV R0,#0
    MOV R3,#20
    MOV IE,#10001010B
    MOV TMOD,#61H
    MOV TH1,#00H
    SETB TR1
    AA: MOV TL0,#0B0H
    MOV TH0,#3CH
    SETB TR0
    HERE1:JNB TF0,HERE1
    HERE2:JNB TF1,HERE2
    T0ISR:
    CLR TF0
    CLR TR0
    DJNZ R3,AA
    MOV B,#255
    MOV A,R0
    MUL AB
    ADD A,TL1
    MOV R1,A
    MOV A,B
    ADDC A,TH1
    MOV R2,A
    CALL LCD
    MOV R0,#0
    MOV R3,#20
    SETB TR0
    RETI
    T1ISR:
    INC R0
    CLR TR1
    CLR TF1
    RETI
    LCD:
    MOV A,#38H
    CALL COMMAND
    CALL DELAY
    MOV A,#0CH
    CALL COMMAND
    CALL DELAY
    MOV A,#06H
    CALL COMMAND
    CALL DELAY
    MOV A,#01H
    CALL COMMAND
    CALL DELAY
    MOV A,#'f'
    CALL DISPLAY
    CALL DELAY
    MOV A,#'r'
    CALL DISPLAY
    CALL DELAY
    MOV A,#'e'
    CALL DISPLAY
    CALL DELAY
    MOV A,#'q'
    CALL DISPLAY
    CALL DELAY
    MOV A,#':'
    CALL DISPLAY
    CALL DELAY
    MOV A,R2
    CALL DISPLAY
    CALL DELAY
    MOV A,R1
    CALL DISPLAY
    CALL DELAY
    MOV A,#'H'
    CALL DISPLAY
    CALL DELAY
    MOV A,#'Z'
    CALL DISPLAY
    CALL DELAY
    COMMAND:
    MOV P2,A
    CLR P0.0
    CLR P0.1
    SETB P0.2
    CLR P0.2
    RET
    DELAY:
    MOV R4,#100
    BB: MOV R5,#200
    CC: DJNZ R5,CC
    DJNZ R4,BB
    RET
    DISPLAY:
    MOV P2,A
    SETB P0.0
    CLR P0.1
    SETB P0.2
    CLR P0.2
    RET
    END
    تو رو خدا کمک کنید! خیلی مهمه :cry:
  2. #2
    2008/08/26
    57
    1

    پاسخ : کمک برای فرکانس متر با 8051


    ;
    ;
    LCD_PORT EQU P1
    RS BIT P3.0
    EN BIT P3.1
    CONTROL BIT P3.4
    rec_a equ 47

    ORG 0000
    ;--------------------------
    ; *** MAIN *** ---
    ;--------------------------
    MAIN:
    CALL INIT
    MOV DPTR,#DATA_FR
    CALL WRITE
    LOOP_MAIN:
    MOV TH1,#00
    MOV TL1,#00

    CLR CONTROL
    SETB TR1
    CALL DELAY_100msec
    CLR TR1
    JBC TF1,DISPLAY_ERROR

    MOV A,TH1
    CJNE A,#HIGH(650),NOT_650
    MOV A,TL1
    CJNE A,#LOW(650),NOT_650
    NOT_650:
    JNC GR_65K
    MOV TH1,#00
    MOV TL1,#00
    SETB CONTROL
    SETB TR1
    CALL DELAY_1SEC
    CLR TR1
    CALL DIS_LT_65K
    JMP LOOP_MAIN
    DISPLAY_ERROR:
    CALL ERROR
    JMP MAIN
    GR_65K:
    MOV A,TH1
    CJNE A,#HIGH(6550),NOT_6550
    MOV A,TL1
    CJNE A,#LOW(6550),NOT_6550
    NOT_6550:
    JNC GR_650K
    MOV TH1,#00
    MOV TL1,#00
    CLR CONTROL
    SETB TR1
    CALL DELAY_1SEC
    CLR TR1

    CALL DIS_LT_650K
    JMP LOOP_MAIN

    GR_650K:
    CALL DIS_LT_6500K
    JMP LOOP_MAIN
    ;--------------------------
    ; *** ERROR *** ---
    ;--------------------------
    ERROR:
    MOV A,#01
    CALL COM

    MOV DPTR,#DATA1_ERROR
    CALL WRITE

    MOV A,#0C0H
    CALL COM

    MOV DPTR,#DATA2_ERROR
    CALL WRITE

    CALL DELAY_1SEC
    CALL DELAY_1SEC

    RET
    ;--------------------------
    ; *** DIV 10000 ***--
    ;--------------------------
    DIV_10000:
    MOV A,TH1
    CJNE A,#HIGH(10000),NO_10000
    MOV A,TL1
    CJNE A,#LOW(10000),NO_10000
    MOV TH1,#00
    MOV TL1,#00
    INC R5
    EXIT_DIV_10000:
    RET
    NO_10000:
    JC EXIT_DIV_10000
    MOV A,TL1
    CLR C
    SUBB A,#LOW(10000)
    MOV TL1,A
    MOV A,TH1
    SUBB A,#HIGH(10000)
    MOV TH1,A
    INC R5
    JMP DIV_10000
    ;--------------------------
    ; *** DIV 1000 *** --
    ;--------------------------
    DIV_1000:
    MOV A,TH1
    CJNE A,#HIGH(1000),NO_1000
    MOV A,TL1
    CJNE A,#LOW(1000),NO_1000
    MOV TH1,#00
    MOV TL1,#00
    INC R5
    EXIT_DIV_1000:
    RET
    NO_1000:
    JC EXIT_DIV_1000
    MOV A,TL1
    CLR C
    SUBB A,#LOW(1000)
    MOV TL1,A
    MOV A,TH1
    SUBB A,#HIGH(1000)
    MOV TH1,A
    INC R5
    JMP DIV_1000
    ;--------------------------
    ; *** DIV 100 *** --
    ;--------------------------
    DIV_100:
    MOV A,TH1
    CJNE A,#HIGH(100),NO_100
    MOV A,TL1
    CJNE A,#LOW(100),NO_100
    MOV TH1,#00
    MOV TL1,#00
    INC R5
    EXIT_DIV_100:
    RET
    NO_100:
    JC EXIT_DIV_100
    MOV A,TL1
    CLR C
    SUBB A,#LOW(100)
    MOV TL1,A
    MOV A,TH1
    SUBB A,#HIGH(100)
    MOV TH1,A
    INC R5
    JMP DIV_100
    ;--------------------------
    ; *** DIS_LT_65K ***-
    ;--------------------------
    DIS_LT_65K:
    MOV A,#0C0H
    CALL COM

    MOV R5,#30H
    CALL DIV_10000
    MOV A,R5
    CALL DATAW

    MOV R5,#30H
    CALL DIV_1000
    MOV A,R5
    CALL DATAW

    MOV A,#','
    CALL DATAW

    MOV R5,#30H
    CALL DIV_100
    MOV A,R5
    CALL DATAW

    MOV A,TL1
    MOV B,#10
    DIV AB
    ADD A,#30H
    CALL DATAW

    MOV A,B
    ADD A,#30H
    CALL DATAW

    MOV A,#' '
    CALL DATAW
    MOV A,#'H'
    CALL DATAW
    MOV A,#'z'
    CALL DATAW

    MOV A,#' '
    CALL DATAW

    MOV A,#' '
    CALL DATAW

    MOV A,#' '
    CALL DATAW

    RET
    ;--------------------------
    ; *** DIS_LT_650K ***
    ;--------------------------
    DIS_LT_650K:
    MOV A,#0C0H
    CALL COM

    MOV R5,#30H
    CALL DIV_10000
    MOV A,R5
    CALL DATAW

    MOV R5,#30H
    CALL DIV_1000
    MOV A,R5
    CALL DATAW

    MOV R5,#30H
    CALL DIV_100
    MOV A,R5
    CALL DATAW

    MOV A,#','
    CALL DATAW

    MOV A,TL1
    MOV B,#10
    DIV AB
    ADD A,#30H
    CALL DATAW

    MOV A,B
    ADD A,#30H
    CALL DATAW

    MOV A,#'0'
    CALL DATAW


    MOV A,#' '
    CALL DATAW
    MOV A,#'H'
    CALL DATAW
    MOV A,#'z'
    CALL DATAW

    MOV A,#' '
    CALL DATAW

    MOV A,#' '
    CALL DATAW

    MOV A,#' '
    CALL DATAW

    RET
    ;--------------------------
    ; *** DIS_LT_6500K **
    ;--------------------------
    DIS_LT_6500K:
    MOV A,#0C0H
    CALL COM

    MOV R5,#30H
    CALL DIV_10000
    MOV A,R5
    CALL DATAW

    MOV A,#','
    CALL DATAW

    MOV R5,#30H
    CALL DIV_1000
    MOV A,R5
    CALL DATAW

    MOV R5,#30H
    CALL DIV_100
    MOV A,R5
    CALL DATAW

    MOV A,TL1
    MOV B,#10
    DIV AB
    ADD A,#30H
    CALL DATAW

    MOV A,#','
    CALL DATAW

    MOV A,B
    ADD A,#30H
    CALL DATAW

    MOV A,#'0'
    CALL DATAW

    MOV A,#'0'
    CALL DATAW

    MOV A,#' '
    CALL DATAW
    MOV A,#'H'
    CALL DATAW
    MOV A,#'z'
    CALL DATAW

    MOV A,#' '
    CALL DATAW

    MOV A,#' '
    CALL DATAW

    MOV A,#' '
    CALL DATAW

    RET
    ;--------------------------
    ; *** INIT *** ---
    ;--------------------------
    INIT:
    MOV TMOD,#51H ;T1=counter 16bit T0=timer 16bit

    MOV A,#38H ;dotmatrix of lcd=5*7
    CALL COM ;send command to lcd

    MOV A,#0CH ;display=on cursor=off
    CALL COM ;send command to lcd

    MOV A,#06 ;inc cursor
    CALL COM ;send command to lcd

    MOV A,#01 ;clear lcd
    CALL COM ;send command to lcd

    RET ;return to main
    ;--------------------------
    ; *** convert *** ---
    ;--------------------------
    convert:
    mov rec_a,a

    mov c,acc.0
    mov acc.7,c

    mov c,acc.1
    mov acc.6,c

    mov c,acc.2
    mov acc.5,c

    mov c,acc.3
    mov acc.4,c

    mov c,rec_a.7
    mov acc.0,c

    mov c,rec_a.6
    mov acc.1,c

    mov c,rec_a.5
    mov acc.2,c

    mov c,rec_a.4
    mov acc.3,c

    ret
    ;--------------------------
    ; *** COM *** ---
    ;--------------------------
    COM:
    call convert
    MOV LCD_PORT,A ;get data
    CLR RS ;tish data is command
    SETB EN ;enable en pin
    CLR EN ;disable en pin

    CALL DELAY_2msec ;rate of lcd is low

    RET
    ;--------------------------
    ; *** DELAY 2msec ***
    ;--------------------------
    DELAY_2msec: ;8*250*1usec= 2,000 usec = 2 msec
    MOV R7,#8
    LOOP_DELAY_2msec:
    MOV R6,#250
    DJNZ R6,$
    DJNZ R7,LOOP_DELAY_2msec

    RET
    ;--------------------------
    ; *** DATAW *** ---
    ;--------------------------
    DATAW:
    call convert
    MOV LCD_PORT,A ;get data
    SETB RS ;this data for display
    SETB EN ;enable en pin
    CLR EN ;disable en pin

    CALL DELAY_2msec

    RET
    ;--------------------------
    ; *** WRITE *** ---
    ;--------------------------
    WRITE:
    CLR A ;A=0
    MOVC A,@A+DPTR ;A=@A+DPTR
    INC DPTR
    CJNE A,#255,WR_A
    RET
    WR_A:
    CALL DATAW
    JMP WRITE
    ;--------------------------
    ; *** DELAY_25msec **
    ;--------------------------
    DELAY_25msec:
    MOV TH0,#HIGH(-50000+10)
    MOV TL0,#LOW(-50000+10)
    SETB TR0
    JNB TF0,$
    CLR TR0
    CLR TF0

    RET
    ;--------------------------
    ; *** DELAY 100msec *
    ;--------------------------
    DELAY_100msec:
    MOV R7,#4
    LOOP_DELAY_100msec:
    CALL DELAY_25msec
    DJNZ R7,LOOP_DELAY_100msec

    RET
    ;--------------------------
    ; *** DELAY 1SEC ***-
    ;--------------------------
    DELAY_1SEC:
    MOV R7,#40
    LOOP_DELAY_1SEC:
    CALL DELAY_25msec
    DJNZ R7,LOOP_DELAY_1SEC

    RET
    ;--------------------------
    ; *** DATA *** ---
    ;--------------------------
    DATA_FR:
    DB 'Frequency:',255
    DATA1_ERROR:
    DB ' *** ERROR ***',255
    DATA2_ERROR:
    DB ' FR is high !!!',255
    ;--------------------------
    ; *** END PROGEAM ***
    ;--------------------------

    END
  3. #3
    2006/10/25
    اصفهان
    203
    0

    پاسخ : کمک برای فرکانس متر با 8051

    ببخشید من اصلا قصد نا امید کردن نداشتم اما چرا از ASM استفاده کردید. :question:
    Difficult But possible
    به اميد ايراني آباد.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  4. #4
    2008/01/26
    تهران
    30
    0

    پاسخ : کمک برای فرکانس متر با 8051

    سلام، چون استادم با asm می خواست!!
    خدا رو شکر برنامه ام درست شد و تحویل دادم. :icon_razz:
  5. #5
    2008/02/25
    1
    0

    پاسخ : کمک برای فرکانس متر با 8051

    سلام من دارم با 8051 مينويسم الان هم تموم شده
نمایش نتایج: از 1 به 5 از 5

موضوعات مشابه

  1. چندین نمونه کد برای 8051
    توسط طراح در انجمن 8051
    پاسخ: 1
    آخرين نوشته: 2010/10/05, 21:26
  2. کمک برای پروژه 8051
    توسط meripapins در انجمن 8051
    پاسخ: 1
    آخرين نوشته: 2009/11/10, 09:41
  3. پاسخ: 1
    آخرين نوشته: 2008/06/12, 16:42
  4. درخواست کمک برای برنامه A 2 Dبا 8051
    توسط nicelife در انجمن 8051
    پاسخ: 1
    آخرين نوشته: 2007/10/04, 15:40
  5. کمک برای ip کد 8051 برای FPGA
    توسط mjelecom در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 1
    آخرين نوشته: 2007/05/30, 11:02

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •