Professional Documents
Culture Documents
KHOA CƠ ĐIỆN-ĐIỆN TỬ
---
MÔN HỌC:
VI ĐIỀU KHIỂN
Đề tài:
2
Chương 4 Kết quả
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Phân tích đề tài
Đề tài bao gồm 2 phần chính:
1. Điều khiển đèn giao thông có led 7 đoạn hiển thị thời gian.
2. Dùng máy tính để thay đổi được thời gian chuyển trạng thái của đèn.
2.1.1 Sơ đồ khối hệ thống
Dựa vào đề tài, ta có thể có các khối chức năng sau
Led 7 đoạn: Hiển thị thời gian của đèn.
Traffic lights: Hiển thị trạng thái của đèn
Timer/Counter: Đếm thời gian của đèn giao thông
UART: Thay đổi thời gian các trạng thái của đèn
2.2 Phân chia các tác vụ (task)
Dựa vào yêu cầu của đề tài, ta phân ra được một số tác vụ nhỏ hơn:
Bảng 2. 1 Thống kê số tác vụ thực hiện
TÊN BIẾN
STT TÊN TÁC VỤ MÔ TẢ
(NẾU CÓ)
Chuyển trạng thái Sau một thời gian nhất định ứng với mỗi
đèn và thời gian gắn trạng thái đèn sẽ chuyển sang trạng thái
1 với nó. đèn kế tiếp {Mặc định ban đầu là: đèn
xanh (9 giây), đèn đỏ (12 giây) và đèn
vàng (3 giây)} sử dụng timer/counter
3
Chương 4 Kết quả
4
Chương 4 Kết quả
CHƯƠNG 3 THIẾT KẾ
3.1 Thống kê I/O
Bảng 3. 1 Số lượng Input của đề bài
STT TÊN INPUT ĐỊA CHỈ MÔ TẢ CHỨC NĂNG
1 RX0 PE0/RXD0/PCINT8/PDI Nhận dữ liệu giao tiếp từ máy
tính
Bảng 3. 2 Số lượng Output của đề bài
STT TÊN OUTPUT ĐỊA CHỈ MÔ TẢ CHỨC NĂNG
TX0 PE1/TXD01/PD0 Trả dữ liệu về máy tính trong khi
1
giao tiếp
2 Đỏ 1 PF0/ADC0 Bật tắt đèn đỏ 1
3 Vàng 1 PF1/ADC1 Bật tắt đèn vàng 1
4 Xanh 1 PF2/ADC2 Bật tắt xanh 1
5 Đỏ 2 PF3/ADC3 Bật tắt đèn đỏ 2
6 Vàng 2 PF4/ADC4/TCK Bật tắt đèn vàng 2
7 Xanh 2 PF5/ADC5/TMS Bật tắt xanh 2
8 Chục 1 ̅̅̅̅̅
PG0/𝑊𝑅 Bật tắt led hàng chục 1
9 Đơn vị 1 ̅̅̅̅
PG1/𝑅𝐷 Bật tắt led hàng đơn vị 1
10 Chục 2 PG2/ALE Bật tắt led hàng chục 2
11 Đơn vị 2 PG3/TOSC2 Bật tắt led hàng đơn vị 2
12 7SEG-MPX2-1 PORT (H0-H6) Hiển thị số lên đèn giao thông 1
13 7SEG2-MPX2-2 PORT (J0-J6) Hiển thị số lên đèn giao thông 2
3.2 Sơ đồ kết nối phần cứng
Sản phẩm mô phỏng
5
Chương 4 Kết quả
6
Chương 4 Kết quả
{
j++;
}
k++;
}
if (j==1)
{
v--;
if (t==3)
{
j++;
}
t++;
}
if (j==2)
{
d1--;
if (k1==9)
{
j++;
}
k1++;
}
if (j==3)
{
v1--;
if (t1==3)
{
j++;
}
t1++;
7
Chương 4 Kết quả
}
if (j==4)
{
j=0;
d=11;
v=3;
d1=12;
v1=3;
t=k=t1=k1=0;
}
}
unsigned char caidat(unsigned char m,unsigned char n)
{
PORTG=0x04;
PORTJ=led7[m%10];
delay_ms(1);
PORTG=0x08;
PORTJ=led7[m/10];
delay_ms(1);
PORTJ=0x00;
PORTG=0x01;
PORTH=led7[n%10];
delay_ms(1);
PORTG=0x02;
PORTH=led7[n/10];
delay_ms(1);
PORTH=0x00;
}
void main (void)
{
#pragma optsize-
8
Chương 4 Kết quả
CLKPR=(1<<CLKPCE);
CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) |
(0<<CLKPS0);
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) |
(0<<COM1C1) | (0<<COM1C0) | (0<<WGM11) | (0<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (1<<CS12) |
(0<<CS11) | (0<<CS10);
TCNT1H=0x0B;
TCNT1L=0xDC;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
OCR1CH=0x00;
OCR1CL=0x00;
TIMSK1=(0<<ICIE1) | (0<<OCIE1C) | (0<<OCIE1B) | (0<<OCIE1A) | (1<<TOIE1);
#asm("sei")
DDRF=0b11111111;
DDRG=0b11111111;
DDRH=0b11111111;
DDRJ=0b11111111;
while (1)
{
if (j==0)
{
PORTF=0b00001100;
9
Chương 4 Kết quả
caidat(d,d-3);
}
if (j==1)
{
PORTF=0b00001010;
caidat(v,v);
}
if (j==2)
{
PORTF=0b00100001;
caidat(d1-3,d1);
}
if (j==3)
{
PORTF=0b00010001;
caidat(v1,v1);
}
}
}
10
Chương 4 Kết quả
11
TÀI LIỆU THAM KHẢO
PHỤ LỤC (nếu có)
i
DANH MỤC BẢNG BIỂU
Bảng 2. 1 Thống kê số tác vụ thực hiện ........................................................................3
Bảng 3. 1 Số lượng Input của đề bài .............................................................................5
Bảng 3. 2 Số lượng Output của đề bài ...........................................................................5
DANH MỤC HÌNH ẢNH
Hình 2. 1 Sơ đồ nguyên lý (Font size 12pt, tô đậm Hình 2.1) ...................................4