You are on page 1of 5

Họ và tên: Lâm Quang Vinh

MSSV: 21119161

BUỔI 11 – 12: KIT THỰC TẾ(ADC-DAC)

- Sử dụng XPT2046 để giải mã tín hiệu tương tự từ biến trở, nhiệt trở, quang trở và nguồn
ngoài sang tín hiệu số. VĐK 8051 sử dụng giao thức SPI (Serial Peripheral Interface - giao tiếp
ngoại vi nối tiếp) để giao tiếp với XPT2046
Pin Layout

Các khối chuyển đổi có sử dụng :

Khối chuyển đổi ADC

Khối chuyển đổi DAC


Đã chạy
Câu Ý nghĩa chương trình Ghi chú
/ chưa?
- Tạo mảng gồm 17 phần tử để xuất ra led 7 đoạn unsigned char
code DIG_CODE[17]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
- Khai báo ba chân sbit LSA;LSB;LSC để đưa qua IC giải mã 3
sang 8 để thực hiện việc quét led.
- Biến lưu giá trị sau khi giải mã :
temp = Read_AD_Data(0x94); gán giá trị sau giải mã vào biến
temp
- Chương trình giao tiếp với bộ giải mã (XPT2046.h):
SPI_Start : hàm dùng khởi tạo CLK và CS (Chip select), khi 0x94
CS = 0 tiến hành đọc giá trị
0xD4
SPI_Write: Đưa giá trị chọn kênh từ VĐK sang XPT2046 để
ADC 0xE4
chọn kênh nhận dữ liệu.
0xA4
SPI_Read: từ xung CLK thay đổi liên tục để thực hiện việc
Dùng để
truyền nhận dữ liệu. Giá trị DOUT được OR với dat có số
chọn
lượng bit lớn nhất.Mỗi lần lặp, biến dat sẽ được dịch trái để tạo kênh đọc
khoảng trống ghi dữ liệu tiếp theo. (Dữ liệu nhận từ bit cao đến dữ liệu

thấp)
Read_AD_Data : Đoạn chương trình con dùng để lấy được dữ
liệu từ SPI_Read sau khi giải mã tín hiệu và trả số liệu cho
chương trình main để hiển thị ra led 7 đoạn.
- Khởi tạo Timer 1 mode 1, cho phép ngắt Timer khi giá trị đạt
65,535ns. Chương trình ngắt tăng giá trị biến count và timer1 lên
1 đơn vị
- Thay đổi giá trị DIR để thay đổi giá trị của value
- Khi value tăng thì LED D5 sẽ tăng độ sáng dần lên.Khi value
DAC =1000 đặt “DIR” = 0 => giảm giá trị của “value” => LED D5
giảm dần độ sáng rồi tắt.(Thay đổi gí trị độ rộng xung)
- Biến "timer1" được sử dụng để điều khiển chu kỳ nhiệm vụ của
tín hiệu PWM. Khi "timer1" vượt quá 1000, nó được thiết lập lại
thành 0. Chân PWM được thiết lập thành 1 nếu "timer1" nhỏ hơn
"value", từ đó bật đầu ra PWM.
MÔ PHỎNG

Mô phỏng sử dụng MCP3204 có cách hoạt động giống XPT2046

You might also like