Thông báo

Collapse
No announcement yet.

8051 * 3 in 1: Đo nhiệt độ - Đồng hồ thời gian thực - Giao tiếp máy tính

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

  • 8051 * 3 in 1: Đo nhiệt độ - Đồng hồ thời gian thực - Giao tiếp máy tính



    Dientuvietnam.net là diễn đàn tuyệt nhất mà mình được biết. Các bậc tiền bối thì luôn nhiệt tình chỉ bảo đàn em đi sau. Đây là bài viết đầu tiên của mình trên diễn đàn với mong muốn chia sẻ chút kinh nghiệm ít ỏi của mình với tất cả thành viên. Rất mong nhận được sự chỉ bảo và góp ý của anh - chị - em.

    Bài viết này mình sẽ nói về 1 Project mà nhóm mình đã làm với AT89S52 – Asembly – Visual Basic, gồm 3 phần chính sau:
    1. Đo và cảnh báo nhiệt độ
    2. Đồng hồ thời gian thực
    3. Giao tiếp VĐK 8051 với máy tính

    Với các chức năng cụ thể:
    Phần 1: Đo và cảnh báo nhiệt độ:
    - Dùng LM35Dz đo và hiển thị nhiệt độ phòng lên LCD.
    - So sánh nhiệt độ đo được với nhiệt độ ngưỡng (ngưỡng trên Tmax và ngưỡng dưới Tmin, được người dùng cài đặt tại bất kì thời điểm nào, tùy theo yêu cầu thông qua bàn phím) để đưa ra cảnh báo ra loa và màn hình khi nhiệt độ vượt qua ngưỡng.
    - Hệ thống làm mát hoặc làm nóng được kích hoạt khi nhiệt độ nằm ngoài ngưỡng nhiệt độ cho phép.
    -Liên tục gửi dữ liệu nhiệt độ lên máy tính qua phương thức truyền dữ liệu nối tiếp.
    - Vẽ đồ thị nhiệt độ theo thời gian thực trên máy tính

    Phần 2: Đồng hồ thời gian thực:
    - Hiển thị thời gian và truyền thời gian này lên máy tính
    - Cài đặt thời gian: giờ, phút, giây, thứ, ngày, tháng, năm, giờ báo thức.
    - Đồng bộ thời gian với máy tính.

    Phần 3: Giao tiếp VĐK 8051 với máy tính:
    - Truyền dữ liệu từ VĐK lên máy tính:
    + Thời gian trên VĐK lên PC
    + Nhiệt độ môi trường lên PC, để từ đó vẽ đồ thị nhiệt độ trên máy tính
    - Truyền dữ liệu từ máy tính lên VĐK:
    + Truyền xâu ký tự, phím bất kỳ trên bàn phím được ấn từ PC xuống LCD
    + Đồng bộ thời gian từ máy tính lên VĐK

    Về nguyên lý hoạt động và lập trình từng phần mình cũng học được từ kinh nghiệm của các tiền bối như bác HoangLongU, Ngohaibac,… Vì vậy ở lúc này mình chưa nói lại, mà mình muốn ai học lập trình các nội dung này sẽ có 1 số thư viện hàm mà mình đã viết và sưu tầm được, trong lập trình ASM cho 8051, Visual Basic,… để tham khảo.

    Và đây là link toàn bộ code, mạch và chương trình Visual Basic mình muốn chia sẻ với các bạn. ( Tất cả đều chạy rất OK).
    http://www.mediafire.com/?32jmbjl2nno
    Vì chương trình của mình đã được Open nên nếu ai phát triển nó thì hãy cùng chia sẻ lại với dientuvietnam.
    Mọi vấn đề cần trao đổi nếu có, về bài viết của mình thì sẽ đều được post trên dientuvietnam.

    LBF chào thân ái!
    Hà Nội, 18/04/2009
    Last edited by koakoa_238; 18-04-2009, 23:22.
    anhduc

  • #2
    Nguyên văn bởi koakoa_238 Xem bài viết


    Dientuvietnam.net là diễn đàn tuyệt nhất mà mình được biết. Các bậc tiền bối thì luôn nhiệt tình chỉ bảo đàn em đi sau. Đây là bài viết đầu tiên của mình trên diễn đàn với mong muốn chia sẻ chút kinh nghiệm ít ỏi của mình với tất cả thành viên. Rất mong nhận được sự chỉ bảo và góp ý của anh - chị - em.

    Bài viết này mình sẽ nói về 1 Project mà nhóm mình đã làm với AT89S52 – Asembly – Visual Basic, gồm 3 phần chính sau:
    1. Đo và cảnh báo nhiệt độ
    2. Đồng hồ thời gian thực
    3. Giao tiếp VĐK 8051 với máy tính

    Với các chức năng cụ thể:
    Phần 1: Đo và cảnh báo nhiệt độ:
    - Dùng LM35Dz đo và hiển thị nhiệt độ phòng lên LCD.
    - So sánh nhiệt độ đo được với nhiệt độ ngưỡng (ngưỡng trên Tmax và ngưỡng dưới Tmin, được người dùng cài đặt tại bất kì thời điểm nào, tùy theo yêu cầu thông qua bàn phím) để đưa ra cảnh báo ra loa và màn hình khi nhiệt độ vượt qua ngưỡng.
    - Hệ thống làm mát hoặc làm nóng được kích hoạt khi nhiệt độ nằm ngoài ngưỡng nhiệt độ cho phép.
    -Liên tục gửi dữ liệu nhiệt độ lên máy tính qua phương thức truyền dữ liệu nối tiếp.
    - Vẽ đồ thị nhiệt độ theo thời gian thực trên máy tính

    Phần 2: Đồng hồ thời gian thực:
    - Hiển thị thời gian và truyền thời gian này lên máy tính
    - Cài đặt thời gian: giờ, phút, giây, thứ, ngày, tháng, năm, giờ báo thức.
    - Đồng bộ thời gian với máy tính.

    Phần 3: Giao tiếp VĐK 8051 với máy tính:
    - Truyền dữ liệu từ VĐK lên máy tính:
    + Thời gian trên VĐK lên PC
    + Nhiệt độ môi trường lên PC, để từ đó vẽ đồ thị nhiệt độ trên máy tính
    - Truyền dữ liệu từ máy tính lên VĐK:
    + Truyền xâu ký tự, phím bất kỳ trên bàn phím được ấn từ PC xuống LCD
    + Đồng bộ thời gian từ máy tính lên VĐK

    Về nguyên lý hoạt động và lập trình từng phần mình cũng học được từ kinh nghiệm của các tiền bối như bác Ngohaibac,… Vì vậy ở lúc này mình chưa nói lại, mà mình muốn ai học lập trình các nội dung này sẽ có 1 số thư viện hàm mà mình đã viết và sưu tầm được, trong lập trình ASM cho 8051, Visual Basic,… để tham khảo.

    Và đây là link toàn bộ code, mạch và chương trình Visual Basic mình muốn chia sẻ với các bạn. ( Tất cả đều chạy rất OK).
    http://www.mediafire.com/?32jmbjl2nno
    Vì chương trình của mình đã được Open nên nếu ai phát triển nó thì hãy cùng chia sẻ lại với dientuvietnam.
    Mọi vấn đề cần trao đổi nếu có, về bài viết của mình thì sẽ đều được post trên dientuvietnam.

    LBF chào thân ái!
    Hà Nội, 18/04/2009
    Đọc xong thấy đề tài của bạn hay đó. Để mình download về tham khảo rồi đóng góp sau nha

    Comment


    • #3
      Nguyên văn bởi koakoa_238 Xem bài viết


      Dientuvietnam.net là diễn đàn tuyệt nhất mà mình được biết. Các bậc tiền bối thì luôn nhiệt tình chỉ bảo đàn em đi sau. Đây là bài viết đầu tiên của mình trên diễn đàn với mong muốn chia sẻ chút kinh nghiệm ít ỏi của mình với tất cả thành viên. Rất mong nhận được sự chỉ bảo và góp ý của anh - chị - em.

      Bài viết này mình sẽ nói về 1 Project mà nhóm mình đã làm với AT89S52 – Asembly – Visual Basic, gồm 3 phần chính sau:
      1. Đo và cảnh báo nhiệt độ
      2. Đồng hồ thời gian thực
      3. Giao tiếp VĐK 8051 với máy tính

      Với các chức năng cụ thể:
      Phần 1: Đo và cảnh báo nhiệt độ:
      - Dùng LM35Dz đo và hiển thị nhiệt độ phòng lên LCD.
      - So sánh nhiệt độ đo được với nhiệt độ ngưỡng (ngưỡng trên Tmax và ngưỡng dưới Tmin, được người dùng cài đặt tại bất kì thời điểm nào, tùy theo yêu cầu thông qua bàn phím) để đưa ra cảnh báo ra loa và màn hình khi nhiệt độ vượt qua ngưỡng.
      - Hệ thống làm mát hoặc làm nóng được kích hoạt khi nhiệt độ nằm ngoài ngưỡng nhiệt độ cho phép.
      -Liên tục gửi dữ liệu nhiệt độ lên máy tính qua phương thức truyền dữ liệu nối tiếp.
      - Vẽ đồ thị nhiệt độ theo thời gian thực trên máy tính

      Phần 2: Đồng hồ thời gian thực:
      - Hiển thị thời gian và truyền thời gian này lên máy tính
      - Cài đặt thời gian: giờ, phút, giây, thứ, ngày, tháng, năm, giờ báo thức.
      - Đồng bộ thời gian với máy tính.

      Phần 3: Giao tiếp VĐK 8051 với máy tính:
      - Truyền dữ liệu từ VĐK lên máy tính:
      + Thời gian trên VĐK lên PC
      + Nhiệt độ môi trường lên PC, để từ đó vẽ đồ thị nhiệt độ trên máy tính
      - Truyền dữ liệu từ máy tính lên VĐK:
      + Truyền xâu ký tự, phím bất kỳ trên bàn phím được ấn từ PC xuống LCD
      + Đồng bộ thời gian từ máy tính lên VĐK

      Về nguyên lý hoạt động và lập trình từng phần mình cũng học được từ kinh nghiệm của các tiền bối như bác HoangLongU, Ngohaibac,… Vì vậy ở lúc này mình chưa nói lại, mà mình muốn ai học lập trình các nội dung này sẽ có 1 số thư viện hàm mà mình đã viết và sưu tầm được, trong lập trình ASM cho 8051, Visual Basic,… để tham khảo.

      Và đây là link toàn bộ code, mạch và chương trình Visual Basic mình muốn chia sẻ với các bạn. ( Tất cả đều chạy rất OK).
      http://www.mediafire.com/?32jmbjl2nno
      Vì chương trình của mình đã được Open nên nếu ai phát triển nó thì hãy cùng chia sẻ lại với dientuvietnam.
      Mọi vấn đề cần trao đổi nếu có, về bài viết của mình thì sẽ đều được post trên dientuvietnam.

      LBF chào thân ái!
      Hà Nội, 18/04/2009
      Chào bac Koa, e thấy bài viết của bác rất hay,nhung link không cho down, không bit có phải tại mạng nhà em không nữa.bác có thể gửi cho e vào hòm thư điện tử đcj không.được vậy thì tốt wa. thank bác trước !!
      email của e:*****_vl@yahoo.com
      Last edited by st_vl; 19-04-2009, 00:17. Lý do: email cua e:sontung_vl@yahoo.com.vn

      Comment


      • #4
        Nghe các bạn bảo là không download được, mình cũng thử download lại, thì cũng không được, có lẽ do PC của mình và các bạn bị virus gì đó. Bạn có thể liên hệ với mình theo địa chỉ sau để mình gửi mail trực tiếp.
        LBF luôn sẵn lòng. anhduc_dtvn@yahoo.com.
        anhduc

        Comment


        • #5
          Nguyên văn bởi koakoa_238 Xem bài viết
          Nghe các bạn bảo là không download được, mình cũng thử download lại, thì cũng không được, có lẽ do PC của mình và các bạn bị virus gì đó.
          do mediafire dạo này sao ấy. thỉnh thoảng lúc được, lúc không. mình down ngon e.. thanhks vì tinh thần chia sẻ

          Comment


          • #6
            "Tinh thần chia sẻ".
            Nếu mình cứ cất giữ code hay chương trình của mình trong máy tính, mà khả năng lập trình, thiết kế mạch,... của mình tăng lên thì... biết đâu mình sẽ không Share với anh em. Đùa vậy thôi, chia sẻ chứ. Dù chương trình nhỏ bé của mình chỉ có ích với 1 bạn thôi thì mình cũng muốn làm vậy. Mình làm vậy thì mình sẽ nhận được sự chỉ bảo và đóng góp của các bạn mà. Quan điểm của các bạn về vấn đề này thế nào?
            Last edited by koakoa_238; 20-04-2009, 00:30.
            anhduc

            Comment


            • #7
              KIS báo có 1 con Virus! diệt rồi nhưng chưa mở

              Mình chỉ làm 2 phần là RTC và nhiệt độ thôi thì phải bỏ đi những cái gì trong sch và code ??
              Trần Đức Sơn

              tel:0934691385

              Comment


              • #8
                Chương trình Asembly mình gửi file Hex có dung lượng 7.8Kb. Sở dĩ nó lớn là vì mình tập trung khá nhiều vào phần tạo giao diện 8051 với người dùng qua LCD, để việc chọn chế độ làm việc, cài đặt,... là trực quan nhất.
                Nếu bạn làm RTC và Nhiệt độ dùng ADC0809, LM35Dz, DS1307 thì bạn có thể dùng các hàm mà mình viết để Test từng khối luôn. Sau đó thì ghép chúng lại và tạo giao diện người dùng của riêng bạn nữa là ok.
                Bạn có thể lược bớt các hàm ngắt để bỏ phần giao tiếp PC đi.
                Mạch thì bạn bỏ phần Max232.
                Viết bằng Asembly thì mình hiểu rõ được nguyên tắc lập trình theo từng bit của các thành phần, nhưng chương trình bao giờ cũng rất dài. Bạn có thể viết bằng AVR hoặc PIC để được dễ dàng hơn.

                Đây là link mới của chương trình "Đo nhiệt độ - Đồng hồ thời gian thực - Giao tiếp máy tính" mà mình mới upload lại và gửi đến các bạn.
                http://www.mediafire.com/?lq1wjzddydv

                LBF -
                Last edited by koakoa_238; 21-04-2009, 01:24.
                anhduc

                Comment


                • #9
                  cảm ơn nhiều mình dowloa được rồi
                  bạn cho mình hỏi một chút về truyền tạo giao diện và truyền dữ liệu lên bảng điện tử.
                  nhập 12345678 lên bảng.

                  Comment


                  • #10
                    Chào bác koa, link mà bác gửi em không down được bác có thể giúp em gửi vào hòm thư của em: honghanhdk3@gmail.com. Em cảm ơn bác nhiều.

                    Comment


                    • #11
                      Đây là link mới của chương trình "Đo nhiệt độ - Đồng hồ thời gian thực - Giao tiếp máy tính" mà mình mới upload lại và gửi đến các bạn.
                      http://www.mediafire.com/?lq1wjzddydv
                      *LBF*
                      anhduc

                      Comment


                      • #12
                        Gửi bạn: mualac_0784
                        Cách đây hơn 1 năm, nghỉ hè, mình lại thích bảng Led ma trận nên mình cũng làm 1 cái 8 x 32 Led. Chạy cũng tạm ổn.
                        Khi đó thì mình chưa biết giao tiếp PC, giờ bạn đề cập đến vấn đề đó, mình thấy rất hay.
                        Tuy không còn nhớ về nguyên lí lập trình lắm, nhưng mình có mấy ý sau. Bạn xem thế nào?

                        Bước 1: Lập một thư viện dữ liệu hàng gồm tất cả các chữ cái và chữ số.
                        Ví dụ:
                        CHU_K:
                        DB 10000001B ;K
                        DB 11100111B
                        DB 11011011B
                        DB 10111101B
                        DB 255
                        ...
                        CHU_H:
                        DB 10000011B
                        DB 11101111B;H
                        DB 11101111B
                        DB 10000011B
                        DB 255
                        Vvv …..

                        Bước 2: Hiển thị data.
                        Ví dụ:
                        PC của bạn gửi số 238145 xuống 8051, bạn đọc dữ liệu nhận được đó, bạn so sánh từng ký tự với 0,1,2,…9. Ở đây:
                        Hàng trăm là số 1: Bạn dùng lệnh : MOV DPTR,#SO_1, ...
                        Hàng chục là số 4: Bạn dùng lệnh : MOV DPTR,#SO_4, ...
                        Hàng đơn vị là số5: Bạn dùng lệnh : MOV DPTR,#SO_5, ...
                        ........
                        Trong lệnh MOV DPTR,#xxx, ... thì
                        xxx: là Dữ liệu hàng bạn lấy ở Bước 1.
                        ...: là đoạn lệnh bạn thực hiện với dữ liệu đó (như hiển thị nó tại 1 vị trí nào đó trên bảng Led,...).

                        Ứng dụng từ ý tưởng của bạn có thể là:
                        - Hiển thị thời gian, nhiệt độ lên Led Ma trận.
                        - ...
                        Nếu bạn ở Hà Nội thì bạn có thể lên Phố Huế (gần chợ Giời), hoặc ngã 3 Hoàng Quốc Việt – Phạm Văn Đồng để xem ứng dụng trên.
                        Khi bạn hoàn thành Project thì nhớ share với anh em dientuvietnam nhe!
                        Chúc bạn thành công!
                        LBF
                        anhduc

                        Comment


                        • #13
                          mình cũng đang có bài tập làm về mạch hiển thị ngày tháng năm trên LCD dùng 8051.Bác nào có bài nào hay thì gửi cho e với nha,e đang cần quá,chuẩn bị pải báo cáo bài tập lớn rùi.Thanks!!!Các bác gửi vào taduong87@gmail.com cho e với nha,hoặc post lên diễn đàn cũng dc.

                          Comment


                          • #14
                            Sơ đồ mạch bác vẽbawnfgf protues hay orcad mà em down về không xem được mạch nguyên lí vậy? mặc dù chưa học về visual cũng vào học hỏi chút! mong bác chỉ giáo!
                            Web:
                            ->Nhận thiết kế, hoàn thiện dự án, sản phẩm điện tử<-
                            -->Giải pháp GSM/GPRS/GPS - Công nghệ RFID<--

                            Comment


                            • #15
                              Sơ đồ mình vẽ bằng Orcad 9.0. Nếu kích đúp lần đầu không được, bạn kích lần nữa là ok. Orcad thường thế. Mình thử lại rồi.
                              anhduc

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X