Bảng thông tin điện tử dùng vi điều khiển PIC 16f88 - Pdf 11

Bài tập lớn VXL Bảng thông tin điện tử
Giảng viên hớng dẫn:Hàn Huy Dũng ĐHBKHN
Thực hiện :nhóm ĐT 1+2 K48 5/6/2006
1
Trng i Hc Bỏch Khoa H Ni
Khoa in T Vin Thụng
====o0o==== Báo cáo bài tập lớn
Môn :vi xử lí

đề tài: Bảng thông tin điện tử dùng
vi điều khiển pic16f88

Giảng viên hớng dẫn: Hàn Huy Dũng
Nhóm sinh viên thực hiện: Lớp Điện Tử 1&2 K48
Khoa : ĐT-VT


thiết bị ngoại vi các bộ vi xử lý chính là một công cụ đầy sức mạnh trong
lĩnh vực điện tử .
Và sau đây chúng em xin đợc trình bày ứng dụng của bộ vi xử PIC
16F88 để hiển thị dòng chữ chạy bằng ma trận led . Đây là chỉ là một trong
những ứng dụng nhỏ của vi xử lý nhng nó đ giúp chúng em hiểu rõ hơn về
bộ vi xử lý PIC16F88 . Tuy đ rất cố gắng nhng do kiến thức vi xử lý , kĩ
thuật lập trình , lắp ráp phần cứng còn nhiều hạn chế , nên chúng em còn
nhiều thiếu sót , rất mong đợc sự đóng góp của thầy giáo . Cuối cùng em
xin đợc cảm ơn thầy đ giúp đỡ chúng em trong quá trình thực hiện bài tập
lớn .

A)Mục đích thiết kế
- Dùng bộ vi điều khiển PIC16F88 hoặc PIC16F84 để hiển thị chữ chạy
trên 2 ma trận led(8ì8) .
- Phần cứng bao gồm
PIC16F88 Hoặc PIC16F84 là phần tử điều khiển chính
Bài tập lớn VXL Bảng thông tin điện tử
Giảng viên hớng dẫn:Hàn Huy Dũng ĐHBKHN
Thực hiện :nhóm ĐT 1+2 K48 5/6/2006
3

74LS154 để quét 16 cột( giải m côt)
74HC595 để gửi dữ liệu hàng
A1015 để đệm dòng cho hàng
Ma trận led (8ì8) để hiển thị

Sơ đồ khối của mạch điện: - Chức năng chính của phần mềm

Gi¶ng viªn h−íng dÉn:Hµn Huy Dòng §HBKHN
Thùc hiÖn :nhãm §T 1+2 K48 5/6/2006
4

1.2 S¬ ®å nguyªn lý
S¬ ®å nguyªn lý cña ma trËn LED 8*8 t−¬ng tù nh− sau
- Ma trËn LED ®−îc ®ãng vá d¹ng DIP ( Dual In – line Pakage) gåm 16
ch©n chia lµm hai hµng

- S¬ ®å ch©n cña ma trËn LED:
Bài tập lớn VXL Bảng thông tin điện tử
Giảng viên hớng dẫn:Hàn Huy Dũng ĐHBKHN
Thực hiện :nhóm ĐT 1+2 K48 5/6/2006
5


Dới đây là bảng chân lý của IC 74LS154:
Bµi tËp lín VXL – B¶ng th«ng tin ®iÖn tö
Gi¶ng viªn h−íng dÉn:Hµn Huy Dòng §HBKHN
Thùc hiÖn :nhãm §T 1+2 K48 5/6/2006
7

G
1

G
2

D

C

B



1
3

1
4

1
5

1

0

x

x

x

x

1

1

1

1


x

x

x

1

1

1

1

1

1

1

1

1

1

1

1


1

1

1

1

1

1

1

1

1

1

1

0

0

0

0


1

1

1

0

0

0

0

1

0

1

1

0

1

1

1


1

1

1

1

0

1

1

1

1

1

1

1

1

1

1


1

1

1

1

1

1

1

1

1

0

0

0

1

0

1


1

0

0

0

1

1

0

1

1

1

1

1

1

0

1


1

1

1

1

1

1

0

1

1

1

1

1

1

1

1


1

1

1

1

1

1

1

0

0

1

0

0

1

1

1


0

1

0

1

0

1

1

1

1

1

1

1

1

1

1


1

1

1

1

1

1

1

1

0

1

1

1

1

0

0


1

0

1

1

1

0

0

1

1

0

1

1

1

1

1


1

1

0

1

1

1

1

1

1

1

1

1

1

1

1


1

1

1

1

1

1

1

1

1

1

0 Bµi tËp lín VXL – B¶ng th«ng tin ®iÖn tö
Gi¶ng viªn h−íng dÉn:Hµn Huy Dòng §HBKHN
Thùc hiÖn :nhãm §T 1+2 K48 5/6/2006
8 Bµi tËp lín VXL – B¶ng th«ng tin ®iÖn tö

12

Các chân ra từ QA ->QH lần lợt đợc đa đến các hàng của LED
74LS595 có nguồn cung cấp 5V , các mức điện áp và dòng vào ra nh
sau :

Bµi tËp lín VXL – B¶ng th«ng tin ®iÖn tö
Gi¶ng viªn h−íng dÉn:Hµn Huy Dòng §HBKHN
Thùc hiÖn :nhãm §T 1+2 K48 5/6/2006
13
4.PIC16F88

a.S¬ ®å ch©n cña V§K PIC16F88:
ghi TRISA , PORTA .
- chân 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 là các chân vào\ra của PIC đợc qui định
bởi thanh ghi TRISB , PORTB .
- chân 15,16 nối với thạch anh dao động ngoài .
- chân 14 nối với nguồn để cung cấp cho PIC .
Bài tập lớn VXL Bảng thông tin điện tử
Giảng viên hớng dẫn:Hàn Huy Dũng ĐHBKHN
Thực hiện :nhóm ĐT 1+2 K48 5/6/2006
18
- chân 5 nối đất .

b) Tổ chức bộ nhớ của PIC
Vùng con trỏ ( Pointer ) đợc đặt ở địa chỉ 0x0004
Vùng ngăn xếp ( Stack ) có 8 mức ( Stack level 1 Stack level 8 )
Vùng véctơ ngắt ( Interrupt vector )
Vùng nhớ chơng trình ( Program memory ) đợc đặt ở địa chỉ
0x0005 .

c) Vùng nhớ chơng trình
- Vùng nhớ chơng trình của PIC16F88 đợc chia thành 4 bank
Bank0 : 00h 7Fh
Bank1 : 80h FFh
Bank2 : 100h 17Fh
Bank3 : 180h 1FFh - 4 bank này ( gồm các thanh ghi 8 bit ) đợc chia làm 3 phần
Phần các thanh ghi có địa chỉ xác định và đ đợc đặt tên . Đây là
những thanh ghi đặc biệt của PIC
Vd : thanh W( work register ) , thanh STATUS , thanh TRISA , thanh

Nhảy tại chỗ
GOTO $
Định địa chỉ trong bộ nhớ chơng trình
ORG ( địa chỉ )
Chọn bank trong bộ nhớ chơng trình
BANKSEL (tên bank hoặc tên của thanh ghi nằm trong bank )
Vd : BANKSEL TRISB ; chuyển đến bank 1 là bank chứa TRISB .
Gọi một chơng trình con
CALL ( nhn )
Vd : CALL DELAY ; gọi chơng trình con DELAY
Trở về chơng trình chính từ chơng trình con
RETURN
Tắt một bít trong một thanh ghi bất kì
BCF ( thanh ghi ) , ( vị trí bít)
Vd : BCF PORTB , 0 ; tắt bít 0 của thanh PORTB , tức là RB0=0
DECSZ (Decrement File , Skip if Zero ) : giảm giá trị một thanh ghi
nào đó đI một đơn vị . Nếu sau khi giảm mà kết quả là 0 thì nó sẽ
nhảy cách ra một ô nhớ trong bộ nhớ chơng trình và thực hiện
lệnh ngay sau nó . Nếu giá trị khác không thì nó sẽ thực hiện lệnh
liền kề nó .
DECSZ [ thanh ghi ] , F\W

C. Giải thuật của mạch thông tin điện tử

1.Phơng pháp quét ma trận LED:

Chúng ta sẽ dùng phơng pháp quét LED theo hàng và cột. Khi hàng m
đợc cung cấp mức điện áp cao (3-5V) thi ở cột n nào đó nếu có mức điện
áp thấp (0-0.5V) thì LED ở vị trí [m,n] sẽ sáng.
Dới đây là mạch mô tả quét một điểm LED sáng:


với
0
t
là chu kì xung nhịp của VĐK PIC
Từ đây ta có thể dùng hàm delay để đạt đợc tốc độ quét LED nh mong
muốn.
3.Sơ đồ khối của giải thuât:
Bài tập lớn VXL Bảng thông tin điện tử
Giảng viên hớng dẫn:Hàn Huy Dũng ĐHBKHN
Thực hiện :nhóm ĐT 1+2 K48 5/6/2006
22
D) Sơ đồ khối của mạch quang báo
Trong mạch trên thì 74LS154 co thể đợc thay thế bằng 2 con giải m
74LS138 theo sơ đồ sau:

Thực hiện :nhóm ĐT 1+2 K48 5/6/2006
24

//=========KHAI_BAO_CAC_CHUONG_TRINH _CON======
int8 doc_eeprom(int8 addr);
void send_2_595(int8 temp);
void display();
void copy_2_ram1(int8 index_char);
void copy_2_ram2(int8 index_char);
void update_eeprom();
void convert_bcd(int8 x);

//=============================================
//===========Chuong trinh chinh================
void main() {
int8 i,j;
#bit update_flag = 0x06.4
char const a[119]=" TRUONG DHBKHN KHOA DTVT BANG THONG
TIN DIEN TU DUNG PIC16F88 CHUC THANH CONG DT 1+2 :K48 ";//
Chuỗi hiển thị bảng mạch điện tử
char const adc[6] = " ADC="; 1
//===========================================
TRISA=0x10; // Thiet lap chan vao ra
TRISB=0b00100100;
setup_adc_ports(sAN4); //Chon kenh AN4 nhung ko hieu sao can
them phan khai bao
setup_adc(ADC_CLOCK_INTERNAL);// ben duoi dechon dung kenh
AN4 cho no chay dung
//Chon kenh AN4 clear cac bit tai thang ghi ADCON1 (chs0 : 2)
chs0=0; //Clear bit 1f.3

{
j=j-51;
copy_2_ram2(j);
}
}
j=read_adc();
convert_bcd(j);
for(i=0;i<8;++i)
{
j = doc_eeprom(0xf0 + i)-32;
copy_2_ram1(j);
}
}
}
//========= END MAIN ==============
// === CAC CHUONG TRINH CON =========
//=======Gui du lieu theo duong noi tiep toi 595============
void send_2_595(int8 temp) {
#bit flag_bit = temp.7 // bien temp la du lieu 8-bit can gui
int8 i;
clk=0;
for(i=0;i<8;i++)
{
if(flag_bit)
data=1; //bit 1
else data=0; //bit 0
clk=1;
clk=0;


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status