Chợ thông tin Thiết bị Viễn thông Việt Nam

Chợ thông tin Thiết bị Viễn thông Việt Nam (http://thietbivienthong.sangnhuong.com/index.php)
-   Tâm tình dân kỹ thuật (http://thietbivienthong.sangnhuong.com/forumdisplay.php?f=38)
-   -   Hướng dẫn mô phỏng 8051 = Multisim (MultiMCU) (http://thietbivienthong.sangnhuong.com/showthread.php?t=4332)

sai-gon 10-09-2012 04:45 PM

Hướng dẫn mô phỏng 8051 = Multisim (MultiMCU)
 
MultiMCU là một bộ phần mềm Add-on trong Multisim (của hang Electronics WorkBench). Các bộ phần mềm của hãng này ít được nhiều người biết đến cũng như sử dụng. Tuy nhiên vào một vào năm gần đây hãng đang dần chiếm lại được thị trường trong khoản thiết kế, mô phỏng... điện tử, tự động hóa.
------------------------------
1. Hướng dẫn sơ sơ nhé:
  • Bạn cài đặt Multisim sau đó cài MultiMCU. Nếu bạn nào cần Key thì liên hệ với mình qua Email: hieutq@gmail.com.
  • Cài MultiMCU sẽ add-on vào Multisim con chip 80xx, và PIC... (chưa có AVR). Bạn có thể lập trình trực tiếp trên phần mềm = này và chạy mô phỏng. Không phải dịch sang file .hex và chỉnh sửa trực tiếp luôn
  • Việc mô phỏng dòng, các dạng sóng.... thì cái phần mềm này mình thấy rất very Good. Các bạn thủ nhé.

2. Phần mềm.
3. Begin

phuthi 10-09-2012 04:45 PM

Bài 1: Điều khiển LED thanh, có sử dụng ngắt ngoài.
- Khởi động chương trình, Led thanh quét từ bên trái qua phải.
- Khi kích hoạt ngắt ngoài (theo cạnh) bằng phím A, Led chuyển sang chế độ quét từ phải qua trái.
-----------------------------------------------------

Sơ đồ thiết kế và mô phỏng trên Multisim (MultiMCU)




Mã:

org 00h
LJMP    main
org 0003h
LJMP    ISR_0
org  00030h
main:
SETB    EA
SETB    EX0
SETB    IT0
MOV      P2,#0FFh
MOV A, #0FEh
here:
MOV P2,A
NOP
RL A
SJMP    here
ISR_0:
MOV R0,#100
more: DJNZ R0,skip
RETI
skip:
RR A
MOV P2,A
NOP
SJMP  more
END

--------------------------
Nguồn: http://www.dieukhientudong.com/diend...=ST&f=7&t=931&
--------------------------

eubia 10-09-2012 04:45 PM

Bài 2: Quét LED
- LED1 hiển thị số 1, Led 2 hiển thị số 2, Led 3 : số 3, Led 4 : số 4.
- Các Led sáng lần lượt 1,2,3,4
- Sư dụng ngắt
----------------------------------------
Sơ đồ thiết kế và mô phỏng trên Multisim (MultiMCU)


Mã:

ORG 00H
    LJMP MAIN
  ORG 003H
    Lcall ngat1
    reti
    ORG 013H
    Lcall ngat2
    reti
MAIN:
 LOOP:    MOV IE,#85H
    LCALL QUETLED
  SJMP LOOP
QUETLED:
    mov p0,#00
    MOV P2,#1H
    SETB P0.3
  ; ACALL DELAY
    CLR P0.3
    MOV P2,#2H
    SETB P0.2
    ;ACALL DELAY
    CLR P0.2
    MOV P2,#3H
    SETB P0.1
    ;ACALL DELAY
    CLR P0.1
    MOV P2,#4H
    SETB P0.0
    ;ACALL DELAY
  RET
ngat1:
  MOV P0,#00
  mov p2,#4h
  SETB P0.3
  ACALL DELAY
  CLR P0.3
  mov p2,#3h
  SETB P0.2
  ACALL DELAY
  CLR P0.2
  mov p2,#2h
  SETB P0.1
  ACALL DELAY
  CLR P0.1
  mov p2,#1h
  SETB P0.0
  ACALL DELAY
      RET
  ngat2:
  mov p0,#00
  mov p2,#0
  mov p0,#5
  call delay
  mov p0,#0ah
  call delay
      ret
      DELAY:
       
      MOV    R0,#03H     
loop2:  DJNZ    R0,LOOP2             
      RET                         
END

--------------------------
Nguồn: http://www.dieukhientudong.com/diend...=ST&f=7&t=931&
--------------------------

lengo_ltd 10-09-2012 04:45 PM

Thêm 1 bài nũa nhé

------------------------------ Bài 3: ------------------------------
Điều khiển đèn giao thông (2 hướng A và
Mục đích yêu cầu:
- Đèn đỏ A sáng khi và chỉ khi đèn xanh và đèn vàng B sáng. Đèn đỏ B sáng khi và chỉ khi đèn xanh và đèn vàng A sáng.
- Nút ưu tiên gắn với một ngắt ngoài (điều khiển bằng phím A)
- Khi kích hoạt ngắt (nút ưu tiên được ấn), đèn đỏ ở 2 hướng A và B đều sáng (cùng lúc) cho đến khi nút ưu tiên được ấn lần nữa, đèn giao thông trở lại trạng thái làm việc bình thường
----------------------------------------------------------
Sơ đồ thiết kế và mô phỏng trên Multisim (MultiMCU)





Mã:

$MOD52
;Khai bao nhan va cac bien
 XA equ  P1.0
 DoA equ  P1.1
 VA equ  P1.2
 XB equ  P1.3
 DoB equ  P1.4
 VB equ  P1.5
 SELECT BIT p3.0
                                                  ;=1 thi hien thi thoi gian dem cot A
    ;=0 thi hien thi thoi gian dem cot B
 UT  BIT P3.1

 LJMP INIT    ;Nhay toi chuong trinh INIT
      ORG    0013H      ;Dia chi ngat EXT1
      LJMP    EXT1        ;go to EXT1 Interrupt handler
      LJMP MAIN  ;Quay tro lai vong lap chinh
     
INIT:
 MOV    SP,#20h    ;Di chuyen SP toi phan xa cua thanh ghi
 LCALL ENABLE_INTS;Bat dau ngat khi thay thich hop
;///////////////////////////////////////////////////////////////////////////// 
 ORG  30H    ; Dia chi bat dau chuong trinh chinh
MAIN:
 MOV  P2,#0
 CALL CLEAR_ALL
 SETB DoB
 SETB XA
 MOV  R0,#7 
                        ; Thoi gian cho truoc khi den bat dau thay doi trang thai
 MOV  R1,#10; thoi gian hien thi cua led 7 doan
 SETB SELECT
LOOP1:
 LCALL HIENTHI
 LCALL ONESEC
 DJNZ R0,LOOP1
;///////////////////////////////////////////////////////////////////////////
 CLR  XA
 SETB VA
 MOV  R0,#3  ;THOI GIAN HIEN THI DEN VANG LA 5s
LOOP2:
 CALL HIENTHI
 CALL ONESEC 
                          ; Doi 1s de chuyen trang thai tu den vang sang den do
 DJNZ R0,LOOP2
;////////////////////////////////////////////////////////////////////
 CALL CLEAR_ALL
 SETB DoA
 SETB XB
 MOV  R0,#7 
                        ; Thoi gian cho truoc khi den bat dau thay doi trang thai
 MOV  R1,#10
 CLR  SELECT
LOOP3:
 CALL HIENTHI
 LCALL ONESEC
 DJNZ R0,LOOP3
;/////////////////////////////////////////////////////
 CLR    XB
 SETB DoA
 SETB VB
 MOV  R0,#3
LOOP4:
 CALL HIENTHI
 LCALL ONESEC ;Doi 1s de chuyen trang thai tu den vang sang den do
 DJNZ R0,LOOP4
 JMP  MAIN   
 
;EXT1 Phuc vu ngat ngoai
EXT1:
 CPL UT ;
 RETI

;Cac thu tuc con
CLR_LCD:
 MOV  P0, #00h
 RET
 
ENABLE_INTS:
 SETB    IT1        ;Co ngat ngoai 1(kich canh hoac muc).
      SETB    EX1                ;Cho phep ngat ngoai 1
    MOV  TMOD,#01H
                                ; SET 16 BIT COUNTER.Bo dinh thoi 1 che do 1
      SETB    EA        ;Enable interrupt global
 RET

; CLEARS ALL THE LIGHTS
CLEAR_ALL:
 MOV  P1,#00H ; Xoa tat ca cac den
 CLR  ACC.0 ; Xoa toan bo co ngat
 MOV  P0,0
 RET

;Bo dem trong 1s
ONESEC:
 MOV  R5,#12H 
; COUNTER USED TO LOOP 20 TIMES, WHICH IS EQUIVALENT TO 1 SEC
SEC_LOOP:
 MOV  TH0,#00H; Xoa TIMER 0
 MOV  TL0,#00H
 CLR  TF0  ; Xoa bit tran
 SETB TR0  ; Khoi dong  TIMER 0
 JNB  TF0,$ ; WAIT FOR OVERFLOW FLAG
 CLR  TR0  ; Dung TIMER 0
 JB  UT,HUONG_UT
                              ; Nut danh cho nguoi di bo bi an,thoat khoi vong lap
 DJNZ R5,SEC_LOOP
 RET
HUONG_UT:
 MOV  P0,#0
 MOV  p1,#1
 MOV  P2,#1
 LCALL ClEAR_ALL
LOOP_UT:
  SETB DoB
 SETB DoA
 JB  UT,LOOP_UT
                              ; Nut danh cho nguoi di bo bi an,thoat khoi vong lap
 LCALL CLEAR_ALL
 LJMP MAIN
 RET
HIENTHI:
 MOV  A,R1 ;NAP SO DEM CHO LED 7 DOAN
 MOV    B,#0AH
 DIV  AB
 SWAP A
 ADD  A,B
 JB  SELECT,COTB 
COTA:
 MOV  P2,A
 DEC  R1;GIAM SO DEM CUA LED
 MOV  A,#0
 RET
COTB: 
 MOV  P0,A
 DEC  R1;GIAM SO DEM CUA LED
 MOV  A,#0
 RET
;///////////////////////////////////////
HALT: JMP  $

END


pjhuyenhanh 10-09-2012 04:45 PM

Cái này thật là tuyệt vời. Mình đã cài bản Multisim 9. Bạn có thể cho biết MultiMCU download ở đâu được không?

tuanhien-button 10-09-2012 04:45 PM

Đối với các bản 8 trở về trước, nếu muốn có MCU thì cần phải cài bộ riêng của nó. Nhưng ở bản 9 mình phát hiện ra là không cần cài bản riêng mà nó đính sẵn trong Multisim rồi. Bạn cài các ver Education, Professional, Power Pro thì sẽ không có đâu, mà phải cài Special nó sẽ có sẵn ở trong luôn. Lúc đầu mình cũng như bạn, cài bản Pro cứ nghĩ là đã đỉnh rồi, cứ đi tìm tiếp cái MCU trên NET để cài. Nhưng về sau gơ Multi đi cài lại và chọn Special thì thấy nó đã có MCU luôn ở trong rồi. Thật hay...........

thanhbvp 10-09-2012 04:45 PM

Một khám phá vĩ đại như Kha Bố Luân tìm ra Châu Mỹ. Em thấy bác khăn gói bôn ba trên các diễn đàn nước ngoài đi tìm chân lý về soi sáng quê nhà. Em thích Multisim ở chỗ nó thao tác nó thân thiện như những ứng dụng Office bình thường chứ không chéo cẳng ngỗng như Proteus. Và khi vẽ xong mạch nguyên lý ra bấm một phát để chuyển qua làm mạch in liền. Bữa nào em xin được mời bác vài chai. Nhân tiện cho em hỏi là bác đã tìm ra thư viện cho các MCU mới như PIC 16F628A, 16F877A chưa?

hoangphuc174 10-09-2012 04:45 PM

Mấy con PIC trên rất thông dụng mà. Nếu mình không nhần thì khi cài MCU ra là nó đã có rồi. Mấy con Atmel hỗ trợ còn ít, còn Pic thì khá đầy đủ

dangquang1 10-09-2012 04:45 PM

Trong phần MultiMCU của máy mình chỉ hiện lên có 2 con PIC16F84 và PIC16F84A thôi

safashion 10-09-2012 04:45 PM

xin huong dan:mong ban huogndan cho mihn lap trinh dem toc do dong co 1 chieu va hien thi ra 3 led 7 thank .minh moi hoc nen viet mai ma khogn duoc mong duoc giup do thank


Múi giờ GMT +7. Hiện tại là 04:54 PM

© 2008 - 2025 Nhóm phát triển website và thành viên SANGNHUONG.COM.
BQT không chịu bất cứ trách nhiệm nào từ nội dung bài viết của thành viên.