1 LỜI MỞ ĐẦUNgày nay, các vi điều khiển đã thâm nhập vào mọi lĩnh vực của đời sống từ dân sự,quân sự đến an ninh quốc phòng, có mặt trong hầu hết các ứng dụng hàng ngày từ những t
Trang 1Luận văn Thiết Kế Mô Hình Voltmet Điện Tử Hiển Thị Bằng Màn
Hình Máy Tính
Trang 21 LỜI MỞ ĐẦU
Ngày nay, các vi điều khiển đã thâm nhập vào mọi lĩnh vực của đời sống từ dân sự,quân sự đến an ninh quốc phòng, có mặt trong hầu hết các ứng dụng hàng ngày từ những thiết bị nhỏ như điện thoại di động, máy bay, trò chơi điện tử, các thiết bị gia dụng( máy giặt, điều hòa, tủ lạnh…) đến những thiết bị lớn như ô tô, tàu thủy, xe lửa, máy bay, hệ thống mạng điện thoại, các bộ điều khiển tự động trong nhà máy, các bộ điều chỉnh trong nhà máy điện hạt nhân, trong các hệ thống điều khiển ánh sang ngoài đường…
Với sự giảng dạy của thầy Phạm Văn Chiến chúng em đã được tiếp xúc với môn ghép nối máy tính Để đưa kiến thức học được trên lớp vào thực tế, và để hiểu rõ hơn
về kiến thức môn học, nhóm chúng em xin làm đề tài số 26 : “Thiết Kế Mô Hình Voltmet Điện Tử Hiển Thị Bằng Màn Hình Máy Tính” Song đây là lần đầu tiên
nhóm làm đề tài môn Vi Điều Khiển nên nhóm đã gặp không ít những khó khăn trong quá trình làm đề tài Nhưng với những kiến thức dạy trên lớp và kết hợp với thời gian thực hành nhóm đã được thầy Nguyễn Văn Tùng và thầy Phạm Văn Chiến tận tình hướng dẫn, giải đáp những vướng mắc của nhóm nên nhóm đã hoàn thành được đề tài của mình
Chúng em xin chân thành cảm ơn các thầy!
Tuy đã hoàn thành được đề tài nhưng sẽ không tránh khỏi những thiếu sót , vì vậy nhóm xin được sự góp ý của các thầy và các bạn để đề tài của nhóm có thể hoàn thiện hơn Một lần nữa chúng em xin cảm ơn các thầy và các bạn!
Đề Tài Gồm 3 Phần:
Phần 1: Cấu Trúc Vi Điều Khiển 8051.
Phần 2: Thiết Kế Voltmet Điện Tử Dùng AT89S52 Phân 3: Ưu, Nhược Điểm và Hướng Phát Triển.
Nhóm Sinh viên thực hiện: Phùng Xuân Quân.
Lê Văn Quảng.
Lớp: CĐ Điện Tử 3 K10.
Trang 3Phần I: Cấu Trúc Vi Điều Khiển 8051.
1 Giới Thiệu Tổng Quan Về Họ 8051( AT89S52).
Họ vi điều khiển 8051( còn gọi là C51) là một trong những họ vi điều khiển thông dụngnhất Đây là các bộ vi điều khiển 8 bit được sản xuất theo công nghệ CMOS Một số loại điềukhiển thuộc họ 8051 thông dụng nhất: AT89C2051, AT89C4051, AT89C51, AT89S52….Trong đó AT89S52 là một bộ vi điều khiển thông dụng giá rẻ, có nhiều chức năng và đặc biệt
có tích hợp sẵn bộ nạp trên chíp
Bộ vi điều khiển AT89S52 gồm các khối chức năng chính sau đây:
CPU(Central Processing Unit) bao gồm:
-Thanh ghi tích lũy A
-Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia
-Đơn vị logic học( ALU: Arithmetic Logic Unit)
-Thanh ghi từ trạng thái chương trình( PSW: Program Status Word)
-4 băng thanh ghi
-Con trỏ ngăn xếp
Bộ nhớ chương trình( Bộ nhớ ROM) 8Kb Flash.
Bộ nhớ dữ liệu gồm 256 bytes.
Bộ UART( Universal Ansynchronous Receiver and Tranmitter) làm chức năng truyền
nhận nối tiếp, nhờ khối này, AT89S52 có thể giao tiếp với máy tính qua cổng COM
3 bộ Timer/Counter 16 bit thực hiện các chức năng định thời và đếm sự kiện.
WDT( Watch Dog Timer) được dùng để phục hồi lại hoạt động của CPU khi nó bị treo
bởi một nguyên nhân nào đó WDT ở AT89S52 gồm 1 bộ Timer 14 bit, một bộ Timer 7 bit,thanh ghi WDTPRG( WDT Program) điều khiển Timer 7 bit và 1 thanh ghi chức năngWDTRST( WDT Register) Bình thường WDT không hoạt động( bị cấm), để cho phép WDT,các giá trị 1EH và E1H cần phải cần phải được ghi liên tiếp vào thánh ghi WDTRSRT Timer
14 bit của WDT sẽ đếm tăng dần sau mỗi chu kỳ máy, cho đến giá trị 16383 thì xẩy ra tràn,chân RST sẽ được đặt ở mức cao trong thời gian 96Tosc và AT89S52 sẽ được reset KhiWDT hoạt động, ngoại trừ reset phần cứng và do reset WDT tràn thì không có cách nào cấmđược WDT, vì vậy khi sử dụng WDT thì các đoạn mã chương trình phải được đặt trong cáckhe thời gian từ giữa các lần WDT được khởi tạo lại
2 Sơ Đồ Chân Và Chức Năng.
Trang 5- Port 3 (P3.0 – P3.7).
Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năng riêng cụ thểnhư sau:
- Chân /PSEN (program Store Enable ).
/PSEN là chân điều khiển đọc chương trình ở bộ nhớ ngoài, nó được nối với chân /OE
để cho phép đọc các byte mã lệnh trên ROM ngoài
/PSEN sẽ ở mức thấp trong thời gian đọc mã lệnh Mã lệnh được đọc từ bộ nhớ ngoài
qua bus dữ liệu (Port 0) thanh ghi lệnh để được giải mã
Khi thực hiện chương trình trong ROM nội thì /PSEN ở mức cao.
- Chân ALE (Address Latch Enable ).
ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao động cung cấpcho vi điều khiển Tín hiệu ALE được dùng để cho phép vi mạch chốt bên ngoài như 74373,
74375 chốt byte địa chỉ thấp ra khỏi bus đa hợp địa chỉ/dữ liệu (P0)
- Chân /EA (External Access ).
Tín hiệu /EA cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay ngoài của viđiều khiển Nếu /EA ở mức cao (nối với Vcc), thì vi điều khiển thi hành chương trình trongROM nội Nếu /EA ở mức thấp (nối GND) thì vi điều khiển thi hành chương trình từ bộ nhớngoài
Trang 6- RST (Reset).
Ngõ vào RST trên chân 9 là ngõ reset của chíp Khi tín hiệu này được đưa lên mức cao(trong ít nhất 2 chu kỳ máy), các thanh ghi trong bộ vi điều khiển được tải những giá trị thíchhợp để khởi động hệ thống
ở thang đo nào để thực hiện nhân với hệ số biến đổi ADC tương ứng ở thang đó VĐK đọc dữliệu từ ADC 0804 xử lý và gửi kết quả lên máy tính
Trang 7Mạch In
1.1.Khối Nguồn.
Có chức năng ổn định điện áp ra ở mức 5VDC ổn định để nuôi mạch
Gồm các linh kiện:
+Tụ Điện để lọc nhiễu tần số thấp và cao bám vào đường nguồn
+Điện Trở và Led để báo có nguồn
+IC7805 để ổn định điện áp ra ở 5VDC
+Diode để bảo vệ mạch khi cắm nhầm chiều điện áp vào
Trang 81.2.Khối Ghép Nối Với Máy Tính.
Gồm cổng Nối Tiếp(com) và Max232 giúp Máy Tính và VĐK giao tiếp được với nhau
+ Phương thức lai :
Đây là phương thức kết hợp của hai phương thức trên, trong đó các bit trong một khungđược truyền theo phương thức không đồng bộ còn các byte được truyền theo phương thứcđồng bộ
Cấu tạo và các thanh ghi :
Cổng nối tiếp RS232 là một loại giao tiếp phổ biến rộng rãi nhất, ta còn gọi là cổng COM1, COM2 để phục vụ cho các ứng dụng khác nhau
Giống như cổng máy in, cổng nối tiếp RS232 cũng được sử dụng rất thuận tiện trong việc ghép nối máy tính với các thiết bị ngoại vi Việc truyền dữ liệu qua cổng RS232 được tiến hành theo cách nối tiếp, nghĩa là các bit dữ liệu được gửi đi nối tiếp với nhau trên một đường dẫn
Trang 9Trước hết loại đường truyền này có khả năng dùng cho những khoảng cách lớn hơn, bởi vìkhả năng gây nhiễu nhỏ đáng kể hơn khi dùng cổng song song Việc dùng cổng song song có một nhược điểm là cáp tuyền nhiều sợi, vì vậy rất đắt tiền, hơn nữa mức tín hiệu nằm trong khoảng 0- 5v đã tỏ ra không thích ứng với khoảng cách lớn.
+Cấu trúc của cổng nối tiếp :
Ý nghĩa các chân tín hiệu như sau :
CHÂN
(loại 9 chân ) (loại 25 chân) CHÂN KÝ HIỆU Ý NGHĨA
Mức tín hiệu trên các chân của cổng nối tiếp thường nằm trong khoảng từ -12V đến +12Vcác bit dữ liệu được đảo ngược lại Mức điện áp ở mức logic 1 nằm trong khoảng từ -3V đến -12V, mức logic 0 nằm trong khoảng từ +3V đến +12V Trạng thái tĩnh trên đường dẫn cómức điện áp -12V
Bằng tốc độ baud ta thiết lập tốc độ truyền dữ liệu các giá trị thông thường là 300, 600,
1200, 2400, 4800, 9600, 19200 baud Ký hiệu baud là số lượng bit truyền trong 1s
Còn một vấn đề nữa là khuôn mẫu (Format) truyền dữ liệu cần phải được thiết lập như nhaucả bên gửi cũng như bên nhận, các thông số truyền có thể được thiết lập trên máy tính PCbằng các câu lệnh trên DOS Ngày nay Windows cũng có các chương trình hỗ trợ các thông
số truyền dữ liệu như : tốc độ baud, số bit dữ liệu, số bit dừng, bit chẵn lẻ (parity) có thể đượcthiết lập một cách rất đơn giản
Sự trao đổi của các đường dẫn tín hiệu: Cũng như ở cổng máy in, các đường dẫn tín hiệuriêng biệt cũng cho phép trao đổi qua lại các địa chỉ trong máy tính PC Trong trường hợp này
Trang 10người ta thường sử dụng những vi mạch có độ tích hợp cao để có thể hợp nhất nhiều chứcnăng trên một chip.
Ở Máy Tính PC thường có một bộ phận Truyền/Nhận không đồng bộ vạn năng gọi tắt làUART( Universal Asynchronnous Receiver/Transmitter) để điều khiển sự trao đổi thông tingiữa máy tính và các thiết bị ngoại vi Phổ biến nhất là vi mạch 8250 của hãng NSC hoặc cácthiết bị như 16C550 Bộ UART 8250 có 9 thanh ghi để điều khiển tất cả chức năng của việcnhập vào, xuất ra dữ liệu theo cách nối tiếp
+Các thanh ghi:
-Thanh ghi điều khiển modem( địa chỉ cơ sở + 4):
D7 D6 D5 D4 D3 D2 D1 D0
D0=D1=1 thì 2 chân RST và DTR sẽ có mức điện áp tương ứng mức 1 (-12V)
D4=1 thì Cổng Nối Tiếp hoạt động ở chế độ vòng( dùng để kiểm tra đường truyền nhận củaCổng Nối Tiếp trên cùng 1 Máy Tính)
x : là các bít không sử dụng.
-Thanh ghi trạng thái modem( địa chỉ cơ sở + 6):
D7 D6 D5 D4 D3 D2 D1 D0
Thanh ghi này có chức năng thông báo về trạng thái các đường dẫn bắt tay Điều chú ý ởthanh ghi này là có 3 bit D4, D5, D6, đây chính là lối vào của các đường dẫn CTS, DSR và RI
-Thanh ghi điều khiển đường truyền( địa chỉ cơ sở + 3):
Lưu trữ các tham số được người lập trình thiết lập và xác định khuôn mẫu khung truyền của cuộc trao đổi tin.
C1, C2: Đặt số bit trong mỗi từ: 00 – 5 bit, 01 – 6 bit
10 – 7 bit, 11 – 8 bit C2: các bit dừng 0 – 1 bit dừng
1 – 1.5 bit dừng C3: Bit parity 0 - không kiểm tra chẵn lẻ
1 - Có kiểm tra chẵn lẻ C4: Loại parity 0 - Parity lẻ
1 - parity chẵn C5:Stick bit 0 - không có stick bit
1- Stick bit C6: Đặt break 0 - Normal out put
1- Dừng không truyền.
DLAB: Bít phân chia truy nhập cho các thanh ghi có cùng địa chỉ.
Trang 11- Thanh ghi trạng thái đường truyền( Địa chỉ cơ sở + 5):
S0=1 khi có 1 byte mới nhận được.
S1=1 khi ký tự trước chưa đọc được, ký tự mới đến sẽ xóa ký tự cũ trong
bộ đệm
S2=1 khi có lỗi chẵn lẻ.
S3=1 khi có lỗi khung truyền
S4=1 khi có lỗi gián đoạn đường truyền
S5=1 khi bộ đệm truyền trống rỗng, báo được phép truyền.
S6=1 khi bộ đệm truyền rỗng.
-Thanh ghi phép ngắt( địa chỉ cơ sở + 1):
D0: Đặt ngắt khi nhận được 1 ký tự.
D1: Đặt ngắt khi bộ đệm truyền rỗng.
D2: Đặt ngắt khi thay đổi trạng thái đường truyền
D3: Đặt ngắt khi thay đổi trạng thái Modem.
-Thanh ghi nhận dạng ngắt( địa chỉ cơ sở + 2):
D2 D1 D0 Mức ưu tiên Nguồn gây ngắt Đặt lại ngắt
dữ liệu Đọc thanh ghi trạng thái đường
truyền
đệm
truyền rỗng Đọc thanh ghi IER
trạng thái Modem
-Thanh ghi chứa số chỉ tốc độ baud( byte thấp - Địa chỉ cơ sở ).
Trang 12Thanh ghi này gồm 8 bit , chứa phần thấp của số chia tốc độ baud, số chia tốc độ baud đượctính theo cụng thức sau:
Số chia tốc độ baud = 1843200/(16* tốc độ baud cần thiết lập)
-Thanh ghi chứa số chỉ tốc độ baud( byte cao- Địa chỉ cơ sở + 1).
-Thanh ghi đệm đọc / viết( địa chỉ cơ sở).
MAX232 là vi mạch của hóng MAXIM chứa 02 bộ chuyển đổi mức từ TTL sang RS232 và
02 bộ làm chức năng ngược lại
a) Sơ đồ bờn trong Max232 b) Sơ đồ ghộp nối của Max232 với 8051
Max232 có hai bộ điều khiển đờng truyền là nhận và truyền dữ liệu
nh giới thiệu ở hình trên Các bộ điều khiển đờng truyền dùng cho TxD
đợc gọi là T1 và T2 Trong nhiều ứng dụng thì chỉ có một cặp đợc dùng
Ví dụ T1 và R1 đợc dùng với nhau cho trờng hợp TxD và RxD của 8051, còncặp R2 và T2 thì không dùng đến Để ý rằng, bộ điều khiển T1 củaMax232 có gán T1in và T1out trên các chân số 11 và 14 tơng ứng ChânT1in là ở phía TTL và đợc nối tới chân RxD của bộ vi điều khiển, còn T1out
là ở phía RS232 đợc nối tới chân RxD của đầu nối DB của RS232 Bộ
điều khiển đờng R1 cũng có gán R1in và R1out trên các chân số 13 và 12tơng ứng Chân R1in (chân số 13) là ở phía RS232 đợc nối tới chân TxD
đầu nối DB của RS232 và chân R1out (chân số 12) là ở phía TTL và đợcnối tới chân RxD của bộ vi điều khiển Để ý rằng nối ghép modem rỗng lànối ghép mà chân TxD bên phát đợc nối với RxD của bên thu và ngợc lại.MAX232 cần có 4 tụ điện giá trị từ 1 đến 22F giá trị thờng dùng là 10F
b.
a.
P3.1 TxD P3.0 RxD
Max2 32
805 1
Vc
c
2 6
7 8 9
1 1 1 0
1 4 1 3
T1 OU T
T1 II
N
R1 II N
R2 II N
Rs232 side
1
2
2
C 3 + C 4
2 5
1 1 1 2
Trang 131.3.Khối Vi Điều Khiển
Có chức năng đọc dữ liệu từ ADC 0804 để xử lý và gửi kết quả lên Máy Tính.
1.4.Khối Chuyển Mạch Thang Đo và ADC.
Các bộ chuyển đổi ADC thuộc những thiết bị được sử dụng rộng rãi nhất để thu dữ liệu.Các máy tính số sử dụng các giá trị nhị phân, nhưng trong thế giới vật lý thì mọi đại
Trang 14lượng ở dạng tương tự(liên tục) Nhiệt độ, áp suất (khí hoặc chất lỏng), độ ẩm và vận tốc và một số ít những đại lượng vật lýcủa thế giới thực mà ta gặp hằng ngày.
Một đại lượng vật lý được chuyển về dòng điện hoặc điện áp qua một thiết bị được gọi là các bộ biến đổi Các bộ biến đổi cũng có thể coi như các bộ cảm biến Mặc dù chỉ có các bộ cảm biến nhiệt, tốc độ, áp suất, ánh sáng và nhiều đại lượng tự nhiên khác nhưng chúng đều cho ra các tín hiệu dạng dòng điện hoặc điên áp ở dạng liên tục Do vậy, ta cần một bộ chuyểnđổi tương tự số sao cho bộ vi điều khiển có thể đọc được chúng Một chip ADC được sử dụngrộng rãi là ADC0804
số nhị phân Đối với ADC0804 thì thời gian chuyển đổi phụ thuộc vào tần số đồng hồ được cấp tới chân CLK và CLK IN và không bé hơn 110µs Các chân khác của ADC0804 cóchức năng như sau:
+ CS (Chip select): Chân số 1, là chân chọn Chip, đầu vào tích cực mức thấp
được sử dụng để kích hoạt Chip ADC0804 Để truy cập ADC0804 th ì chân này phải ở mứcthấp
+ RD (Read): Chân số 2, là một tín hiệu vào, tích cực ở mức thấp Các bộ
chuyển đổi đầu vào tương tự thành số nhị phân và giữ nó ở một thanh ghi trong RD được
sử dụng để có dữ liệu đã được chyển đổi tới đầu ra của ADC0804
Khi CS = 0, nếu có một xung cao xuống thấp áp đến chân RD thì dữ liệu ra dạng số 8 bitđược đưa tới các chân dữ liệu (DB0 – DB7)
+ WR (Write): Chân số 3, đây là chân vào tích c ực mức thấp được dùng để báo cho
ADC biết bắt đầu quá trình chuyển đổi Nếu CS = 0 khi WR tạo ra xung cao xuống thấp thì
bộ ADC0804 bắt đầu quá trình chuyển đổi giá trị đầu vào tương tự Vin về số nhị phân 8bit Khi việc chuyển đổi hoàn tất thì chân INTR được ADC hạ xuống thấp
+ CLK IN và CLK R: CLK IN (chân số 4), là chân vào nối tới đồng hồ ngo ài
được sử dụng để tạo thời gia n Tuy nhiên ADC0804 c ũng có một bộ tạo xung đồng hồriêng Để dùng đồng hồ riêng thì các chân CLK IN và CLK R (chân s ố 19) được nối vớimột tụ điện v à một điện trở (như hình vẽ) Khi đó tần số được xác định bằng biểu thức:
F = 1/ 1.1RC Với R = 10 kΩ, C = 150 pF và tần số f = 606 kHz và thời gian chuyển đổi l à 110
µs
+ Ngắt INTR (Interupt): Chân số 5, là chân ra tích c ực mức thấp Bình thường
chân này ở trạng thái cao v à khi việc chuyển đổi ho àn tất thì nó xuống thấp để báo choCPU biết l à dữ liệu chuyển đổi sẵn sàng để lấy đi Sau khi INTR xuống thấp, cần đặt CS
= 0 và gửi một xung cao xuống thấp tới chân RD để đ ưa dữ liệu ra
+ Vin (+) và Vin (-): Chân số 6 và chân số 7, đây là 2 đầu vào tương tự vi sai,
trong đó V in = Vin(+) – Vin(-) Thông thường Vin(-) được nối tới đất và Vin(+) được dùnglàm đầu vào tương tự và sẽ được chuyển đổi về dạng số