học vi xử lí để có 1 công viêc tốt hơn. tài liệu vi xử lí cho các bạn tham khảo học vi xử lí để có 1 công viêc tốt hơn. tài liệu vi xử lí cho các bạn tham khảo học vi xử lí để có 1 công viêc tốt hơn. tài liệu vi xử lí cho các bạn tham khảo học vi xử lí để có 1 công viêc tốt hơn. tài liệu vi xử lí cho các bạn tham khảo
Bài Báo Cáo Môn Vi Xử Lý Giáo viên môn: Phạm Thế Duy Người thực hiện: Đỗ Văn Tiến Đạt Lớp: D07VTA1 MS: 407160006 Nội Dung : Giải thích 10 lập trình vi điều khiển, với đoạn code lập lại không giải thích lại mà giải thích lần Bài 1: Điều khiển công tắc đơn led đơn #include // Định nghĩa thư viện #include #define sw1 PINA.0 // Định nghĩa tên thứ tự pin #define sw2 PINA.1 // portA theo sw tương ứng #define sw3 PINA.2 #define sw4 PINA.3 #define sw5 PINA.4 #define sw6 PINA.5 #define sw7 PINA.6 #define sw8 PINA.7 #define led PORTC char ledtam1; char ledtam2; int n,m; void main(void) { // Khai báo biến // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P PORTA=0xFF; // Có điện trở kéo lên nguồn DDRA=0x00; // Set port A ngõ vào // Port C initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTC=0x00; // Ngõ với mức DDRC=0xFF; // Set port C ngõ led=0x00; // Khởi tạo giá trị led ban đầu while (1) //lập liên tục { while(sw1) // Vòng lặp thực sw1 đc nhấn { led=0x01; // Cho giá trị led =1 delay_ms(200); // Đợi 200 ms while(led) // Vòng lặp xảy led khác { led=led1; // Dịch led sang phải (đèn sáng lần //lược qua bền phải) delay_ms(200); // Đợi 200 ms }; }; while(sw2) // Khi sw2 khác vòng lặp thực { led=0x01; // Gán led = 0000 0001 (đèn sáng lại tắt) delay_ms(200); // Đợi 200 ms while(led) { led=(led1); // Dịch led sang phải bit // đèn tắt dần bên phải delay_ms(200); if(led==0x00) // Nếu led = 0000 0000 break; // thoát khỏi vòng lặp đèn tắt hết }; }; while(sw3) // Khi sw3 nhấn vòng lặp thực liên tục { led=0x81; // Gán led = 1000 0001 (đèn sáng lại tắt) delay_ms(200); ledtam1=ledtam2=led; //ledtam1 ledtam2 giữ giá trị led while(led) { ledtam1=(ledtam1>>1)|0x80; //ledtam1 đươc gán //nó dịch sang phải bit //bit với 1000 0000 ledtam2=(ledtam21)&0xf0; // ledtam1 dịch phải bit // bit 1111 0000 ledtam2=(ledtam21); ledtam2=(ledtam21)&0xf0; // ledtam1 dich phải bit // bit với 1111 0000 ledtam2=(ledtam2[...]... trị hàng đơn vị led1 =1; // led1 sáng break; // thoát vòng lặp case 2: led1=led2=led3=led4=0; xuatled=(bien /10 ) %10 ; led2 =1; // xuatled bằng giá trị hàng chục // led 2 sáng break; case 3: led1=led2=led3=led4=0; xuatled=(bien /10 0) %10 ; led3 =1; // xuatled bằng giá trị hàng trăm // led 3 sáng break; case 4: led1=led2=led3=led4=0; xuatled=bien /10 00; // xuatled bằng giá trị hàng nghìn led4 =1; n=0; // led 4 sáng... State4=P State3=0 State2=0 State1=0 State0=0 PORTD=0xF0; // tương tự như set port C DDRD=0x0F; led1=0; led2=0; led3=0; led4=0; while (1) { xuatled=0x00; if(a==0&&nut1) { // nếu a=0 và nut1 =1 thì bien tăng lên 1 // và a =1 bien=bien +1; a =1; }; if(!nut1) // nếu nut1=0 thì a=0 a=0; // nghĩa của các câu lệnh trên là khi nhấn và giữ nguyên nút nhấn thì giá trị bien sẽ chỉ tăng lên 1 lần, tương tự với các câu... void main(void) // Khai báo sử dụng hỗ trợ lcd từ codevisions // khái báo port nối với lcd là port C // LCD module initialization lcd_init (16 ); // khai báo lcd sử dụng là lcd 16 cột lcd_clear(); // xóa màn hình lcd n =15 ; while (1) { for(i=0;i