Thông báo

Collapse
No announcement yet.

đồng hồ số hiển thị led 7 thanh

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #46
    Nguyên văn bởi se7enlove_3w Xem bài viết
    Bác ptom cho mình hỏi trong đoạn code dòng " ADD_LOW EQU 62H" bác định nghĩa cái nhãn Add_low nhằm mục đích gì vậy,và tại sao là ô nhớ 62h mà không là ô nhớ khac. Em xem hoài không hiểu,mong bác giải thích giùm, do mới tìm hiểu về con DS1307 nên ga.
    Thanks!
    Định nghĩa biến Add_low không nhất thiết phải ở địa chỉ 62h đâu bạn. Code này tôi viết lâu lắm rồi, nên nó chưa hoàn thiện lắm.

    Mục đích khai báo biến là để ct nhất quán và dễ hiểu hơn mà thôi.

    Có nhiều cách định vị trí biến vào ram ví dụ một cách khác:

    Add_low data 62h
    PCT COMPUTER
    (Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)

    Comment


    • #47
      Nguyên văn bởi dientai Xem bài viết
      em là thành viên mới,bác PCTOM ơi,bác có thể gửi cho em code asm của mạch mô phỏng trên được không bác.em cũng đang nghiên cứu cái đồng hồ số này.thank bác
      Code bạn có thể copy từ trang trước tôi đã up lên. Nếu bạn muốn nó chạy được trên mạch mô phỏng thì chỉ cần đảo mức phần cấp điện cho led7seg bằng cách sửa code (mức 1>0 và ngược lại).

      Nếu bạn thích mạch mô phỏng giống mạch thật hơn, thì trên mạch mô phỏng bạn cần thêm 6 cổng NOT vào trước phần cấp điện cho led7seg, lúc này cổng Not sẽ có nhiệm vụ đảo mức giống như Transistor A1015 trên mạch thật.
      PCT COMPUTER
      (Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)

      Comment


      • #48
        em làm được rồi thanks bác pctom 1 cái

        Comment


        • #49
          bác ptom ơi,cái code và mạch ds1307 dùng pin 3v rời có chạy trên mạch thật không anh,em mô phỏng được rồi nhưng chưa dám thử trên mạch thật.
          cho em hỏi câu nữa:trong đoạn code của anh hình như có những lệnh setb,clr sda và scl không cần thiết,em nghĩ chắc là những lệnh này để vấn đề thời gian trở nên chính xác hơn phải không anh

          Comment


          • #50
            Nguyên văn bởi dientai Xem bài viết
            bác ptom ơi,cái code và mạch ds1307 dùng pin 3v rời có chạy trên mạch thật không anh,em mô phỏng được rồi nhưng chưa dám thử trên mạch thật.
            cho em hỏi câu nữa:trong đoạn code của anh hình như có những lệnh setb,clr sda và scl không cần thiết,em nghĩ chắc là những lệnh này để vấn đề thời gian trở nên chính xác hơn phải không anh
            Mạch và code này đã test tốt trên mạch thật bạn cứ yên tâm làm thử.

            Khi bạn đã am hiểu rành rẽ về lập trình, bạn có thể đọc và sửa code cho nó hoàn hảo hơn tùy theo kiến thức của bạn có được. Quan trọng nhất là sau khi bạn sửa xong và ứng dụng vào mạch thực tế nó có chạy tốt và ổn định hơn lúc chưa sửa là ok rồi.
            PCT COMPUTER
            (Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)

            Comment


            • #51
              Nguyên văn bởi pctcom Xem bài viết
              ;==================================
              SCAN_KEY: ;KIEM TRA PHIM NHAN
              ;==================================
              SW1: ;SET TIME
              JB SW_1,SW2
              INC FLAG_SET
              MOV A,FLAG_SET
              CJNE A,#3,L_SW1

              ;==========
              MOV ADD_LOW,#01H
              MOV DATA_DS,PHUT
              LCALL WRITE_BYTE
              ;==========

              ;==========
              MOV ADD_LOW,#02H
              MOV DATA_DS,GIO
              LCALL WRITE_BYTE
              ;==========
              MOV FLAG_SET,#0
              cái này thêm vào đâu ở trong code của mạch 1307 vậy anh. em mô phỏng trên asm mà không được anh à, anh có thể hướng dẫn cho em được không anh. mail em: nguyenbau90@gmail.com
              cảm ơn anh rất nhiều

              Comment


              • #52
                @ bác pctcom +All : giúp em mạch điều khiển + với lưu đồ thuật toán với .....Help !
                Đề bài như sau :
                Cho hệ bình trộn với công nghệ sau :
                - khi nhấn nút start , van MV1 và van MV2 mở và nước được đổ vào bình , cùng lúc đó động cơ trộn hoạt động.
                -Khi mức nước vượt qua mức 1 thì van MV1 và MV2 đóng lại. Động cơ trộn tiếp tục hoạt động thêm 5s thì dừng lại.
                -Tiếp theo van MV3 mở .Khi mức nước ở dưởi mức 2 thì van MV3 đóng , đèn END sáng , còi BUZZER kêu.
                -khi nhấn Stop thì hệ thống sẽ dừng hoạt động , tất cả các van đều đóng , đèn/ còi tắt ,và dừng điều khiển trộn.
                -khi nhấn Reset thì hệ thống sẽ quay về trạng thái ban đầu.
                Yêu cầu : Dùng Vi Điều Khiển AT89S51 thiết kế mạch điều khiển , xây dựng lưu đồ thuật toán và viết chương trình điều khiển cho hệ thống trên.
                Nội Dung :
                -xây dựng mạch nguyên lý hệ VĐk
                -Xây dựng phần mềm điều khiển cho phần cứng đã xây dựng.
                Rất Mong được sự giúp đỡ của các anh các chị đi trước !!!...Help !


                Code:
                     start              equ   p1.1
                      van_1              equ   p1.2
                      van_2              equ   p1.3
                      van_3              equ   p1.4
                      dong_co_tron       equ   p1.5
                      stop               equ   p1.6
                      muc_2              equ   p1.7
                      coi_bao_vs_den     equ   p1.0
                      muc_1              equ   p2.0
                        org 00h
                      clr  start
                      clr  van_1
                      clr  van_2
                      clr  van_3
                      clr  dong_co_tron
                      clr  stop
                      clr  muc_2
                    main:
                       call tron_be_tong
                       jmp main
                    ;------------------------------------------
                    tron_be_tong:
                        jnb stop,lam_viec0               ; he thong lam viec khi chua an nut stop
                    lam_viec0:
                        mov p1,#00h
                        jb start,lam_viec1               ; neu an nut start thi bat dau lam viec
                    lam_viec1:
                        jnb muc_1,lam_viec2              ; neu muc 1 =0 thi van1 van2 mo
                    lam_viec2:
                        setb van_1                       ; mo van 1
                        setb van_2                        ; mo van 2
                        setb dong_co_tron                 ; khoi dong dong co
                        jb muc_1,lam_viec3               ; khi muc nuoc vuot muc 1 thi dong van1 van2
                    lam_viec3:
                        clr van_1
                        clr van_2
                        mov r1,#5
                    lam_viec4:
                        setb dong_co_tron
                        call delay                       ; tre 1s
                        djnz r1,lam_viec4
                         clr dong_co_tron
                         jnb muc_2,lam_viec5
                   lam_viec5:
                         setb van_3
                         setb coi_bao_vs_den            ; bat den bao va coi
                         jb stop,thoat
                      thoat:
                         mov p1,#00h
                         mov p2,#00h
                     ret
                   delay:
                      de:
                          mov r3,#200
                      de1:
                          mov r4,#200
                       de2:
                           mov r5,#25
                         djnz r5,de2
                         djnz r4,de1
                         djnz r3,de
                         ret
                     end

                Comment


                • #53
                  Bạn vào đây để xem phần Code cua 1307:http://www.dientuvietnam.net/forums/...-7-thanh/page2

                  Copy code ở gần cuối trang, rồi thêm phần tô màu đỏ vào đoạn hàm SCAN_KEY như sau

                  ;==================================
                  SCAN_KEY: ;KIEM TRA PHIM NHAN
                  ;==================================
                  SW1: ;SET TIME
                  JB SW_1,SW2
                  INC FLAG_SET
                  MOV A,FLAG_SET
                  CJNE A,#3,L_SW1

                  ;==========
                  MOV ADD_LOW,#01H
                  MOV DATA_DS,PHUT
                  LCALL WRITE_BYTE
                  ;==========

                  ;==========
                  MOV ADD_LOW,#02H
                  MOV DATA_DS,GIO
                  LCALL WRITE_BYTE
                  ;==========

                  MOV FLAG_SET,#0


                  Phần giả lập bạn nên chạy trên Protues nó ở đây: http://cid-37469e26bb252c91.office.l...O%20DS1307.rar
                  PCT COMPUTER
                  (Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)

                  Comment


                  • #54
                    Bạn "TinhBan" mến.

                    Đoạn code của bạn mắc nhiều lỗi cơ bản, tôi đoán là bạn lần đầu viết code cho 8951.
                    Đề tài bạn đưa ra đối với các anh em trên mạng thật ra không khó, nhưng nếu bạn mong chờ được giúp từ A-Z thì khó ai có thời gian để thực hiện cho bạn.

                    Hướng giải quyết là bạn cứ bắt tay vào học và làm, sau đó có gì không hiểu thì mọi người sẽ sẵn sàng giúp bạn từng phần.
                    PCT COMPUTER
                    (Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)

                    Comment


                    • #55
                      Nguyên văn bởi pctcom Xem bài viết
                      Bạn "TinhBan" mến.

                      Đoạn code của bạn mắc nhiều lỗi cơ bản, tôi đoán là bạn lần đầu viết code cho 8951.
                      Đề tài bạn đưa ra đối với các anh em trên mạng thật ra không khó, nhưng nếu bạn mong chờ được giúp từ A-Z thì khó ai có thời gian để thực hiện cho bạn.

                      Hướng giải quyết là bạn cứ bắt tay vào học và làm, sau đó có gì không hiểu thì mọi người sẽ sẵn sàng giúp bạn từng phần.
                      Đầu tiên em xin cám ơn bác đã nhắc nhở, sau thì em xin trình bày chút hoàn cảnh học:
                      -Đây là lần đầu tiên em học môn này với thời lượng học ít ỏi có 60 tiết...
                      -Em học tại chức thầy giáo dạy môn này chỉ dạy về Led đơn và nét 7 vạch, độ trễ, đếm ngược và đếm xuôi của nét 7 vạch hết ...Nhưng khi đưa ra bài tập lớn thì đề như trên ...Thật lòng mà nói em ko đủ trình độ làm bài trên...
                      -Em phải đi làm kiếm thuê để kiếm sống nên cũng không có time nhiều...
                      -Em nghĩ là với 1 bài như thế này ít nhất người ta phải học trong vòng 3-6 tháng mới có thể làm đc......Và cơ bản phải có gốc về lập trình...em học có 2 tuần...
                      -Em đã cố gắng online nhiều hơn tìm tài liệu đọc nhiều hơn nhưng vẫn không làm được...Trong rất nhiều các trang web em đọc chưa thấy chỗ nào trả lời nhanh và chi tiết hơn đây nên em bạo gan hỏi các anh các chị đi trước xin được giúp...
                      - Và đây là phần em đã làm được sau khi đọc tài liệu trên mạng :
                      Mục Lục
                      Mở Đầu…………………………..…....1+2
                      Chương I .Giới thiệu vi điều khiển AT89S51
                      1.1 Mô tả về AT89S51………….………………….3
                      1.2. Hình dạng 44-lead PDIP………………………5
                      1.3 Hình dạng 44-lead TQFP……………………....6
                      1.4 Hình dạng 44-lead PLCC………………………7
                      1.5 Sơ đồ khối AT89S51………...……………….…8
                      1.6 Họ VĐK AT89Sxx………………..…………….9
                      1.7 Chức năng các chân……….…………………….9
                      1.8. Thanh ghi có Chức năng đặc biệt…………………………..………...……………14
                      1.9 Tổ chức bộ nhớ……………………....…………17
                      1.10 Bộ nhớ chương trình…………………..………17
                      1.11 Bộ Nhớ Dữ Liệu………………………………18
                      1.12 Thiết Bị Đặt Giờ………………………………18
                      1.13 Sử Dụng WDT…………………….………..…19
                      1.14 UART………………………………...……..…20
                      1.15 Bộ Định Thời Timer 0,1……………….………20
                      1.16 Ngắt……………………………………………20
                      1.17 Đặc Điểm OScillator…………………..………22
                      -Đây là phần em chưa làm được :
                      Chương II. Dùng Vi Điều Khiển AT89S51 thiết kế mạch điều khiển , xây dựng sơ đồ thuật toán và viết chương trình điều khiển cho hệ thống .
                      2.1. Thiết kế mạch điều khiển .
                      2.2. Thuyết minh nguyên lý hoạt động của mạch.
                      2.3. Lưu đồ thuật toán.
                      2.4 .Chương trình điều khiển.
                      2.5. Thuyết minh cách thức hoạt động.


                      Chương III .Kết Luận ,Đề xuất và tài liệu tham khảo.

                      3.1 Kết Luận.
                      3.2 Đề Xuất.
                      3.3 Tài Liệu Tham Khảo.

                      Em tự viết đề cương trên đó...ko biết như thế đã được chưa Em không mong được giúp từ A-Z chỉ mong sao có cái sườn bài ( ai giúp được em phần nào em xin cám ơn phần đấy) đề em nghiên cứu ,học và để trả lời trực tiếp khi giáo viên hỏi.Nếu đc giúp đỡ về tài liệu em sẽ xin đọc thật kĩ những gì các anh viết...Một lần nữa mong các anh các chị đi trước giúp đỡ .Thanks vì mọi người đã đọc bài của em.Xin đừng cười chê
                      Last edited by TinhBan; 16-10-2010, 16:11.

                      Comment


                      • #56
                        Bạn vào đây để xem phần Code cua 1307:http://www.dientuvietnam.net/forums/...-7-thanh/page2

                        Copy code ở gần cuối trang, rồi thêm phần tô màu đỏ vào đoạn hàm SCAN_KEY như sau

                        ;==================================
                        SCAN_KEY: ;KIEM TRA PHIM NHAN
                        ;==================================
                        SW1: ;SET TIME
                        JB SW_1,SW2
                        INC FLAG_SET
                        MOV A,FLAG_SET
                        CJNE A,#3,L_SW1

                        ;==========
                        MOV ADD_LOW,#01H
                        MOV DATA_DS,PHUT
                        LCALL WRITE_BYTE
                        ;==========

                        ;==========
                        MOV ADD_LOW,#02H
                        MOV DATA_DS,GIO
                        LCALL WRITE_BYTE
                        ;==========
                        MOV FLAG_SET,#0


                        Phần giả lập bạn nên chạy trên Protues nó ở đây: http://cid-37469e26bb252c91.office.l...O%20DS1307.rar
                        Em mô phỏng đồng hồ dùng ds1307 trên proteus được rồi nhưng nó chạy chậm hơn đồng hồ thực tế anh à, một phút chậm bao nhiêu đó rồi nó cứ nhân lên dần. cái này do phần mềm chạy khác với thực tế hay là do chương trình vậy anh ?

                        Comment


                        • #57
                          Nguyên văn bởi nguyenbau Xem bài viết
                          Em mô phỏng đồng hồ dùng ds1307 trên proteus được rồi nhưng nó chạy chậm hơn đồng hồ thực tế anh à, một phút chậm bao nhiêu đó rồi nó cứ nhân lên dần. cái này do phần mềm chạy khác với thực tế hay là do chương trình vậy anh ?
                          Hi, bạn đang chạy trên phần mềm giả lập mà, tất nhiên sẽ khác với thực tế. Trên mạch thật, độ chính xác quyết định bởi thạch anh 32KHz và IC DS1307, nếu 2 thứ này tốt thì chắc chắn là Time sẽ chính xác thôi.
                          PCT COMPUTER
                          (Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)

                          Comment


                          • #58
                            Làm mạch vi xử lý dùng RTC DS1307 hoặc RTC 12C887 để cập nhật thời gian thực. Còn bạn muốn có nguồn nuôi dùng để hiển thị luôn thì bạn ra chợ Nhật Tảo mua cục pin điện thoại có nối sẳn dây, hoặc mua loại Ac-quy bé xíu nhỏ bằng cái bật lửa - áp 4V. Như thế bạn cần thiết kế thêm mạch sạc cho nó nữa...
                            Nhận thiết kế và làm mạch in đồ án điện tử:
                            Nick:doandientu
                            Mail:
                            Phone: 0904078671 (A.Danh)
                            Add:18 - Phan Chu Trinh - Q.9
                            Web: my.opera.com/doandientu

                            Comment


                            • #59
                              Các bác cho em hỏi :
                              Em đọc tài liệu thấy chân sda va scl của ds1307 phải kéo trở 4k7 lên nguồn nhưng sao khi em mắc vào mô phỏng http://cid-37469e26bb252c91.office.l...26BB252C91!440 nó lai không chạy được nhỉ.

                              Comment


                              • #60
                                Còn nữa: em đọc chương trình sao không thấy chỗ nào cài thời gian cho ds1307 chỉ thấy đọc dữ liệu từ nó ra rồi hiển thị lên led thôi vậy.

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X