Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
1,09 MB
Nội dung
ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA ĐIỆN TỬ - - Đồ án môn: VI ĐIỀU KHIỂN Đề tài: Thiết kê mô hình đo gia tốc vật chuyển động tịnh tiến Giáo viên hướng dẫn: VŨ THỊ THU HƯƠNG Sinh viên thực hiện: Lớp: CNKT Điện Tử Khóa Hà Nội 04-2012 LỜI NÓI ĐẦU Ngày với phát triển cá ngành khoa hoc kỹ thuật, mà KT Điện tử đóng vai trò quan trọng lĩnh vực khoa học kỹ thuận, quản lý, công nghiệp tự động hóa, thông tin liên lạc… phải nắm bắt vận dụng cách có hiệu nhằm góp phần vào phát triển khoa học kỹ thuật giới nói chung khoa học kỹ thuật điện tử nói riêng Xuất phát từ nhu cầu thực tế doanh nghiệp việc đo gia tốc cần thiết thiết bị xe máy, ô tô, tàu hỏa, tàu thủy, máy bay…hay máy móc động thiết bị công nghiệp, thiết bị quan trọng sản phẩm nghành công nghiệp nặng Từ thực tế góp phần giúp người vận hành có thêm chút thông tin quan trọng Do khuôn khổ đề tài chúng em thiết kế đo gia tốc hiển thị LCD Mặc dù chúng em cố gắng để hoàn thành đồ án này, không tránh khỏi thiếu sót mong quý thầy cô có ý kiến giảng giải quý giá Chúng em mong đón nhận ý kiến đóng góp thầy cô Cuối xin chân thành cảm ơn quý thầy cô bạn sinh viên Chúng em xin trân thành cảm ơn! Nhóm sinh viên MỤC LỤC PHẦN I: GIỚI THIỆU KHÁI QUÁT A/ PHÂN TÍCH BÀI TOÁN B/ GIỚI THIỆU LINH KIỆN TRONG MẠCH 1, IC AT89S52 1.1.Cấu tạo IC 1.2.Các chân chức IC8051 1.3.Cấu tạo chức khối AT89S52 .9 PHẦN II Sơ đồ nguyên lý .24 A Thiết kế phần cứng 25 B Mạch in 26 C Nguyên lý hoạt động mạch 26 D Thiết kế phần mềm 26 A, lưu đồ thuật toán .26 31 PHẦN III: KẾT LUẬN 31 Tài liệu tham khảo 32 PHẦN I: GIỚI THIỆU KHÁI QUÁT A/ PHÂN TÍCH BÀI TOÁN Bài toán đặt thiết kế đo gia tốc vật chuyển động, phải có: Cảm biến để nhận biết vật qua Khối sử lý trung tâm 89S52 Khối hiển thị LCD • Sơ đồ khối hệ thống minh hoạ theo hình sau: VI ĐIỀU KHIỂN LCD CẢM BIẾN B/ GIỚI THIỆU LINH KIỆN TRONG MẠCH 1, IC AT89S52 Một số hình ảnh at89s52: Hình 1: Hình dạng thực tế IC 89S52 Sơ đồ chân: 1.1 Cấu tạo IC CPU( CPU centra lprocessing unit): - 8- bit data bus; 16- bit address bus; không gian địa 64Kbyte - Thanh ghi tích lũy A; - Thanh ghi tích lũy phụ B; - Đơn vị logic học (ALU); - Thanh ghi từ trạng thái chương trình; - Bốn băng ghi; - Con trỏ ngăn xếp Bộ nhớ (Memory): - Bộ nhớ chương trình( ROM) gồm 8Kbyte Flash, ghi xóa hàng nghìn lần - Bộ nhớ liệu( dạng SRAM) gồm 256 byte (chứa ngăn xếp – Stack) - Vùng ghi có chức đặc biệt SFR (Special Funtion Register) - Bộ UART, có chức truyền nhận nối tiếp.3 Timer/Counter 16 bit thực chức định thời đếm kiện.Khối điều khiển ngắt với nguồn ngắt nguồn ngắt trong.Bộ lập trình (ghi chương trình lên Flash ROM) cho phép người sử dụng nạp chương trình cho chíp mà không cần nạp chuyên dụng.4 cổng xuất nhập song song chiều 8- bit với 32 chân Port 0( P0.0=>P0.7) Port gồm chân, chức xuất nhập, port bus đa hợp liệu địa chỉ( AD0-AD7), chức sử dụng AT89S52 giao tiếp với thiết bị có kiến trúc Bus vi mạch nhớ, mạch PIO… Port 1( P1.0=>P1.7) Chức Port chức xuất nhập Port khác Port1 xuất nhập theo bit theo byte Port 2( P2.0=>P2.7) Port chức cổng vào/ra Port Port 1, Port byte cao bus địa sử dụng nhớ Port 3( P3.0=>P3.7) Mỗi chân Port chức xuất nhập có chức riêng, cụ thể sau: Bit Tên Chức P3.0 RXD Dữ liệu nhận cho Port nối tiếp P3.1 TXD Dữ liệu truyền cho Port nối tiếp P3.2 INT0 Ngắt P3.3 INT1 Ngắt P3.4 T0 Ngõ vào Timer/counter0 P3.5 T1 Ngõ vào Timer/counter1 P3.6 /WR Xung ghi nhớ liệu P3.7 /RD Xung đọc nhớ liệu Chân /PSEN (pin 29): chân điều khiển đọc chương trình nhớ Chân ALE (pin 30): ALE tín hiệu điều khiển chốt địa có tần số 1/6 tần số dao động vi điều khiển Tín hiệu ALE dùng phép vi mạch chốt bên 7473 1.2 Các chân chức IC8051 Chân /EA (pin 31): Tín hiệu /EA cho phép chọn nhớ chương trình nhớ hay EA=1 thực chương trình ROM nội EA=0 thực RAM RST( Reset: pin 9): Ngõ vào reset chân số RST=1 (là ngắt cứng có mức ưu tiên cao nhất) vi điều khiển khởi động lại thiết lập ban đầu XTAL1, XTAL2 (pin 18, 19): Hai chân nối song song với thạch anh tần số max=33 Mhz Để tạo dao động cho vi điều khiển Vcc,GND: cung cấp nguồn nuôi cho vi điều khiển cấp qua chân 20 40 1.3 Cấu tạo chức khối AT89S52 Đơn vị xử lý trung tâm CPU: Bộ nhớ: - Bộ nhớ chương trình nhớ liệu có không gian địa riêng biêt - Bộ nhớ chương trình có địa từ 0x0000 đến 0xFFFF (64Kbyte) Người sử dụng thiết kế để chip hoạt động với nhớ chương trình tích hợp sẵn chip cách nối tín hiệu EA (31) lên Vcc, hoạt động với nhớ chương trình bên cách nối tín hiệu EA (31) xuống GND Thông thường , tín hiệu EA nối cố định lên Vcc GND nên chạy với hai loại nhớ chương trình - Bộ nhớ chương trình dùng để chứa mã chương trình hướng dẫn CPU thực nhiệm vụ AT89S52 có nhớ chương trình 8Kbyte dạng Flash, không bị liệu ngừng cung cấp nguồn nuôi.Bộ nhớ chương trình bên có dung lượng tối đa 64Kbyte - Bộ nhớ liệu dùng để chứa liệu (bao gồm tham số, biến tạm thời…) AT89S52 có 256byte nhớ liệu dạng SRAM, liệu cắt nguồn nuôi Ngoài ghép nối với nhớ SRAM bên với dung lượng tối đa la 64Kbyte RAM RAM sử dụng thiết kế - Vùng ghi có chức đặc biệt: SFR (special function register) Cổng vào song song (Parallel I/O Port) - AT89S52 có cổng vào song song, tên P0, P1, P2, P3 Mỗi cổng có tín hiệu (nên gọi cổng 8- bit), tín hiệu gọi bit có tên la Px.y Trong x số thứ tự cổng (0→3), y số thứ tự bit ( 0→7) - Hầu hết cổng tích hợp, kiêm nhiệm thêm số tính (ví dụ: ngắt ngoài, cổng truyền thông nối tiếp, đầu vào đếm kiện ) Trong phần lớn trường hợp, sử dụng tính kiêm nhiệm, người dùng không nên sử dụng cổng chức vào/ra thong thường Ngoại vi on- chip nắm quyền điều khiển mức logic cổng 10 - TF1: Cờ ngắt timer/countet 1, =1 báo hiệu timer/counter đếm vượt trị lớn mà biểu diễn (255 chế độ 8bit 65535 chế độ 16bit) - TR1: bit cho phép timer/counter hoạt động đếm dừng - TF0: Cờ ngắt timer/countet 0, =1 báo hiệu timer/counter đếm vượt trị lớn mà biểu diễn (255 chế độ 8bit 65535 chế độ 16bit) - TR0: bit cho phép timer/counter hoạt động đếm dừng - IE1: Cờ ngắt ngắt - IT1: Bit cho phép chọn loại ngắt cho INT1 - IE0: Cờ ngắt ngắt - IT0: Bit cho phép chọn loại ngắt cho INT0 Thanh ghi T2CON (Sử dụng cho Timer/counter 2): - TF2: Cờ báo tràn Timer TF2 không thiết lập TCLK RCLK đặt - EXF2: Cờ ngắt Timer EXF2 =1 xảy nạp lại thu nhận EXF2=1 gây ngắt Timer ngắt lập trình cho phép - RCLK: Bit chọn Timer cung cấp xung nhịp cho đường nhận cổng nối tiếp - TCLK: Bit chọn Timer cung cấp xung nhịp cho đường truyền cổng nối tiếp - EXEN2: Bit điều khiển hoạt động Timer2, EXEN2=1 việc nạp lại thu nhận (capture) diễn có chuyển trạng thái từ sang chân T2EX Timer2 không sử dụng để cung cấp tốc độ baud cho cổng nối tiếp - TR2: Bit điều khiển hoạt động Timer 18 - C/T2: Bit lựa chọn xung nhịp đưa vào đếm (tương tự TR0 TR1) - CP/RL2: Bit chọn chế độ capture hay nạp lại Timer Khi CP/RL2=1 việc thu nhận thực có sườn xuống chân T2EX bit EXEN2 đặt Khi CP/RL2=0 việc nạp lại thực Timer2 tràn có sương xuống chân T2EX bit EXEN2 đặt 1.Nếu RCLK TCLK=1, bit bỏ qua, Timer tự nạp tràn Các chế độ Timer 2: Thanh ghi điều khiển T2MOD (Sử dụng cho Timer 2): - T2OE: Bit cho phép đầu sử dụng Timer để tạo xung (chế độ Clock Out) - DCEN: Bit cho phép Timer hoạt động đếm tiến/lùi - Thanh ghi chứa giá trị nạp lại (chế độ Auto- Reload) chứa giá trị capture (chế độ Capture) (Sử dụng cho Timer 2): RCAP2H RCAP2L: ghi 8bit MÀN HÌNH LCD 2.1 Cấu tạo nguyên tắc hiển thị kí tự LCD Cấu tạo 19 2.2 Phân loại Phân loại LCD :Có thể chia module LCD làm loại là: Loại hiển thị ký tự Loại hiển thị đồ họa Một chương trình hiển thị ký tự LCD theo bốn bước sau: - Xóa toàn hình - Đặt chế độ hiển thị - Đặt vị trí trỏ (nơi bắt đầu ký tự hiển thị) - Hiển thị ký tự Chú ý: 20 - Các bước 3, lặp lại nhiều lần cần hiển thị nhiều ký tự - Mỗi thực ghi lệnh ghi liệu hiển thị lên LCD cần phải kiểm tra cờ bận trước Vì vậy, cần phải chủ động phân phối thời gian lệnh cho LCD( ví dụ sau xóa hình sau khoảng 2ms lệnh khác thời gian để LCD xóa hình 1,64ms).+chế độ hiển thị mặc định hiển thị dịch, vị trí trỏ mặc định đầu dòng thứ mã lệnh LCD HD4480 Lệnh Mã lệnh Mô tả Thời gian thi hành RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Xóa hình 0 0 0 0 Xóa hình đưa trỏ vị trí đầu 1.64ms Đưa trỏ vị trí đầu 0 0 0 0 x Đưa trỏ vị trí đầu 1.64ms Thiết lập chế độ 0 0 0 I/D S Thiết lập hướng dịch chuyển trỏ(I/D), dịch hiển thị(S) 40us Bật tắt hiển thị 0 0 0 D C B Bật tắt hiển thị, trỏ; bật tắt chế độ nhấp nháy trỏ 40us Dịch trỏ hiển 0 0 S/C R/L * * Thiết lập chiều 40us 21 thị dịch chuyển trỏ hiển thị Thiết lập chức 0 0 DL N F * Thiết lập địa CGRAM 0 Thiết lập địa DDRAM 0 Đọc cờ báo bận địa CGRAM / BF Write data Ghi liệu vào CGRAM DDRAM 40us 1 Read data Đọc liệu từ CGRAM DDRAM 40us CGRAM address DDRAM address CGRAM/ DDRAM address DDRAM Ghi CGRAM / DDRAM Đọc CGRAM / DDRAM Tên bit Mô tả 22 * Thiết lập độ dài liệu, số dòng font chữ 40us Thiết lập địa CGRAM 40us Thiết lập địa DDRAM 40us Đọc cờ 40us báo bận địa CGRAM DDRAM( tùy vào lệnh trước đó) I/D 0=không dịch chuyển vị trí 1=dịch chuyển vị trí trỏ trỏ S =0 không dịch chuyển hiển thị =1 dịch chuyển hiển thị D 0=tắt hiển thị =1 bật hiển thị C 0=tắt trỏ =1 bật trỏ B 0=con trỏ không nhấp nháy =1 trỏ nhấp nháy S/C 0=di chuyển trỏ =1 dịch chuyển hiển thị R/L 0= dịch trái =1 dịch phải DL 0=chế độ 4bit liệu =1 chế độ 8bit liệu N 0=1 dòng 1= dòng F 0= font 5x7 1= font 5x10 BF 0= không bận 1= bận bit viết tắt mã lệnh 23 PHẦN II Sơ đồ nguyên lý A, phân tích thiết kế * yêu cầu đề bài: Mạch điện tử thiết kế máy tính phần mềm chuyên dụng Hệ thống sử dụng 03 cảm biến phát vật đặt vị trí khác hướng chuyển động vật Gia tốc (m/s2) vật di chuyển hiển thị hình tinh thể lỏng (LCD) *Hướng thiết kế: - Mạch đực thiết kế phần mềm altium - Trong mạch sử dụng Vi Điều khiển 89s52, opto chữ U làm mắt cảm biến, hình hiển thị LCD,và số linh kiện khác - sử dụng thuật toàn đo gia tốc sau: t1 thời gian từ lúc phát cảm biến tới lúc phát cảm biến t2 thời gian từ lúc phát cảm biến tới lúc phát cảm biến Theo thiết kế : S1= Cm ; S2= 2*S1 = Cm Khi theo lý thuyết ta có: S1= V0*t1 +1/2 a*t12 S2= V0*t1 +1/2 a*t12 Suy : V0=(S1-1/2 a*t12) / t1 V0=(S2-1/2 a*t22) / t2 Cân vế V0 ta : (S1-1/2 a*t12) / t1 =(S2-1/2 a*t22) / t2 => a=(2S1*(2t1-t2)) / (t1*t2(t2-t1)) Ta hoàn toàn tính toán dc gia tốc vật quãng đường ko thể biết gia tốc âm hay dương ta cần phải đo hai quãng đường S1, S2 Từ thay đổi thời gian di truyển vật quãng đường mà ta biết đươc dấu gia tốc Khối Nguồn Khối hiển thị Khối Xử lý 24 Khối so sánh Khối cảm biến A Thiết kế phần cứng 25 B Mạch in C Nguyên lý hoạt động mạch Khi vật qua cảm biến cho timer0 chạy vật qua cảm biến thứ dừng timer0 lại đồng thời cho timer1 chạy vật qua cảm biến thứ dừng timer1 lại đọc giá trị thời gian vật quãng đường AB BC từ suy gia tốc D Thiết kế phần mềm A, lưu đồ thuật toán 26 Bắt đầu timer đếm thời gian Ngắt INT0 Ưu tiên ngắt sườn Chờ ngắt DEM=DEM+1 Hiển thị Hiển thị Cho timer chạy Đếm thời gian Lưu giá trị thời gian sai DEM=3 ? Đúng Lưu giá trị thời gian Reset Timer DEM=0 Tính toán Gia tốc 27 #include #include //******************************* sbit RS=P1^0; sbit RW=P1^1; sbit EN=P1^2; const char S=50; unsigned int count,t1,t2,gt1,gt2; unsigned char dem,M[32]; //******************************* void tre(unsigned long int t) { unsigned long int i; for (i=0;i[...]... biến phát hiện vật đặt tại 3 vị trí khác nhau trên hướng chuyển động của vật Gia tốc (m/s2) của vật khi di chuyển được hiển thị trên màn hình tinh thể lỏng (LCD) *Hướng thiết kế: - Mạch đực thiết kế trên phần mềm altium - Trong mạch sử dụng Vi Điều khiển 89s52, 3 opto chữ U làm mắt cảm biến, màn hình hiển thị LCD,và một số linh kiện khác - sử dụng thuật toàn đo gia tốc như sau: t1 là thời gian từ lúc... nhưng ko thể biết được gia tốc âm hay dương ta cần phải đo trên hai quãng đường S1, S2 Từ sự thay đổi về thời gian di truyển của vật trên quãng đường như nhau mà ta biết đươc dấu của gia tốc Khối Nguồn Khối hiển thị Khối Xử lý 24 Khối so sánh Khối cảm biến A Thiết kế phần cứng 25 B Mạch in C Nguyên lý hoạt động của mạch Khi vật đi qua cảm biến đầu tiên thì cho timer0 chạy khi vật đi qua cảm biến thứ... thì việc truyền dữ liệu bằng cổng nối tiếp phải tuân theo một cơ chế, một giao thức hay một nguyen tắc nhất định Có thể kể ra một số giao thức như SPI,I2C,SCI Cổng nối tiếp có 2 kiểu truyền dữ liệu chính: Truyền đồng bộ(synchronous) :thiết bị truyền và nhận đều dung chung một xung nhịp (clock) 12 Truyền dị bộ(asynchronous) :thiết bị truyền và thiết bị nhận sử dụng hai nguồn xung nhịp riêng Tuy nhiên... DDRAM Ghi CGRAM / DDRAM Đọc CGRAM / DDRAM Tên bit Mô tả 22 * Thiết lập độ dài của dữ liệu, số dòng và font chữ 40us Thiết lập địa chỉ CGRAM 40us Thiết lập địa chỉ DDRAM 40us Đọc cờ 40us báo bận và địa chỉ của CGRAM hoặc DDRAM( tùy vào lệnh trước đó) I/D 0=không dịch chuyển vị trí con 1=dịch chuyển vị trí con trỏ trỏ S =0 không dịch chuyển hiển thị =1 dịch chuyển hiển thị D 0=tắt hiển thị =1 bật hiển thị... timer1 chạy khi vật đi qua cảm biến thứ 3 thì dừng timer1 lại đọc giá trị thời gian vật đi trên quãng đường AB và BC từ đó suy ra gia tốc D Thiết kế phần mềm A, lưu đồ thuật toán 26 Bắt đầu 1 timer đếm thời gian Ngắt ngoài INT0 Ưu tiên ngắt ngoài bằng sườn Chờ ngắt ngoài DEM=DEM+1 Hiển thị Hiển thị Cho timer chạy Đếm thời gian Lưu giá trị thời gian sai DEM=3 ? Đúng Lưu giá trị thời gian Reset Timer... đầu 1.64ms Thiết lập chế độ 0 0 0 0 0 0 0 1 I/D S Thiết lập hướng dịch chuyển con trỏ(I/D), dịch hiển thị(S) 40us Bật tắt hiển thị 0 0 0 0 0 0 1 D C B Bật tắt hiển thị, con trỏ; bật tắt chế độ nhấp nháy con trỏ 40us Dịch con trỏ hiển 0 0 0 0 0 1 S/C R/L * * Thiết lập chiều 40us 21 thị dịch chuyển của con trỏ và hiển thị Thiết lập chức năng 0 0 0 0 1 DL N F * Thiết lập địa chỉ CGRAM 0 0 0 1 Thiết lập... khi ra lệnh cho LCD( ví dụ sau khi xóa màn hình sau khoảng 2ms mới ra lệnh khác vì thời gian để LCD xóa màn hình là 1,64ms).+chế độ hiển thị mặc định sẽ là hiển thị dịch, vị trí con trỏ mặc định sẽ là đầu dòng thứ nhất mã lệnh của LCD HD4480 Lệnh Mã lệnh Mô tả Thời gian thi hành RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Xóa màn hình 0 0 0 0 0 0 0 0 0 1 Xóa màn hình đưa con trỏ về vị trí đầu 1.64ms Đưa... là thời gian từ lúc phát hiện cảm biến 1 tới lúc phát hiện cảm biến 3 Theo thiết kế : S1= 4 Cm ; S2= 2*S1 = 8 Cm Khi đó theo lý thuyết thì ta có: S1= V0*t1 +1/2 a*t12 S2= V0*t1 +1/2 a*t12 Suy ra : V0=(S1-1/2 a*t12) / t1 V0=(S2-1/2 a*t22) / t2 Cân bằng 2 vế của V0 ta được : (S1-1/2 a*t12) / t1 =(S2-1/2 a*t22) / t2 => a=(2S1*(2t1-t2)) / (t1*t2(t2-t1)) Ta hoàn toàn có thể tính toán dc gia tốc của vật bằng... trị của bit dữ liệu Cổng nối tiếp có thể có một trong các tính năng sau: Đơn công: thiết bị chỉ có thể hoặc truyền hoặc nhận dữ liệu Bán song công :thiết bị có thể truyền và nhận dữ liệu nhưng tại một thời điểm có thể làm 1 trong 2 việc đó Song công :thiết bị có thể truyền và nhận dữ liệu đồng thời Ngắt (Interrupts) Ngắt là những yêu cầu do ngoại vi (là các phần cứng tích hợp trên IC hoặc các tác động. .. EXEN2: Bit điều khiển hoạt động của Timer2, khi EXEN2=1 việc nạp lại hoặc thu nhận (capture) diễn ra khi có sự chuyển trạng thái từ 1 sang 0 ở chân T2EX nếu Timer2 không sử dụng để cung cấp tốc độ baud cho cổng nối tiếp - TR2: Bit điều khiển hoạt động của Timer 2 18 - C/T2: Bit lựa chọn xung nhịp đưa vào đếm (tương tự TR0 và TR1) - CP/RL2: Bit chọn chế độ capture hay nạp lại của Timer 2 Khi CP/RL2=1