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 2Chương 1: Mô hình phần cứng
Trong quá trình làm em mới chỉ làm được các module:
1 main board ( mạch chính)
2 Display module ( khối hiển thị)
3 Power supply (nguồn)
4 Analog module ( module vào tương tự)
Hiển thị
7 thanh
Actor
Modul 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ý
Actor
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:
lượ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 đổi
EOC: Tín hiệu báo chuyển đổi xong
Output enable: điều khiển xuất tín hiệu ra
Clock: đầ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=LBS
G1,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 0C
CP1,CP2: đầu vào xung clock MR: Cho phép đếm
E: Enable (latch) D0÷D7 : dữ liệu vào Q0÷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:
3
5 2
300 1000 (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
Trang 19Trá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
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 :
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 đủ )
Thời gian hồi đáp
Ảnh hưởng của môi trường
Dải chết
Độ trễ
Trang 22
R2= R3 >>R4= Rbo.
2.1.2Nhiệt kế điện trở : pt100 2.1.2.1Các thông số
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:
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 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 K
Biế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*27 1
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.5
PTP=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 127
DB
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 133
DB
000H,080H,001H,081H,002H,082H,003H,083H,004H,084H,005H,085H
y NO
y NO
MOV OFFSET,#80H ;Nap 128 vao
thanh ghi offset
JC T
AB LE 1
MOV R2,#0F4H ; Nap 244 vao R2
CLR CSUB A,R2 ;So sanh A voi 244
MOV ACC.7, CCLR ACC.7
TP:
Chua thanh phan Thap phan la 5
;;de hien thi so sau dau phay RET
TP
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)
• Chuyển B vào A rồi chia A cho 10 thì kết quả trong A là hàng chục
chuc A ; chuyen A vao thanh ghi tram ( MOV chuc,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 35-#include <sfr51.inc> ; 8051 ports are defined here
cseg at 0 ; absolute segement starting at (origin) 0 test led -
Trang 36LCALL WAIT_1 ;DOI EOC LEN 1
NOP
;; -XU LY SO
MOV R2,#0F4H ;Nap 244 vao R2
JC TABLE1 ; NEU C SET THI A < 244
MOV ACC.7, C ;chuyen bit TP vao C de kiem tra
TPADD
TPADD:
;;de hien thi so sau dau phay
Trang 37; -hang thap phan da chua trong phan xet ACC.7
; -HIEN THI LEN LED 7
CLR P1.6 ;TAT LED THAP PHAN
CLR P1.7 ;TAT LED DON VI
CLR P3.0 ;TAT LED HANG TRAM
CLR P3.1 ;TAT LED HANG CHUC
Trang 38PT100_TABLE1: ;tra gia tri nhiet do tu 0 toi 127
DB
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
PT100_TABLE2: ; Tra nhiet do tu 180 toi 133
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;giam tiep, 2ckm
Trang 39Djnz 71H,Kt2 ;===>>>> giam 71H xuong 1, khac 0-> ve Kt2 Djnz 70,kt3
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 4V Nguồ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 42Thời gian hồi đáp
Ảnh hưởng của môi trường
Trang 431 1
1 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
Trang 44thực hiện phép tính 2* t kế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 t kế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 46Giao tiếp với DAC để lấy giá trị đo
Lư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, timer2 tạo chu kỳ trích mẫu
Chuyển tất cả các thông số sang số thực
Thực hiện luật toán PID
Start
Truyền thông với máy tính các kết quả và giá trị cần
thể hiện trên máy tính
Cho phép ngắt cảnh báo INT1( hoặc dừng khẩn cấp)
Che hết các ngắt lại để tính toán
Cất dữ liệu cho việc tính toán trong chu kỳ tiếp theo và
xóa bỏ dữ liệu cũ
Chờ ngắt trích mẫu TF
TF=1
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ính
7 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:
Mov A,@R 0
; zeroMov @R0,#00hClrb @R 1 ; đây là giả tạoDec R1
Mov @R1,00h
Clrb @R1 ; đây là giả tạo
Clr cMov R2,08h
Jz
zezo
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