Bài Giảng Thực Hành Vi Xử Lý Và Vi Điều Khiển

133 95 0
Bài Giảng Thực Hành Vi Xử Lý Và Vi Điều Khiển

Đ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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG KHOA CÔNG NGHỆ ĐIỆN TỬ VÀ TRUYỀN THÔNG BÀI GIẢNG MÔN: THỰC HÀNH VI XỬ LÝ VÀ VI ĐIỀU KHIỂN Thái Nguyên, tháng năm 2012 CuuDuongThanCong.com https://fb.com/tailieudientucntt MỤC LỤC PHẦN I MƠ TẢ HỆ THỐNG Giới thiệu Đặc tính I Tổng quan hệ thống II Module LMD01 III Module LMD02 IV Module LMD03 V Module LMD04 VI Module LMD05 VII Module LMD06 VIII Module LMD07 IX Module LMD09 – Module điều khiển PHẦN II THỰC HÀNH BÀI I: KHẢO SÁT MA TRẬN LED 8x8 MỘT MÀU VÀ QUÉT HÀNG BÀI 2: KHẢO SÁT MA TRẬN LED 8x8 MỘT MÀU VÀ QUÉT CỘT BÀI 3: KHẢO SÁT MA TRẬN LED 8x8 MÀU XANH ĐỎ VÀ PHƯƠNG PHÁP QUÉT HÀNG BÀI 4: KHẢO SÁT MA TRẬN LED 8x8 MÀU XANH ĐỎ VÀ PHƯƠNG PHÁP QUÉT CỘT BÀI 5: KHẢO SÁT MODULE HIỂN THỊ 16x32 ĐIỂM MỘT MÀU BÀI 6: KHẢO SÁT MODULE HIỂN THỊ 16x32 ĐIỂM HAI MÀU BÀI 7: KHẢO SÁT HOẶT ĐỘNG CỦA BẢNG TIN ĐIỆN TỬ CuuDuongThanCong.com https://fb.com/tailieudientucntt Đề cương kế hoạch thực hành với KIT LMD (màn hình ma trận Led) Sinh viên giáo viên hướng dẫn thực hành dựa đề cương để chuẩn bị thực hành theo Tài liệu mô tả hướng dẫn thực hành LMD Sinh viên cần chuẩn bị thực hành cách đọc trước phần mô tả hướng dẫn thực hành cho module này, tự tìm hiểu trước vi mạch Buổi 1: Làm quen với hình ma trận Led khảo sát Module LMD01, LMD02, LMD09 Sinh viên sẽ:  Tìm hiểu hình ma trận led đơn sắc sở 8x8 - Cấu tạo ma trận Led (đơn sắc) - Biểu diễn kí tự ma trận sở 8x8 - Cách hiển thị điểm sáng ma trận led - Cách hiển thị kí tự/ hình ảnh ma trận led (2 phương pháp: quét hàng/cột) Yêu cầu: sinh viên phải hiểu cách hiển thị kí tự ma trận sở 8x8 tạo ta liệu hiển thị cho kí tự  Tìm hiểu thành phần cấu tạo lên mạch điện ma trận led cụ thể (Khảo sát trực tiếp Module LMD01, LMD 02 LMD09) - Các vi mạch dùng để đệm/chốt liệu, vi mạch dùng để quét (thanh ghi dịch),… - Các vi điều khiển dùng để điều khiển hiển thị ma trận led, vi điều kiển dùng Module khảo sát LMD09 - Nguyên lý hoạt động hiển thị mạch LMD01 LMD02  Kiểm tra linh kiện xem module hoạt động hiển thị với chương trình lập trình sẵn Yêu cầu: sinh viên nắm cấu tạo mạch, nguyên lý hoạt động hiển thị Module Buổi 2: Khảo sát Module LMD03, LMD04 Tương tự khảo sát với module LMD01 LMD02, khác ma trận led hai module ma trận led hai mầu xanh-đỏ CuuDuongThanCong.com https://fb.com/tailieudientucntt Buổi 3: Khảo sát module LMD05, LMD06, LMD07 - Nắm cách phối ghép ma trận đơn sắc (đa sắc) sở 8x8 thành hình ma trận led đơn sắc (đa sắc) lớn hơn, phương pháp để hiển thị kí tự chuỗi kí tự, hiệu ứng dịch chữ - Khảo sát bảng quang báo thực tế chạy thử chương trình điều khiển máy tính.(LMD07) Đưa kết luận cách thức hoạt động bảng quang báo chương trình điều khiển Giáo viên hướng dẫn đưa số câu hỏi, yêu cầu cho sinh viên sau buổi thực hành Có tập nâng cao cho sinh viên giỏi có nhu cầu tìm hiểu sâu hơn./ CuuDuongThanCong.com https://fb.com/tailieudientucntt PHẦN I: MÔ TẢ HỆ THỐNG Giới thiệu LMD TS hệ thống mơ hình đào tạo phục vụ khảo sát, nghiên cứu, thực hành thiết kế bảng thông tin điện tử sử dụng công nghệ ma trận đèn LED (Light Emitting Diode – Đi ôt phát quang) Hệ thống giúp sinh viên tiếp cận với công nghệ hiển thị bảng ma trận đèn LED từ đến nâng cao, từ sinh viên hiểu, thiết kế hệ thống bảng Hệ thống thiết kế theo tư logic kỹ thuật liền mạch từ đầu trí cuối dựa theo cách nhìn sinh viên, cộng với xếp, phân chia theo vấn đề chuyên môn chi tiết rõ ràng Đặc tính  Làm quen với linh kiện chức  Thiết kế dàn trải  Các điểm kiểm tra (test point)  Sơ đồ nguyên lí rõ ràng  Phân cấp từ đến nâng cao  Phân chia thành nhiều module  Khảo sát phương pháp quét hàng, quét cột  Hiển thị màu đỏ tổ hợp màu xanh đỏ Sau mô tả chi tiết sản phẩm Mục I giới thiệu tổng quan toàn hệ thống, liệt kê thành phần chọn hệ thống , mục từ II đếm IX giới mô tả chi tiết module CuuDuongThanCong.com https://fb.com/tailieudientucntt I Tổng quan hệ thống Hệ thống chia thành module theo thực hành, khung giá kim loại để đỡ module Khi sử dụng module cài module lên ray khung giá kim loại Bảng danh sách module chức chúng Tên Mô tả LMD01 Ma trận LED đơn sắc 8x8, quét theo hàng, khối quét hàng, đệm hàng, chốt hàng, đệm cathode, đệm anode, chốt cấp nguồn kiểm thử tín hiệu LMD02 Ma trận LED đơn sắc 8x8, quét theo cột, khối quét cột, đệm cột, chốt cột, đệm cathode, đệm anode, đầu nối tín hiệu điều điều khiển liệu, chốt cấp nguồn kiểm thử tín hiệu LMD03 Ma trận LED hai màu xanh/đỏ 8x8, quét theo hàng, khối quét hàng, đệm chốt hàng, đệm anode, đầu nối tín hiệu điều điều khiển liệu, chốt cấp nguồn kiểm thử tín hiệu LMD04 Ma trận LED hai màu xanh/đỏ 8x8, quét theo cột, khối quét cột, đệm chốt cột, đệm cathode, đầu nối tín hiệu điều điều khiển liệu, chốt cấp nguồn kiểm thử tín hiệu LMD05 Module hiển thị màu đỏ, 16x32 pixel, qt theo hàng, khối kích dòng, đệm chốt liệu, đầu vào/đầu tín hiệu điều khiển liệu, chốt cấp nguồn kiểm thử tín hiệu LMD06 Module hiển thị hai màu xanh/đỏ 16x32 pixel, quét theo hàng, khối kích dòng, đệm chốt liệu, đầu vào/đầu tín hiệu điều khiển liệu, chốt cấp nguồn kiểm thử tín hiệu LMD07 Bảng tin điện tử 16x96 pixel, outdoor, đơn sắc, giao tiếp RS232, nguồn 220VAC LMD09 Board điều khiển chung, MCU AT89S52, 16Kbyte Ram, RS232, LMD port, KeyBoard, nạp ISP cấp nguồn cho thí nghiệm Khung Giá đỡ kim loại CuuDuongThanCong.com https://fb.com/tailieudientucntt II Module LMD01 LMD01 ma trận LED đơn sắc 8x8, quét theo hàng, khối quét hàng, đệm hàng, chốt hàng, đệm cathode, đệm anode, chốt cấp nguồn kiểm thử tín hiệu Ảnh LMD01 – Quét theo hàng LMD01 chứa loại, linh kiện bản, lí thuyết để điều khiển bảng LED LMD01 đưa ma trận led 8x8 điểm, đơn sắc (đỏ) linh kiện để điều khiển LMD theo phương pháp – Quét theo hàng LMD01 gồm thành phần sau:  Ma trận LED 8x8 pixel, đơn sắc (đỏ)  Khối đệm Kathode – ULN2803  Khối đệm Anode – 74LS574  Khối đệm liệu hàng – 74LS164  Khối chốt liệu hàng – 74LS573  Khối quét hàng – 74LS164 Module có chốt cắm nguồn 5V, jack nối tín hiệu điều khiển để kết nôi với module điều khiển chung Ảnh module LMD01 CuuDuongThanCong.com https://fb.com/tailieudientucntt Các thành phần bố trí dàn trải, có sơ đồ ngun lí rõ ràng, đường tín hiệu có chốt để đo thử Sơ đồ nguyên lí Ảnh Sơ đồ nguyên lí LMD01 CuuDuongThanCong.com https://fb.com/tailieudientucntt Mach in Ảnh Bảng mạch in LMD01 CuuDuongThanCong.com https://fb.com/tailieudientucntt III Module LMD02 Ảnh LMD02 – Quét theo cột LMD02 đưa ma trận LED 8x8 điểm, đơn sắc (đỏ) linh kiện để điều khiển LMD theo phương pháp Quét theo cột Các thành phần bố trí dàn trải, có sơ đồ ngun lí rõ ràng, đường tín hiệu có chốt để đo thử LMD02 gồm thành phần sau:  Ma trận LED 8x8 pixel, đơn sắc (đỏ)  Khối đệm Kathode – ULN2803  Khối đệm Anode – 74LS574  Khối đệm liệu cột – 74LS164  Khối chốt liệu cột – 74LS573  Khối quét cột – 74LS164 Module có chốt cắm nguồn 5V để, jack nối tín hiệu điều khiển để kết nôi với module điều khiển chung Ảnh module LMD02 Sơ đồ nguyên lí CuuDuongThanCong.com https://fb.com/tailieudientucntt break; }//end switch(do_what) }//end while(1) }//end main() /**************************************** chuong trinh dieu khien led de kiem tra cong Bo mon DTVT Khoa CNTT Dai hoc Thai Nguyen ***************************************/ #include #device *=16 #device adc=8 #FUSES NOWDT, HS, PUT, NOPROTECT, NODEBUG, BROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=8000000) #include #use rs232(baud=9600, xmit=PIN_C7, rcv=PIN_C6, stream=MYPC) // rs232 setting #include void main() { float temperature; setup_psp(PSP_DISABLED); // huy bo PSP setup_spi(FALSE); //THIET PAP SPI setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); //Thiet lap bo dinh thoi ben setup_timer_1(T1_DISABLED); //cam setup_timer_2(T2_DISABLED,0,1); //cam setup_comparator(NC_NC_NC_NC); setup_vref(VREF_LOW|-2); printf("\n\r Bo mon Dien Tu Vien Thong Khoa CNTT"); printf( "\n\rXin chao, toi la PIC.TS, Toi dang nhiet do\n\r",); delay_ms(100); while (TRUE) { temperature = ds1820_read(); printf( "Nhiet do: %3.1f ", temperature); printf( "oC, "); if(temperature >= 30) printf("Nong!\n\r "); 118 CuuDuongThanCong.com https://fb.com/tailieudientucntt else if( temperature >= 20 && temperature < 30) printf("Nhiet vua\n\r!"); else printf("Lanh!\n\r "); delay_ms(20); } } //***************************************************** Bo mon DTVT Khoa CNTT Thai Nguyen File name: //============================================== //TEN DE TAI :HE THONG DAO TAO VI DIEU KHIEN PIC //Ngon ngu :C cho PIC, dung trinh bien dich CCS compiler //Lap trinh vien :Bo mon dien tu Vien Thong //Chuong trinh :CHUONG TRINH DOC PHIM //Su dung MCU :16f877a cua Microchip.thach anh Mhz //Ngay bat dau :Ngay xx thang' xx nam 2008 //Ngay hoan :Ngay xx thang' xx nam 2008 //file name: button.c //=============================================== #include #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay (clock=8000000) // define crystal = 8MHz #use Fast_IO(D) byte command; //ma lenh // byte const DIGITS[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void keyscan(); void display(); //***************************************************** void main() { Set_tris_D(1); command = 0; output_a(0x00);//bat chan A5 while(true) { keyscan(); 119 CuuDuongThanCong.com https://fb.com/tailieudientucntt display(); } }//end of main program //**************************************************** void keyscan() { output_d(0xff); if(input(PIN_D0) == 0) { delay_ms(150); if (input(PIN_D0)==0) command = 1; display() ; } if(input(PIN_D1) == 0) { delay_ms(150); if (input(PIN_D1)==0) command = 2; display() ; } if(input(PIN_D2) == 0) { delay_ms(150); if (input(PIN_D2)==0) command = 3; display() ; } if(input(PIN_D3) == 0) { delay_ms(150); if (input(PIN_D3)==0) command = 4; display() ; } if(input(PIN_D4) == 0) { delay_ms(150); if (input(PIN_D4)==0) command = 5; display() ; } if(input(PIN_D5) == 0) { delay_ms(150); 120 CuuDuongThanCong.com https://fb.com/tailieudientucntt if (input(PIN_D5)==0) command = 6; display() ; } if(input(PIN_D6) == 0) { delay_ms(150); if (input(PIN_D6)==0) command = 7; display() ; } if(input(PIN_D7) == 0) { delay_ms(150); if (input(PIN_D7)==0) command = 8; display() ; } output_d(0xff); } //****************************************************** void display() { output_b(DIGITS[command] ^ 0xff); } //***************************************************** //END PROGRAM //======================================================== ===================== //TEN DE TAI :RELAY //Ngon ngu:ANSI C cho PIC, dung trinh bien dich Hi-Tech PICC compiler //Lap trinh vien : Bo mon DTVT Khoa CNTT //Chuong trinh :HIEN THI SO BAT KY TREN LED_7T //Su dung MCU : 16f877a cua Microchip.thach anh 20 Mhz //Ngay bat dau :Ngay xx thang' xx nam 20xx //Ngay hoan : Ngay xx thang' xx nam 20xx //Mo ta hardware : //khi dich chon dung loai PIC:Configure >Select Device >chon loai PIC //============================================ #include CONFIG(UNPROTECT & WDTEN & HS & PWRTEN & BOREN & LVPDIS & DUNPROT & DEBUGDIS); 121 CuuDuongThanCong.com https://fb.com/tailieudientucntt //************************************************** void init(void); void Delay(void); //===========Chuong trinh ========================= void main() //chuong trinh trinh { init(); while(1) { if (RB1 == 0) { Delay(); if (RB1 == 0)RB0 ^= 1;} if (RB3 == 0) { Delay(); if (RB3 == 0)RB2 ^= 1;} if (RB5 == 0) { Delay(); if (RB5 == 0)RB4 ^= 1;} if (RB7 == 0) { Delay(); if (RB7 == 0)RB6 ^= 1;} CLRWDT(); } CLRWDT(); } //==============THE END ========================= void init(void) { // -Dinh nghi cacs cong -OPTION = 0x01000000; TRISB = 0b10101010; Delay(); PORTB = 0b10101010; } //=============================================== void Delay() { 122 CuuDuongThanCong.com https://fb.com/tailieudientucntt unsigned char i; for (i =0;iSelect Device >chon loai PIC //============================================ #include CONFIG(UNPROTECT & WDTEN & HS & PWRTEN & BOREN & LVPDIS & DUNPROT & DEBUGDIS); //===============Mang phông so; ép vào mauc thu hai=================== #define KEYPORT PORTC #define NOKEY 16 bit keyfound = 0; const unsigned char KEY_IO[16] = {0xEE, 0xDE, 0xBE, 0x7E, //C4 C5 C6 C7 0xED, 0xDD, 0xBD, 0x7D,//C3 0xEB, 0xDB, 0xBB, 0x7B,//C2 0xE7, 0xD7, 0xB7, 0x77}; const unsigned char KEY_MAP[16] = {12,11, 0,10, 13, 9, 8, 7, 14, 6, 5, 4, 15, 3, 2, 1}; // a b 123 CuuDuongThanCong.com https://fb.com/tailieudientucntt c d e f const unsigned char DIGITS[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x 79,0x71}; unsigned char maphim; //===========Cac dinh nghia ========================= void init(void); //su bat dau void keyscan(void); void display(void); unsigned char kboard_idkey(void); void delay(void); //==================Chuong trinh chinh'=============== void main() //chuong trinh trinh { init(); //bat dau chuong trinh PORTA = 0xff; maphim = 0; PORTB = (DIGITS[maphim] ^ 0xff); while(1) //lenh While(bt).Neu bt=1 luon dung thi lap lai thoat khoi //lenh While(bt).Neu bt=0 thi sai thi thoat khoi vong lap { keyscan(); display(); CLRWDT(); } CLRWDT(); } //================THE END MAIN=================== void init(void) { // -Dinh nghi cacs cong -TRISD = 0b00000000; //cong X la PORTD = 0b11111111; //CONG RA MUC HAY TRISE = 0b00000011; TRISB = 0b00000000; PORTB = 0b00000000; // Dinh nghia cong A -ADCON1 = 0b00001111; so TRISA = 0b11000000; TRISC = 0b11110000; //4bít dau ko làm gì; 4bít sau de cong //C?ng A có A0-5 124 CuuDuongThanCong.com ko https://fb.com/tailieudientucntt PORTC = 0b11110000; } // chia lay gia tri chung cho moi cai //=================================== void keyscan() { maphim = KEY_MAP[(kboard_idkey())]; } void delay() { NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); NOP(); } void display() { if (keyfound) { PORTB = (DIGITS[maphim] ^ 0xff); PORTA = 0x00; } } //================================= unsigned char kboard_idkey() { unsigned char key = 0xFF; keyfound = 0; { key++; KEYPORT &= 0xF0; // clear lower nibble KEYPORT |= KEY_IO[key] & 0x0F; // output lower nibble NOP(); NOP(); keyfound = ((KEYPORT & 0xF0) == (KEY_IO[key] & 0xF0)); } while((key < NOKEY) && (!keyfound)); 125 CuuDuongThanCong.com https://fb.com/tailieudientucntt return(key); } //=======================THE END=============================== /*************************************************************** * Real time Clock DS1307 * * Dong ho so su dung DS1307 hien thi tren LED 7-segment hh.mm.ss * * Compiler Sofware: Compiler CCS Ver 4.018 * * Program design: Bo Mon DTVT - Khoa CNTT Thai Nguyen * * Harware: * * - Pull up PORTD, Pull-down Switches, connect PORTD to Switches * * - PORTA and PORTB to control leb * * - Switches: F0 - Mode, F1 - set time, F2 - clean status * * - DIP Swich SW2 all ON (Enable 7-segment and RTC DS1307) * File name: DS1307.c ****************************************************************/ #include //file header nguoi dung dinh nghia #include #include #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=8000000) byte sec,min,hour; //Su dung led loai catot // // byte const MAP[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; byte DIS1,DIS2,DIS3,DIS4,DIS5,DIS6; byte key,mode; int1 ampm,blink,blink_sec,blink_min,blink_hour; int1 on_off; int16 count; #bit SW1 = 0x8.0 // D0 - mode #bit SW2 = 0x8.1 // D1 - set_time #bit SW3 = 0x8.2 // D2 - Clear_status //*************************************************************** *** //Khai bao chuong trinh 126 CuuDuongThanCong.com https://fb.com/tailieudientucntt //*************************************************************** *** void init(void); void set_blink(void); void change_time(void); void update_1307(void); void keyscan(void); void set_sec(void); void set_min(void); void set_hour(void); void clear_status(void); void read_time(void); void update_time(void); void display(void); //*************************************************************** *** //Chuong trinh chinh //*************************************************************** *** void main() { byte u; Delay_ms(5); init(); u=read_ds1307(0); sec=u & 0x7F;// enable RTC write_ds1307(0,sec);// set second to 00 and enable clock(bit7=0) //Xoa tat ca cac co khien key=5;mode=0;blink=0; blink_sec=0;blink_min=0;blink_hour=0; count=15;on_off=1; ampm = bit_test(hour,5);// test AM_PM if(ampm==0) {RD4 = 0;RD5=1;} //LED AM if(ampm==1) {RD4 = 1;RD5=0;} //LED PM while(true) { read_time(); display(); keyscan(); } }//end of main program //*************************************************************** *** 127 CuuDuongThanCong.com https://fb.com/tailieudientucntt void set_blink() { switch (mode) { case 1: blink_sec=1; break; case 2: {blink_min=1;blink_sec=0;} break; case 3: {blink_hour=1;blink_min=0;} break; case 4: { blink=0;mode = 0;blink_sec=0; blink_min=0;blink_hour=0; } break; } } //*************************************************************** *** void change_time() { if(mode == 1) {blink_sec=1;set_sec();} if(mode == 2) {blink_min=1;set_min();} if(mode == 3) {blink_hour=1;set_hour();} if(mode == 4) { blink=0;mode = 0; blink_sec=0; blink_min=0; blink_hour=0; } } //*************************************************************** *** void update_1307() { write_DS1307(0,sec); write_DS1307(1,min); bit_set(hour,6); if (ampm == 0) {bit_clear(hour,5); write_DS1307(2,hour);} // AM if (ampm == 1) {bit_set (hour,5); write_DS1307(2,hour);} // PM } //*************************************************************** *** void keyscan() { 128 CuuDuongThanCong.com https://fb.com/tailieudientucntt RD0=1;RD1=1;RD2=1;RD3=1; if(SW1 != 1) { key=0;SW1=1;delay_ms(150);} if(SW2 != 1) { key=1;SW2=1;delay_ms(150);} if(SW3 != 1) { key=2;SW3=1;delay_ms(150);} if(key != 5) { switch (key) { case 0: {mode++;key = 5;blink=1;set_blink();} break; case 1: {change_time();key = 5;update_1307();} break; case 2: {clear_status();key = 5;} break; } } } //*************************************************************** *** void set_sec() { sec=read_ds1307(0); if (sec>=0x30) {sec=0; min++; write_ds1307(1,min);} else sec=0; write_ds1307(0,sec); } //*************************************************************** *** void set_min() { byte j; min=read_ds1307(1); min++; j=min & 0x0F; if (j>=0x0A) min=min+0x06; if (min>=0x60) min=0; write_ds1307(1,min); } //*************************************************************** *** void set_hour() { hour= hour & 0x1F; hour++; 129 CuuDuongThanCong.com https://fb.com/tailieudientucntt if(hour== 0x0a) hour = hour+0x06; if(hour == 0x13) { hour = 0x00; if (ampm == 0) ampm = 1; else ampm = 0; } } //*************************************************************** *** void clear_status() { mode=4; set_blink(); } //*************************************************************** *** void read_time() { sec = read_DS1307(0); = read_DS1307(1); hour = read_DS1307(2); update_time(); } //*************************************************************** *** void update_time() { ampm = bit_test(hour,5); //test AM PM if(ampm == 0) {RD4 = 0;RD5=1;} //AM if(ampm == 1) {RD4 = 1;RD5=0;} // PM DIS1= sec & 0x0F; DIS2=(sec & 0xF0)>>4; //convert to BCD SEC DIS3= & 0x0F; DIS4=(min & 0xF0)>>4; //convert to BCD MIN DIS5= hour & 0x0F; DIS6=(hour & 0x10)>>4; //convert to BCD HOUR } //*************************************************************** *** void display() { TRISB=0x00;TRISA=0x00; if(blink==0) goto norm; if(on_off==0) goto led_blink; norm: // 130 CuuDuongThanCong.com https://fb.com/tailieudientucntt // sec - - hour PortB=MAP[DIS1]; RA5=0;//DIS1 delay_ms(1); RA5=1; PortB=MAP[DIS2]; RA4=0; //DIS2 delay_ms(1); RA4=1; PortB=MAP[DIS3];output_low(PIN_B7);RA3=0;//DIS3 delay_ms(1); RA3=1; PortB=MAP[DIS4]; RA2=0;//DIS4 delay_ms(1); RA2=1; PortB=MAP[DIS5];output_low(PIN_B7); RA1=0;//DIS5 delay_ms(1); RA1=1; PortB=MAP[DIS6];if (portb==0xC0) RA0=1; else RA0=0;//DIS6 delay_ms(1); RA0=1;//*/ if(count!=0) goto exit; else { count=15; on_off=0; } goto exit; led_blink: PortB=MAP[DIS1]; if (blink_sec==1) RA5=1;//DIS1 else RA5=0; delay_ms(3); RA5=1; PortB=MAP[DIS2]; if (blink_sec==1) RA4=1;//DIS2 else RA4=0; delay_ms(3); RA4=1; PortB=MAP[DIS3];output_low(PIN_B7); if(blink_min==1) RA3=1;//DIS3 else RA3=0;//DIS3 delay_ms(3); RA3=1; PortB=MAP[DIS4]; if(blink_min==1) RA2=1;//DIS4 else RA2=0;//DIS4 delay_ms(3); RA2=1; PortB=MAP[DIS5];output_low(PIN_B7); if(blink_hour==1) RA1=1;//DIS5 else RA1=0;//DIS5 delay_ms(3); RA1=1; 131 CuuDuongThanCong.com https://fb.com/tailieudientucntt PortB=MAP[DIS6]; if(blink_hour==1) RA0=1;//DIS6 else {if (portb==0xC0) RA0=1; else RA0=0;}//DIS6 delay_ms(3); RA0=1;//*/ if(count==0) {count=15;on_off=1;} // -exit: count ; } //************************************************* void init() { Trisd = 0x0F; Trisb = 0x00;//output Trisa = 0x00; RD4=1;RD5=1; init_ds1307(); } //************************************************* //END PROGRAM 132 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... Sinh vi n giáo vi n hướng dẫn thực hành dựa đề cương để chuẩn bị thực hành theo Tài liệu mô tả hướng dẫn thực hành LMD Sinh vi n cần chuẩn bị thực hành cách đọc trước phần mô tả hướng dẫn thực hành. .. 220VAC IX Module LMD09 – Module điều khiển LMD09 hệ vi điều khiển chứa các thành phần để phục vụ cho thực hành phương pháp điều khiển LMD chương trinh điều khiển Các thành phần có module: - MCU PIC... - Các vi mạch dùng để đệm/chốt liệu, vi mạch dùng để quét (thanh ghi dịch),… - Các vi điều khiển dùng để điều khiển hiển thị ma trận led, vi điều kiển dùng Module khảo sát LMD09 - Nguyên lý hoạt

Ngày đăng: 25/12/2019, 01:16

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan