اطلاعیه

Collapse
No announcement yet.

ماشین حساب

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ماشین حساب

    سلام من می خوام یه ماشین حساب با 8051 بسازم.برای برنامه نویسی کسی می تونه کمکم کنه؟

    #2
    پاسخ : ماشین حساب

    نوشته اصلی توسط مرتضی.ب.ب
    سلام من می خوام یه ماشین حساب با 8051 بسازم.برای برنامه نویسی کسی می تونه کمکم کنه؟
    سلام.
    این پروژه به زبان اسمبلی هم در سایت هست، یه جستجو بکنید پیدا میکنید
    موفق باشید.
    شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
    هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
    چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

    دیدگاه


      #3
      پاسخ : ماشین حساب

      سلام دوست عزیز این برنامه یک ماشین حساب ساده



      ORG 0000H
      JMP MAIN
      ORG 0030H
      ;**************************** BARNAMEYEH ASLI **********************************
      MAIN:clr c
      ;P3.0 connected to RS pin
      ;P3.1 connected to R/W pin
      ;P3.2 connected to E pin
      MOV P2,#0FH ; keyboard
      MOV P1,#00 ; lcd display
      CAll INIT_LCD
      CALL DESING_CHAR


      CLR A
      CLR 01H
      mov a,#38h
      call command
      CALL C_L_lcd
      setb p3.4 ; sine key
      setb p3.5 ; cosine key


      CALL C_L_RAM

      ;------------------------------BARNAMEYEH YAFTAN KELID ---------------------------
      KEY_F:
      CLR A
      mov p2,#0FH
      mov a,p2
      anl a,#00001111b
      cjne a,#00001111b,k1
      CLR A
      MOV P2,#0FH
      JMP COUN
      k1:mov r2,#255
      TEK:mov r3,#200
      djnz r3,$
      djnz r2,TEK
      mov a,p2
      anl a,#00001111b
      cjne a,#00001111b,K2
      CLR A
      MOV P2,#0FH
      JMP COUN
      K2:mov p2,#01111111b ; row_0
      mov a,p2
      anl a,#00001111b
      cjne a,#00001111b,row0
      mov p2,#10111111b ; row_1
      mov a,p2
      anl a,#00001111b
      cjne a,#00001111b,row1
      mov p2,#11011111b ; row_2
      mov a,p2
      anl a,#00001111b
      cjne a,#00001111b,row2
      mov p2,#11101111b ; row_3
      mov a,p2
      anl a,#00001111b
      cjne a,#00001111b,row3
      CLR A
      MOV P2,#0FH
      JMP COUN
      row0:mov dptr,#kcode0
      sjmp find
      row1:mov dptr,#kcode1
      sjmp find
      row2:mov dptr,#kcode2
      sjmp find
      row3:mov dptr,#kcode3
      find:rrc a
      jnc match
      inc dptr
      sjmp find
      match:clr a
      movc a,@a+dptr
      cjne a,#10001100b,OVC
      jnb 01h,K3
      clr 01h
      mov a,#8fh
      call command
      mov a,#' '
      call data_dis
      mov p2,#0fh
      JMP COUN
      K3:call c_L_lcd
      call c_L_RAM
      mov p2,#0fh
      JMP COUN
      OVC:jnb 01h,key1
      mov p2,#0fh
      JMP COUN
      key1:cjne a,#10011110b,key2
      setb 00h
      CLR 02H
      call c_l_lcd
      mov a,#80h
      call command
      mov dptr,#res
      call display
      clr a
      MOV P2,#0FH
      JMP COUN
      key2:cjne a,#10111001b,key3
      setb 03h
      setb 02h
      mov a,#8fh
      call command
      mov a,#'+'
      call data_dis ; (+)
      clr a
      MOV P2,#0FH
      JMP COUN
      key3:cjne a,#10111111b,key4
      setb 04h
      setb 02h
      mov a,#8fh
      call command
      mov a,#'-'
      call data_dis ; (-)
      clr a
      MOV P2,#0FH
      JMP COUN
      key4:cjne a,#10111110b,key5
      setb 06h
      SETB 02H
      mov a,#8fh
      call command
      mov a,#'*'
      call data_dis ; (*)
      clr a
      MOV P2,#0FH
      JMP COUN
      key5:cjne a,#10011010b,NU_1
      setb 05h
      setb 02h
      mov a,#8fh
      call command
      mov a,#'/'
      call data_dis ; (%)
      clr a
      MOV P2,#0FH
      JMP COUN
      NU_1:jb 02h,NU_2
      mov r2,65h
      mov b,a
      cjne r2,#00,K5
      mov a,#83h
      call command
      MOV 66H,#47H
      jmp go
      K5:
      cjne r2,#08h,go
      mov 65h,r2
      MOV P2,#0FH
      JMP COUN
      go:MOV DPTR,#NEMA
      mov r0,66h
      mov a,b
      MOV @R0,A
      movC A,@A+DPTR
      call data_dis
      DEC r0
      mov 66h,r0
      inc 65h
      MOV P2,#0FH
      JMP COUN
      NU_2:mov r3,67h
      mov b,a
      cjne r3,#00h,K7
      mov a,#0c3h
      call command
      MOV 68H,#57H
      K6:MOV DPTR,#NEMA
      mov r0,68h
      mov a,b
      mov @r0,a
      MOVC A,@A+DPTR
      call data_dis
      DEC r0
      mov 68h,r0
      inc 67h
      MOV P2,#0FH
      JMP COUN
      K7:cjne r3,#08h,K6
      mov 67h,r3
      MOV P2,#0FH
      COUN:jb p3.4,K8
      setb 07h
      mov a,#80h
      call command
      mov dptr,#sin
      call display ; (s)_ sin
      clr a
      jmp chek
      K8:JB P3.5,chek
      setb 08h
      mov a,#80h
      call command
      mov dptr,#cos
      call display ; (c)_ cos
      clr a
      chek:JNB 00H,BACK ; =
      JB 01H,BACK ; 0v
      JB 03H,JAM ; +
      JB 04H,KAM ; -
      JB 05H,TAG ; %
      JB 06H,ZAR ; *
      JB 07H,SIN_1 ; SIN
      JB 08H,COS_1 ; COS
      BACK:JMP KEY_F
      JAM:CALL ADDER
      JMP KEY_F
      KAM:CALL SUBTRACT
      JMP KEY_F
      TAG:CALL DIVIDE
      JMP KEY_F
      ZAR:CALL MULTIP
      JMP KEY_F
      SIN_1:CALL SINE
      JMP KEY_F
      COS_1:CALL COSINE
      JMP KEY_F
      ;----------------------------------------- BARNAMEYEH JAM ------------------------------
      ADDER:
      CLR 00H
      clr c
      MOV DPTR,#NEMA
      adad:mov r5,#00
      INC 66H
      INC 68H
      mov a,65h
      cjne a,67h,comp
      jmp SAVE
      comp:JNC SAVE
      mov r2,67h
      MOV 30H,R2
      mov r3,#00
      jmp START1
      SAVE:mov r2,65h
      MOV 30H,R2
      mov r3,#00
      START1:clr a
      clr c
      mov r0,66h
      mov r1,68h
      mov a,@r0
      add a,@r1
      da a
      add a,r5
      da a
      inc r3
      inc r1
      mov 68h,r1
      mov r4,a
      anl a,#0fh
      mov @r0,a
      inc r0
      mov 66h,r0
      mov a,r4
      anl a,#0f0h
      cjne a,#00,CARRY
      mov r5,#00
      jmp LOOP
      CARRY:mov r5,#01
      LOOP:djnz r2,START1
      mov a,r5
      cjne r5,#00,CARRY2
      DEC R0
      jmp DIS
      CARRY2:mov @r0,a
      inc r3
      cjne r3,#09,DIS
      dec r3
      dec 66H
      mov a,#8fh
      call command
      mov a,#'E'
      call data_dis
      setb 01h
      DIS:jnb 04h,adad1
      ret
      adad1:mov a,#86h
      call command
      LOOP2:mov a,@r0
      movc a,@a+dptr
      call data_dis
      dec r0
      djnz r3,LOOP2
      INC R0
      MOV 66H,R0
      DEC 66H
      MOV A,30H
      MOV 65H,A
      clr 03h
      SETB 02H
      clr c
      mov 68h,#57h
      mov 67h,#00
      mov r4,#16
      mov r0,#50h
      dada3:mov @r0,#00
      inc r0
      djnz r4,dada3
      ret
      ;---------------------------------------BARNAMEYEH TAFRIG--------------------------
      SUBTRACT:
      clr c
      CLR 00H
      MOV DPTR,#NEMA
      jnb 0bh,ssu
      call adad
      jmp su51
      ssu:CLR 0BH
      INC 66H
      INC 68H
      MOV A,65H
      mov 70h,a
      CJNE A,67H,COMP2
      MOV R2,65H
      MOV A,66H
      ADD A,65H
      dec A
      MOV R0,A
      MOV A,68H
      ADD A,67H
      dec A
      MOV R1,A
      COMP3:MOV A,@R0
      CLR C
      SUBB A,@R1
      JNC COMP4
      INT0ON:MOV A,68H
      XCH A,66H
      XCH A,68H
      SETB 0BH
      JMP START_1
      COMP4:CJNE A,#00,START_0
      DEC R0
      DEC R1
      DJNZ R2,COMP3
      MOV a,#86h
      call command
      mov a,#'1'
      call data_dis
      JMP SU8
      START_0:mov r2,65h
      jmp START_1
      COMP2:jnc START_0
      mov r2,67h
      jmp SU2
      START_1:mov r3,#00
      CLR C
      su1:mov r0,66h
      mov r1,68h
      jnb 0ah,su2
      mov a,@R1
      INC A
      mov @r1,a
      SU2:mov a,@r0
      CLR C
      subb a,@r1
      jnc su3
      cpl a
      INC A
      CLR C
      mov @R1,a
      mov a,#0ah
      subb a,@R1
      mov @r0,a
      SETB 0AH
      jmp su4
      su3:mov @r0,a
      clr 0AH
      su4:inc r0
      CLR C
      CLR A
      mov 66h,r0
      inc r1
      mov 68h,r1
      inc r3
      djnz r2,su1
      JNB 05H,SU5
      RET
      SU5:jnb 07h,su51
      ret
      su51:MOV a,#87h
      call command
      DEC 66H
      MOV R0,66H
      MOV B,R3
      SU6:MOV A,@R0
      MOVC A,@A+DPTR
      call data_dis
      DEC R0
      DJNZ R3,SU6
      JNB 0BH,SU8
      MOV a,#86h
      call command
      mov a,#'-'
      call data_dis
      MOV R3,B
      MOV R0,66H
      MOV R1,#47H
      SU7:MOV A,@R0
      MOV @R1,A
      DEC R1
      DEC R0
      DJNZ R3,SU7
      SU8:INC R0
      MOV 66H,R0
      DEC 66H
      mov 65h,70h
      mov 70h,#00
      MOV 67H,#00
      mov 68h,#57h
      mov r4,#16
      mov r0,#50h
      suus3:mov @r0,#00
      inc r0
      djnz r4,suus3
      SETB 02H
      CLR 04H
      CLR C
      RET

      دیدگاه


        #4
        پاسخ : ماشین حساب

        ببین وحید جان خودت بشینی بنویسی بهتره.

        خودت شروع کن هرجا به مشکل خوردی تو انجمن بگو کمکت میکنن.
        www.icesi.ir

        دیدگاه


          #5
          پاسخ : ماشین حساب

          نوشته اصلی توسط میلاد موسوی
          ببین وحید جان خودت بشینی بنویسی بهتره.

          خودت شروع کن هرجا به مشکل خوردی تو انجمن بگو کمکت میکنن.
          :applause: :applause: :applause: :job: :job:
          دوش دیوانه شدم عشق مرا دید و بگفت آمدم نعره مزن جامه مدر هیچ مگو
          گفتم ای عشق من از چیز دگر می​ترسم گفت آن چیز دگر نیست دگر هیچ مگو
          من به گوش تو سخن​های نهان خواهم گفت سر بجنبان که بلی جز که به سر هیچ مگو
          قمری جان صفتی در ره دل پیدا شد در ره دل چه لطیف است سفر هیچ مگو
          مولانا

          دیدگاه


            #6
            پاسخ : ماشین حساب

            سلام

            اینم یه پروژه ماشین حساب نسبتاً پیشرفته.

            برنامه نویسشیش اصلاً به من ربطی نداره و من اینو از تو اینترنت پیدا کردم. در ضمن فایل پروتئوس هم داره و از هر نظر مطمین باشین که کار میکنه.
            فایل های پیوست شده

            دیدگاه


              #7
              پاسخ : ماشین حساب

              من یه برنامه ی ماشین حساب می خوام با bascame
              فقط چهار عمل اصلی انجام بده
              ممنون

              دیدگاه


                #8
                پاسخ : ماشین حساب

                نوشته اصلی توسط سارا گل
                من یه برنامه ی ماشین حساب می خوام با bascame
                فقط چهار عمل اصلی انجام بده
                ممنون
                سلام
                اینجا در بحث 8051 است و شما این پروژه را با Avr می خواهید لطفا اونجا مطرح کنید.
                در ضمن این پروژه فکر می کنم در قسمت پروژه های Avr است می تونید یک سرچی بزنید.

                ممنون

                دیدگاه


                  #9
                  پاسخ : ماشین حساب

                  بیسکام 8051 هم برای برنامه نویسی وجود داره
                  شما از کجا متوجه شدید اونو با AVR میخواد انجام بده
                  اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن

                  دیدگاه

                  لطفا صبر کنید...
                  X