Xây dựng các mạch 8051 để điều chế độ rộng xung bằng pwm, truyền thông nối tiếp uart, hiển thị led 7 thanh, hiển thị led 7 seg, quyét phím hiển thị ra lcd, xấp xỉ bằng ADC. Thiết kế mạch mô phỏng điều khiển động cơ dùng pwm.
Trường Đại Học Bách Khoa Hà Nội Viện Điện Báo cáo mô tả tập mô Môn : Vi Xử Lý Giảng viên: Ths Vũ Đức Trọng Sinh viên thực hiện: Nguyễn Văn Thịnh 20122512 Hà Nội, 2016 Contents Bài 2: Điểu chế độn rộng xung PWM Bài 3: Truyền thông nối tiếp UART Bài 4: Quét bàn phím hiển thị led seg Bài 5: Quét phím hiển thị LCD Bài 6: ADC_Successive Approximation Bài 2: Điểu chế độn rộng xung PWM Thiết kế mạch mô điều khiển động cơ: Mô tả: Gọi tOn thời gian mà xung mức tOff thời gian xung mức T = tOn + tOff chu kỳ xung PWM Đặt đầu xung PWM cổng P1.0 Lập trình C Khởi tạo giá trị: - Ngắt: Cấu hình timer0 mode 16bit Cấu hình cho phép ngắt chân INT0, INT1 cho phép ngắt tràn timer Khởi tạo thời giant On ban đầu Khởi tạo giá trị bắt đầu lặp cho timer đến tràn, số lần đếm timer tOn: TH0 = (65536 - tOn)>>8; TL0 = (65536 - tOn)&0x00ff; Cho phép timer hoạt động TR0 = 1; - - Ngắt INT0: cấu hình IT0=1 cho phép ngắt sường xuống, viết hàm phục vụ ngắt cho có ngắt xảy rat tOn giảm số (trong code 80) Ngắt INT1: cầu hình IT1 = cho phép ngắt sường xuống, viết hàm phục vụ ngắt cho có ngắt xảy rat tOn tăng số (trong code tăng 80) Ngắt timer: viết hàm phục vụ ngắt timer đếm tràn: Lấy PWM = !PWM Nếu PWM = chuyển sang đếm thời gian tOff (tOff = T – tOn): TH0 = (65536 - (T-tOn))>>8; TL0 = (65536 - (T-tOn))&0x00ff; Nếu không đếm thời gian tOn Như timer đếm thời giant On xung PWM mức thời gian tOff xung PWM mức 0, ta công tắc cổng INT0 INT1 xảy ngắt thời giant On thay đổi theo Bài 3: Truyền thông nối tiếp UART Mô tả: Chọn chế độ gửi mode truyền 9bit có bit liệu bit parity Cấu hình khởi động timer1, đặt TH1 = 0xFD để tốc độ baud 9600 (làm điều với bên nhận truyền) Bên truyền: đẩy 8bit liệu vào ghi SBUF, bit parity liệu gán cho TB8 Bên nhận liệu nhận chuyển vào ghi SBUF, giá trị bit parity truyền từ bên gửi đưa vào bit RB8, từ liệu nhận ghi SBUF tính bit parity so sánh với giá trị RB8 truyền nhận liệu không truyền sai không nhận liệu Bài 4: Quét bàn phím hiển thị led seg Thuật toán quét phím: Đặt cột hàng ma trận phím mức Tiến hành quét hàng, đặt giá trị hàng mức 0, đặt giá trị hàng lại cột mức 1, tiến hành quét liên tục lặp lặp lại Khi phím nhấn, hàng quét liên tục tốc độ đủ nhanh để nhấn hàng phím nhấn kịp mức trước nhả phím, cột tương ứng với phím trở mức không, ta có vị trí nhấn nút (là đoạn mã nhị phân) Sau có vị trí phím ta đối chiếu với mảng chiều lưu sẵn vị trí phím, để tìm nội dung phím nhấn Sau có nội dung (là số 0,1,2,3,4 ) ta tìm mã hiển thị nội dung đó(các số 0,1,2,3,4…) led7 có anot chung Hiển thị: Sau có mã hiển thị lên led, ta dịch phải bit đưa vào chân DB 74HC595 , đầu 74HC595 nối led anot chung để hiển thị Bài 5: Quét phím hiển thị LCD Thuật toán quét phím: giống Hiển thị: Cấu hình chân LCD: EN = 0; RW = 0; // che led la ghi RS = 1; Lấy liệu lấy ký tự chuyển sang mã ASCII: Đưa mã asci ký tự quét port để đưa vào chân liệu LCD Đưa chân E LCD lên sau xuống để kích hiển thị thông qua sường xuống Bài 6: ADC_Successive Approximation Bài Làm nhóm làm mạch thật: Mô tả: Bài dùng thuật toán xấp xỉ lên tiếp Công thức Vout DAC0808 tính theo công thức: 𝐴1 Vout = Vref*( + 𝐴2 + 𝐴2 𝐴2 𝐴2 𝐴2 𝐴2 𝐴2 + 16 + 32 + 64 + 128 + 256) Trong này, ta dùng Vref = 5V Khởi tạo đầu vào DAC ban đầu 0x80 (1000 0000) port P2 8051, ý đầu P2.7 nối với A1 DAC, ta tính tượng Vout = 2.5V Đưa Vout vào chân đảo LM393 Vin (cần đo) đưa vào chân thuận LM393 Khi Vin>Vout out = ngược lại (out đưa vào port P3.2) Khi out =1 : giữ nguyên P2.7 dịch bit sang phải bit đưa cổng P2 Nếu out = dịch sang phải bit đưa P2 Lập lại lần dịch hết bit ta kết giá trị ADC Vin cần đo hiển thị LCD ... Bài 2: Điểu chế độn rộng xung PWM Thiết kế mạch mô điều khiển động cơ: Mô tả: Gọi tOn thời gian mà xung mức tOff thời gian xung mức T = tOn + tOff chu kỳ xung PWM Đặt đầu xung PWM cổng P1.0 Lập... hình IT0=1 cho phép ngắt sường xu ng, vi t hàm phục vụ ngắt cho có ngắt xảy rat tOn giảm số (trong code 80) Ngắt INT1: cầu hình IT1 = cho phép ngắt sường xu ng, vi t hàm phục vụ ngắt cho có ngắt... (65536 - (T-tOn))&0x00ff; Nếu không đếm thời gian tOn Như timer đếm thời giant On xung PWM mức thời gian tOff xung PWM mức 0, ta công tắc cổng INT0 INT1 xảy ngắt thời giant On thay đổi theo Bài