1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

bao cao vi xu ly

37 298 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 1,34 MB

Nội dung

LỜI CAM ĐOAN Đề tài: Đồng hồ số hiển thị thời gian thực LCD , có ứng dụng thực tế, em chọn đề tài để làm đồ án cho Trong trình thực đề tài, nhiều thiếu sót kiến thức hạn chế nội dung trình bày báo cáo hiểu biết thành em đạt giúp đỡ giảng viên hướng dẫn Thầy Trần Hữu Danh Em xin cam đoan rằng: nội dung trình bày báo cáo đồ án chép từ cơng trình có trước Nếu không thật, em xin chịu trách nhiệm trước nhà trường Cần Thơ, ngày tháng 12 năm 2011 Sinh viên thực Lê Thái Ngọc Lư Hùng Cường Trịnh Minh Hiếu LỜI NÓI ĐẦU Bộ vi xử ngày phát triển sử dụng hầu hết hệ thống điều khiển công nghiệp thiết bị dân dụng Chính nhờ vai trò chức vi điều khiển đem lại nhiều ưu điểm tính đặc biệt cho hệ thống điều khiển.Trong thực tế, ứng dụng vi điều khiển đa dạng phong phú Dưới trình bày ứng dụng nhỏ vi điều khiển, thiết kế đồng hồ thời gian thực hiển thị LCD Để đề tài hoàn thành theo thời gian qui định đồng thời đạt kết đề không nỗ lực thân người thực đề tài mà có giúp đỡ, bảo thầy chia sẻ kinh nghiệm từ bạn sinh viên Người thực đề tài xin chân thành cảm ơn :  Sự dẫn góp ý chân thành thầy Trần Hữu Danh Cám ơn thầy nhiệt tình cung cấp thơng tin hướng dẫn hỗ trợ kiểm tra, khắc phục thông tin chưa xác  Các bạn sinh viên lớp giúp đỡ nhiều mặt phương tiện, ý kiến Trong trình thực đề tài này, nhóm thực đề tài cố gắng, xong khơng tránh khỏi thiếu xót Rất mong nhận góp ý, phê bình, dẫn quý thầy bạn sinh viên PHỤ LỤC LỜI CAM ĐOAN GIỚI THIỆU SƠ LƯỢC .4 CHƯƠNG I : THUYẾT TỔNG QUAN .5 Yêu cầu giới hạn đề tài 1.3 Phân tích khối .5 1.3.1 Khối xử l trung tâm-MSP430G2152 1.3.2Khối thời gian IC DS1307 1.3.3 Bộ phận hiển thị (LCD) 14 1.4 Sơ đồ nguyên ly tổng quát 17 CHƯƠNG : THIẾT KẾ VÀ THI CÔNG 19 2.1 Lưu đồ giải thuật .19 2.1.1 Chương trình 19 2.1 2Chương trình giao tiếp với LCD 19 2.2.3Sơ đồ mạch in: 20 2.3 Các linh kiện sử dụng mạch: .21 CHƯƠNG : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .21 3.1 Thành công đề tài: 21 3.2 Hạn chế đề tài: 21 3.3 Hướng phát triển đề tài: .21 CHƯƠNG TRÌNH VÀ TÀI LIỆU THAM KHẢO 22 Chương trình C: 22 TÀI LIỆU THAM KHẢO 37 GIỚI THIỆU SƠ LƯỢC Đây ứng dụng sử dụng vi điều khiển MSP430 để thiết kế đồng hồ thời gian thức hiển thị LCD:  Sử dụng LCD để hiển thị  Sử dụng IC thời gian thực DS1307 IC có tác dụng tạo thời gian thực xác bào gồm giờ, phút, giây, thứ, ngày, tháng, năm  Sử dụng vi điều khiển MSP430G2152 cho thao tác truy cập thời gian, hiển thị chỉnh giờ.Thực chất sử dụng MSP430G2152 cho ứng dụng phí phạm, ứng dụng khơng u cầu chức phụ vi điều khiển chức I/O CHƯƠNG I : THUYẾT TỔNG QUAN Yêu cầu giới hạn đề tài 1.1.1 Yêu cầu: Hiển thị thời gian giờ, phút, giây LCD với liệu truy xuất từ IC thời gian thực DS1307 1.1.2 Giới hạn đề tài: 1.2 Sơ đồ khối mạch LCD 16x2 MSP430G2152 DS1307 PHÍM ĐIỀU KHIỂN Hình 1.1: Sơ đồ khối mạch đồng hồ thời gian thực 1.3 Phân tích khối 1.3.1 Khối xử l‎ trung tâm-MSP430G2152 Chức chân: Và số địa port cần lưu y:  Kiến trúc nguồn điện cực thấp để mở rộng tuổi thọ Pin - 1uA trì RAM - Điện nguồn thấp 1.8V đến 3.6V - 0.8uA chế độ xung thời gian thực - 250uA/MIPS tích cực 1Mhz, 2.2V  Xử l tín hiệu tương tụ hiệu suất cao  16 bit RISC CPU cho phép đươc nhiều ứng dụng, thể phần code lập trình  Trong lập trình cho nhớ Flash cho phép thay đổi Code cách linh hoạt, phạm vi rộng, nhớ Flash lưu lại dược nhật k liệu  Những modul giao tiếp ngoại vi xếp vào không gian địa chỉ, không gian địa từ 0100h tới 01FFh giành riêng cho modul ngoại vi 16 bit Những modul đượ truy cập với từ dẫn (lệnh) Không gian địa từ 0FFh giành riêng cho module giao tiếp ngoại vi bit  Những ghi chức đặc biệt(SFR): vài chức ngoại vi dược cấu hình ghi chức đặc biệt, ghi dặc biệt nằm 16 byte thấ không gian địa Những SFR phải truy cập việc sử dụng câu lệnh byte  Truy cập nhớ: Những byte nằm địa chẳn hay lẽ Những từ nằm địa chẳn biểu diễn hình Khi sử dụng dẫn, địa chẵn sử dụng Những bute thâpf từ địa chẳn Byte cao địa lẻ  RAM: có địa bắt đầu 0200h Địa kết thúc RAM phụ thuộc vào số lượng RAM có thay đổi tùy thuộc vào dòng vi điều khiển RAM sử dụng cho mã liệu 1.3.2Khối thời gian IC DS1307  Giới thiệu chung DS1307 IC thời gian thực họ vi điều khiển hãng dalat DS1307 có số đặc trưng sau: - DS1307 IC thời gian thực với nguồn cung cấp nhỏ dùng để cập nhật thời gian ngày tháng - SRAM :56bytes - Địa liệu truyền nối tiệp qua đường bus chiều - DS1307 có mơt mạch cảm biến điện áp dùng để dò điện áp lỗi tự động đóng ngắt với nguồn pin cung cấp 3V: + DS1307 có byte liệu nằm từ địa 0x00 tới 0x06, byte điểu khiển, 56 byte lưu trữ ( dành cho người sủ dụng ) + Khi xử liệu từ DS1307, họ tự chuyển cho ta dạng số BCD, dụ ta đọc liệu từ địa 0x04 (tưong ứng với Day- ngày tháng) 0x05 (tháng) 0x15, 0x11 + Lưu ý đến vai trò chân SQW/OUT Đây chân cho xung DS1307 có chế độ 1Hz, 4.096HZ, 8.192Hz, 32.768Hz chế độ đuợc quy định bít ghi Control Register (địa 0x07 ) + Địa DS1307 0xD0 Cơ chế hoạt động : DS1307 hoạt động với vai trò slave đường bus nối tiếp.Việc truy cập thi hành với thị start mã thiết bị định cung cấp địa ghi Tiếp theo ghi truy cập liên tục đến thị stop đươc thực thi 1.3.2.1 Cơ chế hoạt động chức DS1307 Hinh 1.11: Sơ đồ nguyên lí mạch IC DS1307 Vcc: nối với nguồn X1,X2: nối với thạch anh 32,768 kHz Vbat: đầu vào pin 3V GND: đất SDA: chuỗi data SCL: dãy xung clock SQW/OUT: xung vuông/đầu driver DS1307 IC thời gian thực với nguồn cung cấp nhỏ, dùng để cập nhật thời gian ngày tháng với 56 bytes SRAM Địa liệu truyền nối tiếp qua đường bus chiều Nó cung cấp thông tin giờ,phút,giây ,thứ,ngày ,tháng, năm.Ngày cuối tháng tự động điều chỉnh với tháng nhỏ 31 ngày,bao gồm việc tự động nhảy năm Đồng hồ hoạt động dạng 24h 12h với thị AM/PM DS1307 có mạch cảm biến điện áp dùng để dò điện áp lỗi tự động đóng ngắt với nguồn pin cung cấp DS 1307 hoạt động với vai trò slave đường bus nối tiếp Việc truy cập thi hành với thị START mã thiết bị định cung cấp địa ghi Tiếp theo ghi truy cập liên tục đến thị STOP thực thi Sơ đồ khối DS1307: Hinh 1.12: Sơ đồ khối DS1307 1.3.2.2 Mơ tả hoạt động chân • Vcc,GND: nguồn chiều cung cấp tới chân Vcc đầu vào 5V Khi 5V cung cấp thiết bị truy cập hồn chỉnh liệu đọc viết Khi pin V nối tới thiết bị Vcc nhỏ 1,25Vbat q trình đọc viết khơng thực thi,tuy nhiên chức timekeeping không bị ảnh hưởng điện áp vào thấp Khi Vcc nhỏ Vbat RAM timekeeper ngắt tới nguồn cung cấp (thường nguồn chiều 3V) • Vbat: Đầu vào pin cho chuẩn pin 3V Điện áp pin phải giữ khoảng từ 2,5 đến 3V để đảm bảo cho hoạt động thiết bị • SCL(serial clock input): SCL sử dụng để đồng chuyển liệu đường dây nối tiếp • SDA(serial data input/out): chân vào cho đường dây nối tiếp Chân SDA thiết kế theo kiểu cực máng hở , đòi hỏi phải có điện trở kéo hoạt động • SQW/OUT(square wave/output driver)- kích hoạt bit SQWE thiết lập chân SQW/OUT phát tần số (1Hz,4kHz,8kHz,32kHz) Chân thiết kế theo kiểu cực máng hở cần có điện trở kéo Chân nàysẽ hoạt động Vcc Vbat cấp • X1,X2: nối với thạch anh tần số 32,768kHz Là mạch tạo dao động ngoài, để hoạt động ổn định phải nối thêm tụ 33pF • Cũng có DS1307 với tạo dao động tần số 32,768kHz, với cấu hình chân X1 nối vào tín hiệu dao động chân X2 để hở 1.3.2.3 Sơ đồ địa RAM RTC Hinh1.13: Sơ đồ địa RAM RTC • Thơng tin thời gian ngày tháng lấy cách đọc byte ghi thích hợp thời gian ngày tháng thiết lập thông qua byte ghi cách viết vào giá trị thích hợp nội dung ghi dạng mã BCD(binary coded decreaseimal) Bit ghi seconds bit clock halt(CH),khi bit thiết lập dao động disable, xố dao động enable Chú ý: enable dao động suốt trình cấu hình thiết lập (CH=0).Thanh ghi thời gian thực mô tả sau: 10 #define DATE 0x04 #define MONTH 0x05 #define YEAR 0x06 #define RS (_P2_OUT->_BIT.b0) //chan RS la chan P2.0 #define EN (_P2_OUT->_BIT.b1)//chan EN la chan P2.1 #define DATA_4 (_P1_OUT->_BIT.b4) #define DATA_5 (_P1_OUT->_BIT.b5) #define DATA_6 (_P1_OUT->_BIT.b6) #define DATA_7 (_P1_OUT->_BIT.b7) #define mode (_P1_IN->_BIT.b0) #define up (_P1_IN->_BIT.b1) #define down (_P1_IN->_BIT.b2) #define SCLOUT (_P2_OUT->_BIT.b2) #define SDAIN (_P2_IN->_BIT.b3) #define SDAOUT (_P2_OUT->_BIT.b3) char sec,hour,min,date,month,year,year_20; void init_lcd(void); void cmd_lcd(unsigned char); void write_lcd(unsigned char); void display_lcd(unsigned char *); void delay_ms(unsigned int); void lcd_putchar(unsigned char data); void xuat_lcd(void); void nutnhan(void); unsigned int i=0,c,t=0; //////////////////////////////////////////////////////////// //CAC CHUONG TRINH CON/////////////////////////////////// 23 ////////////////////////////////////////////////////// void delay_ms(unsigned int i) { unsigned int j; while(i >0) { for(j=0;j_BIT.b2 =1; _P2_DIRECT->_BIT.b3 =1; SCLOUT = 1; SCLOUT = 0; SDAOUT = 1; SCLOUT = 1; delay_ms(4); SDAOUT = 0; delay_ms(4); SCLOUT = 0; delay_ms(4); } void I2C_stop(void) { _P2_DIRECT->_BIT.b2 =1; _P2_DIRECT->_BIT.b3 =1; SCLOUT = 1; SCLOUT = 0; 24 SDAOUT = 0; delay_ms(4); SCLOUT = 1; delay_ms(4); SDAOUT = 1; } unsigned char I2C_write(unsigned char dat) { _P2_DIRECT->_BIT.b2 =1; _P2_DIRECT->_BIT.b3 =1; unsigned char i; for (i=0;i_BIT.b0=0; _P1_DIRECT->_BIT.b1=0; _P1_DIRECT->_BIT.b2=0; while(1) { nutnhan(); xuat_lcd(); } } void write_lcd(unsigned char c) { EN=1; //set enable pin RS=1; //set register select pin 28 lcd_putchar(c); delay_ms(50); EN=0; } //////////////////////////////////////////////////////////////// void enable() { EN=1; delay_ms(100); EN=0; delay_ms(200); } //**********convert data >send to PIN of microcontrol**************************** void set_data_lsb(unsigned char data) //ham gui byte data thap { unsigned char convert=0; convert=data&0x01; if(convert==0x01)DATA_4=1; else DATA_4=0; convert=data&0x02; if(convert==0x02)DATA_5=1; else DATA_5=0; convert=data&0x04; if(convert==0x04)DATA_6=1; else DATA_6=0; convert=data&0x08; if(convert==0x08)DATA_7=1; 29 else DATA_7=0; } void set_data_msb(unsigned char data) //ham gui byte data cao { unsigned char convert=0; convert=data&0x10; if(convert==0x10)DATA_4=1; else DATA_4=0; convert=data&0x20; if(convert==0x20)DATA_5=1; else DATA_5=0; convert=data&0x40; if(convert==0x40)DATA_6=1; else DATA_6=0; convert=data&0x80; if(convert==0x80)DATA_7=1; else DATA_7=0; } //************************HAM GUI LENH****************************************** void cmd_lcd(unsigned char cmd) { RS=0; //chon ghi lenh set_data_msb(cmd); enable(); set_data_lsb(cmd); enable(); 30 } //**************************ham gui data************************************* void lcd_putchar(unsigned char data) { RS=1; set_data_msb(data); enable(); set_data_lsb(data); enable(); } void lcd_putsf(char *s) { while(*s) { lcd_putchar(*s); s++; }; } //****************************ham khoi tao lcd************************* void init_lcd() { delay_ms(1000); RS=0; // che gui lenh set_data_lsb(0x03); delay_ms(100); set_data_lsb(0x02); enable(); 31 cmd_lcd ( 0x28 ); //cd 4bit,2dong,5x7 cmd_lcd ( 0x0c); //bat hien thi,tat tro cmd_lcd ( 0x06 ); //* entry mode set, increment & scroll left cmd_lcd ( 0x01 ); //* clear display } void display_lcd(unsigned char *s) { while(*s) write_lcd(*s++); } //////////////////////////////////////////////////////////// void nutnhan(void) { if(mode==0) { i++; if(i==7) i=0; } if(i==0) {xuat_lcd();} if(i==1) { t^=1; if(t==0) { cmd_lcd(0xc6); write_lcd(32); write_lcd(32); } 32 if(!up){ hour++;if(hour>23) hour=0;DS1307_Write(HOUR,hour); } if(!down){if(hour>0) hour ; else hour=23; DS1307_Write( HOUR, hour) ; } } if(i==2) { t^=1; if(t==0) { cmd_lcd(0xc9); write_lcd(32); write_lcd(32); } if(!up){ min++;if(min>59) min=0;DS1307_Write(MIN,min); } if(!down){if(min>0) ;else min=59; DS1307_Write(MIN,min);} } if(i==3) { t^=1; if(t==0) { cmd_lcd(0xcc); write_lcd(32); write_lcd(32); delay_ms(20); } if(up==0||down==0) { 33 sec=0; DS1307_Write(SEC,sec); } } if(i==4) { t^=1; if(t==0) { cmd_lcd(0x86); write_lcd(32); write_lcd(32); } if(!up){ date++;if(date>31) date=1;DS1307_Write(DATE,date); } if(!down){if(date>0) date ;else date=31; DS1307_Write(DATE,date);} } if(i==5) { t^=1; if(t==0) { cmd_lcd(0x89); write_lcd(32); write_lcd(32); } if(!up){ month++;if(month>12) month=1;DS1307_Write(MONTH,month); } 34 if(!down){if(month>1) month ;else month=12; DS1307_Write(MONTH,month); } if(i==6) { t^=1; if(t==0) { cmd_lcd(0x8c); write_lcd(32); write_lcd(32); write_lcd(32); write_lcd(32); } if(!up){ year++;if(year>99) year=0;DS1307_Write(YEAR,year); } if(!down){if(year>0) year ;else year=99; DS1307_Write(YEAR,year);} } } } void xuat_lcd(void) { Read_DS1307(); cmd_lcd(0x80); lcd_putsf("DATE: "); c=date; write_lcd((c/10)+48); write_lcd((c%10)+48); 35 write_lcd('-'); c=month; write_lcd((c/10)+48); write_lcd((c%10)+48); write_lcd('-'); c=year; write_lcd('2'); write_lcd('0'); write_lcd((c/10)+48); write_lcd((c%10)+48); write_lcd(' '); cmd_lcd(0xc0); lcd_putsf("TIME: "); c=hour; write_lcd((c/10)+48); write_lcd((c%10)+48); write_lcd(':'); c=min; write_lcd((c/10)+48); write_lcd((c%10)+48); write_lcd(':'); c=sec; write_lcd((c/10)+48); write_lcd((c%10)+48); write_lcd(' '); } 36 TÀI LIỆU THAM KHẢO [1] http://hocavr.com [2] http://hocavr.com [3] http://dientuvietnam.net [4] http://www.alldatasheet.com 37 ... nhân có xung cho phép chân E + Ở chế độ ghi: Dữ liệu bus LCD chuyển vào ghi bên phát xung cho phép chân E + Ở chế độ đọc: Dữ liệu LCD xu t DB0-DB7 phát cạnh lên chân E LCD giữ bus chân E xu ng... giao tiếp ngoại vi bit  Những ghi chức đặc biệt(SFR): vài chức ngoại vi dược cấu hình ghi chức đặc biệt, ghi dặc biệt nằm 16 byte thấ không gian địa Những SFR phải truy cập vi c sử dụng câu... linh hoạt, phạm vi rộng, nhớ Flash lưu lại dược nhật k liệu  Những modul giao tiếp ngoại vi xếp vào không gian địa chỉ, không gian địa từ 0100h tới 01FFh giành riêng cho modul ngoại vi 16 bit Những

Ngày đăng: 26/12/2017, 13:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w