máy tính khoa học dùng 8051

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • hoangthaok3t
    Thành viên mới
    • Oct 2008
    • 8

    #1

    máy tính khoa học dùng 8051

    mọi người giúp em về phần lập trình cho 8051 dùng để tính toán phép tính +-*/ được ko a. Thanks nhiều .Em đang rất cần a. (em mới học nên còn gà lém)
    bàn phím 4 hàng,4 cột . hiển thị dùng 2 led 7 vạch .
  • robotech
    Thành viên tích cực
    • Dec 2006
    • 312

    #2
    Nguyên văn bởi hoangthaok3t Xem bài viết
    mọi người giúp em về phần lập trình cho 8051 dùng để tính toán phép tính +-*/ được ko a. Thanks nhiều .Em đang rất cần a. (em mới học nên còn gà lém)
    bàn phím 4 hàng,4 cột . hiển thị dùng 2 led 7 vạch .
    Bạn có thể tham khảo chương trình calcul ,1 chương trình trong thư mục 'ví dụ' của phần mềm mô phỏng Proteus,có cả sơ đồ phần cứng và code cho 8051,bàn phím,Lcd hiển thị số kết quả.

    bạn chỉ cần thay đổi chút ít cho phù hợp với yêu cầu của mình.

    Comment

    • hoangthaok3t
      Thành viên mới
      • Oct 2008
      • 8

      #3
      chán quá , chỉnh lại nó không chạy nũa. giúp em code dùng cho 2 led 7 vach (giới hạn tính số 2 chữ số thôi).
      Last edited by hoangthaok3t; 18-11-2008, 14:34.

      Comment

      • tallht
        Thành viên mới
        • Apr 2008
        • 361

        #4
        khi tính toán đến kết quả rùi.giả sử kết quả lưu trong thanh ghi A:
        -B1: +lưu kết quả biến A vào thanh ghi R1 để dự trữ cho B2
        +làm phép toán AND thanh ghi A với 0x0f để có được hàng đơn vị
        +Xuất ra led đơn vị
        -B2: +mov A,R1
        +swap A
        +làm phép toán AND thanh ghi A với 0x0f để có được hàng chục
        +Xuất ra led chục.
        cách này đơn giản dễ làm! chúc bạn làm tốt với project của mình!
        SỰ HỌC LÀ MÃI MÃI......!!!!

        Comment

        • hoangthaok3t
          Thành viên mới
          • Oct 2008
          • 8

          #5
          ai có code cho em được không,em đang học ngôn ngữ ASM ,trong khi đó..đọc thấy toàn ngôn ngữ C ,không hiểu .thanks . (may tính khoa học ,dùng LED 7 vạch hiển thị)

          Comment

          • hoangthaok3t
            Thành viên mới
            • Oct 2008
            • 8

            #6
            Một chương trình quét phím bằng C ..thì kết quả được lưu vào thanh ghi nào vậy
            ví dụ ,bài này... kết quả vô thanh nao vậy : mọi người chỉ giáo hộ.
            #include <sfr51.inc>
            org 00h
            ljmp main
            org 0bh
            ljmp ngattimer0
            org 40h
            ;************************************************* *********
            main:
            mov sp,#5fh
            lcall khoitao
            mainloop:

            lcall quetphim
            sjmp mainloop
            khoitao:
            mov dptr,#table
            mov r1,#0
            mov tmod,#01h
            setb et0
            setb ea
            mov th0,#high(-10000)
            mov tl0,#low(-10000)
            setb tr0
            ret
            ngattimer0:
            push psw
            push acc
            mov th0,#high(-10000)
            mov tl0,#low(-10000)
            lcall quetled
            pop acc
            pop psw
            reti
            quetled:
            mov a,r1
            movc a,@a+dptr
            mov p0,a
            nop
            clr p3.6
            ret
            delay1ms:
            mov r2,#100
            delay1msloop:
            nop
            nop
            nop
            nop
            nop
            nop
            nop
            nop
            djnz r2,delay1msloop
            ret
            delay10ms:
            lcall delay1ms
            lcall delay1ms
            lcall delay1ms
            lcall delay1ms
            lcall delay1ms
            lcall delay1ms
            lcall delay1ms
            lcall delay1ms
            lcall delay1ms
            ret
            quetphim:
            mov p2,#11110000b
            jnb p2.4,chongrung
            jnb p2.5,chongrung
            jnb p2.6,chongrung
            jnb p2.7,chongrung
            ret
            chongrung:
            lcall delay10ms
            jnb p2.4,hang1
            jnb p2.5,hang2
            jnb p2.6,hang3
            jnb p2.7,hang4
            ret
            hang1:
            setb p2.0
            setb p2.1
            setb p2.2
            setb p2.3
            clr p2.4
            nop
            jnb p2.0,phim1
            jnb p2.1,phim2
            jnb p2.2,phim3
            jnb p2.3,phim4
            ret
            hang2:
            setb p2.0
            setb p2.1
            setb p2.2
            setb p2.3
            clr p2.5
            nop
            jnb p2.0,phim5
            jnb p2.1,phim6
            jnb p2.2,phim7
            jnb p2.3,phim8
            ret
            hang3:
            setb p2.0
            setb p2.1
            setb p2.2
            setb p2.3
            clr p2.6
            nop
            jnb p2.0,phim9
            jnb p2.1,phim10
            jnb p2.2,phim11
            jnb p2.3,phim12
            ret
            hang4:
            setb p2.0
            setb p2.1
            setb p2.2
            setb p2.3
            clr p2.7
            nop
            jnb p2.0,phim13
            jnb p2.1,phim14
            jnb p2.2,phim15
            jnb p2.3,phim16
            ret
            phim1:
            jnb p2.0,$
            mov r1,#0
            ret
            phim2:
            jnb p2.1,$
            mov r1,#1
            ret
            phim3:
            jnb p2.2,$
            mov r1,#2
            ret
            phim4:
            jnb p2.3,$
            mov r1,#3
            ret
            phim5:
            jnb p2.0,$
            mov r1,#4
            ret
            phim6:
            jnb p2.1,$
            mov r1,#5
            ret
            phim7:
            jnb p2.2,$
            mov r1,#6
            ret
            phim8:
            jnb p2.3,$
            mov r1,#7
            ret
            phim9:
            jnb p2.0,$
            mov r1,#8
            ret
            phim10:
            jnb p2.1,$
            mov r1,#9
            ret
            phim11:
            jnb p2.2,$
            mov r1,#10
            ret
            phim12:
            jnb p2.3,$
            mov r1,#11
            ret
            phim13:
            jnb p2.0,$
            mov r1,#12
            ret
            phim14:
            jnb p2.1,$
            mov r1,#13
            ret
            phim15:
            jnb p2.2,$
            mov r1,#14
            ret
            phim16:
            jnb p2.3,$
            mov r1,#15
            ret


            table:
            db 0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0d8h,080h,090h, 88h,83h,0c6h,0a1h,86h,08eh
            end

            Comment

            • thaithien
              Thành viên tích cực
              • Mar 2007
              • 200

              #7
              Code này của C hay là assemble vậy?

              Comment

              • hoangthaok3t
                Thành viên mới
                • Oct 2008
                • 8

                #8
                cái này là C ,sao không có ai giúp vậy

                Comment

                • votuananhs
                  Thành viên chính thức
                  • Jul 2007
                  • 43

                  #9
                  Nguyên văn bởi hoangthaok3t Xem bài viết
                  mọi người giúp em về phần lập trình cho 8051 dùng để tính toán phép tính +-*/ được ko a. Thanks nhiều .Em đang rất cần a. (em mới học nên còn gà lém)
                  bàn phím 4 hàng,4 cột . hiển thị dùng 2 led 7 vạch .
                  bạn gửi lên cả sơ đồ mạch thì mọi người mới biết mà viết mã chứ. Còn không mà cứ nói chừng chừng kiểu đó thì bó tay thôi.

                  Comment

                  • hoangthaok3t
                    Thành viên mới
                    • Oct 2008
                    • 8

                    #10
                    sorry ,mọi người giúp mình với nha . không biêt đưa file lên diễn đàn .gửi bằng host vậy http://www.mediafire.com/download.php?dnwtynmhniz

                    Comment

                    • votuananhs
                      Thành viên chính thức
                      • Jul 2007
                      • 43

                      #11
                      máy tính mà chỉ 2 led 7 thanh sao ? mình nghĩ bạn nên nối chung các đường dữ liệu từ a..g của led 7 thanh và chỉ nên sử dụng 1 con 7447. Bạn sử dụng phương pháp quét để hiện được dữ liệu cho các led tương ứng

                      Comment

                      • hoangthaok3t
                        Thành viên mới
                        • Oct 2008
                        • 8

                        #12
                        mình chỉnh lại thế này được không :-/ mình viêt đoạn code như vậy không hiểu có ổn không, mọi người chỉnh sửa và hoàn thiện nốt hộ mình ,thanks
                        http://www.mediafire.com/download.php?mhinnmnoowz

                        Comment

                        Về tác giả

                        Collapse

                        hoangthaok3t Tìm hiểu thêm về hoangthaok3t

                        Bài viết mới nhất

                        Collapse

                        Đang tải...