Mục tiêu của Bài giảng Vi xử lý 2 là trang bị cho sinh viên kiến thức chung của hệ vi xử lý tiên tiến, quy trình làm việc và lập trình điều khiển hoạt động hệ vi xử lý. Trên cơ sở đó, sinh viên có khả năng thiết kế phần cứng, viết phần mềm điều khiển hệ vi xử lý dựa trên các chip vi xử lý và vi điều khiển tiên tiến
BỘ LAO ĐỘNG THƯƠNG BINH XÃ HỘI TRƯỜNG ĐẠI HỌC S PHM K THUT NAM NH Tập giảng Vi xử lý Mó: TB2103-03-01 chủ biên: Phạm Xuân Bách Trần Văn Hạnh NAM ĐỊNH, NĂM 2013 Bài giảng Vi xư lý Mục lục DANH MỤC CÁC HÌNH VẼ iv LỜI MỞ ĐẦU Chƣơng CẤU TRÚC CHUNG CỦA CÁC BỘ VI XỬ LÝ TIÊN TIẾN .3 1.1 Giới thiệu số vi xử lý qua thời kỳ Intel 1.1.1 Bộ vi xử lý dòng 80xx 1.1.2 Bộ vi xử lý PENTIUM 1.1.3 Bộ vi xử lý dòng core i 22 1.2 Đặc điểm chung vi xử lý tiên tiến 26 1.2.1 Sơ đồ cấu trúc chung 26 1.2.2 Đơn vị giao tiếp BUS 27 1.2.3 Đơn vị tiền đọc lệnh hàng đợi lệnh PUIQ .27 1.2.4 Bộ nhớ Cache ( I Cache D Cache) 28 1.2.5 Đơn vị điều khiển CU 29 1.2.6 Đơn vị quản lý nhớ MMU 29 1.2.7 Đơn vị chức đặc biệt (SFU) 39 1.2.8 Đơn vị số nguyên dấu phảy động 39 1.3 Tổ chức nhớ đa cấp 42 1.3.1 Phương pháp tổ chức nhớ phân cấp 43 1.3.2 Cấu trúc nhớ phân cấp hệ vi xử lý 45 1.3.3 Tổ chức nhớ đan xen .48 1.4 Tổ chức quản lý nhớ ảo 52 1.4.1 Khái quát chung tổ chức quản lý nhớ ảo .52 1.4.2 Quá trình tổ chức quản lý nhớ ảo .54 1.5 Kiến trúc Von Neumann Havard 65 1.5.1 Kiến trúc Von Neumann 65 1.5.2 Kiến trúc Havard 66 CÂU HỎI ÔN TẬP CHƢƠNG .68 Chƣơng KIẾN TRÚC CISC VÀ RISC 70 2.1 Khái niệm CISC, RISC 70 2.1.1 Khái niệm CISC 70 2.1.2 Khái niệm RISC 70 2.2 Kiến trúc RISC 70 2.2.1 Đặc điểm RISC 70 2.2.2 Định hướng thiết kế RISC 71 2.3 Đặc điểm CISC 75 Bài giảng Vi xö lý 2.4 So sánh kiến trúc RISC CISC 75 CÂU HỎI ÔN TẬP CHƢƠNG 76 Chƣơng CÁC CẤU TRÚC SONG SONG 77 3.1 Tổng quan máy tính song song 77 3.1.1 Phân loại hệ xử lý song song 77 3.1.2 Các đặc trưng hệ xử lý song song chuyên dụng 81 3.1.3 Kiến trúc hệ xử lý song song chuyên dụng 83 3.2 Kỹ thuật đường ống ( kiến trúc kiểu PIPELINE) 84 3.2.1 Cấu trúc hệ xử lý PIPLINE 84 3.2.2 Nguyên tắc phương pháp xử lý vector PIPLINE 88 3.2.3 Kiến trúc pipeline có khả rẽ nhánh 88 3.2.4 Tổ chức hệ xử lý pipeline 90 3.3 Máy tính đa CPU 91 3.3.1 Khái quát máy tính đa CPU 91 3.3.2 Cấu trúc hệ xử lý song song đa CPU 92 3.3.3 Hiệu hệ xử lý đa CPU 93 3.4 Hiệu suất xử lý song song 95 3.4.1 Hiệu suất xử lý song song kiến trúc đường ống (PIPELINE) 95 3.4.2 Các phép đo hiệu suất đường ống (PIPELINE) 97 3.4.3 Những ảnh hưởng đến hiệu suất kiến trúc đường ống 97 3.4.4 Những biện pháp khắc phục 99 3.4.5 Hiệu suất truy cập nhớ hệ xử lý song song 102 CÂU HỎI ÔN CHƢƠNG 110 Chƣơng HỌ VI ĐIỀU KHIỂN PIC 111 4.1 Kiến trúc Vi điều khiển PIC 111 4.1.1 Giới thiệu vi điều khiển bit 111 4.1.2 Vi điều khiển bit PIC16F877 112 4.1.3 Các khối chức bên vi điều khiển PIC16f877 116 4.2 Tổ chức nhớ 129 4.2.1 Tổ chức nhớ chương trình FLASH ngăn xếp 129 4.2.2 Tổ chức nhớ liệu RAM 130 4.2.3 Các trang nhớ chương trình 133 4.2.4 Truy cập nhớ RAM địa trực tiếp, gián tiếp 133 4.2.5 Bộ nhớ liệu EEPROM nhớ chương trình FLASH 134 4.2.6 Đọc nhớ liệu EEPROM 135 Bài giảng Vi xử lý 4.2.7 Ghi vào nhớ liệu EEPROM .136 4.2.8 Đọc chương trình FLASH 136 4.2.9 Ghi tới FLASH 137 4.3 Khối timer/counter 138 4.4 Ngắt lập trình phục vụ ngắt 143 4.5 Lập trình vi điều khiển ngơn ngữ C 145 4.5.1 Lưu đồ thuật toán cấu trúc điều khiển .145 4.5.2 Giới thiệu tập lệnh PIC16F877 152 4.5.3 Tóm tắt lý thuyết ngơn ngữ lập trình C .153 4.5.4 Cấu trúc chương trình C .158 4.5.5 Lập trình cho vi điều khiển PIC CCS C 158 4.6 Một số ví dụ viết cho PIC 16F877A 170 4.6.1 Viết chương trình cho vi điều khiển có chức làm đầu 171 4.6.2 Viết chương trình cho vi điều khiển có chức làm đầu vào .176 4.6.3 Viết chương trình cho vi điều khiển ứng dụng ngắt 187 4.6.4 Viết chương trình cho vi điều khiển sử dụng ADC 190 4.6.5 Viết chương trình cho vi điều khiển sử dụng PWM 194 CÂU HỎI ÔN TẬP CHƢƠNG .196 TÀI LIỆU THAM KHẢO .201 Phụ lục A Nội dung file “def_16f877a” Bài giảng Vi xö lý DANH MỤC CÁC HÌNH VẼ Chƣơng Hình 1.1 Lịch sử phát triển CPU Hình 1.2 Cấu trúc bên vi xử lý Pentium Hình 1.3 Thực liệu từ MMX 13 Hình 1.4 Cấu trúc BUS Pentium II Pentium 15 Hình 1.5 Tổ chức bus hệ thống máy tính với vi xử lý Peniutm II 17 Hình 1.6 Mơ tả xử lý HTT 23 Hình 1.7 Mơ tả xử lý Multi Core 23 Hình 1.8 Mơ hình Turbo boost 23 Hình 1.9 Sơ đồ cấu trúc chung vi xử lý tiên tiến 26 Hình 1.10 Mơ hình phân đoạn nhớ 32 Hình 1.11 Cơ chế phần cứng hổ trợ kĩ thuật phân đoạn 32 Hình 1.12 Hệ thống phân đoạn 33 Hình 1.13 Chia sẻ code hệ phân đoạn 34 Hình 1.14 Quản lý nhớ bảng bit 34 Hình 1.15 Quản lý nhớ danh sách 35 Hình 1.16 Mơ hình nhớ phân trang 35 Hình 1.17 Cơ chế phần cứng hỗ trợ phân trang 36 Hình 1.18 Chia sẻ trang hệ phân trang 37 Hình 1.19 Mơ hình phân đoạn kết hợp phân trang 38 Hình 1.20 Cơ chế phần cứng phân đoạn kết hợp phân trang 39 Hình 1.21 Cấu trúc nhớ phân cấp hệ vi xử lý 45 Hình 1.22 Bộ nhớ đan xen bậc cao 48 Hình 1.23 Bộ nhớ đan xen bậc thấp 49 Hình 1.24 Cấu hình nhớ S – access 50 Hình 1.25 Giản đồ thời gian cấu hình S – access 50 Hình 1.26 Cấu hình nhớ C – access 51 Hình 1.27 Giản đồ thời gian cấu hình C – access 51 Hình 1.28 Bảng đặc tả trang ảo 57 Hình 1.29 Thí dụ bảng đặc tả trang 57 Hình 1.30 Qui trình đổi địa ảo sang địa thật 58 Hình 1.31 Phương pháp FIFO 58 Bài giảng Vi xử lý Hình 1.32 Phương pháp ―Clock‖ 59 Hình 1.33 Bảng đặc tả trang 61 Hình 1.34 Quá trình phân trang 61 Hình 1.35 Khơng gian địa ảo 62 Hình 1.36 Khơng gian nhớ độc lập 62 Hình 1.37 Bảng đặc tả phân đoạn 63 Hình 1.38 Bảng đặc tả phân trang phân đoạn 64 Hình 1.39 Kiến trúc Von-Neumann 65 Hình 1.40 Kiến trúc Harvard 67 Chƣơng Hình 2.1 Mơ hình kiến trúc: a) Hệ xử lý CISC b) Hệ xử lý RISC 76 Chƣơng Hình 3.1 Mơ hình kiến trúc SISD 79 Hình 3.2 Mơ hình kiến trúc SIMD 79 Hình 3.3 Mơ hình kiến trúc MISD 80 Hình 3.4 Mơ hình kiến trúc MIMD 80 Hình 3.5 Kiến trúc hệ xử lý song song chuyên dụng 84 Hình 3.6 Cấu trúc pipeline 85 Hình 3.7 Kiến trúc PIPELINE tầng 86 Hình 3.8 Hiệu ứng PIPELINE 86 Hình 3.9 Cấu trúc khối chuẩn bị lệnh máy tính CRAY-1 87 Hình 3.10 Pipeline có khả rẽ nhánh 89 Hình 3.11 Tổ chức kênh thơng tin hệ PIPELINE 90 Hình 3.12 Hiệu ứng pipline bị huỷ bỏ gặp lệnh nhảy 90 Hình 3.13 Tổ chức phần cứng hệ xử lý song song p CPU 92 Hình 3.14 PIPELINE tuyến tính 95 Hình 3.15 Mơ hình hệ thống nhớ đan xen 104 Hình 3.16 Sự phụ thuộc En vào n 105 Hình 3.17 Đồ thị thời gian chu kỳ truy cập nhớ 106 Hình 3.18 Sự phụ thuộc IEn 107 Hình 3.19 Mối quan hệ hiệu suất DEn theo n =16 109 Hình 3.20 Mối quan hệ hiệu DEn theo n thay đổi 110 Bài giảng Vi xö lý Chƣơng Hình 4.1 Sơ đồ khối vi điều khiển PIC16F877 112 Hình 4.2 Sơ đồ chân vi điều khiển PIC16F887 114 Hình 4.3 Cấu trúc chân RA0-RA3 PORTA 116 Hình 4.4 Cấu trúc chân RA4 RA5 PORTA 116 Hình 4.5 Cấu trúc chân RB0-RB3 RB4-RB7 PORTB 117 Hình 4.7 Cấu trúc chân RC3,RC4 RC0,RC1,RC2,RC5,RC6,RC7 PORTC 118 Hình 4.8 Cấu trúc chân PORTD 119 Hình 4.9 Cấu trúc chân PORTE 120 Hình 4.10 Tổ chức nhớ chương trình FLASH ngăn xếp 130 Hình 4.11 Tổ chức nhớ liệu RAM 131 Hình 4.12 Quá trình nạp PCLATH tới PC 133 Hình 4.13 Truy cập nhớ RAM 133 Hình 4.11 Cấu trúc Timer0 WDT 139 Hình 4.12 Cấu trúc Timer1 141 Hình 4.13 Cấu trúc Timer2 143 Hình 4.14 Sơ đồ bit điều khiển ngắt 144 Hình 4.14 Các ký hiệu sử dụng lưu đồ thuật toán 146 Hình 4.15 Cấu trúc 146 Hình 4.16 Cấu trúc lựa chọn if 148 Hình 4.18 Cấu trúc lặp for / while 150 Hình 4.19 Cấu trúc lặp / while 150 Hình 4.20 Cấu trúc khung chương trình C 158 Hình 4.21 Tạo dự án CCS C 160 Hình 4.22 Cửa sổ SaveAs để lưu dự án CCS 160 Hình 4.23 Tab General CCS C 161 Hình 4.24 Tab Communications CCS C 162 Hình 4.25 Tab SPI and LCD CCS C 162 Hình 4.26 Tab Timer CCS C 163 Hình 4.27 Tab Analog CCS C 163 Hình 4.28 Tab Other CCS C 164 Hình 4.29 Tab Interrupts CCS C 165 Bài giảng Vi xử lý Hình 4.30 Tab Driver CCS C 165 Hình 4.31 Tạo dự án CCS C 168 Hình 4.32 Lưu dự án CCS C 169 Hình 4.33 Tùy chọn cho dự án CCS C 169 Hình 4.34 Dự án tạo CCS C 170 Bài giảng Vi xö lý LỜI MỞ ĐẦU Sự đời phát triển nhanh công nghệ vi điện tử tạo bước đột phá mạnh mẽ lĩnh vực khoa học tính tốn xử lý thơng tin Với phát triển ứng dụng công nghệ làm cho ranh giới ngành khơng cịn rõ rệt (như Công nghệ thông tin, Điện tử viễn thông Tự động điều khiển…) Các hệ thống từ quy mô nhỏ tới quy mô lớn siêu lớn lĩnh vực công nghiệp dân dụng chứng kiến hữu hệ vi xử lý, chúng đóng vai trị trung tâm điều khiển hệ thống thực nhiệm vụ Những hệ thống đáp ứng yêu cầu khắt khe đòi hỏi phải xử lý liệu với tốc độ cao, khối lượng liệu số lượng phép tính lớn Để đáp ứng yêu cầu trên, giải pháp thiết kế hệ thống theo hướng xử lý song song hướng nghiên cứu ưu tiên ngày Để tăng tốc độ cho hệ xử lý, nhà thiết kế chế tạo áp dụng cơng nghệ tiên tiến, bước nâng cấp hồn thiện cho vi xử lý Điển hình cấu trúc vi xử lý với tập lệnh đầy đủ (CISC), vi xử lý với tập lệnh rút gọn RISC Những nghiên cứu kiến trúc hệ thống số khẳng định ưu bật hệ thống xử lý song song Tuy nhiên, xử lý song song vấn đề phức tạp, liên quan tới nhiều cấu như: phần cứng hệ xử lý, phần mềm hệ thống (hệ điều hành), thuật tốn tính tốn, ngơn ngữ lập trình… Học phần Vi xử lý học phần chuyên ngành ngành đào tạo Công nghệ Kỹ thuật Điện-Điện tử khoa Điện-Điện tử trường ĐH Sư phạm Kỹ thuật Nam Định Đào tạo theo học chế tín chỉ, thời gian tự học sinh viên chiếm lượng thời gian lớn, nhằm cung cấp cho sinh viên tài liệu có tính hệ thống phục vụ q trình tự học, chúng tơi biên soạn tập giảng học phần Vi xử lý Mục tiêu học phần trang bị cho sinh viên kiến thức chung hệ vi xử lý tiên tiến, quy trình làm việc lập trình điều khiển hoạt động hệ vi xử lý Trên sở đó, sinh viên có khả thiết kế phần cứng, viết phần mềm điều khiển hệ vi xử lý dựa chip vi xử lý vi điều khiển tiên tiến Đặc trưng sinh viên ngành Điện-Điện tử thường điều khiển thiết bị đòi hỏi kết hợp phần cứng phần mềm Để xây dựng thiết bị vi xử lý, đòi hỏi phải thiết kế phần cứng tương đối phức tạp bao gồm tổ chức nhớ, phối ghép vào Điều khó khăn với người tiếp cận mơn học để tạo sản phẩm hoàn chỉnh Trong trường hợp này, ứng dụng vi điều khiển có nhiều Bài giảng Vi xử lý #define LCD_DATA7 PIN_D7 //dinh nghia chan du lieu D7 cua LCD #include //su dung file LCD.C tu thu vien cua chuong trinh //dinh nghia cac chan noi voi led don de canh bao, tich cuc muc thap #define led1 rb4 #define led2 rb5 //dien ap tren 1V //dien ap tren 2V #define led3 rb6 #define led4 rb7 //dien ap tren 3V //dien ap tren 4V /*khai bao cac bien su dung, bien value0 chua gia tri chuyen doi nhiet tai kenh 0, bien value1 chua gia tri chuyen doi dien ap tu kenh 1*/ float value0,value1; // -Chuong trinh chinh thuc hien void main() { trisb=0x0; //xac lap cong B lam dau led1=1, led2=1, led3=1, led4=1; //tat het cac led dau lcd_init(); //khoi tao lcd /*khong nhat thiet phai co dong sau delay_ms(10); lcd_putc("PIC167877A+LM35\n"); //hien thi dong chu va xuong dong lcd_putc("Temprature read"); delay_ms(1000); //tre di mot khoang thoi gian de doc duoc dong chu tren lcd_putc("\f"); //xoa LCD */ //khoi tao adc setup_adc(ADC_CLOCK_INTERNAL ); //chon nguon dao dong ben cho ADC setup_adc_ports( RA0_RA1_RA3_ANALOG ); //chon dau vao RA0,1,3 la Analog, va mac dinh vfef+ =5V, vref-=0V while(true) //lap lien tuc doan chuong trinh sau { set_adc_channel(0); //chon ADC kenh delay_us(10); value0 = read_adc(); //doc kenh va cat vao bien value0 set_adc_channel(1); //chon ADC kenh delay_us(10); value1 = read_adc(); //doc kenh va cat vao hien value1 /*thuc hien chuyen tu dien ap sang nhiet do;Vref+=5V tuong ung 193 Bài giảng Vi xö lý voi 0-1024 >> so dem ung voi xmv=5000/1024; 1deg =10mv>>>T=ADC*(5000/1024)/10=0.489 */ value0=value0*0.489; value1=value1*(5.0/1023);//*4.89; lcd_gotoxy(1,1); //di chuyen tro toi cot hang printf(lcd_putc,"T1:=%3.0f\n",value0); //de ky tu de ghi,khong lay sau dau phay, gia tri la so thuc, xuong dong moi printf(lcd_putc,"DA:=%3.2f",value1); //de ky tu de ghi,lay gia tri sau dau phay, gia tri la so thuc //tien hanh so sanh dien ap doc duoc o kenh de canh bao tren led don if(value1=2&&value12V sang led2 if(value1>=3&&value13V sang led3 if(value1>=4){led1=1;led2=1;led3=1;led4=0; //>4V sang led4 } } } 4.6.5 Viết chƣơng trình cho vi điều khiển sử dụng PWM Ví dụ: Thực điều chế độ rộng xung ứng dụng chức pwm pic16f877a, hiển thị tham số LCD - Sơ đồ nguyên lý: 194 Bài giảng Vi xử lý - Chương trình phần mềm /*chuong trinh tao xung dung chuc nang PWM Nguoi thuc hien: Nhom tac gia hien thi cac tham so tren lcd tren LCD*/ #include #fuses HS,NOWDT //cau hinh VDK hoat dong o tan so cao, khong WDT #device *=16 ADC=10 //su dung ADC co phan dai 10 bit #include //su dung file dinh nghia #use delay(clock=12mhz) //su dung tan so thach anh la 12mhz #define LCD_RS_PIN PIN_D0 //dinh nghia chan lua chon ghi cua LCD #define LCD_RW_PIN PIN_D1 //dinh nghia chan doc/ghi cua LCD #define LCD_ENABLE_PIN PIN_D2 //dinh nghia chan cho phep LCD //su dung kieu truyen nibble (4 bit) #define LCD_DATA4 PIN_D4 //dinh nghia chan du lieu D4 cua LCD #define LCD_DATA5 PIN_D5 #define LCD_DATA6 PIN_D6 #define LCD_DATA7 PIN_D7 //dinh nghia chan du lieu D7 cua LCD #include //su dung file LCD.C tu thu vien cua chuong trinh //dinh nghia cac chan noi voi led don de canh bao, tich cuc muc thap #define pwm rc2 //chan dau cua pwm void main() { lcd_init(); //khoi tao lcd lcd_putc("UNG DUNG PWM\n"); lcd_putc("DO RONG XUNG 50%"); setup_timer_2(T2_DIV_BY_1,255,1); setup_ccp1(CCP_PWM); //cho phep dieu che rong xung o dau ccp1 set_pwm1_duty(127); //do rong xung la 50% while(TRUE) //khong lam gi nua { } } 195 Bài giảng Vi xö lý CÂU HỎI ÔN TẬP CHƢƠNG Câu 1: Dùng CCS C, viết chương trình cho vi điều khiển PIC 16F877A điều khiển led đơn nối với PORTD (sắp xếp RD0, RD1,…., RD7) theo yêu cầu led sáng dần từ lần sau tắt dần từ lần Hai trình lặp lặp lại, led cho tích cực mức thấp Câu 2: Dùng CCS C, viết chương trình cho vi điều khiển PIC 16F877A điều khiển led đơn nối với PORTB (sắp xếp RB0, RB1,….,RB7) theo yêu cầu led sáng chạy từ phải qua trái lần sau sáng dần 10 lần Hai trình lặp lặp lại, led cho tích cực mức thấp Câu 3: Vi điều khiển PIC 16F877A có chân PORTB chân PORTC nối tới chân Anode 16 led đơn Các chân cathode 16 led đơn nối qua trở hạn dòng xuống mass Dùng CCS C, viết chương trình cho vi điều khiển PIC 16F877A điều khiển led đơn nối với PORTB sáng dần, PORTC tắt dần Hai PORT thực đồng thời Câu 4: Cho sơ đồ nguyên lý hình vẽ Dùng CCS C, viết chương trình cho vi điều khiển PIC 16F877A điều khiển 16 led đơn nối với PORTB, PORTC theo yêu cầu 16 led sáng dần lần sau tắt dần lần Hai trình lặp lặp lại 196 Bài giảng Vi xử lý Câu 5: Cho sơ đồ nguyên lý hình vẽ Dùng CCS C, viết chương trình điều khiển cho vi điều khiển PIC 16F877A thực chức làm đầu vào điều khiển led đơn theo yêu cầu: + Nếu RC0 = 0, RC1 = điều khiển led đơn sáng chạy từ RB0 đến RB7 +Các trạng thái khác RC1 RC0 điều khiển led sáng dần từ đầu vào Câu 6: Dùng CCS C, viết chương trình cho vi điều khiển PIC 16F877A điều khiển led đơn nối với PORTC (sắp xếp RC0, RC1,….,RC7) theo yêu cầu led sáng chạy từ đầu vào Sử dụng Timer0 để tạo thời gian trễ lần thay đổi 0,5 giây Thạch anh sử dụng có tần số Mhz, led cho tích cực mức thấp Câu 7: Cho sơ đồ nguyên lý hình vẽ Dùng CCS C, viết chương trình cho vi điều khiển PIC 16F877A điều khiển trò chơi đơn giản cho người chơi là: A,B,C,D,E người dẫn chương trình thực theo yêu cầu sau: + Khi thí sinh nhấn phím trả lời câu hỏi đèn báo thí sinh sáng lên chng kêu vịng giây đồng thời thí sinh cịn lại bị quyền + Chỉ có người dẫn chương trình có quyền xác lập lại từ đầu (tắt đèn chng ) 197 Bài giảng Vi xư lý Câu 8: Dùng CCS C, viết chương trình cho vi điều khiển PIC 16F877A thực chuyển đổi điện áp tương tự sang số đầu vào tương tự từ RA0 đến RA3 với thời gian hiển thị cho đầu vào giây, sử dụng Timer1 để tính thời gian trễ, hiển thị kết dạng nhị phân led đơn nối với PORTB Cho thạch anh có tần số 4MHZ Câu 9: Dùng CCS C, viết chương trình cho vi điều khiển PIC 16F877A đếm xung đưa tới chân RC0/T1CK1 hiển thị số đếm từ – 5000 dạng nhị phân led đơn nối với PORTB PORTD, PORTD hiển thị bit thấp cịn PORTD hiển thị bit cao Các led cho tích cực mức cao Câu 10: Dùng CCS C, viết chương trình cho vi điều khiển PIC 16F877A điều khiển đèn giao thông ngã tư gồm đèn xanh, đỏ, vàng theo thời gian sau: Đèn đỏ: 20 giây, đèn xanh 16 giây Biết tần số thạch anh sử dụng 12MHZ Câu 11: Thiết kế xe tự hành ( Robốt đơn giản ) sử dụng vi điều khiển PIC 16F877A Yêu cầu: + Xe tự hành theo vạch trắng dán sẵn + Khi gặp vật cản xe tự động quay đầu Câu 12: Thiết kế đo nhiệt độ phòng với dải đo từ độ C đến 70 độ C sử dụng vi điều khiển PIC 16F877A Yêu cầu: + Hiển thị nhiệt độ phòng led đoạn + Tạo giao diện máy tính để hiển thị nhiệt độ đọc từ vi điều khiển thông qua chuẩn RS232 máy tính 198 Bài giảng Vi xử lý + Cảm biến nhiệt độ sử dụng LM35 (có thơng số 10mv/1độ C) Câu 13: Thiết kế đo nhiệt độ phòng với dải đo từ độ C đến 70 độ C sử dụng vi điều khiển PIC 16F877A Yêu cầu: + Hiển thị nhiệt độ phòng led đoạn + Nếu nhiệt độ phòng 250 bật quạt + Cảm biến nhiệt độ sử dụng LM35 (có thơng số 10mv/1độ C) Câu 14: Thiết kế mạch tự động báo tiết học trường ĐHSPKT Nam Định sử dụng vi điều khiển PIC 16F877A Yêu cầu: + Lịch báo theo lịch trường + Hiển thị giờ, phút led + Khi điện không bị liệu + Tín hiệu báo học mạch KĐCS âm tần Câu 15: Thiết kế mạch quang báo dùng ma trận led sử dụng vi điều khiển PIC 16F877A Yêu cầu: + Hiển thị nội dụng dòng chữ: ― Trường đại học sư phạm kỹ thuật Nam Định, + Ma trận tạo thành đơn sắc đa sắc gồm hàng 64 cột Câu 16: Thiết kế mạch điều khiển hệ thống điện gia đình sử vi điều khiển PIC 16F877A Yêu cầu: + Hệ thống điều khiển đèn chiếu sáng quạt trần + Các thiết bị tắt mở độc lập + Việc điều khiển tiến hành thơng qua phím nhấn bảng điều khiển nhận điều khiển xa hồng ngoại (Sử dụng điều khiển: Sony Philip) Câu 17: Thiết kế mạch điều khiển đèn giao thông ngã tư giao thông sử dụng vi điều khiển PIC 16F877A Yêu cầu: + Mỗi luồng gồm có đèn: Đỏ, Vàng, Xanh hai đèn: Đỏ, Xanh cho người + Có đếm lùi hiển thị led đoạn để thị thời gian luồng + Có phím chọn chế độ ưu tiên, phân luồng giao thơng + Có phím chọn chế độ đèn vàng chớp tắt Câu 18: Thiết kế máy phát xung đa sử dụng vi điều khiển PIC 16F877A Yêu cầu: + Tạo ba dạng xung: Vuông, Sin, Tam giác 199 Bài giảng Vi xö lý + Có cơng tắc để chọn dạng xung Chọn dải tần số + Có núm chỉnh để thay đổi biên độ xung Câu 19: Thiết kế mạch đo tần số sử dụng vi điều khiển PIC 16F877A Yêu cầu: + Đo tần số xung vng đầu vào có tần số biến thiên từ 1Hz đến 1Khz + Hiển thị tần số đo led đoạn Câu 20: Thiết kế mạch điều khiển động chiều sử dụng vi điều khiển PIC 16F877A Yêu cầu: + Điều khiển tốc độ động theo phương pháp PWM + Kiểm sốt tốc độ động thơng qua ENCODER hiển thị led đoạn + Có phím nhấn để chọn: RUN, STOP, FF,RV,INC,DEC 200 Bài giảng Vi xử lý TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt: [1] Giản Quốc Anh Ngân hàng câu hỏi Vi xử lý Trường Đại học SPKT Nam Định [2] Đoàn Văn Ban, Nguyễn Mậu Hân(2006), Xử lý song song phân tán, NXB Khoa học Kỹ thuật, Hà nội [3] Hồ Khánh Lâm Giáo trình Kỹ thuật Vi xử lý Tập 1,2 NXB Bưu Điện 2007 [4] Đỗ Xuân Tiến (2003), Kỹ thuật lập trình điều khiển hệ thống, Nxb Khoa học Kỹ thuật, Hà Nội [5] Đỗ Xuân Tiến Kỹ thuật Vi xử lý Lập trình Assembly cho hệ vi xử lý NXB KHKT- Hà Nội, 2001 Tài liệu tiếng Anh: [6] Barry B Brey.The Intel Microprocessors: 8088/8086, 80186/80188, 80286, 80386, 80486, Pentium and Pentium Pro Processor: Architecture, Programming, and Interfacing Fourth Edition, Prentice Hall, 1997 [7] I.Scott Mackenzie The 8051 Microcontroller 2nd.Ed Prentice Hall 1995 [8] Daniel tabak (1995), “Advanced Microprocessor” McGrow Hill [9] Gao Q S (1996), “Approach to making supercomputer by microprocessor cellular sector computer of vertical and horizotal processing with virtual common memory”, Conf parallel Proc [10] Richard J Prestopic (1995), “Microprocessorand IC families” Walter H [11] Mostafa AbDelBarr, Hesham ElRewini Fundamentals of ComputerOrganization and Architecture Wiley Interscience 2005 [12] Hesham ElRewini, Mostafa AbDelBarr Advanced Computer Architecture and Parallel Processing Wiley Interscience 2005 [13] John Lovine Pic Microcontroller project book McGraw-Hill 2000 [14] Baskett, Fand Keiler (1987), An Evalusion of the CRAY 1-High speed computer and algorithm organization, New York [15] Daniel Tabak (1995), Advanced Microprocessor, McGrow Hill [16] Do Xuan Tien, Nguyen Van Hoi (1999), “Parallel algorithms to design multiprocessor systems”, Journal of science and technique, 3(88), pp 3-9 [17] Fand Smith (1996), Interference of multiprocessor computer system with interleaved memory, Comm of ACM 201 Bài giảng Vi xö lý Phụ lục A Nội dung file “def_16f877a” // register definitions #define W #define F // register files #byte INDF =0x00 #byte TMR0 =0x01 #byte PCL =0x02 #byte STATUS =0x03 #byte FSR =0x04 #byte PORTA #byte PORTB #byte PORTC =0x05 =0x06 =0x07 #byte PORTD #byte PORTE =0x08 =0x09 #byte EEDATA =0x10C #byte EEADR =0x10D #byte EEDATH #byte EEADRH #byte ADCON0 #byte ADCON1 #byte ADRESH #byte ADSESL =0x10E =0x10F =0x1F =0x9F =0x9F =0x9F #byte PCLATH =0x0a #byte INTCON =0x0b #byte PIR1 =0x0c #byte PIR2 =0x0d #byte PIE1 =0x8c #byte PIE2 =0x8d #byte OPTION_REG =0x81 #byte TRISA =0x85 #byte TRISB =0x86 #byte TRISC =0x87 Bài giảng Vi xö lý #byte TRISD =0x88 #byte TRISE =0x89 #byte EECON1 #byte EECON2 =0x18C =0x18D //DINH NGHIA BIT #bit RA5 =0x05.5 #bit RA4 =0x05.4 #bit RA3 =0x05.3 #bit RA2 =0x05.2 #bit RA1 =0x05.1 #bit RA0 =0x05.0 #bit RB7 =0x06.7 #bit RB6 =0x06.6 #bit RB5 #bit RB4 #bit RB3 #bit RB2 #bit RB1 #bit RB0 =0x06.5 =0x06.4 =0x06.3 =0x06.2 =0x06.1 =0x06.0 #bit RC7 =0x07.7 #bit RC6 #bit RC5 #bit RC4 #bit RC3 #bit RC2 #bit RC1 #bit RC0 =0x07.6 =0x07.5 =0x07.4 =0x07.3 =0x07.2 =0x07.1 =0x07.0 #bit RD7 #bit RD6 #bit RD5 #bit RD4 =0x08.7 =0x08.6 =0x08.5 =0x08.4 Bài giảng Vi xử lý #bit RD3 =0x08.3 #bit RD2 =0x08.2 #bit RD1 =0x08.1 #bit RD0 =0x08.0 #bit RE2 =0x09.2 #bit RE1 =0x09.1 #bit RE0 =0x09.0 #bit TRISA5 =0x85.5 #bit TRISA4 =0x85.4 #bit TRISA3 =0x85.3 #bit TRISA2 =0x85.2 #bit TRISA1 =0x85.1 #bit TRISA0 #bit TRISB7 #bit TRISB6 #bit TRISB5 =0x85.0 =0x86.7 =0x86.6 =0x86.5 #bit TRISB4 =0x86.4 #bit TRISB3 =0x86.3 #bit TRISB2 =0x86.2 #bit TRISB1 =0x86.1 #bit TRISB0 #bit TRISC7 #bit TRISC6 #bit TRISC5 =0x86.0 =0x87.7 =0x87.6 =0x87.5 #bit TRISC4 #bit TRISC3 #bit TRISC2 #bit TRISC1 #bit TRISC0 =0x87.4 =0x87.3 =0x87.2 =0x87.1 =0x87.0 #bit TRISD7 =0x88.7 #bit TRISD6 =0x88.6 #bit TRISD5 #bit TRISD4 #bit TRISD3 #bit TRISD2 =0x88.5 =0x88.4 =0x88.3 =0x88.2 Bài giảng Vi xö lý #bit TRISD1 =0x88.1 #bit TRISD0 =0x88.0 #bit TRISE2 =0x89.2 #bit TRISE1 =0x89.1 #bit TRISE0 =0x89.0 // INTCON Bits for C #bit gie = 0x0b.7 #bit peie = 0x0b.6 #bit tmr0ie = 0x0b.5 #bit int0ie = 0x0b.4 #bit rbie = 0x0b.3 #bit tmr0if = 0x0b.2 #bit int0if = 0x0b.1 #bit rbif = 0x0b.0 // PIR1 for C #bit pspif = 0x0c.7 #bit adif = 0x0c.6 #bit rcif = 0x0c.5 #bit txif = 0x0c.4 #bit sspif = 0x0c.3 #bit ccp1if = 0x0c.2 #bit tmr2if = 0x0c.1 #bit tmr1if = 0x0c.0 //PIR2 for C #bit cmif = 0x0d.6 #bit eeif = 0x0d.4 #bit bclif = 0x0d.3 #bit ccp2if = 0x0d.0 // PIE1 for C #bit adie = 0x8c.6 #bit rcie = 0x8c.5 Bài giảng Vi xử lý #bit txie = 0x8c.4 #bit sspie = 0x8c.3 #bit ccp1ie = 0x8c.2 #bit tmr2ie = 0x8c.1 #bit tmr1ie = 0x8c.0 //PIE2 for C #bit osfie = 0x8d.7 #bit cmie = 0x8d.6 #bit eeie = 0x8d.4 // OPTION Bits #bit not_rbpu = 0x81.7 #bit intedg = 0x81.6 #bit t0cs = 0x81.5 #bit t0se = 0x81.4 #bit psa = 0x81.3 #bit ps2 = 0x81.2 #bit ps1 = 0x81.1 #bit ps0 = 0x81.0 // EECON1 Bits #bit eepgd = 0x18c.7 #bit free = 0x18C.4 #bit wrerr = 0x18C.3 #bit wren = 0x18C.2 #bit wr = 0x18C.1 #bit rd = 0x18C.0 //ADCON0 #bit CHS0 =0x1F.3 #bit CHS1 =0x1F.4 #bit CHS2 =0x1F.5 ... Intel 1.1.1 Bộ vi xử lý dòng 80xx 1.1 .2 Bộ vi xử lý PENTIUM 1.1.3 Bộ vi xử lý dòng core i 22 1 .2 Đặc điểm chung vi xử lý tiên tiến 26 1 .2. 1 Sơ đồ cấu trúc... đủ 32bit - vi xử lý mạnh tối ưu với hệ điều hành đa nhiệm Một số thông số đặc điểm vi xử lý sau: - Các ghi mở rộng đến 32bit nên 80386 gọi vi xử lý 32bit - Bus liệu tăng từ 16 lên 32bit ngồi Bài. .. bạn đọc Nhóm biên soạn Bài giảng Vi xử lý Chƣơng CẤU TRÚC CHUNG CỦA CÁC BỘ VI XỬ LÝ TIÊN TIẾN 1.1 Giới thiệu số vi xử lý qua thời kỳ Intel Những năm gần đây, kỹ thuật vi xử lý phát triển cách nhanh