1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp cơ điện tử tìm hiệu về vi điều khiển thiết kế thi công mạch thử nghiệm

71 867 0

Đ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 71
Dung lượng 1,16 MB

Nội dung

LỜI CÁM ƠN Lời em xin gửi lời cảm ơn chân thành đến thầy giáo hướng dẫn Phạm Hồng Vương mơn Kỹ thuật máy giúp đỡ em nhiều trình thực đề tài Từ lúc bắt đầu đến kết thúc đề tài thầy giúp em làm quen với lĩnh vực vi xử lí, học tập nghiên cứu sử dụng phần mềm liên quan đến điều khiển Proteus,PicC… Thầy giúp đỡ em nhiều lúc thiết kế thi cơng mạch mơ hình thực tế Em xin cám ơn thầy, cô môn Kỹ thuật máy giúp đỡ, tạo điều kiện cho sinh viên chúng em có hội học tập, nghiên cứu suốt năm học vừa qua để bọn em phát triển kĩ sinh viên kĩ thuật trước tốt nghiệp Hà Nội, ngày 15 tháng năm 2014 Đàm Hùng Việt MỤC LỤC DANH MỤC HÌNH ẢNH CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ VI XỬ LÍ 1.1.Cấu trúc tổng thể hệ vi điều khiển -Trước hết ta cần phân biệt hai khái niệm vi xử lí vi điều khiển, chúng không khác nhiều thuật ngữ dung để đề cập đến kĩ thuật ứng dụng cơng nghê vi điện tử, cơng nghệ tích hợp khả xử lí theo chương trình vào lĩnh vực khác Tuy nhiên có khác biệt vi xử lí chủ yếu sử dụng vào mục đích tính tốn cịn vi điều khiển sử dụng cho mục đích nhỏ cụ thể Hình 1.1: Kiến trúc mơt vi xử lý -Ngồi cấu trúc với loại vi điều khiển cụ thể cịn có thêm số phần cứng khác dao động trong,bộ biến đổi tần số tương tự DAC, mạch điều chế dạng sóng WG, điều chế độ rộng xung PWM… 1.2.Chức phận 1.2.1 CPU -Là não vi xử lí, phận khác vi xử lí quan chấp hành quyền CPU Mỗi quan có chế hoạt động định mà CPU phải tuân theo để giao tiếp với chúng CPU dùng loại tín hiệu để giao tiếp điều khiển quan ngoại vi : + tín hiệu địa + tín hiệu liệu + tín hiệu điều khiển Về mặt vật lí tín hiệu đường điện nhỏ dẫn từ CPU đến ngoai vi khác từ ngoại vi đến với Chức CPU tiến hành thao tác tính tốn, xử lí,đưa tín hiệu địa chỉ, liệu điều khiển nhằm thực nhiệm vụ người lập trình đưa thơng qua lệnh 1.2.2 Bộ nhớ ROM - Là loại nhớ chứa chương trình hướng dẫn CPU thực nhiện vụ đó, ROM loại nhớ khơng bị chương trình ngừng cung cấp nguồn nuôi 1.2.3 Bộ nhớ RAM - Là loại nhớ liệu dùng để chứa liệu ( tham số, biến tạm thời….) - RAM loại nhớ liệu cắt nguồn ni 1.2.4 Cổng giao tiếp (có thể cổng nối tiếp cổng song song) Đây đường tín hiệu đươc nối với số chân IC để giao tiếp với thiết bị bên Giao tiếp đưa điên áp đọc vào giá trị điện áp chân cổng Các giá trị điện áp đưa đọc vào biểu diễn mọt hai giá trị logic Trong kĩ thuật vi xử lí, người ta thường dùng quy ước logic dương: giá trị ứng với mức điện áp 0VDC, giá trị ứng với mức điện áp +5VDC Tùy loại vi xử lí mà khoảng xấp xỉ khác nhìn chung tương thích với mức logic TTL + Cổng giao tiếp song song thường gồm đường khác gọi cổng 8bit Các đường tín hiệu độc lập với nhau, điều cho phép ta đưa hay đọc vào giá trị logic khác chân Ngoài cần ý cổng giao tiếp kiêm thêm chức đặc biệt lien quan đến ngoại vi khác + Cổng giao tiếp nối tiếp khác với cổng song song bit liệu truyền đường tín hiệu thay mơt lúc cổng song song Tuy nhiên việc truyền liệu cổng nối tiếp phải tuân theo chế, giao thức hay nguyên tắc định Có thể kể số giao thức SPI,I2C,SCI Cổng nối tiếp có kiểu truyền liệu chính: Truyền đồng bộ: thiết bị truyền thiết bị nhận dùng chung xung nhịp Truyền dị bộ: thiết bị truyền thiết bị nhận sử dụng hai nguồn xung nhịp riêng Tuy nhiên hai nguồn xung nhịp không khác nhiều Xung nhịp yếu tố thiếu truyền liệu nối tiếp có vai trò xác định giá tri bit liệu Cổng nối tiếp có tính sau: Đơn cơng: thiết bị truyền nhận liệu Bán song cơng: thiết bị truyền nhận liệu thời điểm nhận truyền Song cơng: thiết bị truyền nhận liệu đồng thời 1.2.5.Bộ đếm/Bộ định thời Đây ngoại vi thiết kế để thực môt nhiệm vụ đơn giản đếm xung nhịp Mỗi có thêm xung nhip đầu vào đếm giá trị đếm tăng lên đơn vị ( đếm tiến) hay giảm đơn vị (trong đếm lùi) Xung nhịp đưa vào đếm đưa vào đếm hai loại: + Xung nhịp bên IC: Đó xung nhịp tạo nhờ kết hợp mạch dao động bên IC linh kiện phụ bên ngồi nối với IC Ta coi “nhịp tim” để tồn phần cứng bên vi xử lí( kể CPU ngoại vi) hoạt động Trường hợp người ta gọi định thời (Timer) Do xung nhịp loại thường đặn nên ta dùng để đếm thời gian cách xác + Xung nhịp bên ngồi IC: tín hiệu logic thay đổi liên tục hai mức 0-1 không thiết phải đặn Trong trường hợp này, người ta gọi bô đếm (Counter) Ứng dụng phổ biến đếm đếm kiện bên sản phẩm chạy băng truyền, đếm số lượng xe tham gia giao thông đường… - Một khái niệm cần lưu ý “tràn”, hiểu kiện đếm vượt qua giá trị tối đa mà biểu diễn quay trở Với đếm 8bit giá trị tối đa 255 (28=256) đếm 16bit 65535 (216=65536) 1.2.6.Khối giao tiếp bus Khối có chức ghép nối bus bên chip chân đưa ngồi chip Mục đích việc đưa tín hiệu địa chỉ, liệu điều khiển mở rộng khả phối ghép thêm vi xử lí với ngoại vi khác ( chủ yếu nhớ ngoài) ngoại vi tích hợp IC Thơng thường số lượng đường tín hiệu giữ nguyên đưa chip, nhiên số trường hợp số lượng đường tín hiệu nhỏ số lượng thực bên - Khi đưa , tín hiệu địa liệu ghép với nhau( sử dụng chung số chân đó) tách riêng( tín hiệu địa dùng số chân, tín hiệu liệu dùng số chân khác) Người ta thường dùng “dồn kênh”, tức ghép chức để giảm thiểu số chân cần thiết Khi tín hiệu địa xuất trước, sau tín hiệu liệu Để tách hai loại tín hiệu nhà sản xuất cung cấp cho người sử dụng đường tín hiệu điều khiển có tên tín hiệu chốt địa (thường kí hiệu ALE) Tín hiệu “tích cực” tín hiệu địa xuất “khơng tích cực” tín hiệu liệu xuất bus Các IC thích hợp với việc tách tín hiệu địa liệu IC thuộc họ 74xx373/374 74xx573/574 1.2.7.Ngăn xếp(stack) - Là đoạn nhớ (thường đặt RAM) dùng để chứa địa trở trường hợp chương trình chương trình phục vụ ngắt gọi Ngồi ngăn xếp cịn dùng để lưu liệu tạm thời Ngăn xếp hoạt động theo chế “vào sau trước”(LIFO-Last in First out) Ngăn xếp phần cứng vô quan trọng vi xử lí, tham gia vào thao tác rẽ nhánh( trừ thao tác nhảy) chương trình Người lập trình phải cẩn thận gán giá trị khởi tạo cho SP(thanh ghi trỏ ngăn xếp) để tránh cố tràn ngăn xếp ngăn xếp trùng với vùng nhớ lưu liệu khác Khi xảy cố khơng có cách kiểm sốt hoạt động vi xử lí gây thiệt hại lớn hệ thống 1.3.Nguyên lí hoạt động vi xử lí -Các thao tác tính tốn xử lí CPU thực theo chuỗi lệnh đặt nhớ chương trình -Việc thực lệnh diễn từ thấp đến cao thấp đến cao địa reset Địa reset địa mà sau cấp nguồn nuôi CPU bắt đầu đọc thực theo dẫn mã hóa Mỗi loại vi xử lí có địa reset riêng nhà sản xuất quy định -Các lệnh thực nhờ có ghi “bộ đếm chương trình” Thanh ghi chứa địa nhớ chứa mã lệnh thực Khi CPU tìm nạp mã lệnh n, ghi tự động tăng lên đơn vị để vào ô nhớ chứa mã lệnh (n=1) -CPU thực lệnh theo bước nhỏ Thường bao gồm: +Tìm mã lệnh: tức truy cập chương trình đọc lấy giá trị ô nhớ ghi lưu vào ghi chuyên dùng chứa mã lệnh CPU +Giải mã lệnh: giải mã giá trị lấy đặt ghi chứa mã lệnh CPU +Thực lệnh:thực dẫn giải mã từ lệnh đọc đươc 1.4.Các dòng vi điều khiển thường gặp • Họ vi điều khiển Atmel: AT89, 8051,8052,8951 • Họ vi điều khiển Intel: 8XC42, MCS96, 386ex • Họ vi điều khiển Fujitsu: F²MC Family (8/16 bit), FR Family (32 bit), FR-V Family (32 bit RISC)… • Họ vi diều khiển AMCC: 403 PowerPC CPU, PPC 403GCX,405 PowerPC CPU, PPC 405EP, PPC 405GP/CR, PPC 405GPr, PPC NPe405H/L • Họ vi điều khiển Microchip: PIC16Fxxx, dsPIC30F • Và nhiều dòng vi điều khiển khác -Sau tham khảo nhiều tài liệu loại vi điều khiển nhận góp ý, dẫn thầy giáo em chọn Pic 16F887 làm vi điều khiển cho mạch điều khiển Lý do: + Pic16F887 vi điều khiển phổ biến dễ dàng tìm mua + Giá thành khơng q đắt với sinh viên + Nó đáp ứng yêu cầu mạch điều khiển mà em dự định thiết kế +Tài liệu ứng dụng phổ biến 10 0xff,0xc3,0xb5,0xb6,0xb6,0xcf,0xff,0xff,//6 0xff,0xfe,0x8e,0xf6,0xfa,0xfc,0xff,0xff,//7 0xff,0xc9,0xb6,0xb6,0xb6,0xc9,0xff,0xff,//8 0xff,0xf9,0xb6,0xb6,0xd6,0xe1,0xff,0xff,//9 }; unsigned char ho_ten[]={ 0xff,0x81,0xbd,0xbd,0xc3,0xff,//D 0x87,0xeb,0xed,0xeb,0x87,0xff,//A 0x81,0xfb,0xf7,0xf7,0xfb,0x81,0xff,//M 0xff,0xff,0xff, 0x81,0xf7,0xf7,0xf7,0x81,0xff,//H 0xc1,0xbf,0xbf,0xbf,0xc1,0xff,//U 0x81,0xfb,0xf7,0xef,0x81,0xff,//N 0xc3,0xbd,0xad,0x8b,0xef,//G 0xff,0xff,0xff, 0xe1,0xdf,0xbf,0xdf,0xe1,0xff//V 0xff,0x81,0xff//I 0x81,0xb5,0xb5,0xb5,0xff,//E 0xfd,0xfd,0x81,0xfd,0xfd,0xff,//T 0xff,0xff,0xff,0xff,0xff 57 }; int scan[] ={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; int1 enable = 1; void dua_dulieu_595(int8 data_in); void xuat_dau_ra_595(void); void set_hien_thi(); void dich_font(void); #int_RTCC void RTCC_isr(void) { cnt++; if(cnt==38) // { cnt = 0; enable =~enable; } } 58 void main() { // char hour_chuc=1,hour_dv=0,min_chuc=2,min_dv=5; setup_adc_ports(NO_ANALOGS|VSS_VDD); setup_adc(ADC_CLOCK_DIV_2); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard enable_interrupts(INT_RTCC); enable_interrupts(GLOBAL); //Setup_Oscillator parameter not selected from Intr Oscillator Config tab // TODO: USER CODE!! ds1307_init(); 59 while(true) { if(enable == 1) { ds1307_get_time(hour,min,sec); } hour_chuc = hour/10; hour_dv = hour%10; min_chuc = min/10; min_dv = min%10; if(dem==2) { for(n=0;n

Ngày đăng: 12/01/2015, 14:50

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w