Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
1,4 MB
Nội dung
ĐỀ TÀI: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ TRƯỜNG ĐẠI HỌC VINH KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ Sinh viên thực hiện: BÙI VĂN THUYÊN Lớp 48K ĐTVT Giảng viên hướng dẫn: THS ĐẶNG THÁI SƠN NGHỆ AN, 01 2012 SVTH: Bùi Văn Thuyên I GVHD: THS Đặng Thái Sơn ĐỀ TÀI: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ MỤC LỤC MỤC LỤC I Danh mục hình vẽ IV Danh mục bảng biểu V CHƯƠNG I: MỞ ĐẦU 1.1 Khái quát vấn đề 1.2 Lịch sử giải vấn đề 1.3 Mục đích yêu cầu đề tài CHƯƠNG II: CƠ SỞ LÝ THUYẾT A.ĐO NHIỆT ĐỘ 2.1 Giới thiệu vi điều khiển 89s52 2.1.1 Tổng quan 89S52 2.1.2 Mô tả chân 89S52 2.1.2 Mô tả chân 89S52 2.1.2.1 Sơ đồ chân 89S52 2.1.2.2 Chức chân 89S52 2.1.3 Tổ chức nhớ bên 89S52 2.1.3.1 RAM đa dụng 2.1.3.2 RAM có thể định địa bit 2.1.3.3 Các bank ghi 2.1.3.4 Các ghi có chức đặc biệt 2.1.3.4.1 Thanh ghi trạng thái chương trình (PSW: Program Status Word) 2.1.3.4.2 Thanh ghi TIMER 11 2.1.3.4.3 Thanh ghi ngắt (INTERRUPT) 12 2.2 Sơ lược cảm biến nhiệt lm35 16 2.3 Khái quát ADC0804 17 2.3.1 Mô tả chân ADC0804 17 2.3.2 Tổ chức bên ADC0804 20 2.3.2.1 Quá trình chuyển đổi chip ADC0804 20 2.3.2.2 Quá trình đọc liệu từ chip ADC0804 21 B ĐỒNG HỒ THỜI GIAN THỰC 22 2.4 Tổng quan DS1307 22 2.4.1 Sơ đồ chân DS1307 22 SVTH: Bùi Văn Thuyên II GVHD: THS Đặng Thái Sơn ĐỀ TÀI: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ 2.4.2 Cấu tạo bên DS1307 23 2.5 Khái quát giao diện I2C 27 2.6 Mode truyền liệu DS1307 AT89S52 31 2.6.1 Mode Data Write (chế độ ghi liệu) 31 2.6.2 Mode Data Read (chế độ dọc liệu) 32 CHƯƠNG III: THIẾT KẾ PHẦN CỨNG 34 A ĐO NHIỆT ĐỘ 34 3.1 Sơ đồ chức khối 34 3.1.1 Sơ đồ khối 34 3.1.2 Chức khối 34 3.1.2.1 Cảm biến nhiệt khuếch đại 34 3.1.2.2 Biến đổi ADC khối xử lý trung tâm (CPU_1) 34 3.1.2.3 Khối hiển thị thứ sử dụng LED đoạn 35 3.2 Sơ đồ chi tiết nguyên tắt hoạt động 35 3.2.1 Sơ đồ chi tiết 35 3.2.1.1 Cảm biến nhiệt khuếch đại 35 3.2.1.2 Biến đổi ADC khối xử lý trung tâm (CPU_1) 37 3.2.1.3 Khối hiển thị thứ sử dụng LED đoạn 38 3.2.2 Nguyên tắt hoạt động 38 B ĐỒNG HỒ THỜI GIAN THỰC 39 3.3 Sơ đồ chức khối 39 3.3.1 Sơ đồ khối 39 3.3.2 Chức khối 39 3.3.2.1 Khối thời gian thực 39 3.3.2.2 Khối xử lý trung tâm (CPU) 39 3.3.2.3 Khối âm hiển thị thứ 40 3.4 Sơ đồ chi tiết nguyên tắt hoạt động 40 3.4.1 Sơ đồ chi tiết 40 3.4.1.1 Khối thời gian thực (DS1307) 40 3.4.1.2 Khối xử lý trung tâm (CPU_2) 41 3.4.1.4 Khối âm 42 3.4.2 Nguyên tắt hoạt động 42 CHƯƠNG IV: THIẾT KẾ PHẦN MỀM 43 A ĐO NHIỆT ĐỘ 43 4.1 Lưu đồ giải thuật chương trình 43 4.1.1 Giải thuật 43 SVTH: Bùi Văn Thuyên III GVHD: THS Đặng Thái Sơn ĐỀ TÀI: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ 4.1.1.1 Giải thuật chương trình 43 4.1.1.2 Giải thuật chương trình “ TRUY_CAP_ADC” 43 4.1.2 Lưu đồ 43 4.1.2.1 Lưu đồ chương trình 43 4.1.2.2 Lưu đồ chương trình 43 4.1.2.2.1 Lưu đồ chương trình “ TRUY_CAP_ADC” 44 4.1.2.2.2 Lưu đồ chương trình “HIENTHI_1” 44 4.2 Phần mềm nhiệt độ (code_1) 45 B ĐỒNG HỒ THỜI GIAN THỰC 46 4.3 Lưu đồ giải thuật chương trình 46 4.3.1 Giải thuật 46 4.3.1.1 Giải thuật chương trình 46 4.3.1.2 Giải thuật chương trình “WRITE_CLOCK” 46 4.3.1.3 Giải thuật chương trình “READ_CLOCK” 46 4.3.2 Lưu đồ 47 4.3.2.1 Lưu đồ chương trình 47 4.3.2.2 Lưu đồ chương trình 48 4.3.2.2.1 Lưu đồ chương trình “WRITE_CLOCK” 48 4.3.2.3.2 Lưu đồ chương trình “READ_CLOCK” 48 4.3.2.3.3 Lưu đồ chương trình ghi byte vào DS1307“SEND_BYTE” 49 4.3.2.3.4 Lưu đồ chương trình đọc byte từ DS1307“READ_BYTE” 50 4.3.2.3.5 Lưu đồ chương trình “ALARM_CLOCK_TEST” 51 4.3.2.3.6 Lưu đồ chương trình “TAT_MO_CHUONG” 52 4.3.2.3.7 Lưu đồ chương trình “HIEU_UNG_CHINH” 53 4.3.2.3.8 Lưu đồ chương trình “HIENTHI_2” 54 CHƯƠNG V: KẾT LUẬN VÀ ĐỀ NGHỊ 56 5.1 Kết luận 56 5.2 Đề nghị 56 TÀI LIỆU THAM KHẢO 57 PHỤ LỤC 1: Code chương trình thời gian thực 58 PHỤ LỤC 2: Code chương trình đo nhiệt độ 69 SVTH: Bùi Văn Thuyên IV GVHD: THS Đặng Thái Sơn ĐỀ TÀI: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ Danh mục hình vẽ Hình 2.1 Sơ đồ khối AT89S52 Hình 2.2 Sơ đồ chân 89S52 Hình 2.3 Mạch reset Hình 2.4 Dao động Hình 2.5 LM35 Hình 2.6 ADC0804 Hình 2.7 Tổ chức bên ADC 0804 Hình 2.9 Quá trình chuyển đổi chip ADC0804 Hình 2.10 Quá trình đọc liệu từ chip ADC0804 Hình 2.11Hai gói cấu tạo chip DS1307 Hình 2.12 Sơ đồ khối bên chip DS1307 Hình 2.13 Mô hình I2C Hình 2.14 Bit ACK/NACK giao diện I2C Hình 2.15 Quá trình truyền nhận bit liệu Hình 2.16 Dữ liệu truyền giao diện I2C Hình 2.17 Chế độ data write Hình 2.18 Chế độ Data Read Hình 3.1 Sơ đồ khối mạch đo nhiệt độ Hình 3.2 Sơ đồ chi tiết mạch cảm biến nhiệt độ Hình 3.3 Sơ đồ mạch chi tiết bộ biến đổi ADC và CPU Hình 3.4 Sơ đồ khối thời gian thực Hình 3.5 Sơ đồ chi tiết khối thời gian thực Hình 3.6 Sơ đồ chi tiết khối CPU_2 Hình 3.7 Sơ đồ chi tiết khối âm Hình 4.1 Lưu đồ thuật toán chương trình đo nhiệt độ Hình 4.2 Lưu đồ chương trình truy cập ADC Hình 4.3 Lưu đồ chương trình truy cập hien_thi_1 Hình 4.4 Lưu đồ chương trình thời gian thực SVTH: BÙI VĂN THUYÊN IV GVHD: THS ĐẶNG THÁI SƠN ĐỀ TÀI: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ Hình 4.5 Lưu đồ chương trình Write_clọck Hình 4.6 Lưu đồ chương trình Read_clọck Hình 4.7 Lưu đồ chương trình ghi 1byte vào DS1307 Hình 4.8 Lưu đồ chương trình đọc1byte vào DS1307 Hình 4.9 Lưu đồ chương trình Alarm_clọck Hình 4.10 Lưu đồ chương trình tắt mở chuông Hình 4.11 Lưu đồ chương trình hiệu ứng chỉnh Hình 4.12 Lưu đồ chương trình hiển thị Danh mục bảng biểu Bảng 2.1 Chân chức port Bảng 2.2 Bản đồ bộ nhớ Data bên Chip 89S52 Bảng 2.3 Chức bit trạng thái chương trình Bảng 2.4 Thanh ghi truy xuất Bảng 2.5 Tóm tắt ghi IP Bảng 2.6 Thanh ghi IE Bảng 2.7 Các loại cờ ngắt Bảng 2.8 Vector ngắt Bảng 2.9 Bảng điện áp tham chiếu Vref Bảng2.10 Tổ chức bộ nhớ DS1307 Bảng 2.11 Tổ chức dạng bit DS1307 Bảng 2.12 Thanh ghi điều khiển DS1307 Bảng 2.13 Cấu trúc bit ghi điều khiển DS1307 SVTH: BÙI VĂN THUYÊN V3 GVHD: THS ĐẶNG THÁI SƠN ĐỀ TÀI: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ CHƯƠNG I: MỞ ĐẦU 1.1 Khái quát vấn đề Trong giai đoạn với phát triển vượt bật công nghệ Nano hàng loạt IC chế tạo Những IC thông minh nhiều so với IC trước đặc biệt có thể ghi/xóa liệu vào cách dể dàng Vì sử dụng nhiều thiết bị Điện - Điện Tử ngày thể chất ưu việt mình Điển hình dòng IC 8051/8052 Với đời dòng IC làm thúc đẩy phát triển nhũng IC thời gian thực DS1307, DS12887 Cùng với phát triển khoa học kỹ thuật góp phần nâng cao đời sống người Cũng vì mà người cần phải biết xác ngày, để thu xếp việc làm cho hợp lý Xuất phát từ thực tiển em đến định “Thiết kế Đồng Hồ Vạn Niên Điện Tử” Nhằm đáp ứng nhu cầu ham muốn học hỏi thân, góp phần nâng giá trị mạch điện tử đời sống người 1.2 Lịch sử giải vấn đề Đề tài trước tơi thực có số sinh viên trường đại học Bách Khoa Thành Phố Hồ Chí Minh thực kết chưa mong muốn vì mạch chạy không ổn định thường hay bị “treo” Vì tơi mong muốn tạo thiết bị với nhiều thuận lợi cho người dùng độ tin cậy cao 1.3 Mục đích yêu cầu đề tài Trong luận án sử dụng IC thời gian thực (DS1307) kết hợp với vi điều khiển 89S52 để tạo thành giao diện I2C, 89S52 có nhiệm vụ đọc/ghi (giờ, phút, giây, thứ, ngày… thời gian báo thức) từ chip DS1307 Khi SVTH: BÙI VĂN THUYÊN GVHD: THS ĐẶNG THÁI SƠN ĐỀ TÀI: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ thời gian báo thức trùng với thời gian thực thì loa sẽ phát âm phút Ngồi mạch cịn sử dụng cảm biến nhiệt (LM35), ngỏ cảm biến đưa qua biến đổi tương tự sang số (ADC0804), liệu 89S52 đọc từ ADC0804 hiển thị kết led đoạn Từ có thể suy mục đích u cầu đề tài sau: Mạch hiển thị giờ, phút, giây, thứ, ngày, tháng, năm cách xác Đo nhiệt độ hiển thị led đoạn Khi thời gian báo thức trùng với thời gian thực thì loa phải phát âm báo thức Giá thành sản phẩm không đắc Dựa vào yêu cầu đề tài phân thành khối lớn: o Khối A: Đo nhiệt độ hiển thị kết led đoạn o Khối B: Đồng hồ thời gian thực SVTH: BÙI VĂN THUYÊN GVHD: THS ĐẶNG THÁI SƠN ĐỀ TÀI: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ CHƯƠNG II: CƠ SỞ LÝ THUYẾT A ĐO NHIỆT ĐỘ 2.1 Giới thiệu vi điều khiển 89s52 2.1.1 Tổng quan 89S52 AT89S52 họ IC vi điều khiển hãng Intel sản xuất Các sản phẩm AT89S52 thích hợp cho ứng dụng điều khiển Việc xử lý byte toán số học cấu trúc liệu nhỏ thực nhiều chế độ truy xuất liệu nhanh RAM nội Tập lệnh cung cấp bảng tiện dụng lệnh số học bit gồm lệnh nhân lệnh chia Nó cung cấp hổ trợ mở rộng chip dùng cho biến bit kiểu liệu riêng biệt cho phép quản lý kiểm tra bit trực tiếp hệ thống điều khiển AT89S52 cung cấp đặc tính chuẩn như: KByte nhớ đọc có thể xóa lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, TIMER/COUNTER 16 Bit, vectơ ngắt có cấu trúc mức ngắt, Port nối tiếp bán song công, mạch dao động tạo xung Clock dao động ONCHIP Các đặc điểm chip AT89S52 tóm tắt sau: KByte nhớ có thể lập trình nhanh, có khả tới 1000 chu kỳ ghi/xoá Tần số hoạt động từ: 0Hz đến 24 MHz mức khóa nhớ lập trình Timer/counter 16 Bit 128 Byte RAM nội Port xuất /nhập I/O bit SVTH: BÙI VĂN THUYÊN GVHD: THS ĐẶNG THÁI SƠN ĐỀ TÀI: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ Giao tiếp nối tiếp 64 KB vùng nhớ mã 64 KB vùng nhớ liệu ngoại s cho hoạt động nhân chia Hình 2.1 Sơ đồ khối AT89S52 SVTH: BÙI VĂN THUYÊN GVHD: THS ĐẶNG THÁI SƠN ĐỀ TÀI: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ CHƯƠNG V: KẾT LUẬN VÀ ĐỀ NGHỊ 5.1 Kết luận Sau thời gian nghiên cứu tìm hiểu đề tài Cùng với dẫn tận tình Thầy Đặng Thái Sơn Đến em thiết kế thành công “Đồng hồ Vạn Niên Điện Tử” , mạch hoạt động ổn định đáp ứng yêu cầu đề tài đặt Do thời gian lực giới hạn nên sản phẩm thiết kế không thể tránh khỏi số khuyết điểm: sản phẩm thô, khơng đẹp… kính mong q thầy bạn thông cảm 5.2 Đề nghị Sau thiết kế thành cơng đề tài này, em có số đề nghị để khắc phục khuyết điểm mà em mắc phải Thiết kế thêm chuyển đổi từ ngày dương lịch sang ngày âm lịch Thay đổi tiếng chuông báo thức nhạc mà bạn yêu thích Bổ sung chức điều khiển từ xa qua giao tiếp hồng ngoại SVTH: BÙI VĂN THUYÊN 56 GVHD: THS ĐẶNG THÁI SƠN ĐỀ TÀI: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ TÀI LIỆU THAM KHẢO [1] Giáo trình Vi Điều Khiển _ Tác giả Th.Phạm Hùng Kim Khánh [2] Tài liệu hướng dẫn Thực Tập Vi Điều Khiển _ Biên soạn Th.Trần Nhật Khải Hoàn, KS.Trần Hữu Danh [3] Giáo trình mạch xung _ Biên soạn Th.Lương Văn Sơn, KS.Nguyễn Khắc Nguyên [4] Giáo trình mạch số _ Tác giả Th.Nguyễn Trung Lập [5] Giáo trình mạch tương tự _ Tác giả KS Trương Văn Tám [6] http://alldatasheet.com/ [7] http://www.dientuvienthong.net/diendan/index.php [8] http://www.dientuvietnam.net/forums/ SVTH: BÙI VĂN THUYÊN 57 GVHD: THS ĐẶNG THÁI SƠN ĐỀ TÀI: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ PHỤ LỤC 1: Code chương trình thời gian thực // DO AN TOT NGHIEP DAI HOC // DE TAI // SINH VIEN THUC HIEN // MSV :LICH VAN NIEN DIEN TU :BUI VAN THUYEN :0751082679 //*********************CHUONG TRÌNH******************** //******************************************************** // KHAI BAO BIEN VA O NHO #include #define SEC 0x00 #define MIN 0x01 #define HOUR 0x02 #define DAY 0x03 #define DATE 0x04 #define MONTH 0x05 #define YEAR 0x06 #define A_MIN 0x08 #define A_HOUR 0x09 char sec=0,hour=0,min=0,day=21,date=2,month=4,year=11,year_20,a_min,a_hour,a_mi n1,a_hour1,a_min2,a_hour2; // KHAI BÁO CHAN VDK sbit SDA = P1^1; // SDA sbit SCL = P1^0; // SCL sbit Set = P1^2; // PHÍM SET sbit Up = P1^3; // PHIM TANG sbit Down = P1^4; // PHIM GIAM sbit Ok = P1^5; // PHIM OK sbit Loa = P1^6; // LOA sbit PM = P1^7; sbit L01 sbit L02 sbit L03 sbit L04 sbit L05 sbit L06 = P2^5; = P2^4; = P2^3; = P2^2; = P2^1; = P2^0; sbit L07 = P2^6; // DK LED DV_GIAY // DK LED C_GIAY // DK LED DV_PHUT // DK LED C_PHUT // DK LED DV_GIO // DK LED C_GIO // DK LED C_NGAY SVTH: BÙI VĂN THUYÊN 58 GVHD: THS ĐẶNG THÁI SƠN ĐỀ TÀI: THIẾT KẾ ĐỒNG HỒ VẠN NIÊN ĐIỆN TỬ sbit L08 sbit L09 sbit L10 sbit L11 sbit L12 sbit L13 sbit L14 = P2^7; = P3^1; = P3^2; = P3^3; = P3^4; = P3^5; = P3^6; sbit L15 = P3^7; // DK LED DV_NGAY // DK LED C_THANG // DK LED DV_THANG // DK LED 20K NAM // "" // DK LED C_NAM // DK LED DV_NAM // DK LED THU //****************************************************************** ************ // KHAI BAO BIEN, MANG unsigned char led7_data[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 }; // DU LIEU LED SEG unsigned char Data,time,index,set,bat_nhay,read_time; unsigned char AM_PM,alarm,alarm1,alarm2,on_off,on_off1,on_off2; // KHAI BAO HAM, CHUONG TRINH CON void KHOI_TAO_MAIN(void); // Chuong trinh khoi tao main void KHOI_TAO_BO_DINH_THOI(void); // Chuong trinh cai dat timer va 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 phuc vu nhay led void T0_ISR(void); // Dung ngat timer de quet led //****************************************************************** void bip(void) { unsigned char n; for(n=0;n