Thông báo

Collapse
No announcement yet.

TL0 vaTH0 ....bỗng dưng muốn khóc !

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

  • TL0 vaTH0 ....bỗng dưng muốn khóc !

    Em đọc nhiều tài liệu về 2 thanh này nhưng vẫn không hiểu tại sao nó phải phân ra 2 thanh để nhớ bít cao và bít thấp, vậy khi đưa ra hiển thị LCD thì phải hiển thị từng thanh một hay là gộp chúng lại ạ, giúp em với . em xử dụng chế độ timer 0 mode 1---> thanh TL0 8bit va thanh TH0 5 bit

  • #2
    thì bộ vi xử lí 8051 là bộ 8bits mà. Nó chỉ nhận được 8 bit thôi nên phải tách tất tần tật ra thành cac byte.
    GTH sản xuất mạch in PCB 1 mặt:
    -phủ xanh: 40.000 đ/dm2
    -không phủ xanh: 30.000 đ/dm2
    -Cung cấp mực cảm quang để làm mạch in
    email:

    Comment


    • #3
      anh noi rõ hơn được không, em mới ở cấp tập đi thôi à

      Comment


      • #4
        Nguyên văn bởi thibinhdao Xem bài viết
        Em đọc nhiều tài liệu về 2 thanh này nhưng vẫn không hiểu tại sao nó phải phân ra 2 thanh để nhớ bít cao và bít thấp, vậy khi đưa ra hiển thị LCD thì phải hiển thị từng thanh một hay là gộp chúng lại ạ, giúp em với . em xử dụng chế độ timer 0 mode 1---> thanh TL0 8bit va thanh TH0 5 bit
        Muốn hiển thị giá trị T0 lên LCD thì bạn phải có chương trình con chuyển Hexa 16 bit của T0 sang BCD. Sau đó bạn tiếp tục chuyển BCD sang asii và xuất ra LCD.
        Người nhỏ bé.

        Comment


        • #5
          Bac thaielectric co the noi ro hon dc ko ? Em dag lam cai tachometer counter 16 bit chac cung fai dung toi ! Neu pac co code assem ve 2 ct do thi up len cho ae tham khao dc ko ? Thank !
          |

          Comment


          • #6
            bạn có thể làm như thế này: ( c) ;a=TL0*8+TH0 sau đó lấy tách số a này ra;VD giả sử a=315, thì tách ra 3 giá trị: 3,1,5: rồi xuất ra LCD.

            Comment


            • #7
              em đang bí ở đoạn TH0 va TL0 , ở bài của em thì thanh TH0 va TL0 là giá trị của độ rộng xung đo được , nhưng để hiển thị ra được em phải đưa cè cùng một thanh nhớ rồi chuyển ra mã acii rồi hiển thị nhưng 1 thanh nhớ chỉ đến 8bit , em phải làm sao bây giờ , các anh cho em một ý tưởng chuẩn không cần chỉnh với, em cảm ơn các anh nhiều !

              Comment


              • #8
                có phải ý bạn hỏi là nếu giá trị đếm vượt quá 65535?.nếu rứa thì có thể sử dụng ngắt Timer0 mà đếm rồi,mỗi khi có một ngắt thì tăng biến đếm n lên 1, khi muốn xuất ra thì n*65535+TH0+TL0*256.kô biết có đúng ý bạn kô

                Comment


                • #9
                  Nguyên văn bởi thibinhdao Xem bài viết
                  em đang bí ở đoạn TH0 va TL0 , ở bài của em thì thanh TH0 va TL0 là giá trị của độ rộng xung đo được , nhưng để hiển thị ra được em phải đưa cè cùng một thanh nhớ rồi chuyển ra mã acii rồi hiển thị nhưng 1 thanh nhớ chỉ đến 8bit , em phải làm sao bây giờ , các anh cho em một ý tưởng chuẩn không cần chỉnh với, em cảm ơn các anh nhiều !
                  Bạn lập trình trên Assembly hay C ?

                  Comment


                  • #10
                    em lập trình assem , ngôn ngữ này khó lắm !

                    Comment


                    • #11
                      Code chuyển HEX_BCD 16 bit sưu tầm:
                      HEX_BCD:
                      MOV 12H,#0
                      MOV A,TL0
                      MOV B,#10
                      DIV AB
                      MOV 10H,B ;ĐƠN VỊ Ở 4 BIT THẤP CỦA 10H
                      MOV B,#10
                      DIV AB
                      MOV 11H,A ;TRĂM Ở 4 BIT THẤP CỦA 11H
                      MOV A,B
                      SWAP A ;TRĂM Ở 4 BIT CAO CỦA THANH GHI A
                      ORL A,10H
                      MOV 10H,A ;ĐƠN VỊ Ở 4 BIT THẤP , TRĂM Ở 4 BIT CAO.
                      MOV R7,#TH0
                      CJNE R7,#0,BYTE_H
                      RET

                      BYTE_H:
                      MOV A,10H
                      ADD A,#56H
                      DA A
                      MOV 10H,A

                      MOV A,11H
                      ADDC A,#2
                      DA A
                      MOV 11H,A ; NGHÌN Ở 4 BIT CAO 11H

                      MOV A,12H
                      ADDC A,#0
                      MOV 12H,A ;CHỤC NGHÌN Ở 4 BIT THẤP CỦA 12H
                      DJNZ R7,BYTE_H
                      RET
                      Người nhỏ bé.

                      Comment


                      • #12
                        em cảm ơn cái code đó em có đọc rồi !

                        Comment


                        • #13
                          Hì lại phải thank pác thaielechic phát nữa mới được ! Thế còn chương trình chuyển bcd2ascii thì sao hả bác ? Em thử với chương trình trong sách vdk of nguyễn tăng cường nhưng ko đ.c ! Mà sẵn đây cho em hỏi luôn tại sao lại fải add a,#30h vào khi convert to ascii ! Câu này ko hỏi thì lại gjấu dốt! Mấy khoản convert này em chịu mong các bác thông cảm nha! Chắc bạn daothibinh cung dang lam do an ha ? Mình cũng đag lập trình đếm xung gần gjống như của bạn! Vì vậy có khó khăn gì mog bạn và mọi người giúp đỡ nha !
                          |

                          Comment


                          • #14
                            Nguyên văn bởi vudiepkunkka Xem bài viết
                            Hì lại phải thank pác thaielechic phát nữa mới được ! Thế còn chương trình chuyển bcd2ascii thì sao hả bác ? Em thử với chương trình trong sách vdk of nguyễn tăng cường nhưng ko đ.c ! Mà sẵn đây cho em hỏi luôn tại sao lại fải add a,#30h vào khi convert to ascii ! Câu này ko hỏi thì lại gjấu dốt! Mấy khoản convert này em chịu mong các bác thông cảm nha! Chắc bạn daothibinh cung dang lam do an ha ? Mình cũng đag lập trình đếm xung gần gjống như của bạn! Vì vậy có khó khăn gì mog bạn và mọi người giúp đỡ nha !
                            Các bạn mới vào chả chịu đọc mục lục gì. Bạn thích ASM thì vào đây: http://dientuvietnam.net/forums/show...7&postcount=13
                            From MTA

                            Comment


                            • #15
                              Nguyên văn bởi vudiepkunkka Xem bài viết
                              Hì lại phải thank pác thaielechic phát nữa mới được ! Thế còn chương trình chuyển bcd2ascii thì sao hả bác ? Em thử với chương trình trong sách vdk of nguyễn tăng cường nhưng ko đ.c ! Mà sẵn đây cho em hỏi luôn tại sao lại fải add a,#30h vào khi convert to ascii ! Câu này ko hỏi thì lại gjấu dốt! Mấy khoản convert này em chịu mong các bác thông cảm nha! Chắc bạn daothibinh cung dang lam do an ha ? Mình cũng đag lập trình đếm xung gần gjống như của bạn! Vì vậy có khó khăn gì mog bạn và mọi người giúp đỡ nha !
                              Bạn xem bảng ascii (http://files.myopera.com/datdien/alb...ng%20ASCII.JPG) và đối chiếu:
                              Thập phân ----------ascii
                              0 + 30H ====> 30H
                              1 + 30H ====> 31H
                              2 + 30H ====> 32H
                              ...
                              9 + 30H ====> 39H
                              Người nhỏ bé.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X