Một vôn kế 0-5V đơn giản sử dụng 8051 được trình bày trong bài viết này. Vôn kế kỹ thuật số này có độ nhạy 200mV hơi thấp nhưng dự án này nhằm mục đích chứng minh cách một bộ hiển thị ADC và bảy đoạn có thể được giao tiếp với 8051 để có được kết quả kỹ thuật số của điện áp đầu vào. Một vôn kế cao cấp 31/2 chữ số sẽ sớm được bổ sung. ADC0804 là ADC và AT89S51 là bộ điều khiển được sử dụng trong dự án này. Trước khi thực hiện dự án này, hãy xem qua các dự án Giao diện ADC tới 8051 và Giao diện hiển thị bảy đoạn tới 8051 sẽ cung cấp cho bạn ý tưởng cơ bản về những điều cơ bản.
Circuit diagram.
About the circuit.
Trong mạch Vref / 2 (pin9) của ADC được để mở và điều đó có nghĩa là khoảng điện áp đầu vào có thể là o đến 5V và kích thước bước sẽ là 5/255 = 19,6mV. Phương trình cho đầu ra kỹ thuật số của ADC0804 là Kích thước Dout = Vin / Bước. Trong mạch này, đối với điện áp đầu vào là 1V, đầu ra kỹ thuật số sẽ là 1 / 19,6mV = 51 và do đó tương đương nhị phân của 51 tức là 00110011. Đầu ra kỹ thuật số của ADC được giao diện với P1.0 của vi điều khiển. Các tín hiệu điều khiển cho ADC tức là CS, RD, WR và INTR có sẵn từ các chân P3.7, P3.6, P3.5 và P3.4 của bộ vi điều khiển tương ứng. Màn hình 7 phân đoạn ghép kênh 2 chữ số được giao tiếp với Cổng0 của bộ vi điều khiển. Các tín hiệu điều khiển cho các bóng bán dẫn trình điều khiển hiển thị Q1 và Q2 được lấy từ P3.2 và P3.1 của vi điều khiển. Công tắc nút nhấn S1, tụ điện C2 và điện trở R10 tạo thành mạch đặt lại gỡ lỗi.
Program.
ORG 00H MOV P1,#11111111B MOV P0,#00000000B MOV P3,#00000000B MOV DPTR,#LABEL MAIN: CLR P3.7 SETB P3.6 CLR P3.5 SETB P3.5 WAIT: JB P3.4,WAIT CLR P3.7 CLR P3.6 MOV A,P1 MOV B,#10D DIV AB MOV B,#2D MUL AB MOV B,#10D DIV AB SETB P3.2 ACALL DISPLAY MOV P0,A ACALL DELAY MOV P0,#10000000B ACALL DELAY MOV A,B CLR P3.2 SETB P3.1 ACALL DISPLAY MOV P0,A ACALL DELAY CLR P3.1 SJMP MAIN DELAY: MOV R3,#02H DEL1: MOV R2,#0FAH DEL2: DJNZ R2,DEL2 DJNZ R3,DEL1 RET DISPLAY: MOVC A,@A+DPTR RET LABEL: DB 3FH DB 06H DB 5BH DB 4FH DB 66H DB 6DH DB 7DH DB 07H DB 7FH DB 6FH END
Về chương trình.
Lúc đầu, chương trình điều khiển ADC để tạo ra đầu ra kỹ thuật số tương ứng với điện áp đầu vào. Đầu ra kỹ thuật số này được quét qua P1.0 và được tải đến bộ tích lũy. Sau đó, giá trị trong bộ tích lũy được chia cho 10 để bỏ qua chữ số cuối cùng. Ví dụ, để điện áp đầu vào là 4V. Khi đó đầu ra kỹ thuật số tương ứng của ADC sẽ là 204D (D là viết tắt của thập phân) .Sau khi chia cho 10, giá trị còn lại trong bộ tích lũy sẽ là 20D. 20D này sau đó được nhân với 2D và kết quả là 40D. Mục tiêu tiếp theo của chương trình là thao tác 40D này và thực hiện đọc 4.0 trên màn hình. Đối với điều này, 40D một lần nữa được chia cho 10D. Điều này dẫn đến 4 bên trong bộ tích lũy và 0 bên trong thanh ghi B. Sau đó, chương trình lấy mẫu ổ đĩa số cho 4 bằng cách sử dụng bảng tra cứu, đặt mẫu này trên Cổng 0 và kích hoạt Q1. Sau 1 ms trễ 10000000B được tải đến P0 và điều này chiếm dấu chấm. Sau khi độ trễ thêm 1ms Q1 bị vô hiệu hóa, nội dung trong B (tức là 0) được chuyển đến A, nhận dạng ổ đĩa chữ số chính xác cho 0 bằng cách sử dụng bảng tra cứu, đặt mẫu này trên Cổng 0 và kích hoạt Q2. Sau khi trễ thêm 1ms, Q2 sẽ ngừng hoạt động và toàn bộ chu kỳ được lặp lại.