Thông báo

Collapse
No announcement yet.

Các cao thủ giúp với

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

  • Các cao thủ giúp với

    Mình muốn làm 1 cái đo và điều khiển nhiệt độ. Nhiệt độ giới hạn max là do người sử dụng nhập vào thông qua bàn phím và sẽ được hiển thị trên LED 7. Khi nhập xong thì bắt đầu đo nhiệt độ và hiển thị trên LCD.
    Mình đã làm được phần đo nhiệt độ rồi, nhưng còn cái hiển thị nhiệt max trên LED thì chưa được do muốn LED sáng ta phải quét liên tục, mà như vậy thì không thể làm được những việc khác.
    Mong các cao thủ giúp đỡ

  • #2
    Bạn nên dành 1 timer cho việc quét, enable interrupt của timer đó.
    Như vậy chương trình chính của bạn cứ viết như bình thường.
    chương trình quét LED là trình phục vụ ngắt của timer.
    Imagine all the people
    Living life in peace...

    Comment


    • #3
      Bạn có thể xuất dữ liệu ra cổng p0,p1,p2. ( nên xuất mức logic 0 để điều khiển, nếu đo nhiệt độ, bạn chỉ cần 2 LED 7 cho nên có thể thiết kế luôn bộ giải mã trong VĐK), Dữ liệu trong các thanh ghi này (p0,p1,p2) sẽ không thay đổi và liên tục xuất ra cho đến khi bạn thay đổi nó. Cho nên cứ yên tâm làm việc khác !!!!
      Ah, Bạn có thể tham khảo code của mình (cũng dùng hai LED 7 để đếm tăng hay giảm )
      http://www.dientuvietnam.net/forums/...ead.php?t=2020
      Last edited by DT3K48DHBK; 14-04-2006, 22:41.

      Comment


      • #4
        bạn dùng bao nhiêu led để hiển thị?? Nói rõ xem.
        Nếu chỉ dùng 2 led (hay 4 led để hiển thị thêm chữ độ C) thì bạn có thể dùng các biến để điều khiển cho việc hiển thị. Chỉ cần 2 công tắc và dùng tại các chân ngắt. Trình phục vụ ngắt là điều khiển các biến này và điều khiển việc tăng giảm giá trị. Lấy ví dụ bạn đặt biến có tên hien_thi_max, chỉ khi biến này bằng 1 thì ta mới hiển thị giá trị max ra led, khi thoát khỏi hàm điều khiển ta cho biến này về 0. Hàm hiển thị se làm nhiệm vụ kiểm tra các biến và đọc bộ đệm hiển thi led.
        Minh đã từng làm chương trinh mà chỉ riêng một nhút nhấn kiêm nhiệm nhiều chức năng: enter, =, mode, esc... và việc hiển thị nhiều tính năng hoàn toàn do các biến điều khiển.
        Bạn thử xem.
        bt hàm hiển thị của bạn là hiển thị nhiệt độ. Việc đọc ADC ta có thể dùng ngắt hay hỏi vòng hay tạo trễ...
        Ethernet-RS232, PIC Webserver, RFID Reader
        CallerID, Cảnh báo BTS, ...
        0988006696
        linhnc308@gmail.com
        http://linhnc308.blogspot.com

        Comment


        • #5
          Cám ơn các bác, quả là nhiều ý kiến hay. Để em làm thử phát

          Comment


          • #6
            Nguyên văn bởi daqauto
            Cám ơn các bác, quả là nhiều ý kiến hay. Để em làm thử phát
            Việc bé thế mà đã bảo là không làm được đồng thời? có nhiều cách: Đơn giản hãy dùng IC 595 ( chuyển nối tiếp sang song song) để hiển thị LEd 7 thanh- chỉ dùng có 3 cổng của VXL, pp hiển thị này giống hiển thị ra LCD nhưng nó tốn ít chân hơn. khi có data mới out ra 595 thì LED 7 thanh mới thay đổi hiển thị, yên trí có thời gian làm việc khác- pp này hiển thị được rất nhiều led 7 thanh cùng lúc.
            pp nữa: chương trình main nên viết theo kiểu xử lý các biến và hàm. ví dụ: nếu biến 1 = x thì làm công việc 1, nếu biến 2 = y thì làm công việc 2...
            sau đó đến các hàm kiểm tra và xử lý để ra biến 1 , biến 2...pp này làm rất nhiều việc song song nhau.

            email:mahaco@fpt.vn

            Comment


            • #7
              Ông hoctro89XXX này: Tôi ko biết tôi mới hỏi. Ông có biết thì trả lời, đừng có nói đểu nhau

              Comment


              • #8
                Quả vậy không biết thì nên học hỏi, không nên giấu giếm mà cù lần cái...CPU. Nhân đây tớ cũng muốn hỏi mọi người cách lập trình cho 89 bằng ASEMBLY để tính một biểu thức cho hiệu quả rồi cho hiển thị ra LCD kết quả. Biểu thức có thể là một dạng phức tạp hay đơn giản nào đó, kiểu như:
                a = (b/(c*c+d/e)) - f , hay là: a*(b+c)^3 v.v. Rất mông các bác giúp đỡ!
                Hà Nội của ta
                Thủ đô yêu dấu
                Một thời đạn bom, một thời hòa bình...:cafe:

                Comment


                • #9
                  Bác eviet cần tính những biêt thức phức tạp thì phải chú ý các thanh ghi của 8051 chỉ có 8 bit (max = 255 (không dấu) ) cho nên cần chú ý giá trị cần tính, nêm kiểm soát từng bước, tức là chia nhỏ phép tính ra, ước lượng kết quả. Trong lập trình ASM không đơn giản như các ngôn ngữ bậc cao đâu, Bác phải hiểu rõ từng thanh ghi (kiểm soát từng bước, không thể nào ghi ngay 1 biểu thức phức tạp )

                  Comment


                  • #10
                    Mình chạy mô phỏng trong proteus thấy báo lỗi như sau:

                    ERROR [PSM] : No model specified for 'U4'.
                    Simulation FAILED due to partition analysis error(s).

                    Các bác chỉ bảo giúp

                    Comment


                    • #11
                      bạn nên dùng con ic giải mã 7 đọan có chốt ngõ ra,như thế bạn chỉ cần gửi dât cho nó khi có sự thay đổi,nếu ko nó sẽ chốt lại ở dữ liệu cũ

                      Comment


                      • #12
                        Con này giải mã 7 đoạn bác bảo kí hiệu là gỉ bác Châu nhỉ. Em dùng con 74LS47 liệu có chốt được ko

                        Comment


                        • #13
                          Con 74LS47 chỉ là con giãi mã thôi chứ không có chức năng chốt !
                          Mạch nạp Little Programmer
                          MSC-51,AVR,EEPROM ... etc

                          Site Fukusei shop :

                          Comment


                          • #14
                            Con chốt này 74hc273
                            Và anh biết là khi bên em, anh sẽ vượt qua tất cả

                            Comment


                            • #15
                              Nguyên văn bởi eviet
                              Quả vậy không biết thì nên học hỏi, không nên giấu giếm mà cù lần cái...CPU. Nhân đây tớ cũng muốn hỏi mọi người cách lập trình cho 89 bằng ASEMBLY để tính một biểu thức cho hiệu quả rồi cho hiển thị ra LCD kết quả. Biểu thức có thể là một dạng phức tạp hay đơn giản nào đó, kiểu như:
                              a = (b/(c*c+d/e)) - f , hay là: a*(b+c)^3 v.v. Rất mông các bác giúp đỡ!
                              Nếu được tôi sẽ giúp viết = asm. nhưng xin hỏi a,b,c,d,e,f... là số 1 byte hay 2 byte để còn liệu

                              email:mahaco@fpt.vn

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X