1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo THỰC HÀNH viết chương trình xuất số AB ra led đơn trên cổng p1 đọc tín hiệu từ nút nhấn tại cổng p0 0 mỗi khi nhấn nút thì cổng p0 1 điều khiển led đơn nhấp nháy AB lần

17 254 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 40,39 KB

Nội dung

BÀI BÁO CÁO THỰC HÀNH KẾT THÚC TÊN SINH VIÊN: VŨ VIỆT KIỀU LỚP: 61TDH2 MSV: 1951211959 1.Thực hành 1.1 Viết chương trình xuất số AB led đơn cổng P1 Mã số sinh viên : 1951211959 -> AB = 59 BÀI LÀM ORG 0000H LOOP: MOV P1,#59D JMP LOOP END 1.2 Đọc tín hiệu từ nút nhấn cổng P0.0 Mỗi nhấn nút cổng P0.1 điều khiển led đơn nhấp nháy AB lần Mã số sinh viên : 1951211959 -> AB = 59 BÀI LÀM org 0000H NUT: MOV P0, #11111111b JB P0.0, NUT main: Mov R0,#0D LOOP: cpl p0.1 inc R0 CJNE R0,#118d, LOOP ;;;;;;;;;;;; 59 lần sáng, 59 lần tối JMP NUT END 1.3 Mỗi nhấn nút nối với cổng P0.0, vi điều khiển điều khiển cổng P1 hiển thị led đơn thể đếm từ đến số AB Mã số sinh viên : 1951211959 -> AB = 59 BÀI LÀM ORG 0000H NUT: MOV P0,#11111111B JB P0.0,NUT MOV R1,#0D LOOP: MOV P1,R1 INC R1 CJNE R1,#60D,LOOP JMP NUT END Thực hành Viết chương trình điều khiển led hiển thị số ABCD Mã số sinh viên : 1951211959 -> ABCD = 1959 BÀI LÀM ORG 000H START: Mov R0, #04H Mov R1, #00H Mov R6, #0EEH LABEL: Mov A, R1 Mov DPTR, #Zezo Movc A, @A+DPTR Mov P0, A Mov P2, R6 Mov A, R6 RL A ;;;; CHUYỂN SANG TRÁI ĐƠN VỊ Mov R6, A Mov P2, #0FFH INC R1 DEC R0 ;;;;;;giảm giá trị liệu ghi R0 xuống đơn vị Mov A, R0 ;;;;;;;;;;;;;;;;;;;;;Lệnh JZ (nhảy A = 0) JZ START Zezo: DB 0F9H, 090H, 092H, 090H RET END Thực hành 3.1 Viết chương trình hiển thị LCD 16x2 + Họ tên sinh viên hàng + Mã số sinh viên hàng BÀI LÀM org jmp RS RW E D cmd start bit bit bit equ macro setb mov clr P1.0 P1.1 P1.2 P0 cmd_code E D, cmd_code E endm string: db 'TEN VU VIET KIEU \0' string2: db 'MSV: 1951211959\0' ORG 0100H start: mov D, #0 clr RW mov DPTR, #string main: clr RS mov DPTR, #string ; Dong cmd #00000001b ; Clear display cmd #00000010b ; Cursor home cmd #00000110b ; Entry mode set cmd #00001111b ; Display ON/OFF control cmd #00011110b ; Cursor/display shift cmd #00111100b ; Function set cmd #10000001b ; Set DDRAM address setb RS mov R0, #0; Gia tri sai lech duoc khoi tao la print: mov A, R0 inc R0 movc A, @A+DPTR cmd A cjne ;Dong main2: A,#0, print clr RS cmd #11000001b mov DPTR, #string2 setb mov print2: mov inc movc cmd cjne jmp end RS R0, #0 A, R0 R0 A, @A+DPTR A A, #0, print2 main 3.2 Viết chương trình giao tiếp với ma trận bàn phím LCD 16x2 + Nhấn số hiển thị Họ tên sinh viên + Nhấn số hiển thị Mã sinh viên BÀI LÀM ORG 0000H BACK: MOV P2, #11111111B CLR P2.0 JB P2.4, NEXT1 ACALL start NEXT1: JB P2.5, BACK ACALL start2 jmp start RS bit P1.0 RW bit P1.1 E bit P1.2 D equ P0 cmd macro setb mov endm clr cmd_code E D, cmd_code E string: string2: db db 'TEN VU VIET KIEU \0' 'MSV: 1951211959\0' ORG 0100H start: mov D, #0 clr RW mov DPTR, #string main: clr RS mov DPTR, #string in: ;;;;;Dong cmd #00000001b ; Clear display cmd #00000010b ; Cursor home cmd #00000110b ; Entry mode set cmd #00001111b ; Display ON/OFF control cmd #00011110b ; Cursor/display shift cmd #00111100b ; Function set cmd #10000001b ; Set DDRAM address ; Print the string setb RS mov R0, #0; Gia tri sai lech duoc khoi tao la 0: print: mov A, R0 inc R0 movc A, @A+DPTR cmd A cjne A,#0, print JMP BACK ; Dong start2: mov D, #0 clr RW mov DPTR, #string2 main2: clr RS mov DPTR, #string2 acall in end Thực hành 4.1 Viết chương trình dùng ngắt định thời để tạo xung vng tuần hồn có tần số f=2kHz P0.0 Biết vi điều khiển dùng thạch anh 12MHz BÀI LÀM ; Chuong trinh tao xung vuong co tan so f = 2kHz tai P0.0 voi thach anh 12MHz ; Thach anh 12Mhz, tan so xung clock la 12Mhz/12 = 1Mhz ; Moi chu ki dem se la 1/1Mhz = 01 micro giay ; Xung tan so 2kHz: chu ki la 1/2000 = 0,5 mili giay = 500 micro giay ; Vay 1/2 chu ki la 250 micro giay => 250 lan dem cua bo dinh thoi < 255 (Gia tri lon nhat cua ghi bit) ; Nen chi can su dung bo dem bit tu dong nap lai ORG 0000h LJMP main ;;;;;; Ngat bo dinh thoi ORG 000Bh CPL P0.0 RETI ;;;;;;;;;;;;;;; Chuong trinh chinh;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ORG 0030h main: ;;;; Khoi tao gia tri ban dau MOV R0, #LOW(65535-250); 2^16 = 65536 (0-65535) MOV A, R0 ADD A, #1D MOv R0, A ;;MOV R1, #HIGH(65535-250); 2^16 = 65536 (0-65535) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Cai dat cho bo dinh thoi o che tu dong nap lai bit\ ;xxxx-xxM1M0 MOV TMOD,#00000010B ;Chế độ định thời bit tu dong nap lai MOV TH0, R0 ; Gia tri xac lap cho TL0 xay tran MOV TL0, R0 ; Gia tri xac lap gia tri ban dau cho TL0 ;SETB IE.7 SETB EA ; cho phep ngat SETB IE.1 ; cho phep ngat bo dinh thoi SETB TR0 ; cho phep bo dinh thoi hoat dong vonglap: JMP vonglap END 4.2 Dùng ngắt định thời để tạo đồng thời xung vng tuần hồn có tần số 1kHz 100Hz chân P1.0 P1.1 8051 sử dụng thạch anh 12Mhz BÀI LÀM ORG 0000h LJMP main ORG 000Bh JMP NBDT0 ;ngat bo dinh thoi ORG 001BH ;ngat bo dinh thoi JMP NBDT1 ;;;;;;;;;;;;;;; Chuong trinh chinh;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ORG 0030h main: ; Khoi tao gia tri ban dau cho 100hz MOV R0, #LOW(655355000) MOV A, R0 ADD A, #1D MOv R0, A ; MOV R1, #HIGH(65535-5000) Khoi tao gia tri ban dau cho 1khz MOV R2, #LOW(65535500) MOV A, R2 ADD A, #1D MOv R2,A MOV R3, #HIGH(65535-500) ;;;;;;;;;;;;;;;;; XAC LAP GIA TRI CUA BO DINH THOI ;;;;;;;;;;;;;;;;;;;;;;; MOV TMOD,#00010001B ;Chế độ định thời 16 bit MOV TH0, R3 ; Gia tri xac lap cho TL0 xay tran MOV TL0, R2 ; Gia tri xac lap gia tri ban dau cho TL0 MOV TH1, R1 ; Gia tri xac lap cho TL1 xay tran MOV TL1, R0 ; Gia tri xac lap gia tri ban dau cho TL1 ;SETB IE.7 SETB EA SETB IE.3 SETB IE.1 SETB TR1 SETB TR0 vonglap: JMP vonglap NBDT0: CPL P1.0 MOv TH0,R3 MOV TL0, R2 RETI NBDT1: ; cho phep ngat ; cho phep ngat bo dinh thoi ; cho phep ngat bo dinh thoi ; cho phep bo dinh thoi hoat dong ; cho phep bo dinh thoi hoat dong CPL P1.1 MOV TH1, R1 MOV TL1, R0 RETI END 4.3 Viết chương trình phát chuỗi kí tự tên sinh viên qua cổng truyền thông nối tiếp chế độ UART bit, 9600bps (bit/giây) Có sử dụng ngắt truyền thông nối tiếp Biết vi điều khiển sử dụng thạch anh 11.0592Mhz BÀI LÀM ORG 0000h LJMP main ;;;;;; Ngat truyen thong noi tiep ORG 0023h LJMP SERISR ;;;;;;;;;;;;;;; Chuong trinh chinh;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ORG 0030h main: mov DPTR,#string mov R0,#0D ; Che 8-bit UART mode clr SM0 setb SM1 ;setb REN ; Cho phep nhan ky tu bang truyen thong noi tiep ; set bit double rate mov A, PCON; setb A.7 mov PCON, A ;set smod (double rate) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; mov TMOD, #20H; timer in mode bit auto reload ;;; double rate thach anh 12MHz, baurdrate la 1200 thi mov TH1, #253D ;TH1=256-[(11.0592*10^6)/(12*32)]/9600 mov TL1, TH1 clr ET0 setb TR1; start timer ;Cho phép ngắt định thời setb TI ; Ngắt truyền thông ; cho phep ngat truyen thong ; cho phep ngat setb ES setb EA vonglap: cjne R0, #00001011b, vonglap mov R0,#0D jmp vonglap SERISR: clr TI ;clr RI mov A,R0 movc A,@A+DPTR mov SBUF,A INC R0 RETI string: db 'VU VIET KIEU' END 4.4 Viết chương trình chờ nhận xung âm chân P3.2 Khi xuất xung gửi ký tự $@$ cổng truyền thông nối tiếp chế độ UART bit, tốc độ baud 9600 bps (bit/giây) Trong bit thứ bit kiểm lỗi chẵn/lẻ vi điều khiển dùng thạch anh 11.0592MHz BÀI LÀM ; Chuong trinh cho dem tien tai cong P3.2 ; Chan P3.2 la chan noi voi ngat ngoai 0: INT0 ; Dem theo xung am: ORG 0000h LJMP main ;;;;;;;;;;;;;;; Chuong trinh chinh;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ORG 0030h main: mov DPTR, #string mov R0, #0D ; Che 9-bit UART mode setb SM0 setb SM1 setb REN ; set bit double rate ; Cho phep nhan ky tu bang truyen thong noi tiep clr ET0 ; ;Cho phép ngắt định thời Cai dat cho ngat ngoai SETB IE.7; cho phep ngat SETB IE.0; cho phep ngat bo ngoai SETB IT0 ; cho phep ngoai ngoai theo suon xung am mov A, PCON; setb A.7 mov PCON, A ; set smod (double rate) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; mov TMOD, #20H ; timer in mode bit auto reload ;;; double rate thach anh 12MHz, baurdrate la 1200 thi mov TH1, #253D ; TH1=256-[(11.0592*10^6)/(12*32)]/9600 mov TL1, TH1 JMP $ ORG 0003H ;ngat Clr IE0 ;Cho phép ngắt vonglap: mov A, R0 movc A, @A+DPTR mov SBUF, A MOV C, P MOV TB8, C INC R0 ;Nạp byte liệu từ ACC ;Đọc bit chẵn lẻ PSW ; Chuyển bit chẵn lẻ vào TB8 CJNE R0, #3D,vonglap mov R0, #0D RETI string: db '$@$' END ... #00 000 11 0b ; Entry mode set cmd #00 0 01 111 b ; Display ON/OFF control cmd #00 011 110 b ; Cursor/display shift cmd #00 11 1 10 0 b ; Function set cmd # 10 0 000 01b ; Set DDRAM address setb RS mov R0, #0; ... Mã số sinh viên : 19 512 119 59 -> AB = 59 BÀI LÀM ORG 00 00H NUT: MOV P0, #11 111 111 B JB P0. 0, NUT MOV R1,#0D LOOP: MOV P1, R1 INC R1 CJNE R1,#60D,LOOP JMP NUT END Thực hành Viết chương trình điều khi? ??n... Cursor home cmd #00 000 11 0b ; Entry mode set cmd #00 0 01 111 b ; Display ON/OFF control cmd #00 011 110 b ; Cursor/display shift cmd #00 11 1 10 0 b ; Function set cmd # 10 0 000 01b ; Set DDRAM address ; Print

Ngày đăng: 09/01/2022, 17:14

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w