ĐỒ án môn học 1×đồ án môn học 1 dien tu×đồ án môn học 1 điện tử viễn thông×đồ án môn học 1 ngành điện tử×đồ án môn học 1 điện công nghiệp×đồ án môn học 1 spkt× Từ khóa đồ án môn học 1phiếu nhận đồ án môn học 1 2do an mon hoc luoi dien 1đồ án môn học chi tiết máy chương 1đồ án môn học lưới điện 1
Trang 11
Mục lục
CHƯƠNG 1: TỔNG QUAN 3
1.1 Đặt vấn đề 3
1.2 Giới hạn đề tài 3
1.3 Phương pháp nghiên cứu 4
1.4 Ý nghĩa khoa học và thực tiễn: 4
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI 5
2.1 AT89S52 5
2.1.1 Đặc tính: 5
2.1.2 Mô tả 5
2.1.3 Sơ đồ chân 5
2.2 IC thời gian thực DS1307 8
2.2.1 Giới thiệu 8
2.2.2 Lấy thông tin về thời gian và lịch 9
2.2.3 Chi tiết các thanh ghi 9
2.3 Led 7 đoạn anode chung 12
2.3.1 Giới thiệu 12
2.3.2 Sơ đồ chân 12
2.3.3 Mã led 7 đoạn 13
2.3.4 Phương pháp quét led 14
2.4 Thạch anh 16
CHƯƠNG 3 : THIẾT KẾ VÀ THI CÔNG 18
3.1 Mạch nguyên lý 18
3.2 Sơ đồ mạch in 21
3.3 Mạch thực tế 22
CHƯƠNG 4: TỔNG KẾT 23
4.1 Ưu điểm: 23
4.2 Nhược điểm: 23
4.3 Hướng phát triển của đề tài: 23
Trang 22
TÀI LIỆU THAM KHẢO: 24 PHỤ LỤC 25
Trang 3tự, 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
Trang 44
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
Trang 5
2.1.3 Sơ đồ chân
Trang 66
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
bảng:
P3.6 WR Tín hiệu ghi dữ liệu bộ nhớ ngoài
Trang 77
P3.7 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
+ 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
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
Trang 82.2.1.a: Sơ đồ chân
Chân Tên Chức năng
1 X1 Kết nối thạch anh 32KHz làm nguồn dao động
3 Vbat Kết nối cực dương pin dự phòng 3V
5 SDA Chân dữ liệu khi kết nối đến bus I2C
6 SCL Chân nhận xung Clock khi kết nối bus I2C
7 SQW/UOT Xuất ngỏ xung vuông, tần số thay đổi từ 1,4,8,32 KHz
Bảng 2.2.1.b: chức năng của các chân
Trang 99
2.2.2 Lấy thông tin về thời gian và lịch
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)
2.2.3 Chi tiết các thanh ghi
Trang 1010
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
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)
Trang 1111
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Bảng 2.2.3.b: thanh ghi control
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
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
Trang 12có 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)
Trang 13LED
F
LED
G Bảng 2.3.2.c: thứ tự các chân LED
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
Trang 1414
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
Sơ đồ 2.3.4.a: quét 2 led 7 đoạn
Sơ đồ 2.3.4.b: quét 4 led 7 đoạn
Trang 1515
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
Sơ đồ 2.3.4.c: lưu đồ thuật toán quét 7 led trở lên
Trang 1616
- 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ì 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
Trang 1717
Để 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
Trang 18transistor để 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
Trang 19- 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
Trang 2020
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
Trang 2222 3.3 Mạch thực tế
Hình 3.3 mạch đồng hồ thực tế
Trang 2323
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,…
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 độ,…
Trang 2424
TÀI LIỆU THAM KHẢO:
0-9-tren-led-7-thanh-dung-keil-c.727/
http://mcu.banlinhkien.vn/threads/co-ban-tao-ma-led-7-thanh-va-hien-thi-so-
http://www.echipkool.com/2013/03/huong-dan-lam-mach-dong-ho-thoi-gian.html
https://www.slideshare.net/kythuatviengiap/vi-dieu-khien-ung-dung-at89s52http://www.hocavr.com/index.php/app/ds1307
http://arduino.vn/bai-viet/214-cach-lap-trinh-nhieu-con-led-7-doan-loai-don
Trang 2525
PHỤ LỤC
Code đồng hồ thời gian thực:
//DONG HO SU DUNG TIMER
//PHAN CUNG: 89c51; THACH ANH: 12MHZ ;
//SU DUNG 6 LED 7 DOAN GIO : PHUT : GIAY
/************KHAI BAO THU VIEN, DINH
Trang 2626
unsigned char led7_data[10] =
{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 }; //Decimal to Led7seg
unsigned char t_view,time,index,F_set,B_nhay,get_t ;
unsigned char hour,sec,min;
/************KHAI BAO HAM, CHUONG TRINH
CON*********************************************** ********/ void set_main(void); // Chuong trinh khoi tao main
void setup_timer(void); // Chuong trinh cai dat timer 1 va 0
void delay(unsigned int time); // Delay
void Fix_time(void); // Kiem tra va hieu chinh gia tri cua gio,phut,giay void Keypad(void); // Kiem tra xu ly phim nhan
void T1_ISR(void); //ngat timer 1 phuc vu nhay led
void T0_ISR(void); // Dung ngat timer 0 de quet led
/************CAC CHUONG TRINH
Trang 28unsigned int temp,ret;
I2C_start(); /* Start i2c bus */
I2C_write(DS1307_ID); /* Connect to DS1307 */
I2C_write(addr); /* Request RAM address on DS1307 */
I2C_start(); /* Start i2c bus */
I2C_write(DS1307_ID+1); /* Connect to DS1307 for Read */
Trang 2929
ret = I2C_read(); /* Receive data */
I2C_stop();
//*********************************************
temp = ret; /*BCD to HEX*/
ret = (((ret/16)*10)+ (temp & 0x0f)); /*for Led 7seg*/
temp = dat ; /*for Led 7seg*/
dat = (((dat/10)*16)|(temp %10));
//**********************************************
I2C_start(); /* Start i2c bus */
I2C_write(DS1307_ID); /* Connect to DS1307 */
I2C_write(addr); /* Request RAM address on DS1307 */
I2C_write(dat); /* Connect to DS1307 for Read */
Trang 3131
}
void Keypad(void) // Kiem tra phim nhan
{
if(!Set_key){ //phim Set duoc nhan ?
F_set++; // Bien F_set co gia tri tu 0->2
Trang 3636
Trang 3737
Trang 3838