Sự phát triển của kỹ thuật điện tử đã tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật như sự chính xác cao, tốc độ nhanh, gọn nhẹ là những yếu tố rất cần thiết góp phần cho hoạt
Trang 1LỜI NÓI ĐẦU
Ngày nay, với những ứng dụng của khoa học kỹ thuật tiên tiến, thế giới của chúng ta đã và đang ngày một thay đổi, văn minh và hiện đại hơn Sự phát triển của
kỹ thuật điện tử đã tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật như sự chính xác cao, tốc độ nhanh, gọn nhẹ là những yếu tố rất cần thiết góp phần cho hoạt động của con người đạt hiệu quả cao.
Các bộ điều khiển sử dụng vi điều khiển tuy đơn giản nhưng để vận hành và sử dụng được lại là một điều rất phức tạp Các bộ vi điều khiển theo thời gian cùng với
sự phát triển của công nghệ bán dẫn đã tiến triển rất nhanh, từ các bộ vi điều khiển 4 bit đơn giản đến các bộ vi điều khiển 32 bit, rồi sau này là 64 bit Điện tử đang trở thành một ngành khoa học đa nhiệm vụ Điện tử đã đáp ứng được những đòi hỏi không ngừng từ các lĩnh vực công – nông – lâm – ngư nghiệp cho đến các nhu cầu cần thiết trong hoạt động đời sống hằng ngày.
Có thể nói sự phát triển của vi điều khiển từ thủa sơ khai cho tới ngày nay là cả một chặng đường lớn của nghành điện tử Một trong những ứng dụng thiết thựccủa vi điều khiển là ứng dụng vi điều khiển thiết kế đồng hồ hiện thị thời gian Đây là một ứng dụng thường thấy nhất trong cuộc sống,
Là những sinh viên trẻ đam mê điện tử, để thỏa mãn nhu cầu tìm tòi và nghiên cứu của mình trong việc hoc tập Đây chính là động lực và lý do thúc đẩy em chọn đề tài thiết kế đồng hồ hiện thị thời gian thực bằng AT89C51 sử dụng led 7 đoạn để hiển thị giờ, phút, giây, ngày, tháng, năm làm đồ án học phần Đồ án vi xử lý.
Bố cục đồ án gồm có 2 chương:
Chương I: Sơ lược về Chíp và các linh kiện điện
Chương II: Quy trình làm mạch đồng hồ thực tế dung IC AT89c51 và DS1307
hiện thị trên led 7 đoạn.
Trong quá trình thực hiện sẽ không tránh khỏi những thiếu sót Rất mong nhận được sự góp ý của thầy cô và các bạn
Em xin chân thành cảm ơn thầy ………… đã tận tình hướng dẫn em trong suốt quá trình làm bài!
Trang 2MỤC LỤC
LỜI NÓI ĐẦU i
MỤC LỤC ii
DANH MỤC BẢNG ii
DANH MỤC HÌNH iii
CHƯƠNG I: SƠ LƯỢC VỀ CHÍP VÀ CÁC LINH ĐIỆN TỬ 1
1.1 Giới thiệu chíp và cấu tạo chíp điện tử 1
1.1.1 Định nghĩa 1
1.1.2 Cấu tạo 1
1.2 Các nhóm chíp điện tử chính 2
1.2.1 Nhóm ATMEL 2
1.2.1.1 AT89C51 2
1.2.1.2 AT89C52 3
1.2.2 Nhóm ATMEGA 4
1.2.2.1 ATMEGA16 4
1.2.2.2 ATMEGA32 6
1.2.3 PIC 7
1.2.3.1 PIC 16F877A 7
CHƯƠNG II: QUY TRÌNH LÀM MẠCH ĐỒNG HỒ THỰC TẾ DÙNG IC AT89C51 VÀ DS 1307 HIỂN THỊ TRÊN LED 7 ĐOẠN 9
2.1 Giới thiệu linh kiện 9
2.1.1 Khái niệm về I2C 9
2.1.2 Giao tiếp DS1307 – DS 1308 10
2.1.3 LED 7 đoạn 14
2.1.4 IC 89C51S31 15
2.1.4.1 Khảo sát sơ đồ chân 89C51, chức năng từng chân: 15
2.1.4.2 Hoạt động của RESET 17
2.2 Sơ đồ nguyên lý, mạch in của mạch đồng hồ 19
2.2.1 Sơ đồ nguyên lý của mạch 19
2.2.2 Sơ đồ mạch in: 20
2.2.3 Sơ đồ thuật toán 20
KẾT LUẬN 22
DANH MỤC BẢNG Bảng 2.1: Thanh ghi điều khiển SQW/OUT: 14
Bảng 2.2: Sự phụ thuộc của tần số sóng vuông với Bit RS0 và RS1 14
Bảng 2.3 Trạng thái của tất cả các thanh ghi trong 89C51 sau khi reset hệ thống: 18
Trang 3DANH MỤC HÌNH
Hình 1.1 Các loại chíp điện tử 1
Hình 1.2 Sơ đồ khối của AT89C51 3
Hình 1.3 Sơ đồ chân 89C51 3
Hình 1.4 Sơ đồ chân IC AT89C52 4
Hình 1.5 Sơ đồ chân ATMEGA16 6
Hình 1.6 Sơ đồ chân ATMEGA32 7
Hình 1.7 Sơ đồ chân PIC 16F877A 8
Hình 2.1 Sơ đồ chân DS1307 10
Hình 2.2 Mạch điện đơn giản sử dụng DS1307 11
Hình 2.3 Thanh ghi DS1307 12
Hình 2.4 Sơ đồ định địa chỉ các thanh ghi trong DS1307 12
Hình 2.5 Led 7 đoạn 14
Hình 2.6 Led Anode chung 15
Hình 2.7 Led Cathode chung 15
Hình 2.8 Sơ đồ chân 89C51 15
Hình 2.9 Mạch dao động 17
Hình 2.10 Mạch reset tự động 18
Hình 2.11 Mạch reset bằng tay 18
Hình 2.12 Sơ đồ nguyên lý mạch đồng hồ 19
Hình 2.13 Sơ đồ mạch in 20
Hình 2.14 Lưu đồ thuật toán 21
Trang 4CHƯƠNG I: SƠ LƯỢC VỀ CHÍP VÀ CÁC LINH ĐIỆN TỬ1.1 Giới thiệu chíp và cấu tạo chíp điện tử.
1.1.1 Định nghĩa.
Vi mạch tích hợp, hay vi mạch, hay mạch tích hợp (integrated circuit), gọi tắt
IC, hay chip là các mạch điện chứa các linh kiện bán dẫn (như transistor) và linh kiệnđiện tử thụ động (như điện trở) được kết nối với nhau, kích thước cỡ micrômét (hoặcnhỏ hơn) chế tạo bởi công nghệ silicon cho lĩnh vực điện tử học
1.1.2 Cấu tạo.
Một IC thường có kích thước dài rộng cỡ vài trăm đến vài ngàn micron, dày cỡvài trăm micron được đựng trong một vỏ bằng kim lọai hoặc bằng plastic Những ICnhư vậy thường là một bộ phận chức năng (function device) tức là một bộ phận có khảnăng thể hiện một chức năng điện tử nào đó Sự kết tụ (integration) các thành phần củamạch điện tử cũng như các bộ phận cấu thành của một hệ thống điện tử vẫn là hướngtìm tòi và theo đuổi từ lâu trong ngành điện tử Nhu cầu của sự kết tụ phát minh từ sựkết tụ tất nhiên của các mạch và hệ thống điện tử theo chiều hướng từ đơn giản đếnphức tạp, từ nhỏ đến lớn, từ tần số thấp (tốc độ chậm) đến tần số cao (tốc độ nhanh)
Sự tiến triển này là hậu quả tất yếu của nhu cầu ngày càng tăng trong việc xử lý lượngtin tức (information) ngày càng nhiều của xã hội phát triển
Hình 1.1 Các loại chíp điện tử
Trang 5dữ liệu riêng biệt cho phép quản lý và kiểm tra Bit trực tiếp trong điều khiển.
89C51 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS chất lượngcao, với 4 KB EEPROM (Flash Programmable and erasable read only memory) Thiết
bị này được chế tạo bằng cách sử dụng bộ nhớ không bốc hơi mật độ cao củaATMEL và tương thích với chuẩn công nghiệp MCS -51 về tập lệnh và các chân ra.ATMEL AT89C51 là một vi điều khiển mạnh (có công suất lớn) mà nó cung cấp một
sự linh động cao và giải pháp về giá cả đối với nhiều ứng dụng vi điều khiển
Các đặc điểm của 89C51 được tóm tắt như sau:
+ 4 KB bộ nhớ có thể lập trình lại nhanh, có khả năng tới 1000 chu kỳ ghi xóa+ Tần số hoạt động từ: 0 Hz đến 24 MHz
+ 3 mức khóa bộ nhớ lập trình
+ 2 bộ Timer/counter 16 Bit
+ 128 Byte Ram nội
+ 4 port xuất/ nhập I/O 8 bit
+ Giao tiếp nối tiếp
Trang 6* Sơ đồ cấu hình AT89C51
Hình 1.2 Sơ đồ khối của AT89C51
Hình 1.3 Sơ đồ chân 89C51 1.2.1.2 AT89C52
* Giới thiệu
AT89C52 có công suất thấp, hiệu năng cao, CMOS 8 bit với 8K byte trong hệthống lập trình lại bộ nhớ Flash và chỉ xóa được bộ nhớ (PEROM) Thiết bị được sảnxuất bằng cách sử sụng công nghệ bộ nhớ mật độ cao của Atmel và tương thích tiêuchuẩn công nghiệp 80C51 và 80C52 có hướng dẫn thiết lập và sơ đồ chân Flash trên
Trang 7chíp cho phép bộ nhớ chương trình được lập trình lại trong hệ thống hay một lập trình
bộ nhớ thông thường Bằng cách kết hợp một CPU 8 bít linh hoạt với Flash trên chípkhối Atmel AT89C52 là một chíp có công suất lớn cung cấp giải pháp mềm dẻo vàhiệu quả cho nhiều ứng dụng điều khiển
* Tính năng cơ bản
- Tương thích với chuẩn MCS-51 ™
- Có 4K Byte trong hệ thống lập trình lại bộ nhớ Flash
+ Độ bền: có thể ghi và xóa dữ liệu 1000 lần trong 1 chu kỳ
- Lập trình nối tiếp kênh
- Công suất thấp và chế độ công suất tần xuống rỗi
* Sơ đồ cấu hình AT89C52
Hình 1.4 Sơ đồ chân IC AT89C52
1.2.2 Nhóm ATMEGA
1.2.2.1 ATMEGA16
* Tính năng cơ bản:
- AVR ® là vi điều khiển 8 bít với hiệu suất cao nhưng công suất thấp
- Kiến trúc RISC (bộ lệnh rút gọn) nâng cao
Trang 8+ Với 131 lệnh – Với khả năng thực hiện mỗi lệnh trong vong một chu kỳ xungclock
+ 32 x 8 thanh ghi đa dụng
+ Full static operation
+ Tốc độ làm việc 16MPIS, với thạch anh 16MHz
+ On – chip 2 cycle multipler
- Bộ nhớ:
+ ISP Flash với khả năng 10.000 lần ghi xóa
+ EEROM
+ RAM
- Giao tiếp JTAG:
+ Khả năng quét toàn diện theo chuẩn JTAG
+ Hổ trợ khả năng Debug onchip
+ Hỗ trợ lập trình Flash, EEROM, fuse…
+ Lock bít qua giao tiếp JTAG
- Ngoại vi :
+ Timer / Counter 8 bít với các chế độ: so sánh và chia tần số
+ Timer / Counter 16 bit với các chế độ: so sánh, chia tần số, capture, PWM+ Timer thời gian thực (Real time Clock) với bộ dao động riêng biệt
+ Các kênh PWM
+ Kênh biến đổi ADC 10 bít
+ Hỗ trợ giao tiếp I2C
+ Bộ giao tiếp nối tiếp lập trình được USART
+ Giao tiếp SPI
+ Watch_dog timer với bộ dao động on_chip riêng biệt
- Những thuộc tính đặc biệt:
+ Power on reset và Brown – out detection
+ Chế độ hiệu chỉnh bộ sai số cho bộ dao động RC on chíp
+ Các chế độ ngắt ngoài và trong đa dạng
+ 6 model sleep: Idle, ADC noise reduction, tiết kiệm năng lượng, power –down, standby, extended standby
Trang 9* Sơ đồ cấu hình ATMEGA16:
Hình 1.5 Sơ đồ chân ATMEGA16 1.2.2.2 ATMEGA32
* Giới thiệu:
ATMEGA32 là board mạch phát triển giao tiếp Ethernet hoàn chỉnh về phầncứng, giúp những người lập trình AVR có một thiết bị tốt để thỏa mãn đam mê lậptrình giao tiếp Ethernet Tiết kiệm thời gian và chi phí Soucer code có sẵn, giúp bạn
dễ dàng phát triển ứng dụng theo nhu cầu ATMEGA32 là giải pháp giá rẻ và tiện lợicho mọi nhu cầu trong ứng dụng của mọi người dùng
* Tính năng cơ bản:
- Microcontroller sử dụng chíp ATMega32 của Atmel, tần số thạch anh 16MHz
- RJ45 socket sử dụng lọai tích hợp biến áp, chất lượng cao
- Giao tiếp Ethernet sử dụng chip ENC28J60 MAC/PHY của Microchip,provides 10Base-T Ethernet
- AVR và Chip Ethernet giao tiếp qua giao thức SPI Giao diện ethernet có thểgửi và nhận bất kỳ gói thông tin nào TCP/UDP/IP, Appletalk, NetBIOS, v.v
- Các thông tin và cấu hình có thể được thiết lập qua cổng COM, 115200 baud8n1 như IP ADDRESS, NETMASK, GATEWAY
- Nguồn cung cấp sử dụng DC Adaptor 7 đến 12V DC
- Các OI không sử dụng của ATMega32 được đưa ra ngoài, sẵn sàng kết nối vớithiết bị ngoại vi khác ngoài ra còn cung cấp sẵn ngõ ISP để nạp chương trình chip MCU
- Đa số linh kiện SMD được sử dụng cho kích thước nhỏ gọn và chất lượng cao
Trang 10- Led báo nguồn và Led chỉ báo Ethernet tích hợp sẵn rất tiện lợi theo dõi
- Board mạch xuyên lớp chất lượng cao, dễ dàng thích nghi với vỏ hộp
* Tính năng cơ bản
- Timer 0: Bộ đếm 8 bít với bộ chia tần số 8 bit
- Timer 1: Bộ đếm 16 bít với bộ chia tần số, có thể thực hiện chức năng đếm dựavào xung clock ngoại vi ngay khi điều khiển hoạt động ở chế độ sleep
- Timer 2: Bộ đếm 8 bít và 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 USATR với 9 bít đị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, CS ở bên ngoài
- Các đặc tính ANALOG:
+ 8 kênh chuyển đổi ADC 10 bít
+ Hai bộ so sánh
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 100.000 lần
- Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần
Trang 11- 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
* Sơ đồ cấu hình:
Hình 1.7 Sơ đồ chân PIC 16F877A
CHƯƠNG II: QUY TRÌNH LÀM MẠCH ĐỒNG HỒ THỰC TẾ DÙNG IC AT89C51 VÀ DS 1307 HIỂN THỊ TRÊN LED 7 ĐOẠN2.1 Giới thiệu linh kiện
2.1.1 Khái niệm về I2C
Trang 12Giao thức ưu tiên truyền thông nối tiếp được phát triển bởi PhilipsSemiconductor và được gọi là bus I2C Vì nguồn gốc nó được thiết kế là để điều khiểnliên thông IC (Inter-Intergrated Circuit) nên nó được đặt tên là I2C Tất cả các chip cótích hợp và tương thích với I2C đều có thêm một giao diện tích hợp trên Chip đểtruyền thông trực tiếp với các thiết bị tương thích I2C khác.
Việc truyền dữ liệu nối tiếp theo hai hướng 8 bit được thực thi theo 3 chế độsau: Chuẩn (Standard)-100 Kbits/sec Nhanh (Fast)- 400 Kbits/sec Tốc độ cao (Highspeed)- 3.4 Mbits/sec Đường bus thực hiện truyền thông nối tiếp I2C gồm hai đường
là đường truyền dữ liệu nối tiếp SDA và đường truyền nhịp xung đồng hồ nối tiếpSCL Vì cơ chế hoạt động là đồng bộ nên nó cần có một nhịp xung tín hiệu đồng bộ.Các thiết bị hỗ trợ I2C đều có một địa chỉ định nghĩa trước, trong đó một số bit địa chỉ
là thấp có thể cấu hình Đơn vị hoặc thiết bị khởi tạo quá trình truyền thông là đơn vịChủ và cũng là đơn vị tạo xung nhịp đồng bộ, điều khiển cho phép kết thúc quá trìnhtruyền Nếu đơn vị Chủ muốn truyền thông với đơn vị khác nó sẽ gửi kèm thông tinđịa chỉ của đơn vị mà nó muốn truyền trong dữ liệu truyền Đơn vị Tớ đều được gán
và đánh địa chỉ thông qua đó đơn vị Chủ có thể thiết lập truyền thông và trao đổi dữliệu Bus dữ liệu được thiết kế để cho phép thực hiện nhiều đơn vị Chủ và Tớ ở trêncùng Bus
Quá trình truyền thông I2C được bắt đầu bằng tín hiệu start tạo ra bởi đơn vịChủ Sau đó đơn vị Chủ sẽ truyền đi dữ liệu 7 bit chứa địa chỉ của đơn vị Tớ mà nómuốn truyền thông, theo thứ tự là các bit có trọng số lớn nhất MSB sẽ được truyềntrước Bit thứ tám tiếp theo sẽ chứa thông tin để xác định đơn vị Tớ sẽ thực hiện vaitrò nhận (0) hay gửi (1) dữ liệu Tiếp theo sẽ là một bit ACK xác nhận bởi đơn vị nhận
đã nhận được 1 byte trước đó hay không Đơn vị truyền (gửi) sẽ truyền đi 1 byte dữliệu bắt đầu bởi MSB Tại điểm cuối của byte truyền, đơn vị nhận sẽ tạo ra một bit xácnhận ACK mới Khuôn mẫu 9 bit này (gồm 8 bit dữ liệu và 1 bit xác nhận) sẽ được lặplại nếu cần truyền tiếp byte nữa Khi đơn vị Chủ đã trao đổi xong dữ liệu cần nó sẽquan sát bit xác nhận ACK cuối cùng rồi sau đó sẽ tạo ra một tín hiệu dừng STOP đểkết thúc quá trình truyền thông I2C là một giao diện truyền thông đặc biệt thích hợpcho các ứng dụng truyền thông giữa các đơn vị trên cùng một bo mạch với khoảngcách ngắn và tốc độ thấp
Trang 13Ví dụ như truyền thông giữa CPU với các khối chức năng trên cùng một bomạch như EEPROM, cảm biến, đồng hồ tạo thời gian thực… Hầu hết các thiết bị hỗtrợ I2C hoạt động ở tốc độ 400Kbps, một số cho phép hoạt động ở tốc độ cao vàiMbps I2C khá đơn giản để thực thi kết nối nhiều đơn vị vì nó hỗ trợ cơ chế xác địnhđịa chỉ.
2.1.2 Giao tiếp DS1307 – DS 1308
DS1307 là chip đồng hồ thời gian thực (RTC : Real-time clock), khái niệm thờigian thực ở đây được dùng với ý nghĩa thời gian tuyệt đối mà con người đang sử dụng,tình bằng giây, phút, giờ… DS1307 là một sản phẩm của Dallas Semiconductor (mộtcông ty thuộc Maxim Integrated Products) Chip này có 7 thanh ghi 8-bit chứa thờigian là: giây, phút, giờ, thứ (trong tuần), ngày, tháng, năm Ngoài ra DS1307 còn có 1thanh ghi điều khiển ngõ ra phụ và 56 thanh ghi trống có thể dùng như RAM DS1307xuất hiện ở 2 gói SOIC và DIP có 8 chân
Hình 2.1 Sơ đồ chân DS1307
Các chân của DS1307 được mô tả như sau:
• X1 và X2: là 2 ngõ kết nối với 1 thạch anh 32.768KHz làm nguồn tạo daođộng cho chip
• VBAT: cực dương của một nguồn pin 3V nuôi chip
• GND: chân mass chung cho cả pin 3V và Vcc
• Vcc: nguồn cho giao diện I2C, thường là 5V và dùng chung với vi điều khiển.Chú ý là nếu Vcc không được cấp nguồn nhưng VBAT được cấp thì DS1307 vẫn đanghoạt động (nhưng không ghi và đọc được)
• SQW/OUT: một ngõ phụ tạo xung vuông (Square Wave / Output Driver), tần
số của xung được tạo có thể được lập trình Như vậy chân này hầu như không liênquan đến chức năng của DS1307 là đồng hồ thời gian thực
Trang 14• SCL (Serial Clock) và SDA (Serial Data): Là 2 đường giao xung nhịp và dữliệu của giao diện I2C.
Mỗi dây SDA hay SCL đều được nối với điện áp dương cử nguồn cấp thôngqua 1 điện trở kéo lên (Pull-Up Resistor) Sự cần thiết của các điện trở kéo lên này là
vì chân giao tiếp I2C của các thiết bị ngoại vi thường là dạng cực máng hở (Open Drain or Open - Collector) Giá trị của các điện trở này khác nhau tùy vào từng thiết bị
-và chuẩn giao tiếp, thường giao động trong khoảng 1KΩ đến 4.7KΩ
Có thể kết nối DS1307 bằng một mạch điện đơn giản như sau:
Hình 2.2 Mạch điện đơn giản sử dụng DS1307
Cấu tạo bên trong DS1307 bao gồm một số thành phần như mạch nguồn, mạchdao động, mạch điều khiển logic, mạch giao diện I2C, con trỏ địa chỉ và các thanh ghi(hay RAM) Sử dụng DS1307 chủ yếu là ghi và đọc các thanh ghi của chip này
Vì thế có 2 vấn đề cơ bản đó là cấu trúc các thanh ghi và cách truy xuất cácthanh ghi này thông qua giao diện I2C Như đã trình bày, bộ nhớ DS1307 có tất cả 64thanh ghi 8-bit được đánh địa chỉ từ 0 đến 63 (từ 00H đến 3FH theo hệ HexaDecimal)
Tuy nhiên, thực chất chỉ có 8 thanh ghi đầu (00H – 07H) là dùng cho chức
năng “đồng hồ” (RTC) còn lại 56 thanh ghi bỏ trống có thể được dùng chứa biến tạmnhư RAM nếu muốn 7 thanh ghi đầu tiên chứa thông tin về thời gian của đồng hồ bao
gồm: giây (SECONDS), phút (MINUETS), giờ (HOURS), thứ (DAY), ngày (DATE), tháng (MONTH) và năm (YEAR).
Việc ghi giá trị vào 7 thanh ghi này tương đương với việc “cài đặt” thời giankhởi động cho RTC Việc đọc giá trị từ 7 thanh ghi là đọc thời gian thực mà chip tạora