Thông báo

Collapse
No announcement yet.

lắp bộ hẹn giờ

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

  • lắp bộ hẹn giờ

    Chào các bạn, mình dùng 89S52 để làm bộ hẹn giờ. Phần chọn led 7 đoạn để đặt giờ thì ngon lành rồi, nhưng cho mình hổi nút nhấn chỉ để làm tăng giá trị cho từng led 7 đoạn thì mình gặp khó khăn như sau :mình muốn khi chọn led xong sau đó tăng giá trị lên cho led đó , cứ như vậy cho các led 7 đoạn còn lại (ở đây mình dùng 4 led 7 đoạn) thì làm sao lưu giá trị của từng led tương úng vào địa chỉ nào đó (ứng với 4 led thì có 4 giá trị ,cất 4 giá trị đó vào 4 địa chỉ chẳng hạn như 20h,21h,22h,23h) .GIÚP MÌNH VỚI, mình cảm ỏn nhiều

    Phần cứng thì mình dùng IC 74LS373 để chốt

  • #2
    cho sơ đồ đi rồi anh em giai quyết cho, bạn chưa nói rõ bạn dùng cách lặp trình gì?

    Comment


    • #3
      Mình lập trình bằng ngôn ngữ Assembler đây là sơ đồ của mình
      Attached Files
      Last edited by agnort; 02-07-2007, 19:18.

      Comment


      • #4
        theo mình thì bạn lưu 4 giá trị vào eeprom dùng đề hiện thị, khi đó ta dùng một biến kiểm soát led nào cần thay đồi. sau đó ta tăng hoặc giảm nội dung eeprom(lưu ý là chương trình nên sừ dụng chương trình con và nội dung eeprom là nội dung đả mã hoá) chúc bạn thành công!

        Comment


        • #5
          bạn chỉ rõ hơn cho mình đi, mình cũng chưa hiểu lấm đại khái như là mình đã lưu giá trị 25 (2 lưu vào r1, 5 lưu vào r2 chẳng hạn) sao đó mình giảm r2 xuống 0,rồi mới giảm r1 -1 xuống khi đó r2 sẽ giảm từ giá trị 9 xuống 0, bạn biết chỉ mình với

          Comment


          • #6
            quét led

            Chính vì mình ko biết quét led, nên mình dùng IC chốt, nếu bạn rành về quét led thì chỉ mình cụ thể đi, đúng là lắp mạch điện như trên thì tốn kém thiệt, chẳng hạn như khi ta giảm hàng đơn vị 9 xuống 0 rồi mới giảm hàng chục xuống 1 mà vẫn thấy dc 2 led 7 thanh sáng, thanks

            Comment


            • #7
              quét led người ta cũng không thích dùng mấy con giải mã 74ls247, 74ls248 đâu.sao không dùng mấy con thanh ghi dịch 8 bit xem nào VD 74164,74595..,đỡ tốn chân VDK!
              Thiết kế, sửa chữa PLC,HMI, Servo,biến tần, máy tính công nghiệp
              Lập trình ứng dụng VĐK, IC logic lập trình được (PAL,GAL, FPGA...)
              DT:098 861 4347

              Comment


              • #8
                có thể cho mình 1 đoạn mã quét led dc ko ,các bạn có thể nói rõ nguyên lý quét led cho mình biết dc ko

                Còn 1 điều mình nhờ các bạn giúp, mình muốn 1 nút nhấn làm dc nhiều chức năng thì mình phải viết đoạn mã như thế nào, vd như nhấn 1 lần chạy chương trình thứ 1, nhấn 2 lần chạy chương trình thứ 2 ........

                Comment


                • #9
                  @Khoahung: Bạn làm ơn viết có dấu được không?
                  AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
                  Xem thêm tại Online Store ---> Click here
                  Mob: 0982.083.106

                  Comment


                  • #10
                    con thanh ghi dịch 595 hoặc 164 có 1 chân clock và 1 chân gọi là data vào.VD:
                    nếu đặt chân data=0 sau đó cho 1 xung clock vào chân clock thì chân D0 sẽ có
                    mức 0.tiếp tục đặt chân data=1 và cũng cho 1 xung vào clock thì lúc này D0=1,D1=0 nghĩa là dữ liệu được dịch ra.(chuyển từ nối tiếp ra song2 mà).nếu muốn quét LED thì VD với LED âm chung ta nối các chân katot với các chân D0-D7 của 164.chân data và clock nối với 2 chân của chíp.thế là OK!
                    Thiết kế, sửa chữa PLC,HMI, Servo,biến tần, máy tính công nghiệp
                    Lập trình ứng dụng VĐK, IC logic lập trình được (PAL,GAL, FPGA...)
                    DT:098 861 4347

                    Comment


                    • #11
                      Dùng phương pháp quét

                      với sơ đồ như trên mình đã thiết kế lại phần cứng là ko dùng thanh ghi dịch nữa mà dùng transistor để quét led, mình đã lập trình thành công bằng phương pháp quét ,nhưng mình gặp rắc rối nhỏ :

                      chương trình như sau:

                      .....................
                      ;tăng giá trị đơn vị giây tới 9
                      inc r0
                      lcall delay_1s ;dùng timer0 để làm trễ 1s khi tăng dv giây lên 1 đơn vị
                      cjne r0,#10,main1

                      ;tăng giá trị hàng chục giây tới 5
                      inc r1
                      cjne r1,#6,main2

                      .............................

                      Mình gặp rắc rối ngay ở lệnh lcall delay_1s nếu dùng nó thì việc quét led bị ảnh hưởng (tức là ta sẽ thấy các led sáng tuần tự) ,nhưng nếu ko dùng nó thì quét led bình thường. Mình ko biết tại sao nữa ,mình dùng timer1 với thời gian 7,5 micro giây để quét led
                      Giúp mình với

                      Comment


                      • #12
                        Khi tính đến bộ thời gian thì không nên chèn cả cái lệnh trễ 1 s vào mà phải tính chính xác đến từng lệnh.Việc quét led thì cứ theo nguyên tắc 24 hình/s là ọk, chú ý các khoảng thời gian bật tắt giữa các led phải đều nhau (mỗi thời điểm chỉ bật 1 led_tức mở 1 tranzistor thôi để tiết kiệm năng lượng).Phải chịu khó đọc kỹ và test từng đoạn mã nhỏ,chưa chi đã kêu om sòm lên rồi!
                        Technical Institutes
                        Mobile: 0983278725
                        Email:

                        Comment


                        • #13
                          Nguyên văn bởi process Xem bài viết
                          Phải chịu khó đọc kỹ và test từng đoạn mã nhỏ,chưa chi đã kêu om sòm lên rồi!
                          Process nên khiêm tốn một chút.
                          AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
                          Xem thêm tại Online Store ---> Click here
                          Mob: 0982.083.106

                          Comment


                          • #14
                            mình tặng các bạn 1 kiểu quet let nhe!
                            Attached Files

                            Comment


                            • #15
                              Nguyên văn bởi agnort Xem bài viết
                              với sơ đồ như trên mình đã thiết kế lại phần cứng là ko dùng thanh ghi dịch nữa mà dùng transistor để quét led, mình đã lập trình thành công bằng phương pháp quét ,nhưng mình gặp rắc rối nhỏ :

                              chương trình như sau:

                              .....................
                              ;tăng giá trị đơn vị giây tới 9
                              inc r0
                              lcall delay_1s ;dùng timer0 để làm trễ 1s khi tăng dv giây lên 1 đơn vị
                              cjne r0,#10,main1

                              ;tăng giá trị hàng chục giây tới 5
                              inc r1
                              cjne r1,#6,main2

                              .............................

                              Mình gặp rắc rối ngay ở lệnh lcall delay_1s nếu dùng nó thì việc quét led bị ảnh hưởng (tức là ta sẽ thấy các led sáng tuần tự) ,nhưng nếu ko dùng nó thì quét led bình thường. Mình ko biết tại sao nữa ,mình dùng timer1 với thời gian 7,5 micro giây để quét led
                              Giúp mình với
                              trong chương trình call delay_1s bạn quét led liên tục thì sẽ giải quyết được thôi.
                              bạn gởi chương trình lên diễn đàn mọi người sẽ giúp.
                              |

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X