Thông báo

Collapse
No announcement yet.

em cần giúp đỡ về mạch đếm

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

  • em cần giúp đỡ về mạch đếm

    em đang làm bài tập lớn về mạch đém sảm phẩm sử dụng ngắt ngoài....kết quả sảm phẩm hển thị trên máy tính bằng pâhnf mềm và có thể hiển thị đc tối đa là 12 chữ số..em đang viết code nhưng mãi ko chạy..bác nào có code ko cho em xin với ạ...nếu ko có thì các bác cho em gợi ý với..bọn em sắp phải nộp bài rồi..hic hic

  • #2
    Nguyên văn bởi thanhtrung19 Xem bài viết
    em đang làm bài tập lớn về mạch đém sảm phẩm sử dụng ngắt ngoài....kết quả sảm phẩm hển thị trên máy tính bằng pâhnf mềm và có thể hiển thị đc tối đa là 12 chữ số..em đang viết code nhưng mãi ko chạy..bác nào có code ko cho em xin với ạ...nếu ko có thì các bác cho em gợi ý với..bọn em sắp phải nộp bài rồi..hic hic
    Em làm VDK gì? 89 hay AVR. về cơ bản thì 2 cái này cũng giống nhau, các bước làm như sau:
    - phần cứng: thiết kế mạch nhận được sản phẩm khi đi ngang. có thể dùng hồng ngoại hoặc SW cơ khí, đưa vào chân ngắt ngoài của VDK, nên nhớ là chân ngắt đó tác động cao hay thấp. thiết kế mạch truyền lên máy tính, thường thì dùng RS232 cho nhanh gọn. mấy cái này bạn có thể làm được phải không?
    -Phần mềm: viết phần mềm cho vdk trước, thử kiểm tra coi vdk có chạy không? phần mềm nên viết theo cách ngắt ngoài cho dễ, trước tiên khởi động ngắt ngoài cho vdk, khởi động chế độ truyền nhận nối tiếp (tốc độ baud là bao nhiêu). khi có ngắt thì thực hiện chương trình trong ngắt như sau: gửi ra port nối tiếp một byte để phần mềm trên máy tính có thể nhận biết được, byte này tùy thích (giả sử bạn truyền số 1) miễn là khi có ngắt thì truyền về 1 byte đó để phần mềm trên máy tính tăng giá trị đếm lên.
    còn phần mềm trên máy tính thì bạn chỉ cần khởi động chế độ truyền thông nối tiếp, chờ ngắt từ port nối tiếp, kiểm tra xem có phải byte tăng giá trị không (số 1) khi đó tăng giá trị biến sản phẩm lên là xong. nên chú ý là do yêu cầu lên đến 12 chữ số nên vượt ngưỡng của giá trị interger nên bạn cần khai báo biến sản phẩm là giá trị long để có thể hiển thj được, chút thành công!
    hãy cố gắng dù vướn phải thất bại!!!!!!!!

    Comment


    • #3
      em lập trình chip 89 bác à..hiển thị tren máy tính bằng phần mềm Hyper Terminal.

      Comment


      • #4
        bạn dùng 12 ô nhớ trên vdk để giữ giá trị cho 12 số cần hiển thị, khi vdk vào ngắt thì bạn chỉ cần tăng biến đầu tiên lên, kiểm tra biến đến 10 chưa, nếu đến rồi thì nạp cho biến đếm giá trị 0 rồi sau đó tăng giá trị tại biến đếm số 2 lên.... cứ như thế đến biến thứ 12 là xong, cuối chương trình ngắt bạn chỉ cần gửi giá trị của 12 biến này lên máy tính là được rồi, nhớ là cộng thêm 30H cho mỗi ô nhớ trước khi gửi nhé, như vậy terminal mooi hien thij dung sos dduwowcj
        hãy cố gắng dù vướn phải thất bại!!!!!!!!

        Comment


        • #5
          em cũng đang làm mạch đếm số xe. Em chỉ đếm đến 4 chữ số thôi.
          Về phần chương trình thì em đã chạy rồi.Em muốn hỏi bác chipmickey một chút ah
          Em dùng bộ thu phát hồng ngoại để phát hiện xe. Nhưng em chưa biết cách kết nối với VDK như thế nào cho hợp lý (có cần khuếch đại lên ko ah).Bác có thể cho sơ đồ đc ko.
          Ah về phần chương trình nữa, em hỏi chút thôi ah.Nếu em chỉ dùng cách kiểm tra bit để xử lý tín hiệu từ hồng ngoại có đc ko ah.Ví dụ như hình vẽ,em chỉ kiểm tra bit p1.4 có hay ko để tăng bộ đếm.
          Như vậy có đc hay ko,hay là phải đưa vào các chân ngắt của VDK và lập trình ngắt thì mới đc.
          Em cũng mới học VDK thôi.còn kém lắm ah.Mong bác chỉ giáo
          Attached Files

          Comment


          • #6
            cái đó cũng tùy, bạn thích dùng ngắt thì dùng. không dùng thì bạn phải giám sát bít đó, như vậy chương trình hơi khó một chút. tại vì ngoài việc đếm số xe, bạn cần phải quét led nữa , nên dùng ngắt là hay nhất. còn chuyện khuếch đại, theo ý bạn là sao? vì led hồng ngoại nếu tăng dòng quá cao led sẽ chết queo, tốt nhất là biến điệu tín hiệu phát, trộn tín hiệu với tín hiệu có tần số khoảng 35KHz, ở bên thu chỉ cần lọc lấy tần số thấp là được rồi. như vậy mới có thể phát xa được. nếu không bạn có khuếch đại lên 100A cũng thế thôi. chút bạn thành công.
            hãy cố gắng dù vướn phải thất bại!!!!!!!!

            Comment


            • #7
              Mình kiểm tra bit như thế này có đc ko?
              Mình đã thử với nút ấn trên proteus và dùng NE555 thì chương trình chạy đc.
              Mình chưa thử thực tế, nên ko biết liệu nó có đc ko nữa
              main:
              mov 30h,#0
              lap:
              mov a,30h
              mov dptr,#maled7
              movc a,@a+dptr
              mov p0,a
              clr p1.1; bật led
              call delay
              setb p1.1; xóa led
              k1:
              call delay
              ktra1:
              jb p1.6,ktra
              inc 30h
              ktra2:
              jnb p1.6,ktra2
              mov a,30h
              cjne a,#10,lap
              ...............
              ...............

              bạn có thể nói rõ hơn về cách biến điệu tín hiệu phát đc ko,mình ko rõ phần này lắm

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...
              X