1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

Giúp hướng dẫn mô phỏng 8051 trên proteus !

Thảo luận trong 'Vi điều khiển - Mạch Số' bắt đầu bởi hailua64, 7 Tháng mười một 2012.

  1. hailua64 New Member

    Số bài viết: 10
    Đã được thích: 0
    Điểm thành tích: 0
    Bài tập lớn: Thiết kế mô phỏng dùng chương trình Proteus giao tiếp bàn phím ma trận và loa với 89C51 :-h

    Em đang học môn vi xử lý, thầy cho bài tập lớn như trên.
    Các bác cho em hỏi:
    - Các bước thực hiện thiết kế mô phỏng như thế nào ? :|
  2. vancanh Member

    Số bài viết: 67
    Đã được thích: 1
    Điểm thành tích: 6
    Trước hết bạn phải tìm hiểu về bàn phím ma trận xem nó quét bàn phím thế nào (xem sách thực tập vi xử lý rất chi tiết). sau đó tùy yêu cầu thế nào thì bạn phát triển ra
  3. hailua64 New Member

    Số bài viết: 10
    Đã được thích: 0
    Điểm thành tích: 0
    Tín hiệu từ quét bàn phím ma trận có thể nạp trực tiếp Input váo 89C51 hay phải qua IC 74C922 ?
    Ví dụ: bàn phím ma trận 3x4
  4. hailua64 New Member

    Số bài viết: 10
    Đã được thích: 0
    Điểm thành tích: 0
  5. vancanh Member

    Số bài viết: 67
    Đã được thích: 1
    Điểm thành tích: 6
    bàn phím 3x4 ( ví dụ 3 hàng 4 cột hoặc 3 cột 4 hàng tùy bạn) thì có 7 chân thì bạn kết nối vào 7 chân của vđk
    bạn có thể lấy trên cùng một port hoặc khác port đều được. nhưng mỗi hàng hoặc mỗi cột nên lấy liên tiếp nhau
  6. vancanh Member

    Số bài viết: 67
    Đã được thích: 1
    Điểm thành tích: 6
    chân nào của vđk cũng có thể nối với speaker được hết (các port_ đừng chọn các chân đặt biệt như counter, ngắt vì để nó dùng cho nhiệm vụ khác) chân này sẽ nối qua một con transistor pnp (kích mức thấp) hoặc npn (kích mức cao) tùy bạn dùng để kích kết nối với speaker. vì tín hiệu ra ở chân vđk ko đủ để loa hoạt động
  7. hailua64 New Member

    Số bài viết: 10
    Đã được thích: 0
    Điểm thành tích: 0
    Mình cám ơn bạn Vancanh. Mình có vấn đề:
    - Vấn đề đặt ra là môi khi bấm 1 nút trên bàn phím 3x4, thì loa phải phát ra tiếng khác nhau. Như vậy loa speaker phải phụ thuộc vào tần số tín hiệu ra, phải không ? Nếu đúng thì giải quyết trường hợp đó như thế nào ?
    - Khâu lập trình cho 8051 bằng hợp ngữ ASM
    SCAN_KEY:
    MOV R1,#0FEH
    MOV R6,#4
    LOOP1:
    MOV P1,R1
    MOV A,P1
    ANL A,#0F0H
    CJNE A,#0F0H,GET_CODE
    XCH A,R1
    RL A
    XCH A,R1
    DJNZ R6,LOOP1
    CLR F0
    SJMP EXIT
    GET_CODE:
    PUSH ACC
    MOV A,#4
    CLR C
    SUBB A,R6
    MOV R5,A
    POP ACC
    SWAP A
    MOV R4,#4
    LOOP2:
    RRC A
    JNC SET_FLAG
    XCH A,R5
    ADD A,#4
    XCH A,R5
    DJNZ R4,LOOP2
    SET_FLAG:
    SETB F0
    MOV A,R5
    EXIT:
    RET
    như vậy có giải quyết trường hợp như trên không ?
  8. pro_and_brao Moderator

    Số bài viết: 484
    Đã được thích: 8
    Điểm thành tích: 18
    để xử lý yêu cầu của bạn mình có vài ý kiến:
    - đúng như bạn nói muốn loa phát ra âm thanh khác nhau thì phải thay đổi tần số tín hiệu cấp ra loa!
    - vậy làm sao để thay đổi tín hiệu: bạn sẽ tạo ra các chương trình delay khác nhau và dùng chúng để tạo ra các tần số khác nhau.
    giả sử mình tạo ra các chương trình con: delay1, delay2, delay3.... chuong1, chuong2,chuong3....
    trong hàm main mình sẽ liên tục kiểm tra xem có bấm phím không, nếu không bấm phím thì cứ kiểm tra đợi bấm phím.
    khi bấm phím rồi thì lấy mã phím so sánh với từng giá trị: nếu mã phím bằng 1 thì nhảy tới làm chuong1, mã phím bằng 2 thì nhảy tới làm chuong2....
    và trong các chuong1 , chuong2 ta làm công việc tạo ra các xung khác nhau sử dụng các chương trình delay1, delay2... đã tạo hồi này.
    một chú ý quan trọng đó là trong các chương trình chuong cứ mổi lần lặp lại ta phải luôn kiểm tra xem mã phím có còn đúng không? nếu đúng thì lại lặp lại típ. nếu không đúng thì nhảy tới main làm lại từ đầu!
    chúc bạn sớm hoàn thành!
  9. hailua64 New Member

    Số bài viết: 10
    Đã được thích: 0
    Điểm thành tích: 0
    - Vấn đề: trong mô phỏng proteus có 2 loại speaker: a. speaker có 3 tia b. speaker không có 3 tia
    Nên dùng loại nào ? Và thông số kĩ thuật hoạt đông cua loa ( điện áp, ampe, ....) ?
  10. hailua64 New Member

    Số bài viết: 10
    Đã được thích: 0
    Điểm thành tích: 0
    - Vấn đề: viết hàm deplay tạo độ trễ.
    Ví dụ: DEPLAY_100:
    MOV R7, #49
    LOOP: DJNZ R7, LOOP
    RET
    Như vậy xung ra của nó là chân nào của 89c51 ?
  11. pro_and_brao Moderator

    Số bài viết: 484
    Đã được thích: 8
    Điểm thành tích: 18
    - để chọn loa trong mô phỏng có thể lấy speaker hoặc buzzer đều được.nhưng để ý lấy cái nào active ấy. cái speaker có 3 tia là loại active có thể mô phỏng được.
    - về thông số cơ bản của loa thì củng được xác định bằng việc double click chuột trái vào cái loa đã chọn để xem và thay đổi thông số nếu cần: input voltage,res. hình như mặc định là 1v 8 ohm thì phải.
  12. pro_and_brao Moderator

    Số bài viết: 484
    Đã được thích: 8
    Điểm thành tích: 18
    -trên đây là chương trình delay. nó chưa xuất ra chân nào của vi điều khiển hết. mình sử dụng nó để tạo xung.
    -ví dụ tạo xung liên tục ra chân P2.0:
    LB: SETB P2.0
    CALL DELAY
    CLR P2.0
    CALL DELAY
    JMP LB
  13. hailua64 New Member

    Số bài viết: 10
    Đã được thích: 0
    Điểm thành tích: 0

Chia sẻ trang này