Đề cương mạng máy tính
Đề cương mạng máy tính
Preview text:
l OM oARc PSD|19 70 4 49 4 Phần 1: Counter Câu 1.
a.Thiết kế mạch điện như sau:
- Các linh kiện được sử dụng: Các điện trở, 02 LED 7 thanh ; 02 nút nhấn thường mở (PB).
- Sử dụng các chân RD0 ÷ RD7, RE1, RE1 nối với 02 LED 7 thanh. PB1 được nối với
chân RA4/T0CKI; PB2 được nối với chân RB0.
b. Vẽ lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:
- Sử dụng Timer0 đếm số lần nhấn PB1 và hiển thị trên 02 LED 7 thanh bằng phương
pháp quét. Dừng đếm khi số lần nhấn vượt quá 20 lần.
- Khi nhấn PB2, số lần nhấn được reset về 0.
//khai báo các thu vi?n, ví d?: #include #include #include
//C?u hình cho vi di?u khi?n, ví d?:
#pragma config OSC = HS //ch? d? dao d?ng HS
#pragma config MCLRE = ON //s? d?ng RE3 làm chân reset (OFF: không s? d?ng)
#pragma config WDT = OFF //không dùng Watchdog timer
#pragma config PBADEN = OFF //PORTB<4:0> du?c c?u hình thành các chân vào/ra s?
//ON: PORTB<4:0> du?c c?u hình thành các chân AN8-AN12
#pragma config PWRT=ON // s? d?ng Power-up timer l OM oARc PSD|19 70 4 49 4
#pragma config BOREN=OFF // không s? d?ng ch?c nang Bown-out reset
//(reset khi Vdd xu?ng th?p du?i 1 ngu?ng)
#pragma config LVP=OFF //không d?ng ch? d? c?p ngu?n ch? t? m?ch n?p
//(Single-Supply ICSP Programming)
/*khai báo bi?n s?,h?ng s?,c?u trúc,chuong trình con, ví d?:*/ int x;
char m[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//Khai báo tên các chuong trình con, ví d?: void high_isr (void);
//vi?t các chuong trình con, ví d?: void high_isr (void) { //các câu l?nh } //chuong trình chính void main (void) {
ADCON1=0X0F; TRISA=0XFF; TRISB=0XFF; TRISD=0; TRISE=0;
OpenTimer0(TIMER_INT_OFF&T0_SOURCE_EXT&T0_EDGE_FALL&T0_8BIT &T0_PS_1_1); //T0CON=0b11111000; WriteTimer0(0); //TMR0H=0; TMR0L=0; while(1) { if(PORTBbits.RB0==0) //nhan {WriteTimer0(0);TRISA=0XFF;} else { x=ReadTimer0(); //x=TMR0L
PORTE=0b00000001; //Bat LED1, tat LED2
PORTD=m[x/10]; // x=12=> x/10=1 => PORTD=m[1] Delay10KTCYx(10);
PORTE=0b00000010; //Bat LED2, tat LED1
PORTD=m[x%10]; // x=12=> x%10=2 => PORTD=m[2] Delay10KTCYx(10); if(x>=20) TRISA=0; } } } Câu 2.
a.Thiết kế mạch điện như sau:
- Các linh kiện được sử dụng: Các điện trở, 02 LED 7 thanh ; 02 nút nhấn thường mở (PB). l OM oARc PSD|19 70 4 49 4
- Sử dụng các chân RD0 ÷ RD7, RE1, RE1 nối với 02 LED 7 thanh. PB1 được nối với
chân RC0/T13CKI; PB2 được nối với chân RB0.
b. Vẽ lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:
- Sử dụng Timer1/Timer3 đếm số lần nhấn PB1 và hiển thị trên 02 LED 7 thanh bằng
phương pháp quét. Dừng đếm khi số lần nhấn vượt quá 20 lần.
- Khi nhấn PB2, số lần nhấn được reset về 0.
//khai báo các thu vi?n, ví d?: #include #include #include
//C?u hình cho vi di?u khi?n, ví d?:
#pragma config OSC = HS //ch? d? dao d?ng HS
#pragma config MCLRE = ON //s? d?ng RE3 làm chân reset (OFF: không s? d?ng)
#pragma config WDT = OFF //không dùng Watchdog timer
#pragma config PBADEN = OFF //PORTB<4:0> du?c c?u hình thành các chân vào/ra s?
//ON: PORTB<4:0> du?c c?u hình thành các chân AN8-AN12
#pragma config PWRT=ON // s? d?ng Power-up timer
#pragma config BOREN=OFF // không s? d?ng ch?c nang Bown-out reset
//(reset khi Vdd xu?ng th?p du?i 1 ngu?ng)
#pragma config LVP=OFF //không d?ng ch? d? c?p ngu?n ch? t? m?ch n?p
//(Single-Supply ICSP Programming) #define KEY1 PORTCbits.RC0 #define KEY2 PORTBbits.RB0
/*khai báo bi?n s?,h?ng s?,c?u trúc,chuong trình con, ví d?:*/ int dem; char m[10];
//Khai báo tên các chuong trình con, ví d?: void high_isr (void);
//vi?t các chuong trình con, ví d?: void high_isr (void) { //các câu l?nh } void hienthi(int x) {
char M[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; PORTEbits.RE0=1; PORTEbits.RE1=0; PORTD=M[x/10]; Delay10KTCYx(10); PORTEbits.RE0=0; PORTEbits.RE1=1; PORTD=M[x%10]; Delay10KTCYx(10); l OM oARc PSD|19 70 4 49 4 } //chuong trình chính void main (void) { ADCON1=0x0f; TRISC=TRISB=0x01; TRISD=TRISE=0;
OpenTimer1(TIMER_INT_OFF & T1_16BIT_RW
&T1_SOURCE_EXT& T1_PS_1_1&T1_OSC1EN_OFF); WriteTimer1(0);//Nap gia tri
T1CONbits.TMR1ON=1;//bat timer while(1) { dem=ReadTimer1(); if(dem>=20) TRISC=0; if(KEY2==0) WriteTimer1(0); hienthi(dem); } } l OM oARc PSD|19 70 4 49 4 Phần 2: USART Câu 1.
a.Thiết kế mạch điện như sau:
- Các linh kiện được sử dụng: PIC18F4520, 01 điện trở, 01 nút nhấn thường mở (PB) và VITUAL TERMINAL
- USART của PIC18F4520 nối với VIRTUAL TERMINAL.
- Nút nhấn nối với chân RD0.
b. Vẽ lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:
Thiết lập USART với các thông số: Không sử dụng ngắt; chế độ không đồng bộ;
truyền/nhận 8 bit; nhận liên tục các byte; tốc độ baud cao; tốc độ baud: 4800.
PIC18F4520 hoạt động ở tần số 11.0592 Mhz.
- Đếm số lần nhấn PB và hiển thị trên hiển thị trên VIRTUAL TERMINAL dưới dạng số thập phân;
- Dừng đếm khi nhận được từ VIRTUAL TERMINAL ký tự a hoặc số lần nhấn lớn hơn 25.
//khai báo các thu vi?n, ví d?: #include #include l OM oARc PSD|19 70 4 49 4 #include
//C?u h´nh cho vi di?u khi?n, ví d?:
#pragma config OSC = HS //ch? d? dao d?ng HS
#pragma config MCLRE = ON //s? d?ng RE3 làm chân reset (OFF: không s? d?ng)
#pragma config WDT = OFF //không dùng Watchdog timer
#pragma config PBADEN = OFF //PORTB<4:0> du?c c?u h´nh thành các chân
//ON: PORTB<4:0> du?c c?u h´nh thành các chân AN8-AN12
#pragma config PWRT=ON // s? d?ng Power-up timer
#pragma config BOREN=OFF // không s? d?ng ch?c nang Bown-out reset
//(reset khi Vdd xu?ng th?p du?i 1 ngu?ng)
#pragma config LVP=OFF //không d?ng ch? d? c?p ngu?n ch? t? m?ch n?p
//(Single-Supply ICSP Programming)
/*khai báo bi?n s?,h?ng s?,c?u trúc,chuong tr´ nh con, ví d?:*/ #define KEY1 PORTBbits.RB0 int dem; void send_USART(int x) {
WriteUSART(x/10 + 0x30);// chuyen tu so sang ma ASCII Delay10KTCYx(2);
WriteUSART(x%10 + 48);// chuyen tu so sang ma ASCII Delay10KTCYx(2);
WriteUSART(0x0D);// xuong dong Delay10KTCYx(2); } void main (void) { char dem,giatri,giatri1; ADCON1=0X0F; l OM oARc PSD|19 70 4 49 4 TRISC=0x80; TRISB=0x01; // RB0 chieu vao
OpenUSART(USART_TX_INT_OFF &USART_RX_INT_OFF &
USART_ASYNCH_MODE &USART_EIGHT_BIT &USART_CONT_RX & USART_BRGH_HIGH,143); dem=0; while(1) { giatri1=dem; if(KEY1==0) { while(KEY1==0); dem++; } giatri=ReadUSART(); if(dem>=25 || giatri=='a') CloseUSART(); else { if (giatri1!=dem) send_USART(dem); } } } l OM oARc PSD|19 70 4 49 4 Câu 2.
a.Thiết kế mạch điện như sau:
- Các linh kiện được sử dụng: vi điều khiển PIC18F4520, các điện trở, 02 LED.
- USART của PIC18F4520 nối với VIRTUAL TERMINAL.
- LED1, LED2 được nối với với các chân RB2, RB3.
b. Vẽ lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:
Thiết lập USART với các thông số: Không sử dụng ngắt; chế độ không đồng bộ;
truyền/nhận 8 bit; nhận liên tục các byte; tốc độ baud cao; tốc độ baud: 19200.
PIC18F4520 hoạt động ở tần số 11,0592 Mhz.
- Khi bắt đầu bật nguồn, hiển thị họ tên, mã sinh viên ở đầu dòng thứ nhát, mã lớp học
phần ở đầu dòng thứ 2;
- PIC18F4520 nhận các ký tự từ VIRTUAL TERMINAL và điều khiển LED1 sáng
khi nhận được ký tự a, tắt khi nhận ký tự b; điều khiển LED2 sáng khi nhận được ký
tự c, tắt khi nhận ký tự d.
//khai báo các thu vi?n, ví d?: l OM oARc PSD|19 70 4 49 4 #include #include #include
//C?u h´nh cho vi di?u khi?n, ví d?:
#pragma config OSC = HS //ch? d? dao d?ng HS
#pragma config MCLRE = ON //s? d?ng RE3 làm chân reset (OFF: không s? d?ng)
#pragma config WDT = OFF //không dùng Watchdog timer
#pragma config PBADEN = OFF //PORTB<4:0> du?c c?u h´nh thành các chân vào/ra
//ON: PORTB<4:0> du?c c?u h´nh thành các chân AN8-AN12
#pragma config PWRT=ON // s? d?ng Power-up timer
#pragma config BOREN=OFF // không s? d?ng ch?c nang Bown-out reset
//(reset khi Vdd xu?ng th?p du?i 1 ngu?ng)
#pragma config LVP=OFF //không d?ng ch? d? c?p ngu?n ch? t? m?ch n?p
//(Single-Supply ICSP Programming)
/*khai báo bi?n s?,h?ng s?,c?u trúc,chuong tr´ nh con, ví d?:*/ #define LED1 PORTBbits.RB2 #define LED2 PORTBbits.RB3 int dem; void main (void) { char giatri; char M1[]={"Ho va ten"}; char M2[]={"Ma lop"}; ADCON1=0X0F;
TRISC=0B10000000; // 8 chan port D co chieu ra TRISB=0;
OpenUSART(USART_TX_INT_OFF &USART_RX_INT_OFF & // fosc=11.0592; //baud=19200
USART_ASYNCH_MODE &USART_EIGHT_BIT &
USART_CONT_RX & USART_BRGH_HIGH,35); putsUSART(M1);
WriteUSART(0x0D);// Xuong dong putsUSART(M2); while(1) { giatri=ReadUSART(); if(giatri=='a') LED1=1; if(giatri=='b') LED1=0; if(giatri=='c') LED2=1; if(giatri=='d') LED2=0; } l OM oARc PSD|19 70 4 49 4 }
Document Outline
- Phần 1: Counter
- Câu 2.
- Phần 2: USART
- Câu 2. (1)
- //khai báo các thu vi?n, ví d?: