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

Báo cáo thí nghiệm vi xử lý bài 1 lab 1 1giaotiếp io và các lệnh tính toán

43 15 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 43
Dung lượng 6,54 MB

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH  TRƯỜNG ĐẠI HỌC BÁCH KHOA    BÁO CÁO THÍ NGHIỆM VI XỬ LÝ B ÀI LỚP L02 -NHÓM - HK 231 NGÀY NỘP: 6/11/2023 Giảng viên hướng dẫn: Nguyễn Tuấn Hùng   Sinh viên thực hiện  Mã số sinh viên   Nguyễn Đăng Khoa  2111529  Nguyễn Minh Nhật  2111923 Hồng Châu Ngọc Tuấn  2115167 Thành phố Hồ Chí Minh –  2023 LAB 1-1 GIAO TIẾP IO VÀ CÁC LỆNH TÍNH TỐN  BÀI a) Kết nối port AVR (VD PORT A) vào dip switch Kết nối port khác vào bar LED (Ví dụ PORT B) b) Viết chương trình đọc liên tục trạng thái DIP Switch gửi LED Nếu Swich trạng thái OFF, LED tương ứng tắt.  Giải thích:Khi SWITCH 0,4,5 trạng thái OFF LED tương ứng (0,4,5) TẮT  Khi SWITCH 1,2,3,6,7 trạng thái OFF LED tương ứng (1,2,3,6,7) SÁNG Trả lời câu hỏi  a Lấy giá trị từ nibble PORTA nào? Cài đặt ramend  PUSH ghi chứa nibble Andi ghi với 0x0F => nibble  POP ghi SWAP => ANDI 0x0F => nibble  b Enable điện trở pullup nào?  LDI R16,0x00 OUT DDRx,R16 LDI R16,0XFF OUT PORTx,R16 c Khi Switch trạng thái ON/OFF, giá trị chân Port bao nhiêu?  Khi SWITCH: ON Port = Khi SWITCH: OFF Port = Giá trị chân port lấy bù lại để led sáng phù hợp  d Khi chân port trạng thái 1, BAR LED sáng hay tắt?  KHI CHÂN PORT Ở TRẠNG THÁI 1, BAR LED SÁNG  PORTA=1 (SWITCH tắt)=>PORTB=0 => LED Tắt  e Mã nguồn với thích EQU OUTPORT=PORTB ORG 0 RJMP MAIN ORG 0X40 MAIN: LDI R16,0X00 ;khai bao porta la input   OUT DDRA,R16 LDI R16,0XFF ; dien tro keo len  OUT PORTA,R16 LDI R16,0XFF ; khai bao portb la output   OUT DDRB,R16 LDI R16,0X00 ;PORTC=00H: tat led  OUT PORTB,R16 LOOP: IN R16,PINA COM R16 ; Swich off thi PINA=1 =>led tat thi PORTB=0   OUT PORTB,R16 RJMP LOOP  BÀI a) Viết chương trình đọc giá trị Port nối với Dip Switch, cộng thêm gửi Port nối Bar LED  b) Thay đổi trạng thái Dip Switch quan sát trạng thái Bar LED    Giải thích:  Khi SWITCH trạng thái ON ( Giá trị PORTA 0) PORTB = 0+5 = 0b0000_0101 Trả lời câu hỏi  a Mã nguồn với thích  EQU OUTPORT=PORTB  ORG 0 RJMP MAIN ORG $40 MAIN: LDI R16,0X00 ;khai bao porta la input   OUT DDRA,R16  LDI R16,0XFF ; dien tro keo len  OUT PORTA,R16  LDI R16,0XFF ; khai bao portb la output OUT DDRB,R16  LDI R16,0X00 ;PORTC=00H: tat led  OUT PORTB,R16  LOOP: IN R16,PINA  LDI R17,5 ;PORTA+5  ADD R16,R17  OUT PORTB,R16 RJMP LOOP BÀI a) Kết nối thực chương trình tính tích nibble cao thấp PORTAvà gửi PORT B Coi nibble số không dấu  VD: PORTA = 0b0111_1111, PORTB = 3*15 b) Thay đổi trạng thái Dip Switch quan sát trạng thái Bar LED  Trả lời câu hỏi  Làm lấy giá trị từ nibble PORT A  Để lấy 4byte thấp: IN R18, PINA MOV R19, R18 ANDI R18, $0F Để lấy 4byte cao: ANDI R19, $F0 SWAP R19 a Mã nguồn với thích  ORG 0 LDI R16,0 OUT DDRA,R16 ; make port A an input  LDI R16,$FF OUT DDRB,R16 ; make port B an output  OUT PORTA,R16 ; enable pull - up resistor   LOOP: RCALL DIP_SW MOV R18,R17 ANDI R18,$0F ; doc du lieu tu dip switch   ; lay nibble thap  MOV R19,R17 ANDI R19,$F0 SWAP R19 ; lay nibble cao  MUL R18, R19 ; lenh nhan so khong dau  OUT PORTB, R0 ; gui bar LED  RJMP LOOP   DIP_SW: ; chong rung  LDI R16,1 IN R17,PINA DEC R16 BRNE DIP_SW RET  BÀI a) Kết nối thực chương trình tính tích nibble cao thấp PORTAvà gửi PORT B Coi nibble số có dấu  VD: PORTA = 0b0111_1111, PORTB = 3* (-1)  b) Thay đổi trạng thái Dip Switch quan sát trạng thái Bar LED  Giải thích:  Khi SWITCH chế độ ON (các giá trị PORTB 0b1011_0010), PORTA=(-3)*2=0=0b1111_0110 Trả lời câu hỏi  a Mã nguồn với thích  ORG 0 RJMP MAIN ORG $40 MAIN: LDI R16,0X00 ;khai bao porta la input   OUT DDRA,R16  LDI R16,0XFF ; dien tro keo len   OUT PORTA,R16  LDI R16,0XFF ; khai bao portb la output   OUT DDRB,R16  LDI R16,0X00 ;PORTC=00H: tat led  OUT PORTB,R16  LOOP: LDI R16, HIGH(RAMEND) ;cai dat vung stack   OUT SPH,R16  LDI R16, LOW(RAMEND) OUT SPL,R16  IN R16,PINA PUSH R16  ANDI R16,0X0F ; lay nibble thap   MOV R20,R16  POP R16  SWAP R16 ; lay nibble cao  ANDI R16,0X0F MOV R21,R16  MUL R20,R21 ; nhan khong dau r20 x r21 luu vao r1:r0   OUT PORTB,R0 ; barled bit nen chi xuat r0   RJMP LOOP   BÀI a) Kết nối PA0 vào Switch đơn PA1 vào LED đơn khối LED (lưu ý Port)   b) Viết chương trình bật LED SW nhấn, tắt LED SW nhả.  Trả lời câu hỏi  a Khi Switch trạng thái nhấn/nhả, giá trị chân Port bằng bao nhiêu? Nhấn: PORTA0 = Nhả: PORTA0 =  b Để LED sáng, chân port xuất mức logic gì?  LED sáng chân PORTA1 xuất mức 1  c Mã nguồn với thích  ORG 0 RJMP MAIN ORG 0X40  MAIN: CBI DDRA,0 ; Chan portA la chan nhap   SBI PORTA,0 ;dien tro keo len   SBI DDRA,1 ; chan portA la chan xuat   CBI PORTA,1 ; ban dau LED tat  LOOP: SBIC PINA,0 ;neu PA0=0 (switch nhan) thi led sang   RJMP LEDTAT  LEDSANG: SBI PORTA,1  RJMP LOOP  LEDTAT: CBI PORTA,1 RJMP LOOP   LAB 1-2 DELAY DÙNG LỆNH  BÀI a) Cho chương trình sau:  include "m324PAdef.inc" org  00 ldi r16,0x01 out  DDRA, r16 start: sbi  PORTA,PINA0 cbi  PORTA, PINA0 rjmp start  Kết nối PA0 vào kênh đo khối TEST STATION đo dạng xung oscilloscope  Trả lời câu hỏi  a) Chụp ảnh dạng xung PA0  b) Tần số, thời gian tín hiệu 1, thời gian tín hiệu bao nhiêu?  Thời gian tín hiệu 1/0 250ns/500ns chu kỳ  c) Giải thích kết đo được.  Sbi  PORTA,PINA0 (2MC; trước thực lệnh tín hiệu bằng 0 sau thực lệnh tín hiệu 1)  Cbi  PORTA, PINA0 (2MC; trước thực lệnh tín hiệu sau thực lệnh tín hiệu 0)  Rjmp  start (2MC; trước sau thực lệnh tín hiệu 0)   Vậy tổng chu kì MC = 6, T = * (1/(8*10^6)) = 0.75us = 750ns BÀI a) Viết chương trình Delay1ms dùng để viết chương trình tạo xung vng tần số 1Khz PA0.   b) Dùng chương trình viết chương trình Delay10ms, Delay100ms, Delay1s.  c) Dùng chương trình Delay1s viết chương trình chớp/tắt LED gắn vào PA0.  Trả lời câu hỏi  a) Cách tính số chu kỳ máy để thực chương trình Delay1ms Trình bày hình ảnh mơ + Tần số Atmega324 8MHz tương ứng với 1MC = 0.125uS + Delay 0.5ms tương ứng với 4000MC + Áp dụng công thức TDL = x m x n = 4000 + Ta chọn m = 100, n= 10  b) Hình ảnh xung 1Khz PA0.  ;Ghi byte mã l ệnh 32H  CBI LCD,RS ;RS=0 ghi l ệnh  LDI R17,$32 RCALL OUT_LCD4_2; ctc ghi byte, m ỗi   lần bit  RET  ;INIT_LCD4 kh ởi động LCD ghi byte mã l ệnh  ;Function set: 0x28: bit, dòng font 5x8   ;Clear display: 0x01: xóa hình   ;Display on/off control: 0x0C: hình on, tr ỏ off  ;Entry mode set: 0x06: d ịch phải tr ỏ, địa chỉ DDRAM tăng ghi data   ;   INIT_LCD4: CBI LCD,RS ;RS=0 ghi l ệnh  LDI R17,0x28 ;chế độ giao tiếp bit, dòng font 5x8   RCALL OUT_LCD4_2 ;   CBI LCD,RS ;RS=0 ghi l ệnh  LDI R17,0x01 ;xóa hình  RCALL OUT_LCD4_2 LDI R16,20 ;chờ   2ms sau l ệnh Clear display  RCALL DELAY_US ;   CBI LCD,RS ;RS=0 ghi l ệnh  LDI R17,0x0C ;màn hình on, tr ỏ off RCALL OUT_LCD4_2 ;   CBI LCD,RS ;RS=0 ghi l ệnh  LDI R17,0x06 ;dịch phải trỏ, địa chỉ DDRAM tăng ghi data   RCALL OUT_LCD4_2 ;   RET  ;   ;OUT_LCD4_2 ghi byte mã l ệnh/data LCD ;chia làm l  ần ghi 4bit: bit cao trướ c, bit th ấp sau  ;Input: R17 ch a mã lệnh/data,R16   ứ  ;bit RS=0/1:l ệnh/data,bit RW=0:ghi ;Sử   dụng ctc OUT_LCD4  ;   OUT_LCD4_2: IN R16,LCD ;đọc PORT LCD  ANDI R16,(1

Ngày đăng: 12/12/2023, 15:11

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

TÀI LIỆU LIÊN QUAN

w