Ctrl + A hoặc Home : chuyển con trỏ về đầu dòng. Ctrl + E hoặc End: Chuyển con trỏ đến cuối dòng. BackSpace: Xoá ký tự bên trái con trỏ. Esc: xoá dòng lệnh. Ctrl + K : Xoá từ vị trí con trỏ đến cuối dòng. Ctrl + C : Dừng chương trình đang thực hiện. Clc : lệnh xoá màn hình. Clf: Lệnh xoá màn hình đồ hoạ. Input: lệnh nhập dữ liệu vào từ bàn phím. Demo: lệnh cho phép xem các chương trình mẫu. Help: lệnh cho phép xem phần trợ giúp. Ctrl – c: Dừng chương trình khi nó bị rơi vào trạng thái lặp không kết thúc.
BÀI THỰC HÀNH NHÚNG (CODE) BÀI Thực hành nhúng đấu nối, chạy demo mạch led đơn sang dồn dùng PIC ARDUINO Main.c #include // CHUONG TRINH CHINH void main(void) { //khai bao bien cuc bo o day unsigned char MaDieuKhien=0x01, LuuTam=0x00,Gan; signed char i,j; while(1) { P1=0x00; LuuTam=0x00; _Delay_ms(300); for(i=8;i>=1;i ) { MaDieuKhien=0x01;//0b01000000 //LuuTam=0b11000000 Gan=MaDieuKhien|LuuTam; P1=Gan; _Delay_ms(300); for(j=1;jx=59; do: 60% la gia tri chu ky bon phan ma ta muon cai dat nghia la chu ky pwm la 99 thi 60% thoi gian chu ky cua no lun duoc on, lai thi bi off | -60% -| 40% | */ SET_PWM1_DUTY(59); //khi ta muon dong co quay theo chieu nao thi ta chi nap gia tri duty vao chan //va nap gia tri cho chan lai SET_PWM2_DUTY(0); lcd_gotoxy(1,1); printf(lcd_putc,"QUAY TRAI "); } void _To_Right(void)//dieu khien dong co quay phai { /* 37 SETUP_TIMER_2(T2_DIV_BY_1,99,1);//T2_DIV_BY_1 dung de dinh ti le timer2 la 1:1 99 la PR2(chu ky PWM/TIMER2), la so ngat cua timer2 la ap dung cong thuc tinh chu ky bon phan Ton=(x/T)*100% thi ta duoc 60%=(x/99)=>x=59; do: 60% la gia tri chu ky bon phan ma ta muon cai dat nghia la chu ky pwm la 99 thi 60% thoi gian chu ky cua no lun duoc on, lai thi bi off | -60% -| 40% | */ SET_PWM1_DUTY(0); //khi ta muon dong co quay theo chieu nao thi ta chi nap gia tri duty vao chan //va nap gia tri cho chan lai SET_PWM2_DUTY(59); lcd_gotoxy(1,1); printf(lcd_putc,"QUAY PHAI "); 38 Bài 15 Đóng mở thiết bị điện AT89… Main.c #include // const char MaLed[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x98,0xBF,0xFF}; char Option=0; // void _TachSo(char Dem, char* HangChuc, char* HangDonVi); char _ScanLed(char H1,H2,H3,H4,H5,H6,H7,H8); void _QuetCot(char TenCot); char _ScanDelay(char H1,H2,H3,H4,H5,H6,H7,H8,unsigned int Time); char _KiemTraNhatNut(void); // CHUONG TRINH CHINH void main(void) { //khai bao bien cuc bo o day // char MaLed[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x98,0xBF}; char H1=1,H2=2,H3,H4=3,H5=4,H6,H7=5,H8=6; char Gio,Phut,Giay; char GioCai=18,PhutCai=51; 39 char GioHen=18,PhutHen=52; COT_QUET=0xFF; //MENU=0,TANG=0,GIAM=0; THIET_BI=1; while(1) { for(Gio=GioCai;Gio59) { PhutCai=0; } } else if(GIAM==0) { while(GIAM==0); PhutCai=PhutCai-1; if(PhutCai4) { Option=0; } } 42 } while(Option==3) { _TachSo(GioHen,&H7,&H8); _ScanDelay(11,11,11,11,11,11,H7,H8,400); if(TANG==0) { while(TANG==0); GioHen=GioHen+1; if(GioHen>23) { GioHen=0; } } else if(GIAM==0) { while(GIAM==0); GioHen=GioHen-1; if(GioHen4) { Option=0; } } } 43 while(Option==4) { _TachSo(PhutHen,&H7,&H8); _ScanDelay(11,11,11,11,11,11,H7,H8,400); if(TANG==0) { while(TANG==0); PhutHen=PhutHen+1; if(PhutHen>59) { PhutHen=0; } } else if(GIAM==0) { while(GIAM==0); PhutHen=PhutHen-1; if(PhutHen4) { Option=0; } } 44 } } } // void _TachSo(char Dem, char* HangChuc, char* HangDonVi) { char Tam; Tam=Dem%10; *HangDonVi=Tam; Dem=Dem/10; Tam=Dem%10; *HangChuc=Tam; Dem=Dem/10; } char _ScanLed(char H1,H2,H3,H4,H5,H6,H7,H8) { char a[8],i; a[0]=H1; a[1]=H2; a[2]=H3; a[3]=H4; a[4]=H5; a[5]=H6; a[6]=H7; a[7]=H8; for(i=0;i0) { Time=Time-1; if(_ScanLed(H1,H2,H3,H4,H5,H6,H7,H8)==1) return 1; } return 0; } 47 char _KiemTraNhatNut(void) { if(MENU=0) return 1; if(TANG=0) return 1; if(GIAM=0) return 1; return 0; } Delay.c #include void _Delay_ms(unsigned int Time) { unsigned int Dem_1,Dem_2; for(Dem_1=0;Dem_1