Giáo trình Công nghệ kỹ thuật điện. Điện tử - Thí nghiệm vi xử lý
KHÁI QUÁT VỀ VI ĐIỀU KHIỂN
- Vi điều khiển (Microcontroller_ thường được viết tắt là uC, MCU)
là một mạch tích hợp, bên trong được cấu tạo bởi các nhân xử lý, bộ nhớ
và có khả năng lập trình giao tiếp với thiết bị ngoại vi. Các bộ vi điều
khiển thường được sử dụng trong các sản phẩm, thiết bị điều khiển tự
động, các hệ thống điều khiển từ xa, và các hệ thống nhúng.
Các thành phần của mạch TNVXL:
- Module Microcontroller Unit: là đế gắn đưa ra nguồn có thể kết nối
các loại chip: 89Sxx, AVR, PIC
- J101: dùng liên kết mạch nạp cho Chip.
- J106: Chọn tín hiệu Reset Chip.
- Ở vị trí ATMEL 89: Thực hiện Reset chip Atmel 89Sxx.
- Ở vị trí AVR/PIC: Thực hiện Reset chip AVR/PIC.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Giáo trình Công nghệ kỹ thuật điện. Điện tử - Thí nghiệm vi xử lý
ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƢỜNG CAO ĐẲNG GIAO THÔNG VẬN TẢI KHOA KỸ THUẬT ĐIỆN – ĐIỆN TỬ ..o0o.. BÀI GIẢNG: THÍ NGHIỆM VI XỬ LÝ NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN – ĐIỆN TỬ TRÌNH ĐỘ: CAO ĐẲNG Giảng viên: NGUYỄN THỊ THU LAN TP.HỒ CHÍ MINH, THÁNG 9 NĂM 2016 LỜI MỞ ĐẦU Trong việc dạy và học giữa các môn lý thuyết và thực hành nhằm phát triển và nâng cao tay nghề cho sinh viên tạo nền tảng vững chắc cho sinh viên sau khi tốt nghiệp. Chính vì thế trải qua một thời gian đào tạo đúc kết kinh nghiệm dạy và học lý thuyết cơ sở cho môn học Vi Xử Lý quá trừu tượng thì môn học Thí Nghiệm Vi Xử Lý sẽ giúp các em nắm vững hơn về cấu trúc các phần cứng và lập trình trên các hợp ngữ Assembler hoặc ngôn ngữ C trong phòng thí nghiệm. Trong lập trình cho vi điều khiển, hợp ngữ thường được sử dụng khi cần viết những chương trình có kích thước nhỏ, hoặc những đoạn chương trình đòi hỏi tốc độ thực thi nhanh, có thể tính toán chính xác thời gian thực thi. Với sự phát triển của công nghệ vi mạch, ngày càng nhiều các họ vi điều khiển khác nhau ra đời, với dung lượng bộ nhớ lớn. Do đó, vấn đề tối ưu hóa kích thước chương trình trở nên không còn quá trong trọng. Thay vào đó, người lập trình đòi hỏi phải có khả năng học lập trình cho một vi điều khiển mới một cách nhanh chóng, có khả năng viết các chương trình phức tạp, và những mã nguồn cũ có thể dễ dàng sử dụng lại cho các họ vi điều khiển mới. Ngôn ngữ C, với các đặc điểm như là ngôn ngữ có cấu trúc, có khả năng tương tác phần cứng cao, mềm dẻo và có cộng động sử dụng rộng lớn, là ngôn ngữ thích hợp để lập trình cho các vi điều khiển. Đây cũng là mục tiêu chính trong chương trình đào tạo được biên soạn của tập thể giảng viên khoa Điện – Điện Tử “ Học phải đi đôi với thực tiễn ” chính điều này sẽ tạo nên tay nghề vững chắc cho sinh viên khi tham gia học tập tại trường. Để đáp ứng được nhu cầu và tính cấp thiết của người học thì việc xây dựng một giáo trình phù hợp với chuyên ngành là việc cấp bách hiện nay khi mà chương trình được chuyển đổi sang cơ quan quản lý Bộ Lao Động Thương Binh Và Xã Hội với tổng thời gian thực hành chuyên môn cao nhằm rèn luyện tay nghề và đúc kết kinh nghiệm thực tế cho các em trước khi ra trường. MỤC LỤC TUYÊN BỐ BẢN QUYỀN: .................................... Error! Bookmark not defined. LỜI MỞ ĐẦU ............................................................................................................ 0 Bài thí nghiệm số 1: ................................................................................................... 2 GIỚI THIỆU PHẦN MỀM MÔ PHỎNG PROTEUS .............................................. 2 1.1. MỤC TIÊU ...................................................................................................... 2 1.2. DỤNG VỤ, HỌC CỤ SỬ DỤNG ................................................................... 2 1.3. NỘI DUNG ...................................................................................................... 2 1.3.1 CƠ SỞ LÝ THUYẾT ...................................................................................... 2 1.3.1.1. KHÁI QUÁT VỀ VI ĐIỀU KHIỂN .............................................................. 2 1.3.1.2. GIỚI THIỆU BỘ KIT THÍ NGHIỆM VI XỬ LÝ .......................................... 3 A. Các thành phần của mạch TNVXL: ..................................................................... 4 B. Các chương trình sử dụng trong thí nghiệm: ...................................................... 13 1.3.1.3. SƠ LƢỢC VỀ VI ĐIỀU KHIỂN 8 BIT, 16 BIT ......................................... 15 A. Giới thiệu vi điều khiển 8 bit AT89S52 có đặc điểm như sau: .......................... 15 B. Giới thiệu vi điều khiển 16 bit PIC 16F877A có đặc điểm chính như sau: ..... 17 1.3.1.4. PHẦN MỀM MÔ PHỎNG ......................................................................... 22 A. Phần mềm Proteus của hãng Labcenter Electronics hỗ trợ mô phỏng các mạch điện tử, đặc biệt là mô phỏng vi điều khiển. ............................................................ 22 B. Hướng Dẫn Sử Dụng Chương Trình Keil C Mô Phỏng Vi Điều Khiển 8 BIT.. 30 C. Hướng dẫn sử dụng phần mềm biên dịch PIC C COMPILER mô phỏng vi điều khiển 16 BIT cho PIC 16F877A .............................................................................. 41 Các bƣớc tạo một Project trong PIC C Compiler. .......................................... 42 Chƣơng trình nạp ( Pickit2 V2.61) .................................................................. 45 Nạp chƣơng trình vào PIC dùng PICkit 2 Programmer .................................. 45 1.3.1.5. CHƢƠNG TRÌNH MẪU ............................................................................ 47 1.3.2 TIỀN TRÌNH THÍ NGHIỆM ...................................................................... 48 1.3.3 BÀI TẬP THÍ NGHIỆM ............................................................... ... //********************* } } 2. Bài tập 2: Vẽ sơ đồ phần cứng, tóm tắt bảng chức năng, thành lập lưu đồ, viết chương trình điều khiển hiển thị LED 7 đoạn lịch vạn niên lấy từ DS1307. a. Vẽ sơ đồ mạch hiển thị .. .. BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 109 b. Lập lưu đồ chương trình .. .. c. Chương trình tham khảo /************************************************************* Chip type : PIC16F877A Program type : Application Clock frequency : 20 MHz Project : Realtime Clock Version : V1.0 Date : 01/09/2020 Author : NGUYEN THI THU LAN Gmail : nttlan@hcmct.edu.vn Mobile : 0908071828 Company : Khoa KT Dien Dien Tu – Truong CD GiaoThong Van Tai Comments : Chuong trinh dong ho thoi gian thuc Su dung RTC Ds1307 Hien thi Led 7 doan Hien thi thoi gian, Gio, Phut Hien thi ngay, thang, nam duong lich Hien thi ngay, thang, nam am lich Hien thi nhiet do su dung Ds1307 ************************************************************/ #include #include "ds1307.c" //#include //#include #include "PIC16F877A_registers.h" /******************* Khai bao bien toan cuc************************/ //int1 StEn=false; // unsigned char StSet=0; //bien tao nhap nhay vung cai dat // BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 110 unsigned char StNumber=0;//bien cho phep cai dat 0-11 // unsigned char Number=0; //bien phuc vu quet led 0-22 // unsigned char Temp; //Nhuet do // unsigned char sec,min,hrs,day_d,month_d,year_d,date; //thoi gian duong lich // unsigned char day_a,month_a,year_a; //thoi gian am lich // unsigned char dsec=0; //bien phuc vu update time // //unsigned char CharCode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; /* Bang ma LED Anot chung */ unsigned char CharCode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /* Bang ma LED CAtot chung */ unsigned char ADC_Convert(); //chuong trinh chuyen doi ADC 10bit chanel 0 // void VietNam_Calendar(unsigned char day_d,month_d,year_d);/*Chuyen doi am lich// VietNam den nam 2030*/ void OutLed(unsigned char DATA);// Chuong trinh Xuat data ra PORTD // void Sys_init(); //Chuong trinh khoi tao chip // void Program_init(); // chuong trinh khoi tao // void Setup();//Chuong trinh cai dat thoi gian // void Led7segment(unsigned char day_d,month_d,year_d,day_a,month_a,year_a,date,// Temp,hrs,min,sec ); //chuong trinh quet LED dung ngat hoan toan tan so fV=25Hz// // /*************************************************************/ /************************************************************* /////////////////Chuong trinh dinh thoi Timer0 1.8ms//////////////////////////// ****************************************************************/ #int_RTCC void RTCC_isr(void) { Set_timer0(115); //tao tan so quet fV=25Hz Number++; BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 111 //if(Number>22){Number=1;en=1;clk=0;clk=1;en=0;}//xoa khi Scan du 22led if(Number>22){Number=1;en=0;clk=0;clk=1;en=1;}//xoa khi Scan du 22led clk=0;clk=1; //tao xung clock OutLed(0xFF); //xoa bong ma Led7segment(day_d,month_d,year_d,day_a,month_a,year_a,date,Temp,hrs,min,sec); } /************************************************************* /////////////////Chuong trinh dinh thoi Timer1 2ms////////////////////////////// *************************************************************/ #int_TIMER1 void TIMER1_isr(void) { Set_timer1(0xBDB); dsec++; if(dsec>=10) { //sau 1s cap ngat time gom gio, phut,giay dsec=0; ds1307_get_time(hrs,min,sec); if((hrs==00)&&(min==00)&&(sec<=10))//10s ngay moi update time..... { ds1307_get_date(day_d,month_d,year_d,date); VietNam_Calendar(day_d,month_d,year_d); } if(sec%10==0) Temp=ADC_convert(); //sau 10s update nhiet do } } /************************************************************ /////////////////Chuong trinh quet LED7 dung timer khong dung delay///////////// **********************************************************/ void Led7segment( unsigned char day_d,month_d,year_d,day_a,month_a,year_a,date, Temp,hrs,min,sec ) { BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 112 StSet++;if(StSet>=200) StSet=0; Switch(Number) { case 1:{ if(StNumber==1){if(StSet<=70) {OutLed(0);break;}} if(day_d<10) OutLed(0); //tat so 0 else OutLed(CharCode[day_d/10]); break; }; case 2:{ if(StNumber==1){if(StSet<=70) {OutLed(0);break;}} OutLed(CharCode[day_d%10]); break; }; case 3:{ if(StNumber==2){if(StSet<=70) {OutLed(0);break;}} if(month_d<10) OutLed(0);//tat so 0 else OutLed(CharCode[month_d/10]); break; }; case 4:{ if(StNumber==2){if(StSet<=70) {OutLed(0);break;}} OutLed(CharCode[month_d%10]); break; }; case 5:{ if(StNumber==3){if(StSet<=70) {OutLed(0);break;}} OutLed(CharCode[year_d/10]); break; }; case 6:{ BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 113 if(StNumber==3){if(StSet<=70) {OutLed(0);break;}} OutLed(CharCode[year_d%10]); break; }; case 7:{ //if(StNumber==4){if(StSet<=200) {OutLed(0xff);break;}} if(day_a<10) OutLed(0);//tat so 0 else OutLed(CharCode[day_a/10]); break; }; case 8:{ //if(StNumber==4){if(StSet<=200) {OutLed(0xff);break;}} OutLed(CharCode[day_a%10]); break; }; case 9:{ //if(StNumber==5){if(StSet<=200) {OutLed(0xff);break;}} if(month_a<10) OutLed(0);//tat so 0 else OutLed(CharCode[month_a/10]); break; }; case 10:{ //if(StNumber==5){if(StSet<=200) {OutLed(0xff);break;}} OutLed(CharCode[month_a%10]); break; }; case 11:{ //if(StNumber==6){if(StSet<=200) {OutLed(0xff);break;}} OutLed(CharCode[year_a/10]); break; }; BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 114 case 12:{ //if(StNumber==6){if(StSet<=200) {OutLed(0xff);break;}} OutLed(CharCode[year_a%10]); break; }; case 13:{ if(StNumber==4){if(StSet<=70) {OutLed(0);break;}} if(date==1) OutLed(0X39);//ngay CN hien thi chu C else OutLed(0x78); //hien thi chu t break; }; case 14:{ if(StNumber==4){if(StSet<=70) {OutLed(0);break;}} if(date==1) OutLed(0x37);//ngay CN hien thi chu n else OutLed(CharCode[date%10]); break; }; case 15:{ //if(StNumber==8){if(StSet<=200) {OutLed(0xff);break;}} if(Temp<10) OutLed(0);//tat so 0 else OutLed(CharCode[Temp/10]); break; }; case 16:{ //if(StNumber==8){if(StSet<=200) {OutLed(0xff);break;}} OutLed(CharCode[Temp%10]); break; }; case 17:{ if(StNumber==5){if(StSet<=70) {OutLed(0);break;}} OutLed(CharCode[hrs/10]); BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 115 break; }; case 18:{ if(StNumber==5){if(StSet<=70) {OutLed(0);break;}} OutLed(CharCode[hrs%10]); break; }; case 19:{ if(StNumber==6){if(StSet<=70) {OutLed(0);break;}} OutLed(CharCode[min/10]); break; }; case 20:{ if(StNumber==6){if(StSet<=70) {OutLed(0);break;}} OutLed(CharCode[min%10]); break; }; case 21:{ if(StNumber==7){if(StSet<=70) {OutLed(0);break;}} OutLed(CharCode[sec/10]); break; }; case 22:{ if(StNumber==7){if(StSet<=70) {OutLed(0);break;}} OutLed(CharCode[sec%10]); }; } } BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 116 /************************************************************** /////////////////Chuong trinh chuyen doi ADC doc nhiet do tu LM35/////////////// **************************************************************/ unsigned char ADC_Convert() { int16 Value; Value=read_adc(); Value=(FLOAT)((Value*500)/1023); return((char)Value); //tra ve gia tri do C } /*************************************************************** ///////////////////////Chuong trinh am lich Viet Nam//////////////////////////// ***************************************************************/ void VietNam_Calendar(unsigned char day_1,mon_1,year_1) { unsigned char luu,tam_1; unsigned char da,db; unsigned char lmon; if(year_1<=30) //cho phep den nam 2030 { da = ALdauthangDL[year_1-10][mon_1-1]; db = DLdauthangAL[year_1-10][mon_1-1]; luu= db-day_1; if(luu<=0) { day_a = (day_1-db+1); month_a = thangALdauthangAL[year_1-10][mon_1-1]; } else { if(luu>31){day_a = (day_1-db+1); month_a = thangALdauthangDL[year_1-10][mon_1];} BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 117 else { day_a = (day_1+da-1); month_a = thangALdauthangDL[year_1-10][mon_1-1]; } } lmon = month_a; tam_1=mon_1-lmon; if(tam_1>100&&tam_1<255) year_a = (year_1-1); else year_a = year_1; } } //!void VietNam_Calendar(unsigned char day,month,year) //!{ //! char da,db; //! if(year<=30) //cho phep den nam 2030 //! { //! da = ALdauthangDL[year-10][month-1]; //! db = DLdauthangAL[year-10][month-1]; //! if(db <= day){ //! day_a = day-db+1; //! month_a = thangALdauthangAL[year-10][month-1]; //! } else { //! day_a = (day_d+da-1); //! month_a =thangALdauthangDL[year-10][month-1]; //! } //! if(month < day_a) //! year_a = year-1; //! else //! year_a = year; BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 118 //! } //!} /************************************************************* ///////////////////////Chuong trinh Xuat data ra PORTD////////////////////////// ************************************************************/ void OutLed(unsigned char data) { PORTD = data; } char key(char data, char never) { //Cho phep tang ngay,thang,nam,thu if((!Up)&&(StNumber<=4)){ delay_ms(300); data++; if(data>never) data=1; } //Cho phep tang gio,phut,giay if((!Up)&&(StNumber>4)){ delay_ms(300); data++; if(data>never) data=0; } //Cho phep giam ngay,thang,nam,thu if((!Down)&&(StNumber<=4)){ delay_ms(300); if(data>1) data--; } //Cho phep giam ngay,thang,nam,thu if((!Down)&&(StNumber>4)){ delay_ms(300); BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 119 (signed)data--; if(data<0) data=never; } //thoat ra menu cai dat if(!ESC){ while(!ESC){;}; StNumber=0; break; } VietNam_Calendar(day_d,month_d,year_d); return(data); } void Set_time() { switch(StNumber) { //restart_WDT(); //WDT case 1:{ day_d=key(day_d,31); if((!Enter)) { while(!Enter){;}; ds1307_set_date(day_d,month_d,year_d,date); delay_ms(500); StNumber++; } break; }; case 2:{ month_d=key(month_d,12); if((!Enter)) BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 120 { while(!Enter){;}; ds1307_set_date(day_d,month_d,year_d,date); delay_ms(500); StNumber++; } break; }; case 3:{ year_d=key(year_d,30); if((!Enter)) { while(!Enter){;}; ds1307_set_date(day_d,month_d,year_d,date); delay_ms(500); StNumber++; } break; }; case 4:{ date=key(date,7); if((!Enter)) { while(!Enter){;}; ds1307_set_date(day_d,month_d,year_d,date); delay_ms(500); StNumber++; } break; }; case 5:{ disable_interrupts(INT_TIMER1); BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 121 hrs=key(hrs,24); if((!Enter)) { while(!Enter){;}; ds1307_set_time(hrs,min,sec); delay_ms(500); StNumber++; } break; }; case 6:{ disable_interrupts(INT_TIMER1); min=key(min,59); if((!Enter)) { while(!Enter){;}; ds1307_set_time(hrs,min,sec); delay_ms(500); StNumber++; } break; }; case 7:{ disable_interrupts(INT_TIMER1); sec=key(sec,59); if((!Enter)) { while(!Enter){;}; ds1307_set_time(hrs,min,sec); delay_ms(500); StNumber=255; } break; BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 122 }; case 255:{ enable_interrupts(INT_TIMER1); dsec=10; //update time StNumber=0; break; } } } void Setup() { StNumber=1; while(StNumber!=0) { //restart_WDT(); //WDT if(!Enter){ while(!Enter){;} if(StNumber<10)StNumber++; } if(!MenuDown){ while(!MenuDown){;}; if(StNumber>1)StNumber--; } if(!ESC){ while(!ESC){;}; StNumber=0; break; } Set_time(); } ds1307_get_date(day_d,month_d,year_d,date); BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 123 VietNam_Calendar(day_d,month_d,year_d); } /*********************************************************** /////////////////////////////Chuong trinh chinh //////////////////////////////// **************************************************************/ #zero_ram void main() { Sys_init(); Program_init(); while(TRUE) { restart_WDT(); //WDT if(!Enter) {while(!Enter){;}; Setup();} //if(StEn) {Setup();}; } } void Sys_init() { TRISA=0X01; TRISB=0X3F; TRISD=0X00; TRISE=0X00; setup_adc_ports(AN0); //AN0 =ADC 10bit setup_adc(ADC_CLOCK_DIV_32);// setup_timer_0(RTCC_INTERNAL|RTCC_DIV_64|RTCC_8_bit);//3.2 ms overflow setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); //104 ms overflow flow //setup_wdt(WDT_ON); //setup_wdt(WDT_1152MS); enable_interrupts(GLOBAL); BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 124 } void Program_init() { ds1307_init(0,0,0); // initialize 1307 //ds1307_set_date_time(31,6,13,2,23,59,55); //ds1307_set_date(1,1,13,3); delay_ms(100); ds1307_get_date(day_d,month_d,year_d,date); ds1307_get_time(hrs,min,sec); VietNam_Calendar(day_d,month_d,year_d); Temp=ADC_convert(); delay_ms(200); enable_interrupts(INT_RTCC); enable_interrupts(INT_TIMER1); enable_interrupts(GLOBAL); } BÀI 7: LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ ĐỒNG HỒ SỐ Trang 125 TÀI LIỆU THAM KHẢO [1] Khoa Điện – Điện Tử – Vi Xử Lý – Trường Cao Đẳng Giao Thông Vận Tải [2] Hoàng Đức Hải – Họ vi điều khiển 8051 - NXB Lao Động Xã Hội -2007 [3] Phạm Thanh Liêm – Giáo trình Cấu trúc máy vi tính và vi xử lý - NXB GD – 2006 [4] Lê Hải Sâm – Giáo trình Cấu trúc máy vi tính và vi xử lý - NXB GD – 2006 [5] Hệ vi điều khiển 8051-NXB Lao động & Xã Hội, 2001. (Bản dịch quyển “The 8051 Microcontroller”, I.Scott Mackenzie, NXB Prentice Hall ( 2nd Ed.) 1995 [6] Ngô Diên Tập, Vi điều khiển với lập trình C, NXB KH&KT, 2006. [7] Nguyễn Đình Phú, Vi Xử Lý 2, Trường ĐH SPKT TP.HCM - 2007 [8] Phụ lục kỹ thuật vi xử lý (tham khảo cho hệ vi điều khiển 8051), Bộ môn Kỹ thuật điện tử – Đại học Bách khoa TP HCM. [9] Bài thí nghiệm vi xử lý (hệ vi điều khiển 8051) , Bộ môn Kỹ thuật điện tử – Đại học Bách khoa TP HCM. [10] Martin Bates – Picmicrocontrollers an introduction to microelectronics, NXB Elsevier Linacre House – 2004. [11] Các trang web tham khảo:
File đính kèm:
- giao_trinh_cong_nghe_ky_thuat_dien_dien_tu_thi_nghiem_vi_xu.pdf