Tải bản đầy đủ (.pdf) (81 trang)

Thiết kế và thi công hệ thống báo giá trên nhiều LCD điều khiển bằng máy tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.7 MB, 81 trang )


TRƯỜNG ĐẠI HỌC MỞ THÀNH PHỐ HỒ CHÍ MINH
KHOA XÂY DỰNG VÀ ĐIỆN


ĐỒ ÁN TỐT NGHIỆP
KỸ SƯ NGÀNH CÔNG NGHIỆP



THIẾT KẾ VÀ THI CÔNG
HỆ THỐNG BÁO GIÁ TRÊN NHIỀU LCD
ĐIỀU KHIỂN BẰNG MÁY TÍNH








SVTH : NGUYỄN NGỌC ÁNH
MSSV : 20762042
GVHD : Ths. TỐNG THANH NHÂN





TP. Hồ Chí Minh, tháng 2 năm 2012
Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân



SVTH : Nguyễn Ngọc Ánh MSSV : 20762042
LỜI MỞ ĐẦU

Kỹ thuật vi điều khiển với tốc độ phát triển nhanh đã và đang mang đến những thay
đổi to lớn trong khoa học công nghệ cũng như trong đời sống hàng ngày của chúng ta. Ngày
nay, các thiết bị máy móc ngày càng trở nên thông minh hơn, các công việc được thực hiện
với hiệu quà cao hơn, đó cũng là nhờ vi xủ lý, vi điều khiển.
Trong nhịp sống hiện đại hôm nay, quỹ thời gian dành cho gia đình của mọi người
chúng ta gần như bị co hẹp lại. Việc mua sắm đồ dùng ngày nay trong các siệu thị, hệ thống
cửa hàng… đang được mọi người lựa chọn để rút ngắn thời gian và tăng tính tiện lợi. Ở đó,
các sản phẩm hàng hóa đều đươc niêm yết sẵn giá cả, người tiêu dùng có thể thoải mái lựa
chọn theo sở thích và túi tiền của mình.
Đối với 1 sinh viên chuyên ngành Điện Điện Tử, vận dụng các kiến thức đã được học
khi ngồi trên ghế giảng đường đại học, qua đó góp phần củng cố những kiến thức đó em đã
thực hiện đề tài: “Thiết kế và thi công hệ thống báo giá trên nhiều LCD điều khiển bằng
máy tính”.
Mặc dù em đã cố gắng rất nhiều để hoàn thành đồ án này, song do giới hạn về thời
gian cũng như kiến thức nên chắc chắn nội dung còn nhiều thiếu sót. Rất mong sự đóng góp ý
kiến của quý thầy cô và các bạn sinh viên để luận văn này được hoàn thiện hơn. Xin chân
thành cảm ơn.

Sinh viên thực hiện
Nguyễn Ngọc Ánh


Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042


LỜI CẢM ƠN

Trước hết con xin cảm ơn ba mẹ, gia đình đã là nguồn động viên rất lớn và là chỗ dựa
vững chắc nhất của con trong suốt quá trình học tập trên ghế giảng đường đại học.
Em cũng xin kính gửi đến thầy Ths Tống Thanh Nhân lời cảm ơn chân thành và sâu
sắc nhất, cảm ơn thầy đã tận tình hướng dẫn, chỉ dạy em trong suốt quá trình thực hiện đồ án
t
ốt nghiệp này.
Em cũng xin cảm ơn tất cả các thầy cô của trường Đại Học Mở Tp.HCM nói chung,
quý thầy cô của khoa Xây Dựng & Điện nói riêng đã tận tình giảng dạy, trang bị cho em
những kiến thức bổ ích trong thời gian học đại học.
Tôi cũng xin cảm ơn tất cả bạn bè đã động viên, góp ý, giúp đỡ tôi rất nhiều trong quá
trình học tập và thực hiện đồ án tốt nghiệp này.
Tôi xin cám ơn tất cả.

Thành phố Hồ Chí Minh, tháng 02 năm 2012




Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042
MỤC LỤC
Lời mở đầu
Lời cảm ơn
Mục lục


Chương 1: TỒNG QUAN ĐỀ TÀI
1.1. Giới thiệu đề tài.
1.2. Ứng dụng đề tài.
1.3. Yêu cầu đề tài.

Chương 2: GIỚI THIỆU MỘT SỐ LINH KIỆN SỬ DỤNG TRONG MẠCH 2
2.1. Vi điều khiển PIC16F877A 2
2.1.1. Các dạng sơ đồ chân 2
2.1.2. Sơ đồ khối. 3
2.1.3. Chức năng các chân 4
2.1.4. Đặc điểm vi điều khiển 6
2.1.5. Tổ chức bộ nh
ớ 7
2.1.6. Cổng xuất nhập I/O. 11
2.1.7. Ngắt (INTERRUPT). 12
2.2. Màn hình LCD1602 13
2.3. Tìm hiểu về chuẩn RS232 và IC MAX232. 14
2.3.1. Tìm hiểu về chuẩn RS232 trên các cổng kết nối (cổng com) của máy vi tính 14
2.3.2 Tìm hiểu về ic max 232 . 17
2.4. IC ghi dịch 74HC595 18

Chương 3: THIẾT KẾ MẠCH ĐIỆN22
3.1. Trình bày sơ đồ khối 22
3.2. Phân tích sơ đồ khối 22
3.2.1. Khối nguồn 22
3.2.2. Khối giao tiếp 22
3.2.3. Khối đ
iều khiển 22
3.2.4. Khối hiển thị 22
3.3. Sơ đồ nguyên lý 22

3.4. Giới thiệu phần mềm mô phỏng 23
3.4.1. Giới thiệu phần mềm PROTEUS. 23
3.4.2. Các ưu điểm 23
Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042
3.4.3. Nhược điểm 23
3.4.4. Quá trình mô phỏng trên Proteus. 24
3.5. Tính toán các thông số linh kiện cho từng mạch 27
3.5.1. Các linh kiện trong khối nguồn 27
3.5.2. Các linh kiện trong khối điều khiển. 29
3.5.3. Các linh kiện trong khối hiển thị 30
3.5.4. Khối giao tiếp RS232 31
3.6. Thi công mạch. 31

Chương 4: LƯU ĐỒ GIẢI THUẬT VÀ CHƯƠNG TRÌNH.33
4.1. Lưu đồ giải thuật 33
4.2. Chương trình cho PIC16F877A 36

Chương 5: THIẾT KẾ GIAO DIỆN VÀ LẬP TRÌNH PHẦN M
ỀM TRÊN MÁY TÍNH 49
5.1. Thiết kế giao diện. 49
5.2. Chương trình điều khiển trên máy tính. 56

Chương 6: KẾT LUẬN 59
Phụ lục 1: Bảng mã ASCII
Phụ lục 2: RS232.
Phụ lục 3: Datasheet 74HC595
Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân



SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 1
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
1.1. Giới thiệu đề tài
Kỹ thuật vi điều khiển với tốc độ phát triển nhanh đã và đang mang đến những thay
đổi to lớn trong khoa học công nghệ cũng như trong đời sống hàng ngày của chúng ta.
Ngày nay, các thiết bị máy móc ngày càng trở nên thông minh hơn, các công việc được
thực hiện với hiệu quả cao hơn, đó cũng là nhờ vi xử lý, vi điều khiển.
Trong nhịp sống hiện
đại hôm nay, quỹ thời gian dành cho gia đình của mọi người
chúng ta gần như bị co hẹp lại. Việc mua sắm đồ dùng ngày nay trong các siệu thị, hệ
thống cửa hàng… đang được mọi người lựa chọn để rút ngắn thời gian và tăng tính tiện lợi.
Ở đó, các sản phẩm hàng hóa đều được niêm yết sẵn giá cả, người tiêu dùng có thể thoải
mái lựa chọn theo sở thích và túi tiền của mình.
Đối với 1 sinh viên chuyên ngành Điện Điện Tử, vận dụng các kiến thức đã được
học khi ngồi trên ghế giảng đường đại học, qua đó góp phần củng cố những kiến thức đó
em đã thực hiện đề tài: “Thiết kế và thi công hệ thống báo giá trên LCD điều khiển
bằng máy tính”.
Với hệ thống này, mỗi loại sản phẩm sẽ
được hiển thị tên và giá của sản phẩm đó
trên 1 màn hình LCD nhỏ, và các nội dung đó sẽ được điều khiển trên một máy tính. Người
tiêu dùng sẽ biết được loại sản phẩm đó là gì và được bán với giá bao nhiêu từ đó sẽ đưa ra
quyết định có nên mua nó hay không. Còn đối với người bán hàng, họ chỉ cần ngồi trên
một máy tính cá nhân mà vẫn có thể thông báo tới khách hàng những thông tin về các loại
sản phẩm c
ủa mình.
1.2. Ứng dụng đề tài.
Đề tài “Thiết kế và thi công hệ thống báo giá trên nhiều LCD điều khiển bằng
máy tính” này sẽ được sử dụng ở rất nhiều nơi như: hệ thống các siêu thị, các showroom,

các cửa hàng điện thoại, mĩ phẩm, bánh kẹo….
1.3. Yêu cầu đề tài.
+ Thiết kế và thi công một module Master gồm mạch điều khiển và giao tiếp vớ
i
máy tính qua cổng COM.
+ Thiết kế và thi công 5 module Slave hiển thị các thông tin về sản phẩm.
+ Lập trình cho vi điều khiển nhận dữ liệu truyền từ máy tính và xuất nội dung
hiển thị lên các LCD.
+ Thiết kế giao diện và lập trình phần mềm trên máy tính.

Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 2
CHƯƠNG 2: GIỚI THIỆU MỘT SỐ LINH KIỆN SỬ DỤNG
TRONG MẠCH
2.1. Vi điều khiển PIC16F877A.
2.1.1. Các dạng sơ đồ chân


Hình 2.1 Vi điều khiển PIC16F877A/PIC16F874A và các dạng sơ đồ chân



Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 3

2.1.2. Sơ đồ khối vi điều khiển PIC16F877A


Hình 2.2 Sô ñoà khoái vi ñieàu khieån PIC16F877A.
Hình 2.2 là sơ đồ khối của PIC 16F877A, gồm các khối:
- Khối ALU – Arithmetic Logic Unit.
Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 4
- Khối bộ nhớ chứa chương trình – Flash Program Memory.
- Khối bộ nhớ chứa dữ liệu EPROM – Data EPROM.
- Khối bộ nhớ file thanh ghi RAM – RAM file Register.
- Khối giải mã lệnh và điều khiển – Instruction Decode Control.
- Khối thanh ghi đặc biệt.
- Khối ngoại vi timer.
- Khối giao tiếp nối tiếp.
- Khối chuyển đổi tín hiệu tương tự sang số - ADC.
- Khối các port xu
ất nhập.

2.1.3. Chức năng các chân của PIC16F877A

• Chân OSC1/CLK1(13): ngõ vào kết nối với dao động thạch anh hoặc ngõ vào nhận
xung clock từ bên ngoài.
• Chân OSC2/CLK2(14): ngõ ra dao động thạch anh hoặc ngõ ra cấp xung clock.
• Chân (1) có 2 chức năng
- : ngõ vào reset tích cực ở mức thấp.
Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 5

- Vpp: ngõ vào nhận điện áp lập trình khi lập trình cho PIC.
• Chân RA0/AN0(2), RA1/AN1(3), RA2/AN2(3): có 2 chức năng
- RA0,1,2: xuất/ nhập số.
- AN 0,1,2: ngõ vào tương tự của kênh thứ 0,1,2.
• Chân RA2/AN2/VREF-/CVREF+(4): xuất nhập số/ ngõ vào tương tự của kênh thứ
2/ nhõ vào điện áp chuẩn thấp của bộ AD/ ngõ vào điện áp chẩn cao của bộ AD.
• Chân RA3/AN3/VREF+(5): xuất nhập số/ ngõ vào tương tự kênh 3/ ngõ vào điện
áp chuẩn (cao) của bộ AD.

Chân RA4/TOCK1/C1OUT(6): xuất nhập số/ ngõ vào xung clock bên ngoài cho
Timer 0/ ngõ ra bộ so sánh 1.
• Chân RA5/AN4/ / C2OUT(7): xuất nhập số/ ngõ vào tương tự kênh 4/ ngõ vào
chọn lựa SPI phụ/ ngõ ra bộ so sánh 2.
• Chân RB0/INT (33): xuất nhập số/ ngõ vào tín hiệu ngắt ngoài.
• Chân RB1(34), RB2(35): xuất nhập số.
• Chân RB3/PGM(36): xuất nhập số/ cho phép lập trình điện áp thấp ICSP.
• Chân RB4(37), RB5(38): xuất nhập số.
• Chân RB6/PGC(39): xuất nhấp số/ mạch gỡ rối và xung clock lập trình ICSP.
• Chân RB7/PGD(40): xu
ất nhập số/ mạch gỡ rối và dữ liệu lập trình ICSP.
• Chân RC0/T1OCO/T1CKI(15): xuất nhập số/ ngõ vào bộ giao động Timer1/ ngõ
vào xung clock bên ngoài Timer 1.
• Chân RC1/T1OSI/CCP2(16) : xuất nhập số/ ngõ vào bộ dao động Timer 1/ ngõ vào
Capture2, ngõ ra compare2, ngõ ra PWM2.
• Chân RC2/CCP1(17): xuất nhập số/ ngõ vào Capture1 ,ngõ ra compare1, ngõ ra
PWM1.
• Chân RC3/SCK/SCL(18): xuất nhập số/ ngõ vào xung clock nối tiếp đồng bộ, ngõ
ra chế độ SPI./ ngõ vào xung clock nối tiếp đồng bộ, ngõ ra của chế độ I2C.
• Chân RC4/SDI/SDA(23): xuất nhập số/ d
ữ liệu vào SPI/ xuất nhập dữ liệu I2C.

• Chân RC5/SDO(24): xuất nhập số/ dữ liệu ra SPI.
• Chân RC6/TX/CK(25): xuất nhập số/ truyền bất đồng bộ USART/ xung đồng bộ
USART.
• Chân RC7/RX/DT(26): xuất nhập số/ nhận bất đồng bộ USART.
• Chân RD0-7/PSP0-7(19-30): xuất nhập số/ dữ liệu port song song.
Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 6
• Chân RE0/ /AN5(8): xuất nhập số/ điều khiển port song song/ ngõ vào tương
tự 5.
• Chân RE1/ /AN6(9): xuất nhập số/ điều khiển ghi port song song/ ngõ vào
tương tự kênh thứ 6.
• Chân RE2/ /AN7(10): xuất nhấp số/ Chân chọn lụa điều khiển port song song/
ngõ vào tương tự kênh thứ 7.
• Chân VDD(11, 32) và VSS(12, 31): là các chân nguồn của PIC.

2.1.4. Đặc điểm vi điều khiển PIC16F877A
Đây là vi điều khiển thuộc họ
PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit. Mỗi
lệnh đều được thực thi trong một chu kì xung clock. Tốc độ hoạt động tối đa cho phép là
20 MHz với một chu kì lệnh là 200ns. Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu
368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte. Số PORT I/O là
5 với 33 pin I/O. Có 8 kênh chuyển đổi A/D

¾ Các đặc tính ngoại vi bao gồmcác khối chức năng sau:
- Timer0: bộ
đếm 8 bit với bộ chia tần số 8 bit.
- Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa
vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.

- Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.
- Hai bộ Capture/so sánh/điều chế độ rông xung.
- Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.
-
Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.
- Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD,
WR

¾ Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:
- Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.
- Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.
- Dữ liệu bộ nhớ EEPROM có thể l
ưu trữ trên 40 năm.
- Khả năng tự nạp chương trình với sự điều khiển của phần mềm.
- Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial
Programming) thông qua 2 chân.
Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 7
- Watchdog Timer với bộ dao động trong.
- Chức năng bảo mật mã chương trình.
- Chế độ Sleep.
- Có thể hoạt động với nhiều dạng Oscillator khác nhau.




Bảng 2.3: Tóm tắt đặc điểm của VDK PIC 16F877A
2.1.5 Tổ chức bộ nhớ.

Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình
(Program memory) và bộ nhớ dữ liệ
u (Data Memory).
2.1.5.1 Bộ nhớ chương trình.

Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 8
Bộ nhớ chương trình của vi điều khiển
PIC16F877A là bộ nhớ flash, dung lượng bộ
nhớ 8K word (1 word = 14 bit)
Như vậy bộ nhớ chương trình có khả năng
chứa được 8*1024 = 8192 lệnh (vì một lệnh
sau khi mã hóa sẽ có dung lượng 1 word (14
bit).
Để mã hóa được địa chỉ của 8K word
bộ nhớ chương trình, bộ đếm chương trình có
dung lượng 13 bit (PC<12:0>).
Khi vi điều khiển được reset, bộ đếm
chương trình s
ẽ chỉ đến địa chỉ 0000h (Reset
vector). Khi có ngắt xảy ra, bộ đếm chương
trình sẽ chỉ đến địa chỉ 0004h (Interrupt
vector).
Bộ nhớ chương trình không bao gồm bộ
Hình 2.4 Bộ nhớ chương trình PIC16F877A
nhớ stack và không được địa chỉ hóa bởi
bộ đếm chương trình. Bộ nhớ stack sẽ được đề cập cụ thể trong phần sau.
2.1.5.2 Bộ nhớ dữ liệu

Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank. Đối với
PIC16F877A bộ nhớ dữ liệu được chia ra làm 4 bank. Mỗi bank có dung lượng 128 byte,
bao gồm các thanh ghi có chức năng đặc biệt SFG (Special Function Register) nằm ở các
vùng
địa chỉ thấp và các thanh ghi mục đích chung GPR (General Purpose Register) nằm ở
vùng địa chỉ còn lại trong bank. Các thanh ghi SFR thường xuyên được sử dụng (ví dụ như
thanh ghi STATUS) sẽ được đặt ở tất cà các bank của bộ nhớ dữ liệu giúp thuận tiện trong
quá trình truy xuất và làm giảm bớt lệnh của chương trình.
Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F877A như sau:
Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 9

Hình 2.5 Sơ đồ bộ nhớ dữ liệu PIC16F877A
- Thanh ghi chức năng đặc biệt SFR
Đây là các thanh ghi được sử dụng bởi CPU hoặc được dùng để thiết lập và điều
khiển các khối chức năng được tích hợp bên trong vi điều khiển. Có thể phân thanh ghi
Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 10
SFR làm hai lọai: thanh ghi SFR liên quan đến các chức năng bên trong (CPU) và thanh
ghi SRF dùng để thiết lập và điều khiển các khối chức năng bên ngoài (ví dụ như ADC,
PWM, …). Phần này sẽ đề cập đến các thanh ghi liên quan đến các chức năng bên trong.
Các thanh ghi dùng để thiết lập và điều khiển các khối chức năng sẽ được nhắc đến khi ta
đề cập đến các khối chức năng đó.
Thanh ghi STATUS (03h, 83h, 103h, 183h):thanh ghi chứa kết quả thực hiệ
n phép
toán của khối ALU, trạng thái reset và các bit chọn bank cần truy xuất trong bộ nhớ dữ

liệu.

Thanh ghi OPTION_REG (81h, 181h): thanh ghi này cho phép đọc và ghi, cho
phép điều khiển chức năng pull-up của các chân trong PORTB, xác lập các tham số về
xung tác động, cạnh tác động của ngắt ngoại vi và bộ đếm Timer0.

Thanh ghi INTCON (0Bh, 8Bh,10Bh, 18Bh):thanh ghi cho phép đọc và ghi, chứa
các bit điều khiển và các bit cờ hiệu khi timer0 bị tràn, ngắt ngoại vi RB0/INT và ngắt
interrput- on-change tại các chân của PORTB.

Thanh ghi PIE1 (8Ch): chứa các bit đ
iều khiển chi tiết các ngắt của các khối chức
năng ngoại vi.

Thanh ghi PIR1 (0Ch) chứa cờ ngắt của các khối chức năng ngoại vi, các ngắt này
được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE1.

Thanh ghi PIE2 (8Dh): chứa các bit điều khiển các ngắt của các khối chức năng
Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 11
CCP2, SSP bus, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM.

Thanh ghi PIR2 (0Dh): chứa các cờ ngắt của các khối chức năng ngoại vi, các
ngắt
này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE2.

Thanh ghi PCON (8Eh): chứa các cờ hiệu cho biết trạng thái các chế độ reset của
vi điều khiển.


- Thanh ghi mục đích chung GPR
Các thanh ghi này có thể được truy xuất trực tiếp hoặc gián tiếp thông qua thanh
ghi FSG (File Select Register). Đây là các thanh ghi d
ữ liệu thông thường, người sử dụng
có thể tùy theo mục đích chương trình mà có thể dùng các thanh ghi này để chứa các biến
số, hằng số, kết quả hoặc các tham số phục vụ cho chương trình.
2.1.6. Cổng xuất nhập I/O
Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương tác
với thế giới bên ngoài. Sự tương tác này rất đa dạng và thông qua quá trình tương tác đó,
ch
ức năng của vi điều khiển được thể hiện một cách rõ ràng.
Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theo cách
bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượng chân trong
mỗi cổng có thể khác nhau. Bên cạnh đó, do vi điều khiển được tích hợp sẵn bên trong các
đặc tính giao tiếp ngoại vi nên bên cạnh ch
ức năng là cổng xuất nhập thông thường, một số
chân xuất nhập còn có thêm các chức năng khác để thể hiện sự tác động của các đặc tính
ngoại vi nêu trên đối với thế giới bên ngoài. Chức năng của từng chân xuất nhập trong mỗi
cổng hoàn toàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên
quan đến chân xuất nhập đó.
Vi điều khiển PIC16F877A có 5 cổng xuất nh
ập, bao gồm PORTA, PORTB,
Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 12
PORTC, PORTD và PORTE. Trong đề tài đã dùng PORT B và PORT C để xuất dữ liệu
điều khiển và hiển thị cho khối hiển thị và nhận dữ liệu truyền xuống từ máy tính.
- PORTB (RPB) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là

TRISB. Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp
chương trình cho vi điều khiển với các chế độ nạp khác nhau. PORTB còn liên quan đến
ngắ
t ngoại vi và bộ Timer0. PORTB còn được tích hợp chức năng điện trở kéo lên được
điều khiển bởi chương trình.
Các thanh ghi SFR liên quan đến PORTB bao gồm:
• PORTB (địa chỉ 06h,106h) : chứa giá trị các pin trong PORTB
• TRISB (địa chỉ 86h,186h) : điều khiển xuất nhập
• OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ Timer0.
- PORTE (RPE) gồm 3 chân I/O. Thanh ghi điều khiển xuất nhập tương
ứng là
TRISE. Các chân của PORTE có ngõ vào analog. Bên cạnh đó PORTE còn là các chân
điều khiển của chuẩn giao tiếp PSP.
Các thanh ghi liên quan đến PORTE bao gồm:
- PORTE : chứa giá trị các chân trong PORTE.
- TRISE : điều khiển xuất nhập và xác lập các thông số cho chuẩn giao
tiếp PSP.
- ADCON1 : thanh ghi điều khiển khối ADC.

2.1.7. Ngắt (INTERRUPT)
PIC16F877A có đến 15 nguồn tạo ra hoạt động ngắt được điều khiển bởi thanh ghi
INTCON (bit GIE). Bên cạnh đó mỗi ngắ
t còn có một bit điều khiển và cờ ngắt riêng. Các
cờ ngắt vẫn được set bình thường khi thỏa mãn điều kiện ngắt xảy ra bất chấp trạng thái
của bit GIE, tuy nhiên hoạt động ngắt vẫn phụ thuôc vào bit GIE và các bit điều khiển
khác. Bit điều khiển ngắt RB0/INT và TMR0 nằm trong thanh ghi INTCON, thanh ghi này
còn chứa bit cho phép các ngắt ngoại vi PEIE. Bit điều khiển các ngắt nằm trong thanh ghi
PIE1 và PIE2. Cờ ngắt của các ngắt nằm trong thanh ghi PIR1 và PIR2.
M
ột số ngắt đã dùng trong đề tài:

#INT_GLOBAL : ngắt chung, nghĩa là khi có ngắt xảy ra, hàm theo sau chỉ thị này
được thực thi, bạn sẽ không nhận được khai báo thêm chỉ thị ngắt nào khác khi dùng chỉ
thị này. CCS không sinh bất kì mã lưu nào, hàm ngắt bắt đầu ngay tại vector ngắt.
#INT_RDA : data nhận từ RS232 sẵn sàng.

Đồ án tốt nghiệp kỹ sư Cơng Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 13
2.2. MÀN HÌNH LCD1602.
LCD 1602 là một module hiển thị bằng tinh thể lỏng, với định dạng ký tự ma trận
điểm, được sản xuất theo cơng nghệ CMOS năng lượng thấp, có thể hiển thị 16 ký tự trên 1
hàng, và 32 ký tự trên hai hàng, với độ phân giải tới 5x8 điểm/ký tự. Có thể giao tiếp với vi
điều khiển qua bus 4 bits hoặc 8 bits.
- Sơ đồ cấu trúc bên trong của LCD 1602:
Trong LCD 1602, gồm hai module chính là module điều khiển và module hi
ển thị.
Module điều khiển thu nhận những tín hiệu điều khiển từ vi điều khiển bên ngồi, lưu trữ
và xử lý và thực hiện kích cho màn hình hiển thị.
- Sơ đồ kết nối chân:



Hình 2.6: Sơ đồ kết nối chân

Vò trí
chân
Kí hiệu Tên Mô tả
1 VSS Nguồn cung cấp 0V (GND)
2 VDD Nguồn cung cấp 4.5-5.5 V

3 VEE Nguồn cho LCD Phân áp thúc cho LCD
4 RS Lựa chọn thanh
ghi
Đ
ầu vào lựa chọn thanh ghi
5 RW
Đ
ọc/viết
Đ
ầu vào lựa chọn Đọc/viết
6 E Cho phép Tín hiệu cho phép đọc hay
viết dữ liệu
7 DB0 Bus dữ liệu 0-7 Trong chế độ giao tiếp 8 bit,
được dùng như bus hai chiều
Trong chế độ 4 bit, tấc cả
được để hở
8 DB1
9 DB2
10 DB3
11 DB4 Trong chế độ 8 bit, hoạt
động như bus hai chiều.
Trong chế độ 4 bit, hoạt
12 DB5
13 DB6
Đồ án tốt nghiệp kỹ sư Cơng Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 14
14 DB7 động trao đổi dữ liệu.
Bit 7 còn được dùng làm bit

báo LCD bận.
15 A Anode của đèn
16 K Cathode của đèn

+ Chân Vcc, Vss và V
EE
: Vcc được nối với nguồn +5VDC, Vss đươc nối mới mass.
Cấp nguồn +5VDC và nối đất tương ứng thì VEE được đùng để điều khiển độ tương phản
cho LCD.
+ Chân chọn thanh ghi RS (Register Select): có hai thanh ghi rất quan trọng trong
LCD, chân RS được dùng để chọn các thanh ghi này như sau: Nếu RS=0 thì thanh ghi lện
được chọn cho phép người dùng gửi một lệnh chẳng hạn như xóa màn hình, đưa con trỏ về
đầu dòng…Nếu RS = 1 thì thanh ghi dữ liệu đượ
c chọn cho phép người dùng gửi dữ liệu
cần hiển thị trên LCD.
+ Chân đọc/ ghi (R/W): Cho phép người dùng ghi thơng tin lên LCD khi R/W = 0
hoặc đọc thơng tin từ nó khi R/W = 1.
+ Chân cho phép E (Enable): được sử dụng bởi LCD để chốt thơng tinh hiện hữu trên
chân dữ liệu của nó. Khi dữ liệu được cấp đến chân dữ liệu thì 1 xung mức cao xuống thấp
phải được áp đến chân này để LCD chốt dữ liệu trên các chân dữ liệu. Xung này phải rộng
tố
i thiểu là 450ns.
+ Chân D0 – D7: đây là 8 chân dữ liệu 8 bits, được dùng để gửi thơng tin lên LCD
hoặc đọc nội dung của các thanh ghi trong LCD. Để hiện thị các chữ cái và các con số,
chúng ta gửi các mã ASCII cửa các chữ cái từ A đến Z, a đến z và các con số từ 0-9 đến
các chân này khi bật RS = 1.
Cũng có các mã lệnh mà có thể gửi đến LCD để xóa màn hình hoặc đưa con trỏ về đầu
dòng hoặc nhấp nháy con trỏ. Chúng ta cũng sử dụng RS = 0 để kiểm tra bits cờ bậ
n để
xem LCD có sẵn sàng nhận thơng tin. Cờ bận là D7 và có thể đọc được khi R/W = 1 và RS

= 0 như sau : Nếu R/W = 1, RS = 0 khi D7 = 1( cờ bận 1) thì LCD bận bởi các cơng việc
bên trong và sẽ khơng nhận bất kỳ thơng tin nào. Khi D7 = 0 thì LCD sẵn sàng nhận thơng
tin mới. Lưu ý chúng ta nên kiểm tra cờ bận trước khi ghi bất kì dữ liệu nào lên LCD.




Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 15
2.3. Tìm hiểu về chuẩn RS232 và IC MAX232.
2.3.1 Tìm hiểu về chuẩn RS232 trên các cổng kết nối (cổng com) của máy vi
tính.








Hình 2.7: Hình dáng của 2 cổng com thông dụng













Hình 2.8: Sơ đồ chân của 2 cổng Com

Các dữ liệu ở dạng bits (bit 0 hay bit 1) cho xuất – ra /nhập – vào trên các cổng com
của các máy tính PC đều theo chuẩn rs232 ,chuẩn này qui định như sau:
Mức “0” cho xác lập theo mức áp dương trong khoảng từ +3v đến +25v.
Mức “1” cho xác lập theo mức áp âm trong khoảng từ -3v đến -25v.
Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 16
Với qui định này (gọi là chuẩn rs 232) , việc bị giảm áp trên đường line do dây kéo
quá dài sẽ không còn quan trong nữa ,có thể nói chuẩn rs 232 cho phép truyền bit trên các
đường dây rất dài mà không sợ bị sai lầm.
Tìm hiểu về cổng com máy vi tính (loại cổng com 9 chân). Trên đó chúng ta có các
dạng tín hiệu như sau :
Trong 9 chân của cổng com có 3 chân quan trọng đó là :
Chân 5 (GND) là đường masse,dùng lập mức áp chuẩn 0v cho các tính hiệu của hệ
thống .
Chân 2 (RXD,RECEIVER DATA) dùng nhận dữ liệu vào máy tính pc, các dữ liệu
dạng bit đến t
ừ các thiết bị khác .
Chân 3(TXD,TRANSIMITTER DATA) cho phát ra dữ liệu dạng bit từ máy tính
pc,truyền dến các thiết bị khác.
Các tín hiệu khác có tác dụng “bắt tay ” giữa các thiết bị kết nối đó là:
Chân 1(DCD, DATA CARRIER DETECT ). Dùng dò dữ liệu trên sóng mang , hộp

modem sẽ gửi tín hiệu dcd quan chân này về máy tính pc để báo cho pc biết đã phát hiện
dữ liệu trên sóng mang , như vậy cho biết đã có kết nối tốt giữa thiết bị đầu cuối (DTE) và
hộp modem. DCD là tín hiệu c
ủa hộp modem gửi về máy tính pc qua cổng com.
Chân 4 (DTR ,DATATERMINAL READY). Tín hiệu này từ thiết bị đầu cuối (hay từ
cổng com ) báo cho hộp modem biết là nó đã sẵn sàng để truyền dữ liệu , vậy nếu thiết bị
đầu cuối có “trục trặc gì ”, nó sẽ không có tín hiệu dtr gửi đến hộp modem. Tín hiệu này
tác dụng ở mức áp thấp.
Chân 6(DSR,DATA SET READY). Tập dữ liệu đã sẵn sàng , tín hiệu này gửi từ hộp
modem v
ề máy tính báo cho biết là nó đã sẵn sàng gửi dữ liệu. Nó có tác dụng ở mức áp
thấp .
Chân 8 (CTS, CLEAR TO SEND ). Để trả lời tín hiệu rts, khi đã sẵn sàng ,hộp
modem sẽ gửi tín hiệu cts về máy tính pc,báo cho biết nó đã sẵn sàng nhân dữ liệu đến, khi
nó đến máy tính và máy tính sẽ cho gửi dữ liệu sau khi nhận được tín hiệu này.
Chân 9(RI,RING INDICATOR). Tín hiệu cho biết hiện đang có tín hiệu báo chuông
trên đường line.
Chúng ta thấy rằng , tín hiệu dạng bit (bit 0 hay bit 1) xuất hi
ện trển cổng com sẽ
theo chuẩn rs 232, trong khi đó tín hiệu dạng bit ở cac thiết bị khác (như ở pic 16f877a)
thường làm việc theo chuẩn ttl , qui định chuẩn ttl như sao:
Mức “0” cho xác lập theo mức áp thấp ,0v (hay dưới 2v).
Mức “1” cho xác lập theo mức áp cao ,5v (hay trên 2v).
Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 17
Điều này cho thấy sự khác biệt rất lớn giữa qui định chuẩn rs232 và chuẩn TTL. Do
vậy trong kết nối để truyền dữ liệu dạng bit giữa máy tính pc và các thiết bị khác người ta
phải dùng đến ic biến đổi mức chuẩn của tín hiệu. ic thường dùng là max 232.

2.3.2 Tìm hiểu về ic max 232 .












Hình 2.9: Cấu trúc bên trong của mã 232
Xác lập lại mức áp để định trạng thái bit 0 và bit 1 cho tương thích với các loại thiết
bị.
Đảo pha các tín hiệu cho đứng theo qui định với máy tính pc và đúng với qui định
của chuẩn TTL .
Max 232 có cấu trúc bên trong như hình vẽ :
Trong max232 có mạch điện chức năng sau sau:
Mạch nghịch lưu dùng tự nâng áp, mức áp nguồn nuôi +5v đưa vào chân 16,với
mạch nghịch lưu dùng các tụ điện 10uf trên chân 1, 3 và trên chân 2. nó cho nâng mức +5v
lên mức áp +10v. chúng ta có thể
đo mức áp +10v trên chân số 2.
Mạch đảo cực nguồn nuôi. Người ta dùng mạch đảo cực với các tụ 10uF trên chân
4, 5 và trên chân 6. Nó tạo ra đường nguồn âm -10v . Chúng ta có thể đo mức áp này trên
chân số 6
Trong max 232 có 2 tầng truyền khuếch đại đảo pha dùng cho đường RXD(đường
thu nhận tín hiệu vào máy tính pc). Tín hiệu chuẩn TTL vào trên chân 10 hoặc 11, sau khi
cho khuếch đại đảo pha, ở ngả ra nó sẽ tương thích với chuẩn rs 232 , tín hiệu này cho ra

trên chân 7 hoặc 14 để vào máy tính pc qua cổng com.
Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 18
Trong max 232 có 2 tầng khuếch đại đảo pha dùng cho đường TXD(đường cho
phát tín hiệu ra từ các máy tính pc). Tín hiệu này có chuẩn rs 232 sẽ cho vào trên chân 8
hoặc 13 , sau khi cho khuếch đại đảo pha,ở ngả ra nó sẽ tương thích với chuẩn TTL, tín
hiệu này cho ra trên chân 9 hoặc 12 để vào các thiết bị khác.
Về đường đi của tín hiệu:
Tín hiệu ra (TXD) từ thiết bị ngoài (theo chuẩn TTL) sẽ cho vào chân 11, sau khi
được khuếch đại đảo pha cho ra trên chân 14, tín hiệu này sẽ cho vào chân số 2 của cổng
com , ở
đây nó là tín hiệu RXD.
Tín hiệu ra (TXD) từ chân số 3 của cổng com , cho vào chân 13 , sau khi được
khuếch đại đảo pha , nó ra trên chân 12 và sẽ cho vào các thiết bị bên ngoài ,ở đây nó là tín
hiệu rxd.

2.4. IC ghi dịch 74HC595.
Đề tài sử dụng PIC để điều khiển hiển thị lên 5 màn hình LCD. Vi điều khiển sẽ
dùng 3 chân để điều khiển hiển thị và 8 chân để truyền dữ liệu cho LCD. Như vậy với 5 màn
hình LCD sẽ không đủ số chân c
ủa vi điều khiển.
Vì thế nên trong đề tài này, em sử dụng IC ghi dịch 74HC595 để truyền dữ liệu từ vi
điều khiển xuống LCD. Như vậy, chúng ta chỉ cần dùng 6 chân của vi điều khiển để điều
khiển, và khi đó chúng ta có thể mở rộng thêm ra nhiều LCD mà vẫn chỉ dùng 6 chân của Vi
điều khiển.


Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân



SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 19





Về nguyên tắt hoạt động cũng đơn giản, đại khái là như thế này: bạn cho 1 bit vào
SERIAL
DATA INPUT và tác động vào chân SHIFT CLOCK, bit dữ liệu (1) sẽ được đặt sẳn ở ngỏ
ra QA của 74595, tiếp tục đưa vào bit (2) và tác động vào SHIFT CLOCK thì bit dữ liệu
(1) sẽ được đặt sẳn ở ngỏ ra QB, bit dữ liệu (2) sẽ được đặt sẳn ở ngỏ ra QA, tương tự đến
bit cuối cùng. Các bạn chú ý là dữ liệ
u chỉ đc chuẩn bị sẳn ở các ngỏ ra và chỉ được xuất ra
khi ta tác động vào chân LATCH CLOCK. Chúng ta có thể xuất dữ liệu bất cứ lúc nào
không phải cần chuẩn bị đến bit cuối cùng!


Đồ án tốt nghiệp kỹ sư Công Nghiệp GVHD : Ths. Tống Thanh Nhân


SVTH : Nguyễn Ngọc Ánh MSSV : 20762042 Trang 20











×