TAILIEUCHUNG - BÀI TẬP THỰC HÀNH KEIL C

ùng vòng lặp for, while void delay(usigned char time) { while(time--) { unsigned char temp = 121; while(temp--); // chẳng làm gì cả } }. | Biên soạn: Đỗ Bình Nguyên BÀI TẬP THỰC HÀNH KEIL C Hàm delay Dùng vòng lặp for, while void delay(usigned char time) { while(time--) { unsigned char temp = 121; while(temp--); // chẳng làm gì cả } } Hàm delay . Dùng timer void delay(unsigned char time) { while(time--) { TMOD = 0x01; //timer0 chế độ 16 bit TH0 = 0xFC; //nạp giá trị cho timer TL0 = 0x67; TR0 = 1; //khởi động bộ định thời while(!TF0); //chờ cờ TF0 = 1 TF0 = 0 ; //xóa cờ tràn TR0 = 0; //dừng bộ định thời } } LED đơn Đếm nhị phân Viết chương trình đếm nhị phân và hiển thị ra các led đơn ở Port 1 #include void delay (unsigned char time); // khai báo prototype void main (void) { unsigned char led = 0; // biến lưu trữ số đếm while (1) { P1 = ~led; // xuất giá trị ra Port 1 led ++; // tăng biến đếm lên 1 đơn vị delay(100); } } void delay (unsigned char time) // thân chương trình delay { } Led chasing Viết chương trình điều khiển 8 led đuổi nhau #include void delay (unsigned char time); void main (void) { unsigned char led = 0x80; while (1) { P1 = ~led; led = led >> 1; //dịch phải delay(100); } } void delay (unsigned char time) { } LED 7 đoạn Đếm và hiển thị led 7 đoạn Viết chương trình đếm từ 0 – 9, hiển thị số đếm trên led 7 đoạn unsigned char code code_7seg [] = {0x40, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90} // mảng chứa mã led 7seg void main (void) { unsigned char i = 0; while (1) { P0 = code_7seg[i]; i ++; if (i == 10) i = 0; delay(100); } } Đếm và hiển thị led 7 đoạn sử dụng ngắt timer Viết chương trình đếm từ 0 – 9 sử dụng ngắt timer, hiển thị số đếm trên led 7 đoạn. void init (void) // khởi tạo timer0 { TH0 = 0x94; // nạp giá trị cho timer0 TL0 = 0x00; TF0 = 0; // xóa cờ ngắt TR0 = 1; // cho phép đếm ET0 = 1; // cho phép ngắt timer0 EA = 1; //cho phép ngắt toàn cục } Đếm và hiển thị led 7 đoạn sử dụng ngắt timer . //hàm phục vụ ngắt timer0 void isrTmr0 (void) interrupt 1{ // nạp lại giá trị cho timer 0 TH0 = 0x94; TL0 = 0x00; //xử lý biến đếm

TỪ KHÓA LIÊN QUAN
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.