BÁO CÁO THÍ NGHIỆM NGƠN NGỮ LẬP TRÌNH Họ tên sinh viên: Mã lớp LT: Mã lớp TN: Mã số SV: Lớp: MODUL Bài 1: Dùng toán tử gán thể giá trị nhị phân số nguyên LED đơn mắc kiểu anot chung Yêu cầu: Mở rộng cho trường hợp LED Gán giá trị cho biến DELAY để thay đổi tốc độ chạy LED a Sơ đồ nguyên lý b Code #include Output led0=3; Output led1=4; Output led2=5; Output led3=6; Output led4=7; Output led5=8; Output led6=9; Output led7=10; Delay DELAY; void setup() { // put your setup code here, to run once: } void loop() { led0=0; led1=1; led2=1; led3=1; led4=1; led5=1; led6=1; led7=1; DELAY=100; led0=1; led1=0; led2=1; led3=1; led4=1; led5=1; led6=1; led7=1; DELAY=100; led0=1; led1=1; led2=0; led3=1; led4=1; led5=1; led6=1; led7=1; DELAY=100; led0=1; led1=1; led2=1; led3=0; led4=1; led5=1; led6=1; led7=1; DELAY=100; led0=1; led1=1; led2=1; led3=1; led4=0; led5=1; led6=1; led7=1; DELAY=100; led0=1; led1=1; led2=1; led3=1; led4=1; led5=0; led6=1; led7=1; DELAY=100; led0=1; led1=1; led2=1; led3=1; led4=1; led5=1; led6=0; led7=1; DELAY=100; led0=1; led1=1; led2=1; led3=1; led4=1; led5=1; led6=1; led7=0; DELAY=100; } c Kết Bài 2: Dùng toán tử số học để thể giá trị nhị phân số nguyên LED đơn mắc kiểu anot chung Yêu cầu: Mở rộng cho trường hợp LED a Sơ đồ nguyên lý b Code: #include Output led0=3; Output led1=4; Output led2=5; Output led3=6; Output led4=7; Output led5=8; Output led6=9; Output led7=10; Delay DELAY; unsigned int value; void setup() { // put your setup code here, to run once: } void loop() { value = ~1; led0=value / % 2; led1=value / % 2; led2=value / % 2; led3=value / % 2; led4=value / 16 % 2; led5=value / 32% 2; led6=value / 64% 2; led7=value / 128% 2; DELAY = 500; value = ~2; led0=value / % 2; led1=value / % 2; led2=value / % 2; led3=value / % 2; led4=value / 16 % 2; led5=value / 32% 2; led6=value / 64% 2; led7=value / 128% 2; DELAY=500; value = ~4; led0=value / % 2; led1=value / % 2; led2=value / % 2; led3=value / % 2; led4=value / 16 % 2; led5=value / 32% 2; led6=value / 64% 2; led7=value / 128% 2; DELAY=500; value = ~8; led0=value / % 2; led1=value / % 2; led2=value / % 2; led3=value / % 2; led4=value / 16 % 2; led5=value / 32% 2; led6=value / 64% 2; led7=value / 128% 2; DELAY=500; } c Kết Bài 3: Dùng vòng lặp để thể giá trị nhị phân số nguyên LED đơn mắc kiểu anot chung Yêu cầu: Mở rộng cho trường hợp LED Thay vòng lặp for vòng lặp while Viết code để led sáng từ phải sang trái ngược lại a Sơ đồ nguyên lý b Code #include int led_band=3; Delay DELAY; unsigned int value; void setup() { for (int i = 0; i < 8; i++){ Output led = led_band + i; led = 1; //tắt led } void loop() { value = 1; int i=0, b=2; while(i < 8){ 10 Câu 10: Yêu cầu : Hàm đưa giá trị byte chân tín hiệu sử dụng hàm write để đưa giá trị khác hàng LED đơn Viết thêm hàm right2left(int) để chạy LED đơn từ phải sang trái Dùng vòng lặp để khử đệ quy cho hàm a Sơ đồ nguyên lý
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THƠNG BÁO CÁO THÍ NGHIỆM NGƠN NGỮ LẬP TRÌNH Họ tên sinh viên: Mã lớp LT: Mã lớp TN: Mã số SV: Lớp: MODUL Bài 1: Dùng toán tử gán thể giá trị nhị phân số nguyên LED đơn mắc kiểu anot chung Yêu cầu: Mở rộng cho trường hợp LED Gán giá trị cho biến DELAY để thay đổi tốc độ chạy LED a Sơ đồ nguyên lý b Code #include Output led0=3; Output led1=4; Output led2=5; Output led3=6; Output led4=7; Output led5=8; Output led6=9; Output led7=10; Delay DELAY; void setup() { // put your setup code here, to run once: } void loop() { led0=0; led1=1; led2=1; led3=1; led4=1; led5=1; led6=1; led7=1; DELAY=100; led0=1; led1=0; led2=1; led3=1; led4=1; led5=1; led6=1; led7=1; DELAY=100; led0=1; led1=1; led2=0; led3=1; led4=1; led5=1; led6=1; led7=1; DELAY=100; led0=1; led1=1; led2=1; led3=0; led4=1; led5=1; led6=1; led7=1; DELAY=100; led0=1; led1=1; led2=1; led3=1; led4=0; led5=1; led6=1; led7=1; DELAY=100; led0=1; led1=1; led2=1; led3=1; led4=1; led5=0; led6=1; led7=1; DELAY=100; led0=1; led1=1; led2=1; led3=1; led4=1; led5=1; led6=0; led7=1; DELAY=100; led0=1; led1=1; led2=1; led3=1; led4=1; led5=1; led6=1; led7=0; DELAY=100; } c Kết Bài 2: Dùng toán tử số học để thể giá trị nhị phân số nguyên LED đơn mắc kiểu anot chung Yêu cầu: Mở rộng cho trường hợp LED a Sơ đồ nguyên lý b Code: #include Output led0=3; Output led1=4; Output led2=5; Output led3=6; Output led4=7; Output led5=8; Output led6=9; Output led7=10; Delay DELAY; unsigned int value; void setup() { // put your setup code here, to run once: } void loop() { value = ~1; led0=value / % 2; led1=value / % 2; led2=value / % 2; led3=value / % 2; led4=value / 16 % 2; led5=value / 32% 2; led6=value / 64% 2; led7=value / 128% 2; DELAY = 500; value = ~2; led0=value / % 2; led1=value / % 2; led2=value / % 2; led3=value / % 2; led4=value / 16 % 2; led5=value / 32% 2; led6=value / 64% 2; led7=value / 128% 2; DELAY=500; value = ~4; led0=value / % 2; led1=value / % 2; led2=value / % 2; led3=value / % 2; led4=value / 16 % 2; led5=value / 32% 2; led6=value / 64% 2; led7=value / 128% 2; DELAY=500; value = ~8; led0=value / % 2; led1=value / % 2; led2=value / % 2; led3=value / % 2; led4=value / 16 % 2; led5=value / 32% 2; led6=value / 64% 2; led7=value / 128% 2; DELAY=500; } c Kết Bài 3: Dùng vòng lặp để thể giá trị nhị phân số nguyên LED đơn mắc kiểu anot chung Yêu cầu: Mở rộng cho trường hợp LED Thay vòng lặp for vòng lặp while Viết code để led sáng từ phải sang trái ngược lại a Sơ đồ nguyên lý b Code #include int led_band=3; Delay DELAY; unsigned int value; void setup() { for (int i = 0; i < 8; i++){ Output led = led_band + i; led = 1; //tắt led } void loop() { value = 1; int i=0, b=2; while(i < 8){ 10 Câu 10: Yêu cầu : Hàm đưa giá trị byte chân tín hiệu sử dụng hàm write để đưa giá trị khác hàng LED đơn Viết thêm hàm right2left(int) để chạy LED đơn từ phải sang trái Dùng vòng lặp để khử đệ quy cho hàm a Sơ đồ nguyên lý : 33 b.1 Code (sử dụng hàm đệ quy) #include Output LEDS[8]; Delay DELAY ; void setup() { for(int i = 0; i < 8; i++){ Output led = i + 2; led = 0; LEDS[i] = led; } } void write(int value, int pin) { for (int i = 0; i < 4; i++) { 34 Output p = pin + i; p = (value>>i) & 1; } } void left2right(int value) { if (value != 0) { write( ~value, 2); DELAY = 50; left2right(value >> 1); } if(value == 0){ write(~value, 2); DELAY = 50; } } void right2left(int value) { if (value != 0) { write( ~value, 2); DELAY = 50; right2left(value i) & 1; } } void left2right(int value) { if (value != 0) { for ( int i = ; i