có sơ đồ nguyên lý, sơ đồ khối và lưu đồ giải thuật, mạch in và code đầy đủ cho HIỂN THỊ THỜI GIAN THỰC và đo NHIỆT độ dùng PIC16F...............................................................................................................................................................
Trang 1DANH MỤC CÁC BẢNG
Bảng 1.1 Chức năng các chân 20Bảng 1.2 Chức năng chân RS và RW theo mục đích sử dụng 22
Trang 2DANH MUC CÁC TỪ VIẾT TẮT
DANH MỤC HÌNH ẢN
Trang 3HÌNH 1.1: SƠ ĐỒ KHỐI PIC 16F877A 9
HÌNH 1.2: CƠ CHẾ HOẠT ĐỘNG 11
HÌNH 1.3: MẠCH MCLR 12
HÌNH 1.4: BỘ NHỚ CHƯƠNG TRÌNH PIC 16F877A 13
HÌNH 1.5: HÌNH DÁNG CỦA LCD THÔNG DỤNG 18
HÌNH 1.6: SƠ ĐỒ CHÂN LCD 19
HÌNH 1.7: SƠ ĐỒ KHỐI CỦA HD47780 21
HÌNH 1.8: CHIP ĐỊNH THỜI DS 1307 23
HÌNH 1.9:SƠ ĐỒ CHÂN DS 1307 24
HÌNH 1.10: HÌNH DẠNG CỦA LM35 25
HÌNH 1.11: SƠ ĐỒ CHÂN LM35 25
HÌNH 2.1: SƠ ĐỒ KHỐI CỦA MẠCH 27
HÌNH 2.2: SƠ ĐỒ NGUYÊN LÝ 28
HÌNH 2.3: KHỐI VI XỬ LÝ VÀ KHỐI HIỂN THỊ 29
HÌNH 2.4:KHỐI DỮ LIỆU 30
HÌNH 2.5 KHỐI NGUỒN 30
HÌNH 3.1: KẾT QUẢ MÔ PHỎNG 31
HÌNH 3.2: KẾT QUẢ THỰC TẾ 32
Trang 4Mục Lục
Danh Mục các bảng 1
Danh Mục các từ viết tắt 2
Danh Mục các hình vẻ 3
Lời cảm ơn 6
Lời mở đầu 7
Chương 1 GIỚI THIỆU CÁC LIỆN KIỆN ĐIỆN TỬ SỬ DỤNG TRONG MẠCH 8
1.1 Giới thiệu về PIC 16f877a: 8
1.1.1 Các đặc tính ngoại vi 9
1.1.2 Sơ lược về vi điều khiển PIC 16F877A 10
1.1.2.1 Dao Động 10
1.1.2.2 MCLR 11
1.1.2.3 Bộ nhớ chương trình 12
1.1.3 Khái quát chức năng các Port trong vi điều khiển PIC 16F877A 13
1.1.3.1 Port A và thanh ghi TRIS A 14
1.1.3.2 PORT B và thanh ghi TRISB 15
1.1.3.3 Port C và thanh ghi TRISC 16
1.1.3.4 Port D và thanh ghi TRISD 16
1.1.4 Module ADC 17
1.2 MÀN HÌNH LCD 16x2 17
1.2.1 Cấu Tạo và hình dáng 18
1.2.2 Sơ đồ Chân 18
1.2.3 Sơ đồ khối của HD44780 21
1.3 CHÍP ĐỊNH THỜI IC DS1307 23
1.3.1 Giới thiệu về IC DS1307 23
1.3.2 Sơ đồ chân 24
1.4 Sensor nhiệt LM35 25
1.4.1 Hình dạng 25
1.4.2 Sơ đồ chân 25
1.4.3 Đặc tính cơ bản 26
Chương 2.SƠ ĐỒ KHỐI VÀ NGUYÊN LÝ HOẠT ĐỘNG CỦA MẠCH 27
2.1 Sơ đồ khối 27
2.2 Sơ đồ nguyên lý 28
2.3 Phân tích các khối của mạch thiết kế 29
2.3.1 Khối vi xử lý và hiển thị 29
2.3.2 Khối dữ liệu 29
2.3.3 Khối nguồn 30
Chương 3 KẾT QUẢ MÔ PHỎNG VÀ THỰC TẾ 31
Trang 53.1 kết quả mô phỏng 31
3.2 kết quả thực tế 32
Chương 4.KẾT LUẬN 33
4.1 Ưu Điểm và nhược điểm 33
4.2 Ứng Dụng 33
Tài Liệu tham khảo 34
Phụ Lục 35
Trang 6
LỜI CẢM ƠN
Lời đầu tiên chúng em xin chân thành cảm ơn đến quý Thầy, Cô trường ĐạiHọc Tôn Đức Thắng, những người đã trực tiếp giảng dạy, truyền đạt những kiếnthức bổ ích cho em, đó chính là những nền tảng cơ bản để em có thể hoàn thành đồ
án Tiếp đến em xin cảm ơn Thầy TS.Nguyễn Hữu Khánh Nhân đã tận tình, quantâm , giúp đỡ em trong những tháng qua, giải đáp những thắc mắc trong quá trình
em thực hiện đề tài “ Lịch Vạn Niên ” Nhờ đó, chúng em mới có thể hoàn thànhđược bài báo cáo đồ án này
Trong quá trình thực hiện và làm báo cáo, vì chưa có kinh nghiệm , chỉ dựavào lý thuyết đã học nên bài báo cáo chắc chắn sẽ không tránh khỏi những sai sót.Kính mong nhận được sự góp ý, nhận xét từ phía quý Thầy, Cô để kiến thức của
em ngày càng hoàn thiện hơn và rút ra được những kinh nghiệm bổ ích có thể ápdụng vào thực tiễn một cách hiệu quả trong tương lai
Sau cùng em xin kính chúc quý Thầy, Cô luôn vui vẻ, hạnh phúc, dồi dàosức khỏe và thành công trong công việc
Em xin chân thành cảm ơn
TPHCM, ngày 04 tháng 04 năm 2016
Trang 7LỜI MỞ ĐẦU
Kinh tế ngày càng quốc tế hóa, xã hội cũng ngày càng phát triển Để đápứng nhu cầu bức thiết của cuộc sống và hội nhập tiến độ phát triển trên thế giới, đihỏi các ngành khoa học kỹ thuật hiện nay ngày phải một nâng cao và phát triển vềchất lượng và khả năng ứng dụng rộng rãi Trong đó ngành công nghệ kỹ thuậtđiện tử cũng đóng một vai trò quang trọng trong sinh hoạt cũng như trong sản xuấtcủa thế giới
Là một sinh viên đang còn ngồi trên ghế nhà trường, em đã được trau dồinhững kiến thức chuyên môn của ngành học Tuy được học và thực hành nhiềutrên lớp nhưng đó chỉ một phần nào đó nhỏ bé so với những kiến thức ngoài thực
tế ngày nay và sau này khi ra trường chúng em sẽ gặp phải Vì thế, em rất muốnvận dụng nhũng kiến thức đã được học vào thực tiễn và học hỏi những gì cònthiếu Trong những năm học tập, thực hiện nghiên cứu đồ án vừa qua, được sự giúp
đỡ của các thầy cô giáo bộ môn, em đã học hỏi được rất nhiều điều trong thực tế,cũng như tìm hiểu nhung vấn đề, tài liệu liên quan giúp ích cho việc hoàn thànhbáo cáo đồ án này Vì thế sau khi cân nhắc và được sự góp ý của các thầy cô em đãchọn đề tài “Lịch Vạn Niên” Vì đây là lần đầu tiên viết báo cáo đồ án nên cònnhiều thiếu sót, rất mong thầy cô thông cảm
Em xin chân thành cảm ơn!
Trang 8CHƯƠNG 1:GIỚI THIỆU VỀ CÁC LINH KIỆN ĐIỆN TỬ SỬ
DỤNG TRONG MẠCH
PIC 16F877A là dòng PIC phổ biến nhất hiện nay (đủ mạnh về tính năng, 40chân, bộ nhớ đủ cho hầu hết các ứng dụng thông thường) Cấu trúc tổng quát củaPIC16F877A như sau:
8 K Flash ROM
368 Bytes RAM
256 Bytes EEPROM
5 ports (A, B, C, D, E) vào ra với tín hiệu điều khiển độc lập
2 bộ định thời 8 bits (Timer 0 và Timer 2)
Một bộ định thời 16 bits (Timer 1) có thể hoạt động trong chế độ tiếtkiệm năng lượng (SLEEP MODE) với nguồn xung Clock ngoài
2 bô CCP( Capture / Compare/ PWM)
1 bộ biến đổi AD 10 bits, 8 ngõ vào
2 bộ so sánh tương tự (Compartor)
1 bộ định thời giám sát (WatchDog Timer)
Một cổng song song 8 bits với các tín hiệu điều khiển
Một cổng nối tiếp
15 nguồn ngắt
Có chế độ tiết kiệm năng lượng
Nạp chương trình bằng cổng nối tiếp ICSP(In-Circuit Serial Programming)
Được chế tạo bằng công nghệ CMOS
35 tập lệnh có độ dài 14 bits
Tần số hoạt động tối đa 20MHz
Trang 91.1.1 Các đặc tính ngoại vi bao gồm :
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
Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ
CS ở bên ngoài
Các đặc tính Analog:
8 kênh chuyển đổi ADC 10 bit
Hai bộ so sánh
Bộ nhớ flash với khả năng ghi xóa được 100.000 lần
Cổng 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 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
Trang 101.1.2 Sơ lược về vi điều khiển PIC 16F877A :
Trang 12Hình 1.3 Mạch MCLR
Trang 13Hình 1.4 Bộ nhớ chương trình PIC 16F877A
Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ Flash, dunglượng 8K word (1 word chứa 14bit) và được phân thành nhiều trang như hình trên
Để mã hóa được địa chỉ 8K word bộ nhớ chương trình, thanh ghi đếm chươngtrình PC có dung lượng 13 bit
Trang 14Khi vi điều khiển reset, bộ đếm chương trình sẽ trỏ về địa chỉ 0000h Khi cóngắt xảy ra thì thanh ghi PC sẽ trỏ đến địa chỉ 0004h.
Bộ nhớ chương trình không bao gồm bộ nhớ Stack và không được địa chỉ hóabởi bộ đếm chương trình
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 theocá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ượngchân trong mỗi cổng có thể khác nhau Bên cạnh đó, do vi điều khiển được tíchhợ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ổngxuấ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ênngoà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ể đượcxá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
Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA,
PORTB, PORTC, PORTD và PORTE
Port A gồm 6 chân từ RA0 đến RA5 Việc ghi giá trị vào thanh ghi TRISA
sẽ qui định các chân của Port A là input hay output(nếu là 1 thì là input, là outputnếu là 0) Việc đọc thanh ghi Port A sẽ đọc trạng thái của các chân ở Port A Việcghi giá trị vào thanh ghi Port A sẽ thay đổi trạng thái của các chân Port A
Ngoài ra, PORTA còn có các chức năng quan trọng sau :
Trang 15- Ngõ vào Analog của bộ ADC : thực hiện chức năng chuyển từ Analogsang Digital
- Ngõ vào điện thế so sánh
- Ngõ vào xung Clock của Timer0 trong kiến trúc phần cứng : thực hiệncác nhiệm vụ đếm xung thông qua Timer0…
- Ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port)
Các thanh ghi FSR liên quan đến PORTA bao gồm:
PORTA địa chỉ 05h) : chứa giá trị các pin trong PORTA
TRISA (địa chỉ 85h) : điều khiển xuất nhập
PORTB có 8 chân từ chân RB0-RB7 Việc ghi giá trị vào thanh ghi TRISB sẽquy định các chân của Port B là input hay output (1: input, 0: output) Việc đọcthanh ghi PortB sẽ đọc trạng thái của các chân ở Port B Việc ghi giá trị vào thanhghi Port B sẽ thay đổi trạng thái của các chân Port B
Bốn chân của Port B từ RB7 đến RB4 có chức năng ngắt khi trạng thái chânPort B thay đổi (Khi Port B được quy định là output thì chức năng này không hoạtđộng Giá trịchân của PortB được so sánh với giá trị đã được lưu trước đó, khi có
sự sai lệch giữa 2 giá trị này ngắt sẽ xảy ra với cờ ngắt RBIF (INTCON<0) sẽ bậtlên Ngắt có thể làm cho VĐK thoát khỏi trạng thái SLEEP
Bất cứ sự truy xuất nào trên PortB sẽ xóa trạng thái sai lệch, kết thúc ngắt vàcho phép xóa cờ ngắt RBIF
Các thanh ghi SFR lien quan đến PORTB bao gồm:
PORTB (địa chỉ 06h,106h) : chứa giá trị các pin trong PORTB
Trang 16 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
Port C gồm 8 chân từ chân RC0-RC7 Việc ghi giá trị vào thanh ghi TRISC sẽquy định các chân của Port C là input hay output (1: input, 0: output) Việc đọcthanh ghi Port C sẽ đọc trạng thái của các chân ở Port C Việc ghi giá trị vào thanhghi Port C sẽ thay đổi trạng thái của các chân Port C Các chân của Port C được đahợp với các chức năng ngoại vi
Khi các chức năng ngoại vi được cho phép ta cần quan tâm chặt chẽ tới giátrị các bit của thanh ghi TRISC Một số chức năng ngoại vi sẽ ghi đè giá trị 0 lêncác bit của thanh ghi TRISC và mặc định các chân này là output, ngoài ra một sốchức năng ngoại vi khác sẽ tự động mặc định một số chân là ngõ vào Do đó cầnxem xét kĩ các tính năng của các hàm ngoại vi để thiết lập giá trị các bit trong
thanh ghi TRISC cho thích hợp
Các thanh ghi lien quan đến PORTC:
PORTC (địa chỉ 07h) : chứa giá trị các pin trong PORTC
TRISC (địa chỉ 87h) : điều khiển xuất nhập
Port D gồm 8 chân từ chân RD0-RD7 Bên cạnh chức năng là port xuất nhập,PortD còn có thể hoạt động như một cổng song song bằng cách set bit PSPMODE(TRISD<4>), trong chế độ này buffer ngõ vào là TTL
Các thanh liên quan đến PORTD bao gồm:
Thanh ghi PORTD : chứa giá trị các pin trong PORTD
Thanh ghi TRISD : điều khiển xuất nhập
Trang 17 Thanh ghi TRISD : điều khiển xuất nhập PORTD và chuẩn giao tiếp PSP.
ADC (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai dạng tương tự và số PIC16F877A có 8 ngõ vào analog (RA4:RA0 và RE2:RE0) Hiệu điện thế chuẩn VREF có thể được lựa chọn là VDD, VSS hay hiệu điện thể chuẩn được xác lập trên hai chân RA2 và RA3 Kết quả chuyển đổi từ tín tiệu tương tự sang tín hiệu số là 10 bit số tương ứng và được lưu trong hai thanh ghi ADRESH:ADRESL Khi không sử dụng bộ chuyển đổi ADC, các thanh ghi này có thể được sử dụng như các thanh ghi thông thường khác Khi quá trình chuyển đổi hoàn tất, kết quả sẽ được lưu vào hai thanh ghi
ADRESH:ADRESL, bit (ADCON0<2>) được xóa về 0 và cờ ngắt ADIF được set
Module ADC bao gồm 4 thanh ghi:
- Thanh ghi chứa byte cao của kết quả ADRESH
- Thanh ghi chứa byte thấp của kết quả ADRESL
- Thanh ghi chứa các bit điều khiển ADCON0
- Thanh ghi chứa các bit điều khiển ADCON1
Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trongrất nhiều các ứng dụng của VĐK LCD có rất nhiều ưu điểm so với các dạng hiểnthị khác: Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa),
dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn rất íttài nguyên hệ thống và giá thành rẽ …
Trang 19Hinh 1.6: Sơ đồ chân của LCD.
Trang 20Chân số Tên Chức năng
1 Vss Chân nối đất cho LCD, khi thiết kế m ạch ta nối chân này với GND của mạch điều khiển
2 Vdd Chân cấp nguồn cho LCD, khi thiết kế m ạch ta nối chân này với VCC=5V của mạch điều khiển.
3 Vee Chân này dùng để điều chỉnh độ tương phản của LCD
Chân chọn thanh ghi (Register select) Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi + Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu
DR bên trong LCD
Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W vớilogic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc
Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào (chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mứcthấp
Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU Có 2 chế độ s ử d ụ n g 8 đường bus này : + Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7
Chi tiết sử dụng 2 giao thức này được đề cập ở phần sau Bảng 1.1: Chức năng các chân:
Trang 211.2.3 Sơ đồ khối của HD44780.
Để hiểu rõ hơn chức năng các chân và hoạt động của chúng, ta tìm hiểu sơ qua chíp HD44780 thông qua các khối cơ bản của nó
Hình 1.7: Sơ đồ khối của HD44780
Trang 22Các thanh ghi:
Chíp HD44780 có 2 thanh ghi 8 bit quan trọng : Thanh ghi lệnh IR(Instructor Register) và thanh ghi dữ liệu DR (Data Register)
- Thanh ghi IR : Để điều khiển LCD, người dùng phải “ra lệnh” thông qua
tám đường bus DB0-DB7 Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng.Người dùng chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR Nghĩa
là, khi ta nạp vào thanh ghi IR một chuỗi 8 bit, chíp HD44780 sẽ tra bảng mã lệnhtại địa chỉ mà IR cung cấp và thực hiện lệnh đó
VD : Lệnh “hiển thị màn hình” có địa chỉ lệnh là 00001100 (DB7…DB0)
Lệnh “hiển thị màn hình và con trỏ” có mã lệnh là 00001110
- Thanh ghi DR : Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vào vùng
RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùngRAM này gởi ra cho MPU (ở chế độ đọc) Nghĩa là, khi MPU ghi thông tin vào
DR, mạch nội bên trong chíp sẽ tự động ghi thông tin này vào DDRAMhoặc CGRAM Hoặc khi thông tin về địa chỉ được ghi vào IR, dữ liệu ở địa chỉ nàytrong vùng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU
=> Bằng cách điều khiển chân RS và R/W chúng ta có thể chuyển qua lại giữ 2thanh ghi này khi giao tiếp với MPU Bảng sau đây tóm tắt lại các thiết lập đối vớihai chân RS và R/W theo mục đích giao tiếp
Bảng 1.2: Chức năng chân RS và RW theo mục đích sử dụng:
0 0 Ghi vào thanh ghi IR để ra lệnh cho LCD
0 1 Đọc cờ bận ở DB7 và giá trị của bộ đếm địa chỉ ở DB0-DB6