CHƯƠNG 1: TỔNG QUAN. 1.1 Đặt vấn đề. Ngày này nghành Điện Tử có vai trò rất quan trong trong cuộc sống của con người. Các hệ thống điện tử ngày nay rất đa dạng và đang thay thế các công việc hằng ngày của con người từ công việc đơn giản đến phức tạp như điều khiển tín hiệu giao thông, tưới nước tự động,…Các thiết kế có hệ thống tương tự, hệ thống số hay dùng vi điều khiển. Tuy nhiên trong lĩnh vực điện tử thông minh con người thường dùng hệ thống vi điều khiển hơn hệ thông tương tự và số bởi một số ưu điểm vượt trội mà hệ thống vi điều khiển mang lại: độ tin cậy cao, giá thành thấp, dể thiết kế lấp đặt và vận hành,… Để làm được điều đó chúng ta phải có kiến thức về vi điều khiển như hiểu được cấu trúc và tính chất của nó. Sau hơn 1 năm học tập tại Trường Đại học Trà Vinh với sự giảng dạy nhiệt tình của các giáo viên trong bộ môn Điện Tử - Viễn Thông em đã quyết định chọn đề tài “thiết kế mạch đồng hồ số” để làm đồ án môn học 1 với mong muốn áp dụng những kiến thức đã học vào thực tiển để phục vụ con người. 1.2 Giới hạn đề tài. Đề tài đồng hồ số rất đa dạng và phong phú có nhiều loại hình khác nhau dựa vào công dụng và độ phức tạp. Do tài liệu tiếng Việt còn nhiều hạn chế vì vậy đề tài này được giới hạn bởi: • •
• •
Kiến thức sử dụng các linh kiện thành thạo. Kiến thức sử dụng vi điều khiển được giáo viên hướng dẫn. Lập trình vi điều khiển được giáo viên hướng dẫn. Thiết kế mạch một lớp.
2
ĐỒ ÁN MÔN HỌC 1.
1.3 Phương pháp nghiên cứu. • Nghiên cứu độc lập: chủ động tìm kiếm các khái niệm về mạch đồng hồ số ở trên mạng, giáo trình,.. Tự thiết kế mạch in, tìm hiểu nguyên lý hoạt động của các vi điều khiển và linh kiện. • Phương pháp làm việc nhóm: cùng bạn bè tìm hiểu và giải đáp các thắc mắc về các nguyên lý hoạt động của mạch động hồ số. • Tự hoàn thiện sản phẩm: để có được một mạch đồng hồ số hoạt động ổn định phải trải qua nhiều giai đoạn, làm lại nhều lần và sự hổ trợ giái đáp các khó khăn của giáo viên hướng dẩn. 1.4 Ý nghĩa khoa học và thực tiễn: • Ý nghĩa khoa học: Đề xuất phương pháp thiết kế mạch mạch đồng hồ số tối ưu. Đề xuất phương pháp nghiên cứu và thiết kế mạch đồng hồ số bằng các IC khác nhau. • Ý nghĩa thực tiễn: Từ kết quả thực hiện đánh giá được độ ổn định và các yếu tố có thể xảy ra khi thực hiện. Kết quả thực hiện dùng để định hướng thiết kế và phát triển cho những sinh viên khác thực hiện đề tài.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI.
3
ĐỒ ÁN MÔN HỌC 1.
2.1 AT89S52. 2.1.1 Đặc tính: • 8K byte bộ nhớ có thể lập trình nhanh, có khả năng khi đến 1000 chu • • • • • • •
trình ghi xóa. 3 mức độ khóa bộ nhớ lập trình. 1 mạch dao động xung clock và bộ dao động ON-CHIP. Điện áp vận hành: 4.0-.5V. Tần số hoạt động: 0-33MHz. Bộ nhớ trong 128 RAM nội. Cổng: 32 I/O. Bộ đếm: 3 bộ 16 bit.
2.1.2 Mô tả. AT89S52 là họ IC vi điều khiển do hãng Amel sản xuất. Các sản phẩm amel thích hợp cho những ứng dụng điều khiển. Việc xử lý các byte và các toán số
học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ liệu nhanh trên Ram nội. Tập lệnh cung cấp một bảng tiện dụng của lệnh số học 8 bit gồm cả lệnh nhân và chia, nó cung cấp và hổ trợ mở rộng trên chip dùng cho những biến như một bit như kiểu dữ liệu riêng biệt cho phép quản lý và kiểm tra bit trực tiếp trong hệ thống điều khiển. 2.1.3 Sơ đồ chân.
4
ĐỒ ÁN MÔN HỌC 1.
Hình 2.1.3.a sơ đồ chân AT89S52 -
Chân 40 nối VCC, chân 20 nối GND Port (P0) gồm 8 chân từ 32–39 có chức năng xuất và nhập. Riêng P0, P2 còn có chức năng kết nối bộ nhớ mở rộng. Port 1 (P1) gồm 8 chân từ 1-8 có chức năng xuất và nhập. Port 3 (P3) : gồm 8 chân từ 10-17 Tích hợp các chức năng đặc biệt. Xem bảng:
Bit P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6
P3.7
Tên Chức năng RXT Ngõ vào dữ liệu nối tiếp. TXD Ngõ xuất dữ liệu nối tiếp. INT0 Ngõ vào ngắt cứng thứ 0. INT1 Ngõ vào ngắt cứng thứ 1. T0 Ngõ vào của Timer/Counter 0. T1 Ngõ vào của Timer/Counter 1. WR Tín hiệu ghi dữ liệu bộ nhớ ngoài. RD Tín hiệu đọc bộ nhớ dữ liệu ngoài. Bảng 2.1.3.b các chức năng của chân AT89S52.
- Chân Reset (RST): ngõ vào RST ở chân số 9 dùng để thiết lập trạng thái ban đầu cho VDK.
5
ĐỒ ÁN MÔN HỌC 1.
- Chân EA có chức năng chọn bộ nhớ chương trình: + Khi điện áp logic 1 (5V) thì VDK thực hiện lấy chương trình bộ nhớ nội. + Khi điện áp logic mức 0 (0V) thì VDK thực hiện lấy chương trình bộ nhớ nội. - Chân Xtal1 và Xtal2 nằm ở vị trí 18 và 19 được nối với xung clock bên ngoài để hoạt động thường được gắn với thạch anh hay tụ để xung clock ổn định. Về cơ bản thì các chip nêu trên giống nhau, chỉ có một số tính năng được cải tiến thêm. Các phiên bản về sau càng có nhiều khối tính năng đặc biệt hơn. Chúng ta xem bảng so sánh một số loại phổ biến như dưới đây.
Bảng 2.1.3.c sơ đồ so sánh họ 89xx
2.2 IC thời gian thực DS1307.
6
ĐỒ ÁN MÔN HỌC 1.
2.2.1 Giới thiệu. IC thời gian thực (RTC) DS1307 có thể đếm giờ, phút, giây, ngày, tháng, năm. Giao tiếp với vi điều khiển thông qua chuẩn I2C, va đóng vai trò là slave khi kết nối bus I2C. Có thể đếm thời gian qua định dạng 24 giờ với chỉ thị AM/PM. Ngoài ra bên trong chip còn có bộ dò phát hiện mất nguồn và tự động chuyển sang chế độ sử dọng nguồn dự phòng.
2.2.1.a: Sơ đồ chân. Chân
1 2 3 4 5 6 7 8
Tên X1 X2 Vbat GND SDA SCL SQW/UO T VCC
Chức năng Kết nối thạch anh 32KHz làm nguồn dao động. Kết nối cực dương pin dự phòng 3V. Nối đất. Chân dữ liệu khi kết nối đến bus I2C. Chân nhận xung Clock khi kết nối bus I2C. Xuất ngỏ xung vuông, tần số thay đổi từ 1,4,8,32 KHz Nguồn chính 5V Bảng 2.2.1.b: chức năng của các chân
2.2.2 Lấy thông tin về thời gian và lịch.
7
ĐỒ ÁN MÔN HỌC 1.
Bảng 1.xx là địa chỉ các thanh ghi RAM và thanh ghi RTC của DS1307.Thanh ghi RTC có địa chỉ từ 00-07h. Các thanh RAM chứa địa chỉ từ 08h-3Fh. Các thông tin về thời gian và lịch thu được bằng cách đọc các byte trong thanh ghi tương ứng. Thời gian và lịch được thiết lập hoặc khởi tạo bằng cách viết các byte thích hợp. Lưu ý dữ liệu thời gian chứa trong thanh ghi điều dịch theo dạng BCD, các thứ trong tuần thay đổi lúc nửa đêm dưới dạng các con số 1 là chủ nhật, 2 là thứ 2 và tương ứng đến thứ 7. Khi lần đầu IC được cấp nguồn ghi thời gian và lịch reset về 01/01/00 01 00:00:00. (MM/DD/YY HH/MM/SS). 00h 01h 02h 03h 04h 05h 06h 07h 08h-3Fh
Giây Phút Giờ
Thứ Ngày Tháng Năm Thanh ghi điều khiển Vùng RAM lưu trữ 56x8 Bảng 2.2.2.a: Thông tin về thời gian và lịch.
2.2.3 Chi tiết các thanh ghi.
8
ĐỒ ÁN MÔN HỌC 1.
Bảng 2.2.3.a: chi tiết các thanh ghi. Thanh ghi giây ( địa chỉ 00h): 4 bit thấp chứa hàng đơn vị, 3 bit cao chứa hàng chục của giây. Ngoài ra BIT 7 có tên CH, nếu bit này được thiết lập bằng 1 thì đồng hồ không hoạt động. Thanh ghi phút ( địa chỉ 01h): 4 bit thấp chứa hàng đơn vị, 3 bit cao chứa hàng chục của phút. Bit này luôn thiết lập bằng 0. Thanh ghi giờ ( địa chỉ 02h): 4 bit thấp của thanh ghi chứa đơn vị của giờ, bit thứ 6 quy định chế độ 12h ( bit 6 = 1) hoặc 24h ( bit 6 = 0). Nếu ở chế độ 24h thì bit 4, bit 5 quy định hàng chục của giờ. Nếu chế độ 12h thì bit 4 quy định hàng chục, bit 5 quy định PM là buổi chiều AM là buổi sáng. Thanh ghi thứ ( địa chỉ 03h): 3 bit đầu quy định thứ trong tuần ( 1 là Chủ nhật, 2 là Thứ 2,…) các bit còn lại luôn bằng 0. Thanh ghi ngày ( địa chỉ 04h): 4 bit đầu lưu trữ hàngđơn vị của ngày, bit 4 và 5 quy định hàng chục. Bit 6 và bit 7 luôn bằng 0.
Thanh ghi tháng ( địa chỉ 05h): 4 bit đầu lưu trữ hàng đơn vị của tháng, bit 4 quy định hàng chục. Các bit còn lại bằng 0.
9
ĐỒ ÁN MÔN HỌC 1.
Thanh ghi năm ( địa chỉ 06h): 4 bit thấp lưu hàng đơn vị va 4 bit cao lưu hàng chục của năm ( từ 00-99). Bit 7 UOT
Bit 6 0
Bit 5 Bit 4 Bit 3 Bit 2 0 SQWE 0 0 Bảng 2.2.3.b: thanh ghi control.
Bit 1 RS1
Bit 0
RS0
Bit 7 UOT ( Uotput Control): thanh ghi điều khiển ngõ ra. Ảnh hưởng đến chân số 7 ( chân SQW/UOT). Khi sóng vuông xuất ra chân này bị disable, nếu Bit UOT = 1 khi đó chân số 7 ở mức cao, ngược lại Bit UOT = 0 khi đó chân số 7 ở mức thấp Bit 6: luôn đọc bằng 0. Bit 5: luôn đọc bằng 0. Bit 4 SQWE (Square – Wave Enable): khi bit này được thiết lập bằng 1, cho phép xuất ra xung vuông tại chân số 7. Tần số xng vuông phụ thuộc vào chân RS0,RS1. Khi tần số xung vuông được thiết lập bằng 1Hz, các thanh ghi thời gian được cập nhật tại xuống của xung vuông. Khi lần đầu khởi tạo cập nhật thiết bị, Bit này bằng 0. Bit 1 và 0: lựa chọn tốc độ (RS[1:0]). Những Bits này điều khiển tần số sóng vuông, khi sóng vuông được phép.
RS 1 0 0 1 1 X X
RS0
Sóng vuông ngõ ra SQW/UOT
SQWE
UOT
0 1 0 1 X X
1Hz 4.096kHz 8.192kHz 32.678kHz 0 1
1 1 1 1 0 0
X X X X 0 1
10
ĐỒ ÁN MÔN HỌC 1.
Bảng 2.2.3.c: Bits điều khiển tần số sóng xung vuông.
2.3 Led 7 đoạn anode chung. 2.3.1 Giới thiệu. Led 7 đoạn là 1 linh kiện rất phổ dụng, được dùng như là 1 công cụ hiển thị đơn giản nhất. Trong LED 7 thanh bao gồm ít nhất là 7 con LED mắc lại với nhau , vì vậy mà có tên là LED 7 đoạn là vậy, 7 LED đơn được mắc sao cho nó có thể hiển thị được các số từ 0 - 9, và 1 vài chữ cái thông dụng, để phân cách thì người ta còn dùng thêm 1 led đơn để hiển thị dấu chấm (dot). LED 7 thanh dù có nhiều biến thể nhưng tựu chung thì cũng chỉ vẫn có 2 loại đó là : + Chân Anode chung (chân + các led mắc chung lại với nhau). + Chân Katode chung (Chân - các led được mắc chung với nhau). Điện áp hoạt động: 2v. Dòng điện hoạt động: 2mA. 2.3.2 Sơ đồ chân.
11
ĐỒ ÁN MÔN HỌC 1.
Hình 2.3.2.a: sơ đồ cấu tạo led anode chung.
Hình 2.3.2.b: sơ đồ chân led 7 đoạn anode chung.
Châ n
1
2
3
4
5
6
Mã LED
LE DE
LE DD
CHÂ N VCC
LE DC
LE D DP
LE DB
7
8
LE CHÂ DA N VCC
9
10
LE DF
LE DG
Bảng 2.3.2.c: thứ tự các chân LED.
12
ĐỒ ÁN MÔN HỌC 1.
2.3.3 Mã led 7 đoạn. Mã LED 7 đoạn có Anode chung, muốn thanh nào sáng ta xuất ra chân Cathode của LED đơn đó mức 0. Từ đó ta có bảng giải mã LED 7 đoạn Anode chung như sau:
Bảng 2.3.2.d: giải mã led 7 đoạn Anode chung. 2.3.4 Phương pháp quét led. Quét led 7 đoạn thì việc hiển thị kí tự mã lên nó khác với việc hiển thị lên 1 led 7 đoạn vì nó liên quan đến việc quét tần số và thời gian hiển thị của 1 led. Cụ thể phương pháp quét hiển thị lên 2 led 7 đoạn loại anode chung, việc hiển thị lên nhiều led 7 đoạn thông qua sơ đồ 2.3.4a,b.
13
ĐỒ ÁN MÔN HỌC 1.
Sơ đồ 2.3.4.a: quét 2 led 7 đoạn.
Sơ đồ 2.3.4.b: quét 4 led 7 đoạn.
14
ĐỒ ÁN MÔN HỌC 1.
So sánh 2 giản đồ ta nhận thấy bản chất của phương pháp quét led là trong một thời điểm chỉ có 1 led 7seg sáng. Hay nói cách khác là trong một chu kì T các led thay nhau lần lượt sáng. Điều đó sẽ làm cho việc đưa mã hiển thị ra led một cách dể dàng, lập trình ngắn gọn và đở tiêu tốn nhiều công suất và vi điều khiển sẽ đãm nhận nhiệm vụ này thông qua ngôn ngữ lập trình. -
Nếu quét 2 led thì 2 chân của vi điều khiển sẽ đảm nhận nhiệm vụ đóng mở cung cấp điện cho led, 8 chân còn lại sẽ đưa data ra led.
-
Nếu quét 4 led thì 4 chân của vi điều khiển sẽ đảm nhận nhiệm vụ đóng mở cung cấp điện cho led, 8 chân còn lại sẽ đưa data ra led.
-
Tương tự cho số led lớn hơn 4, phải đảm bảo đủ chân dùng cho vi điều khiển và tần số quét led phù hợp.
15
ĐỒ ÁN MÔN HỌC 1.
Sơ đồ 2.3.4.c: lưu đồ thuật toán quét 7 led trở lên. -
Giải thích lưu đồ thuật toán:
+ Ban đầu gán cho số đếm có giá trị là 0 rồi tiến hành giải mã số đếm đó. + Việc giải mã số đếm nhằm giúp chia số đếm đó thành 2 số hàng chục và hàng đơn vị riêng biệt để cho tiện việc gọi mã hiển thị trông RAM của vi xử lý tương ứng. + Tiếp theo ta sẻ cho hiển thị mã số hàng đơn vị và cho Led 2 sáng rồi trì hoãn 1 thời gian. + Tiếp theo ta sẻ cho hiển thị mã số hàng chục và cho Led 1 sáng rồi trì 16
ĐỒ ÁN MÔN HỌC 1.
hoãn 1 thời gian. Sau khi cho hiển thị xong 2 số hàng chục và hàng đơn vị thì tăng giá trị biến đếm lên 1 đơn vị rồi so sánh giá trị biến đếm sau khi tăng với 100. nếu biến đếm chưa bằng 100 thì tiếp tục giải mã và hiển thị. nếu biến đếm =100 thì ta cho biến đếm=0 và tiếp tục chu kì đếm tiếp theo 2.4 Thạch anh. Thạch anh là bộ dao động khá ổn định để tạo ra tần số dao động cho vi điều khiển. Đa số các mạch điều khiển đèn Led đều dùng thạch anh có thể là Thạch anh 12Mhz, 24Mhz, 32Mhz….mỗi loại sẽ cho ra 1 xung nhịp khác nhau. Thạch anh sử dụng rất rộng rãi, ứng dụng của thạch anh trong điện tử đa phần để tạo ra tần số được ổn định vì tần số của thạch anh tạo ra rất ít bị ảnh hưởng bởi nhiệt độ hơn là các mạch dao động RC….Trong vi điều khiển bắt buộc phải có thạch anh (trừ các loại có dao động nội) vì xét chi tiết thì VDK có CPU, timer,… CPU bao gồm các mạch logic và mạch logic muốn hoạt động cũng cần có xung clock, còn timer thì gồm các dãy FF cũng cần phải có xung để đếm. Tùy loại VDK mà bao nhiêu xung clock thì ứng với 1 chu kì máy, và với mỗi xung clock VDK sẽ đi làm 1 công việc nhỏ ứng với lệnh
đang thực thi. Để chạy các câu lệnh trong ic vi điều khiển, Bạn cần tạo ra xung nhịp. Tần số xung nhịp phụ thuộc vào thạch anh gắn trên chân 18, 19. Với thạch anh 12MHz, Bạn sẽ có xung nhịp 1MHz, như vậy chu kỳ lệnh sẽ là 1μs. Để tăng độ ổn định tần số, người ta dùng thêm 2 tụ nhỏ C6, C7 (33pF x2), tụ bù nhiệt ổn
tần.
Điều này cho thấy bạn cũng có thể thay đổi nhịp nhấp nháy của đèn nếu dùng thạch anh có tần số khác.
17
ĐỒ ÁN MÔN HỌC 1.
CHƯƠNG 3 : THIẾT KẾ VÀ THI CÔNG 3.1 Mạch nguyên lý.
18
ĐỒ ÁN MÔN HỌC 1.
Hình 3.1.a mạch mô phỏng trên proteus Nguyên lý hoạt dộng của mạch đồng hồ: Khi cấp điện áp vào các linh kiện thì chân số 5,6( lần lược là chân dữ liệu và chân xung) của DS1307 nối với ngõ vào T0 ,T1( chân đếm time/couter) của VDK sau khi nhận được tín hiệu từ DS1307 thì VDK sẽ đảm nhiệm xuất ra nguồn từ chân 34-39 nối với transistor
để kích 1 điện áp nối tới chân VCC của led 7 đoạn ( chân 3 hoặc 8) để led 7 đoạn hiển thị được các số thì VDK phải làm thêm nhiệm vụ xuất ra các tín hiệu từ Port 2 ( chân 21-28) để hiển thị, ví dụ để hiển thị số cho led cuối cùng đó chính là led giây từ 0-9 : //Định nghĩa tên thay thế cho Port2 của 89S52 nối với led 7 thanh như trên mô phỏng #define Led7_Data P2 // Khối hàm tạo trễ thời gian cỡ mini giây void delay_ms { unsigned int i,j; for(i=0;i{ for(j=0;j<125;j++);
19
ĐỒ ÁN MÔN HỌC 1.
} } // Hàm chính main void main(void) { unsigned char i; while(1) { // Dùng vòng lặp for để sáng lần lượt từng chữ số từ 0->9
//Lần lượt thay đổi giá trị xuất ra led 7 thanh for(i=0;i<10;i++) { Led7_Data=chuso[i]; delay_ms(1000); } } } Có 4 nút nhấn : - Nút RST được nối với chân số 9 của VDK. - Chân chuyển đổi từ giờ, phút, giây nối với chân 14 Port 3 T0. - Chân tăng số được nối với chân 15 Port 3 T1. - Chân giảm số được nối với chân 16 Port 3 WR. Lưu ý: Nên sử dụng pin dự phòng cho DS1307 nếu trong trường hợp thì DS1307 sẽ tự động chuyển đổi sang Pin dự phòng.
20
ĐỒ ÁN MÔN HỌC 1.
Bảng 3.1.b sơ đồ điều khiển. Giải thích: Sau khi chương trình bắt đầu hoạt động hệ thống sẽ giải mã led 7 đoạn và quét led. Sau đó khởi tạo đường truyền I²C và đọc thời gian thực DS 1307 hiển thị ra led 7 đoạn. Khi thời gian bắt đầu tăng và mỗi lần tăng tiến hành kiểm tra 1 lần khi thời gian lớn hơn 59 thì sẽ trở về 00 sau đó tiếp tục tăng. Giờ và phút tương tự như giây.
21
ĐỒ ÁN MÔN HỌC 1.
3.2 Sơ đồ mạch in.
Sơ đồ 3.2 Sơ đồ mạch in đồng hồ số. Mạch có sử dụng dây cở 8th đi qua các led nên cẩn thận khi ủi rửa. Mạch có sử dụng dây nối. Danh sách linh kiện sử dụng: • • • • • • • • • •
Chip 89S52 Transistor C1815 DS1307 7805 6 led 7 đoạn anode chung 7 điện trở 330, 7 điện trở 4k7 Thạch anh 12Mhz, 32Mhz Tụ 100u và 103 4 nút nhấn
Đế và Pin C-mos
22
ĐỒ ÁN MÔN HỌC 1.
3.3Mạch thực tế.
Hình 3.3 mạch đồng hồ thực tế.
23
ĐỒ ÁN MÔN HỌC 1.
CHƯƠNG 4: TỔNG KẾT. Qua đề tài này chúng em tìm hiểu được nguyên lý hoạt động của chip AT89S52 , mạch thời gian thực DS 1307, Led 7 đoạn,… Kết quả thực hiện 4.1 Ưu điểm: • Mạch không phức tạp. • Linh kiện được tích hợp sẵn. 4.2 Nhược điểm: • Mạch in vẽ khá phức tạp. • Lập trình tương đối khó. • Hoạt động chưa ổn định so với thực tế. 4.3 Hướng phát triển của đề tài: Trong thời đại khoa học hiện đại, khi công nghệ không ngừng phát triển con người luôn bận rộn với những vấn đề xung quanh cuộc sống, để phục vụ cho
con người thì việc tạo ra sản phẩm giúp cho con người tiết kiệm được thời gian là một điều cần thiết, vì vậy chúng tôi dự định tạo ra mạch đồng hồ báo thức. Không ngừng nổ lực để thực hiện những đề tài nâng cao khả năng tư duy của bản thân thì hãy quyết định mở rộng mạch đồng hồ số hiển thị giờ, phút, giây thành đồng hồ vạn niên hiển thị thêm ngày tháng năm và tích hợp hiển thị nhiệt độ,…