Chào mừng đến với Câu Lạc Bộ Sáng Tạo
Chia sẻ kinh nghiệm
Kết nối đam mê
Đang cập nhật thời gian...
BÀI VIẾT NỔI BẬT
Xin chào! Tôi là Ếch Sáng Tạo :-)
Chia sẻ trang




Chuyên mục
Bài mới
Xem nhiều
Thống kê
  • Bài viết: 334/334
  • Thành viên: 10.085
  • Đang online: 2
  • Khách hôm nay: 521
  • Khách hôm qua: 2.850
  • Tổng khách: 16.207.072
Bài viết
Bài 3: Viết chương trình con - Lập trình C cơ bản - SangTaoClub.Net
Bài 3: Viết chương trình con - Lập trình C cơ bản
Đăng bởi: Vũ Văn Thái - Thời gian: 22-06-2013, 15:29
Chuyên mục: Học lập trình 8051 - Lượt xem: 3.742

Viết chương trình con 

Bài viết này sẽ giúp bạn tạo ra chương trình con và khai báo để chạy nó.

Để tạo ctr con thì khá đơn giản VD:

void ten_ctr(){

// Nội dung code

}

Để chạy chương trình trên thì ta chỉ thêm vào vị trí bất kỳ trong chương trình chính:

void main(){  //Chương trình chính
while(1){ //Vòng lặp vô tận

ten_ctr(); //Chương trình con vừa tạo

}

}

Lưu ý chương trình con phải dc khai báo trước main() để có thể chạy dc.

Để truyền dữ liệu cho ctr con ta chỉ cần khai báo 1 biến bất kỳ trong dấu () vd:

void ten_ctr2(unsigned int a){

// Nội dung code xử lý dữ liệu lấy từ biến a=2000

}

void main(){  //Chương trình chính
while(1){ //Vòng lặp vô tận

ten_ctr2(2000); //Chương trình con vừa tạo

}

}

Nếu có nhiều dữ liệu thì chỉ việc đánh dấu phẩy ngăn cách.

Đây là code trong code led trái tim của mình, tạo ctr con hiệu ứng để tiện thay đổi hiệu ứng cũng như thứ tự xuất hiện hiệu ứng mà mình muốn:

unsigned char m1[8]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};  //thuan 0 -> 7
unsigned char m2[8]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};  //nguoc 7 -> 0

void h_ung_1(){ //Hieu ung 1 
P1=P0=0x00;i=l=u=0;
for(q=0;q<8;q++){
delay(5);
P0=m1[q];
P1=m1[q];
}
delay(15);i=1;
delay(10);l=1;
delay(10);u=1;
delay(25);u=0;
delay(10);l=0;
delay(10);i=0;
delay(10);
for(w=0;w<8;w++){
delay(5);
P0=m1[7-w];
P1=m1[7-w];
}
delay(10);
}

void h_ung_2(){ //Hieu ung 2
P0=P1=0x00;i=l=u=0;
for(q=0;q<8;q++){
delay(5);
P0=m1[q];
}

for(w=0;w<8;w++){
delay(5);
P1=m1[w];
}
chay();
delay(10);
P0_0=1;
for(q=0;q<8;q++){
delay(5);
P1=m2[q];
}
for(w=0;w<8;w++){
delay(5);
P0=m2[w];
}
chay();
}

 

Chúc bạn học tốt môn vi xử lý, nhớ Like, thắc mắc để lại comment.


  • Bạn chưa đăng nhập, không thể viết bình luận!
    Bấm vào đây để Đăng nhập hoặc Đăng ký!
  • nguyendinhduc1504 lúc 21-06-2014, 23:14
    code này là chương trình con hả a. muốn chạy thì phải vết thêm chương trình chính nữa phải k ạ
  • thangshang11111 lúc 04-06-2014, 00:18
    hi. thank bạn
  • Vũ Văn Thái lúc 29-05-2014, 21:46
    Bạn từ lần sau cmt nhớ gõ TV có dấu. đó là khai báo tên thay thế define hoặc khai báo kiểu biến sbit, lên mới dc phép đặt là i, l, u.... thực ra nó thay thế cho khai báo chân VDK với số lượng câu lệnh lớn, bạn không thể thay tên PORT cho 100 câu lệnh dc lên với tên thay thế ta chỉ cần sửa đúng 1 dòng duy nhất
  • thangshang11111 lúc 29-05-2014, 20:15
    admin oi? giai thich cho minh cho:i=1,l=1,u=0...y nghia cua no la ntn?.trong mot so tai lieu vi su ly thi khai bao vao ra la: output,strit..thi khai bao vao ra cua ban..ntn?
  • Vũ Văn Thái lúc 03-11-2013, 07:28
    chào b, đó chỉ là một đoạn code để tham khảo thuj
  • lowpass lúc 03-11-2013, 05:05
    admin xem lại code này có hàm chay() chưa khai báo mà vẫn chạy được sao?......
  • Trang 1/1: 1

    Bài viết cùng chuyên mục
    Điều khiển tốc độ động cơ Motor DC sử dụng PWM Điều khiển tốc độ động cơ Motor DC sử dụng PWM
    Đăng bởi: kienvuce - Thời gian: 04-11-2021, 22:40
    Chuyên mục: Học lập trình 8051 - Lượt xem: 3.130
    Chia sẻ bộ thư viện Driver chuẩn cho LCD Gphone và Home Phone Chia sẻ bộ thư viện Driver chuẩn cho LCD Gphone và Home Phone
    Đăng bởi: Vũ Văn Thái - Thời gian: 22-02-2017, 14:54
    Chuyên mục: Học lập trình 8051 - Lượt xem: 6.635
    Led 7 thanh 4 số điều khiển bằng nút bấm Led 7 thanh 4 số điều khiển bằng nút bấm
    Đăng bởi: HoangQuan69 - Thời gian: 09-10-2016, 15:08
    Chuyên mục: Học lập trình 8051 - Lượt xem: 5.946
    Chia sẻ Code đồng hồ số hiển thị trên LED 7 đoạn dùng 89S52 và DS1307 Chia sẻ Code đồng hồ số hiển thị trên LED 7 đoạn dùng 89S52 và DS1307
    Đăng bởi: Vũ Văn Thái - Thời gian: 13-05-2015, 09:00
    Chuyên mục: Học lập trình 8051 - Lượt xem: 28.718
    Bài 15: Lập trình quét phím matrix 4x4 hiển thị lên LCD 16x2 Bài 15: Lập trình quét phím matrix 4x4 hiển thị lên LCD 16x2
    Đăng bởi: Vũ Văn Thái - Thời gian: 20-11-2014, 08:57
    Chuyên mục: Học lập trình 8051 - Lượt xem: 31.836
    [Share] Code giao tiếp Graphic LCD 12864 SPI của máy GPHONE ZTE [Share] Code giao tiếp Graphic LCD 12864 SPI của máy GPHONE ZTE
    Đăng bởi: Vũ Văn Thái - Thời gian: 12-11-2014, 22:06
    Chuyên mục: Học lập trình 8051 - Lượt xem: 19.286
    [Share] Code C đo nhiệt độ dùng DS18B20 hiển thị lên LED 7 thanh [Share] Code C đo nhiệt độ dùng DS18B20 hiển thị lên LED 7 thanh
    Đăng bởi: Vũ Văn Thái - Thời gian: 12-11-2014, 09:02
    Chuyên mục: Học lập trình 8051 - Lượt xem: 19.613
    Bài 14: Đo nhiệt độ dùng cảm biến DS18B20 với 8051 Bài 14: Đo nhiệt độ dùng cảm biến DS18B20 với 8051
    Đăng bởi: Vũ Văn Thái - Thời gian: 19-10-2014, 10:11
    Chuyên mục: Học lập trình 8051 - Lượt xem: 25.438
    Bài 13: Đo nhiệt độ dùng LM35 kết hợp IC ADC0808 với 8051 Bài 13: Đo nhiệt độ dùng LM35 kết hợp IC ADC0808 với 8051
    Đăng bởi: Vũ Văn Thái - Thời gian: 22-08-2014, 22:18
    Chuyên mục: Học lập trình 8051 - Lượt xem: 46.049
    Bài 12: Tạo xung PWM dùng ngắt timer 8051 Bài 12: Tạo xung PWM dùng ngắt timer 8051
    Đăng bởi: Vũ Văn Thái - Thời gian: 02-03-2014, 20:45
    Chuyên mục: Học lập trình 8051 - Lượt xem: 24.148
    
    Chào mừng hieutrang đã tham gia câu lạc bộ sáng tạo!
    Vũ Văn Thái - vuthai
    Hôm nay là sinh nhật của TRINHVANHOAN, phantoan2741990, nha203, phantoan274, trumot, hai270485, anhpon, truongkhnggn12, kietpt2704, doanngocsy, thanhtungckc, trannam1994, ← Gửi tin nhắn chúc mừng
    Múi giờ: UTC+07:00 - Asia/Ho Chi Minh ***** IP của bạn: 3.144.161.116 ***** Status: Cache Update thành công!