Mô tả:
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ọ và tên sinh viên:
Mã lớp LT:
Mã lớp TN:
Mã số SV:
Lớp:
1
2
MODUL 1
Bài 1: Dùng toán tử gán thể hiện giá trị nhị phân của các số nguyên trên các
LED đơn mắc kiểu anot chung
Yêu cầu:
Mở rộng cho trường hợp 8 LED
Gán giá trị cho biến DELAY để thay đổi tốc độ chạy các LED
a. Sơ đồ nguyên lý
b. Code
#include
Output led0=3;
Output led1=4;
Output led2=5;
3
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;
4
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 quả
Bài 2: Dùng toán tử số học để thể hiện giá trị nhị phân của các số nguyên trên
các LED đơn mắc kiểu anot chung
5
Yêu cầu: Mở rộng cho trường hợp 8 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;
6
unsigned int value;
void setup() {
// put your setup code here, to run once:
}
void loop() {
value = ~1;
led0=value / 1 % 2;
led1=value / 2 % 2;
led2=value / 4 % 2;
led3=value / 8 % 2;
led4=value / 16 % 2;
led5=value / 32% 2;
led6=value / 64% 2;
led7=value / 128% 2;
DELAY = 500;
value = ~2;
led0=value / 1 % 2;
led1=value / 2 % 2;
led2=value / 4 % 2;
led3=value / 8 % 2;
led4=value / 16 % 2;
led5=value / 32% 2;
led6=value / 64% 2;
led7=value / 128% 2;
DELAY=500;
7
value = ~4;
led0=value / 1 % 2;
led1=value / 2 % 2;
led2=value / 4 % 2;
led3=value / 8 % 2;
led4=value / 16 % 2;
led5=value / 32% 2;
led6=value / 64% 2;
led7=value / 128% 2;
DELAY=500;
value = ~8;
led0=value / 1 % 2;
led1=value / 2 % 2;
led2=value / 4 % 2;
led3=value / 8 % 2;
led4=value / 16 % 2;
led5=value / 32% 2;
led6=value / 64% 2;
led7=value / 128% 2;
DELAY=500;
}
c. Kết quả
8
Bài 3: Dùng vòng lặp để thể hiện giá trị nhị phân của các số nguyên trên các
LED đơn mắc kiểu anot chung.
Yêu cầu:
Mở rộng cho trường hợp 8 LED.
Thay các vòng lặp for bằng các vòng lặp while
Viết code để từng led sáng từ phải sang trái và ngược lại.
a. Sơ đồ nguyên lý
9
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
Output led = led_band + i;
led = value/b%2;
DELAY = 500;
Led = value/b%2+1;
b *= 2;
i++;
}
i = 7;
while ( i > -1){
Output led = led_band + i;
led = value/b%2;
DELAY = 500;
led = value/b%2 + i;
b *= 2;
i--;
}
}
c. Kết quả
11
Bài 4: Dùng các toán tử xử lý bit (Bitwise operators) để thể hiện giá trị nhị phân
của các số nguyên trên các LED đơn mắc anot chung.
Yêu cầu:
Mở rộng cho trường hợp 8 LED
Viết code để từng LED sáng theo chiều ngược lại
a. Sơ đồ nguyên lý
12
b. Code
#include
unsigned int value, i, a;
unsigned int led_band=3;
Delay DELAY;
void setup() {
// put your setup code here, to run once:
for (int i = 0; i < 8; i++){
Output led = led_band + i;
led = 1; //tắt led
}
void loop() {
value = 128;
13
while (value > 0){
for (i = 0 ; i < 8 ; i ++) {
a = ~value;
Output led = led_band+i;
led = (a>>i) &1;
}
DELAY = 100;
value >>= 1;
}
}
c. Kết quả
Bài 5: Thể hiện các số trên LED 7 thanh mắc anot chung
Yêu cầu:
14
Tắt dần chấm trên LED
Chuyển hiển thị đến các LED khác
Mở rộng cho các chữ số hệ thập phân
a. Sơ đồ nguyên lý
b. Code
#include
Delay DELAY;
//gán các thanh cho các chân.
Output a = 3;
Output b = 4;
Output c = 5;
Output d = 6;
Output e = 7;
Output f = 8;
15
Output g = 9;
Output dp = 10;
void setup() { }
void loop() {
// số 0
a = 0; b = 0; c = 0; d = 0;
e = 0; f = 0; g = 1; dp = 1;
DELAY = 200;
//số 1
a= 1; b = 0; c = 0; d = 1;
e = 1; f = 1; g = 1; dp = 1;
DELAY = 100;
//số 2
a = 0; b = 0; c = 1; d= 0;
e = 0; f= 1; g = 0; dp = 1;
DELAY = 200;
//số 3
a= 0; b = 0; c= 0; d = 0;
e = 1; f = 1; g = 0; dp = 1;
DELAY = 200;
//số 4
a = 1; b = 0; c = 0; d = 1;
e = 1; f = 0; g = 0; dp = 1;
DELAY = 200;
//số 5
16
a = 0; b = 1; c = 0; d = 0;
e = 1; f = 0; g = 0; dp = 1;
DELAY = 200;
//số 6
a = 0; b = 1; c = 0; d = 0;
e = 0; f = 0; g = 0; dp = 1;
DELAY = 200;
//số 7
a = 0; b = 0; c = 0; d = 1;
e = 1; f = 1; g = 1; dp = 1;
DELAY = 200;
//số 8
a = 0; b = 0; c = 0; d = 0;
e = 0; f = 0; g = 0; dp = 1;
DELAY = 200;
//số 9
a = 0; b = 0; c = 0; d = 0;
e = 1; f = 0; g = 0; dp = 1;
DELAY = 200;
}
c. Kết quả
17
18
MODUL 2
Bài 6 :
Yêu cầu :
Sử dụng mảng để thể hiện các số trên LED 7 thanh mắc anot chung
Viết code để đưa giá trị ra LED được chọn
a. Sơ đồ nguyên lý
b. Code :
#include
Delay DELAY;
Output LEDS[4];
Output PINS[8];
const int N = 4;
19
unsigned int code7[] = {0xc0, 0xf9, 0xa4, 0xb0 ,0x99 ,0x92 ,0x82, 0xF8 , 0x80 ,
0x90};
void setup() {
for (int i = 0; i < N; i++) {
Output led = i + 2;
led = 1; //
LEDS[i] = led;
}
for (int i = 0; i < 8; i++) {
Output pin = LED7_A + i;
PINS[i] = pin;
}
}
void loop() {
for( int m = 0; m < 10; m++){
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
LEDS[j] = (i == j);
int code = code7[m];
for(int k = 0; k < 8; k++){
PINS[k] = (code >> k) & 1;
}
20
- Xem thêm -