Tài liệu tham khảo kỹ thuật công nghệ, chuyên ngành tin học Thiế kế phần cứng, phần mềm
Trang 1MUC LUC
Chương 1: Mô hình phần cứng 2 Chương 2: Thiết kế phần cứng 6 Chương 3:Phần mềm 43
Trang 2Modul giao tiếp với máy tính
Mudul chuẩn hóa và chuyển đổi đo
Đối tượng công nghệ
Mạch xử lý
Máy
Trang 3I.Board mạch chính:
Trang 5III Modul hiển thị:
IV Modul cảm biến và chuyển đổi đo:
Trang 6
Chương 2: Thiết kế phần cứng
1.Linh kiện:
1.1Danh sách linh kiện sử dụng:
10 XTAL Thạch anh tạo dao động cho VDK
Trang 71.2 kiến trúc và các thông số của vi mạch:
a) AT89C52,AT89S52: (dài quá –trình bày sau)
Trang 9Tổ chức bộ nhớ của AT89c52/s52
Trang 11Tem2 5eh Tạm toán hạng 2 trong phép cộng
Trang 12b) ADC0809:
Nguyên lý hoạt động của ADC0809/0808 là phương pháp thử dần từng bit Nguyên lý và hoạt động theo sơ đồ khối và giản đồ thời gian phía dưới.
Trang 13
IN1÷IN7: Các đầu vào tương tự
ADD A÷ADD C: Địa chỉ của đầu vào tương tựAlE: Tín hiệu chốt địa chỉ
START: Tín hiệu cho phép bắt đầu chuyển đổiEOC: Tín hiệu báo chuyển đổi xong
Output enable: điều khiển xuất tín hiệu raClock: đầu vào xung nhịp cho ADC
Vref+ và Vref-: Điện áp tham khảo (điện áp chuẩn)Vcc: Điện áp cung cấp cho ADC+5V
2-1÷2-8: Các đầu ra của ADC
Trang 14a IC74154:
Là vi mạch giải mã địa chỉ vào 4 ra 16 tích cực mức thấp
A,B,C,D : là các đầu vào địa chỉ A=MBS,D=LBSG1,G2: các đầu cho phép làm việc
GND: chân đất,Vcc : chân 5 V,
Trang 15d IC74393:
Mỗi IC gồm 2 IC đếm 4 bit tần số hoạt động fmax=60MHz tại 25 0CCP1,CP2: đầu vào xung clockMR: Cho phép đếm
E: Enable (latch)D0÷D7 : dữ liệu vàoQ0÷Q7: dữ liệu ra
Trang 17được nối với +Vcc, các chân còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 0 Nếu led 7 đoạn có Cathode(cực -) chung, đầu chung này được nối xuống Ground (hay Mass), các chân còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 1.
Vì led 7 đoạn chứa bên trong nó các led đơn, có thể là led tinh thể lỏng hoặc là led phát quang Nếu là led phát quang thì dòng qua led khoảng 3÷10 mA, và điện áp rơi trên chúng khoảng 1.8÷2 V, nên khi ta nối led 7 thanh với nguồn 5 V ta phải có thêm 1 điện trở hạn dòng có giá trị khoảng:
5 2
3001000(3 10) *10
÷1000 Ω
Sơ đồ vị trí các led được trình bày như hình dưới:
Các điện trở 330Ω là các điện trở bên ngoài được kết nối để giới hạn dòng điện qua led nếu led 7 đoạn được nối với nguồn 5V Chân nhận tín hiệu a điều khiển led a sáng tắt, ngõ vào b để điều khiển led b Tương tự với các chân và các led còn lại
Trang 18thể xuất trực tiếp ra mã thanh để hiển thị
Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Cathode chung
Số hiển thị trên led 7 đoạn
Mã hiển thị led 7 đoạn dạng nhị phân
Mã hiển thị led 7 đoạn dạng thập lục phân
Trang 19ChõnMụ tả
Da ta carrier detect (DCD)Received data (RxD)Transmitted data (TxD)Data terminal ready (DTR)Signal ground (GND)Data set ready (DSR)Request to send (RTS)Clear to send (CTS)Ring indicator (RL)
Tránh tín hiệu mạng dữ liệuDữ liệu đợc nhận
Dữ liệu đợc gửiĐầu dữ liệu sẵn sàngĐất của tín hiệuDữ liệu sẵn sàngYêu cầu gửiXoá để gửiBáo chuông
h) MAX232:
Vì RS232 không tơng thích với các bộ vi xử lý và vi điều khiển hiện nay nên ta cần một bộ điều khiển đờng truyền (bộ chuyển đổi điện áp) để chuyển đổi các tín hiệu RS232 về các mức điện áp TTL sẽ đợc chấp nhận bởi các chân TxD và RxD của 8051 Một ví dụ của một bộ chuyển đổi nh vậy là chíp MAX232 từ hàng Maxim Bộ MAX232 chuyển đổi từ các mức điện áp RS232 sẽ về mức điện áp TTL và ngợc lại Một điểm mạnh của chíp MAX232 là nó dùng điện áp nguồng +5v cùng với điện áp nguồn của 8051
Max232 cú hai bộ đk đường truyền :Về phớa 8051:
Trang 20Bộ MAX232 đòi hỏi 4 tụ điện giá trị từ 1 đến 22àF giá trị phổ biến nhất cho các tụ này là 22àF.
Trang 21i.4N35: (chưa hiểu đầy đủ )
2 Cảm biến:
2.1Cảm biến nhiệt độ:2.1.1 Cặp nhiệt điện:
Phạm vi đoDải đo
Độ phân giảiSai số
Độ chính xácĐộ tin cậyĐộ tuyến tínhThời gian đáp ứng Thời gian hồi đáp
Ảnh hưởng của môi trườngDải chết
Độ trễ
Trang 22
R2= R3 >>R4= Rbo.
2.1.2Nhiệt kế điện trở : pt1002.1.2.1Các thông số
Độ phân giảiSai số
Độ chính xácĐộ tin cậyĐộ tuyến tínhThời gian đáp ứng Thời gian hồi đápẢnh hưởng của môi trường
Dải chếtĐộ trễ
Trang 232.1.2.2 Sơ đồ nguyên lý đo:
Vậy ta có : ∆R=∆U/I
Tra theo bảng của nhiệt điện trở ta suy ra được giá trị của nhiệt độ:
2.1.2.3 Tính toán đo nhiệt độ dùng ADC và vi điều khiển :
• Do ADC của ta là ADC 8 bit nó chỉ có khả năng biểu diễn được 256 giá
>>
Trang 24Ta xét độ thay đổi điện trở :∆Rt = R0 * (A* t + B*t2)
Thay vào biểu thức ta tính được điện trở của Pt100 tại các nhiệt độ cần đo
Do sai số lượng tử nên có 1 số giá trị mà ADC của ta không phân biệt được: là các giá trị ở ô tô màu, tại những điểm này thì độ phân giải của thiết bị đo chỉ là 10 C chứ không phải là 0.5 như ở các điểm khác
STT Nhiệt độ Điện trở Điện trở x5 Giá trị lượng tử hóa
Trang 30231 120 46.068 230.34 230232 120.5 46.25647056 231.2823528 231
Trang 31Để có mạch khuyếch đại có hệ số khuyếch đại này ta dùng mạch khuyếch đại đo lường :
Các điện trở trong mạch là điện trở 27 KBiến trở là các biến trở 10 k
Độ khuyếch đại của mạch được tính theo công thức:
2*271
Trang 32Giá trị nguyênPTP : Phần thập phân
PTP=1 thì giá trị đo =giá trị của phần nguyên + 0.5PTP=0 thì giá trị đo chính là phần nguyên
Vì phần nguyên chỉ biểu diễn được giá trị từ 0÷127 nên phần 1 bảng này ta chỉ có thể biểu diễn được giá trị đo từ 0÷127.5 0 C tức là ứng với giá trị của lượng tử trong thanh chứa A từ 0 ÷244 nên ta phải dùng thêm 1 bảng nữa để tra nốt phần nhiệt độ còn lại từ 245 ÷255 (PT100_TABLE2) ở bảng này ta chỉ biểu diễn các giá trị dư so với 128 tức là số hạng đầu tiên của bảng sẽ là 0 (để có giá trị thực ta phải +128 )
PT100_TABLE1: ;tra gia tri nhiet do tu 0 toi 127DB
000H,080H,001H,081H,002H,082H,003H,083H,004H,084H,005H,085H,006H,086H,007H,087H,008H,088H,009H,089H,00AH,00BH,08BH,00CH,08CH,00DH,08DH,00EH,08EH,00FH,08FH,010H,090H,011H,091H,012H,092H,013H,093H,014H,094H,015H,095H,016H,096H,017H,097H,018H,098H,019H,099H,01AH,09AH,01BH,09BH,09CH,01DH,09DH,01EH,09EH,01FH,09FH,020H,0A0H,021H,0A1H,022H,0A2H,023H,0A3H,024H,0A4H,025H,0A5H,026H,0A6H,027H,0A7H,028H,0A8H,029H,0A9H,02AH,0AAH,0ABH,02CH,0ACH,02DH,0ADH,02EH,0AEH,02FH,0AFH,030H,0B0H,031H,0B1H,032H,0B2H,033H,0B3H,034H,0B4H,035H,0B5H,036H,0B6H,037H,0B7H,0B8H,039H,0B9H,03AH,0BAH,03BH,0BBH,03CH,0BCH,03DH,0BDH,03EH,0BEH,03FH,0BFH,040H,0C0H,041H,0C1H,042H,0C2H,043H,0C3H,044H,045H,0C5H,046H,0C6H,047H,0C7H,048H,0C8H,049H,0C9H,04AH,0CAH,04BH,0CBH,04CH,0CCH,04DH,0CDH,04EH,0CEH,04FH,0CFH,0D0H,051H,0D1H,052H,0D2H,053H,0D3H,054H,0D4H,055H,0D5H,056H,0D6H,057H,0D7H,058H,0D8H,059H,0D9H,05AH,05BH,0DBH,05CH,0DCH,05DH,0DDH,05EH,0DEH,05FH,0DFH,060H,0E0H,061H,0E1H,062H,0E2H,063H,0E3H,064H,065H,0E5H,066H,0E6H,067H,0E7H,068H,0E8H,069H,0E9H,06AH,0EAH,06BH,0EBH,06CH,0ECH,06DH,0EDH,0EEH,06FH,0EFH,070H,0F0H,071H,0F1H,072H,0F2H,073H,0F3H,074H,0F4H,075H,0F5H,076H,0F6H,0F7H,078H,0F8H,079H,0F9H,07AH,0FAH,07BH,0FBH,07CH,0FCH,07DH,0FDH,07EH,0FEH,07FH
Trang 33PT100_TABLE2: ; Tra nhiet do tu 180 toi 133DB
y NO
y NO
thanh ghi offset JC T
MOV R2,#0F4H ; Nap 244 vao R2CLR C
SUB A,R2 ;So sanh A voi 244
MOV ACC.7, CCLR ACC.7
Chua thanh phanThap phan la 5;;de hien thi so sau dau phay
RETTP
Trang 34• Lấy số đó chia cho100 kết quả trong A là hàng trăm tram A ; chuyen A vao thanh ghi tram ( MOV tram,A)
• Còn phần thập phân ta lưu ở lúc xét bit ACC.7
Để hiển thi ra led thì ta dùng cũng dùng phương pháp tra bảng:
Trang 35MOV DPTR,#SEG_TABLE
; chuong trinh do va hien thi nhiet do tu cam bien pt100
; #include <sfr51.inc> ; 8051 ports are defined here
cseg at 0 ; absolute segement starting at (origin) 0 test led -
Trang 36
LCALL WAIT_1 ;DOI EOC LEN 1NOP
;; -XU LY SO
MOV R2,#0F4H ;Nap 244 vao R2
JC TABLE1 ; NEU C SET THI A < 244 MOV DPTR,#PT100_TABLE2
MOV OFFSET,#80H ;Nap 128 vao thanh ghi offset do A>244 TABLE1:
MOV DPTR,#PT100_TABLE1 ; NAP VAO DPTR DIA CHI CUA BANG PT100_1
MOV ACC.7, C ;chuyen bit TP vao C de kiem tra
;;de hien thi so sau dau phay
Trang 37CLR P1.7 ;TAT LED DON VI
CLR P3.0 ;TAT LED HANG TRAMCLR P3.1 ;TAT LED HANG CHUC
MOV P0,ASETB P1.6
LCALL DELAY ;TRECLR P1.6
MOV P0,ASETB P1.7LCALL DELAYCLR P1.7
SETB P3.1MOV P0,ALCALL DELAYCLR P3.1
SETB P3.0MOV P0,A
Trang 38PT100_TABLE1: ;tra gia tri nhiet do tu 0 toi 127DB
PT100_TABLE2: ; Tra nhiet do tu 180 toi 133DB
MOV DPTR,#SEG_TABLE
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDELAY:
mov 70h,#01h
kt3: Mov 71H,#00H ;===>>>> ga'n 71H=#0FFH, 2 chu ki mayKt2: Mov 72H,#00H ;===>>>> ga'n 72H=#0FFH, 2 chu ki mayKt1: Djnz 72H,Kt1 ;===>>>> giam 72H xuong 1, 72H khac 0-> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;giam tiep, 2ckm
Trang 39Djnz 71H,Kt2 ;===>>>> giam 71H xuong 1, khac 0-> ve Kt2 Djnz 70,kt3
JB P1.2,WAIT_0 RET
JNB P1.2,WAIT_1 RET
END
Trang 40đang tan 00C và nước sôi 1000C
a Hiệu chỉnh nguồn điện áp chuẩn :
Bằng cách thay đổi biến trở để đo sao cho điện áp ra đạt được 4VNguồn điện áp chuẩn này được sử dụng cho ADC và mạch
chuyển đổi dòng áp
b Hiệu chỉnh mạch đo điện trở:
Mục đích của việc hiệu chỉnh này là hiệu chỉnh sự sai khác của 2 nguồn dòng cung cấp cho mạch đo bằng cách hiệu chỉnh biến trở VR1 và VR2 nối với chân offset của opam chuyển đổi dòng áp và đo sao cho dòng của nó chảy qua luôn là 4 mA
Trang 41c Hiệu chỉnh mạch khuyếch đại:
Để cảm biến vào nước đang sôi và chỉnh biến trở VR của mạch khuyếch đại sao cho trên màn hình hiển thị hiện 100 0C
Trang 42Phạm vi đoDải đo
Độ phân giảiSai số
Độ chính xácĐộ tin cậyĐộ tuyến tínhThời gian đáp ứng Thời gian hồi đáp
Ảnh hưởng của môi trườngDải chết
Độ trễ
A Cảm biến áp suất:B Cảm biến mức:
Trang 431 Biểu diễn số thực trong 8051:
Ta dùng 2 byte và 2 bit dấu ở vùng định địa chỉ bit có cùng địa chỉ với byte mà nó chỉ thị dấu cấu trúc như sau
Số này sẽ biểu diễn số ±M* 2±e
2. xấp xỉ thuật toán pid số:
Giả sử ta cần xấp xỉ thuật toán điều chỉnh
suy ra :
E
Trang 44ek1 Uk
3. trình tự thực hiện PID trong vi điều khiển
thực hiện phép tính 2*tkết quả lưu ở ô nhớ 2D (bằng cách tăng ô nhớ mũ lên 1)
thực hiện phép ắctính tkết quả lưu ở ô nhớ D
thực hiện phép tính
t kết quả lưu ở ô nhớ A1
thực hiện phép tính
t kết quả lưu ở ô nhớ TT2
thực hiện phép tính ( 1+
lưu ở địa chỉ ô nhớ TT1
Trang 45lấy TT1 cộng với TT2 kết quả lưu ở T1
lấy T1 cộng với TT3 kết quả lưu ở Tc
lấy TT cộng với Uk-1 kết quả lưu ở Uklấy Tc nhân với K
kết quả lưu ở TT
Trang 46Thiết lập chế độ ưu tiên cao cho ngắt truyền nhận (RI/TI)
Cho phép ngắt truyền thông RI/TI
Nhận các giá trị đặt từ máy tính truyền thông xuống (Ti, Td,T, setpoint,k)
Giao tiếp với DAC để lấy giá trị đoLưu giá trị đo vào bộ nhớ
INT0=0
Đưa các giá trị đo các giá trị đk ra
Dùng timer 1 để tạo baud rate, time 0 tạo độ rộng xung đk, timer2tạo chu kỳ trích mẫu
Chuyển tất cả các thông số sang số thựcThực hiện luật toán PID
Trang 472. Tổ chức và phân vùng bộ nhớ của AT89c52/s52
Ta phân chia các toán hạng, các dữ liệu, thông số ở các địa chỉ ô nhớ như sau:Tên Địa chỉ Viết tắt của Chú thích
Trang 48Ở đây tương ứng với địa chỉ các byte là địa chỉ các bít dấu trong vùng định địa chỉ bit
4 Chương trình thiết lập ngắt cho vi điều khiển :5 Chương trình nhận dữ liệu từ máy tính
6 Chương trình truyền dữ liệu lên máy tính7 Chương trình đọc dữ liệu từ ADC
8 Chương trình thiết đặt các chế độ của timer và conter
Trang 499 chương trình con chuyển đổi số thực từ địa chỉ @R0 thành số thực hai byte ở địa chỉ @R1:
Rlc A
MOV @R1,A ; định trịCLRB @R1 ; đây là giả tạo
Trang 50các bước thực hiện phép cộng:
• kiểm tra các phần định trị nếu âm thì chuyển phần định trị về mã bù 2
• tiến hành chuẩn hóa chúng về dạng số thực quy ước
để nhân 2 số thực ta thực hiện các bước sau:
• xác định dấu của tích bằng cách xét 2 bít dấu
• xác định phần định trị bằng cách lấy byte cao trong phép nhân
• lấy tổng phần mũ và cộng với 8.
13.chương trình chia 2 sô thực
• xác định dấu của thương bằng cách xét bit dấu của 2 số
• dịch phải thương 1 bit
• tiến hành chia lần 1 hai phần định trị ta được thương T1 và dư D1 =>kết quả là T1*2e1-e2-1
• Tiến hành chia lần 2 bằng cách dịc số dư đi 1 bit sang bên trái ta được kết quả T2, và dư D2 kết quả lần 2 là T2*2e1-e2-2
• nếu Uk âm thì thanh ghi đk bằng 0
• nếu Uk dương thì ta dịch trái Uk số lần bằng số ở phần mũ -8 bấy nhiêu lần ( nếu âm thì dịch phải)
a chương trình hiển thị lên led 7 thanh:
từ số liệu thu thập từ ADC chuyển đổi chúng thành mã BCD, rồi tra bảng mã led 7 thanh rồi xuất ra led theo địa chỉ ram ngoài