Dữ liệu của hàng thứ nhất được đưa ra cột sau đó tích cực hàng thứ nhất nhưvây dữ liệu của hàng thứ nhất được hiển thị trên màn hình led ma trận, tiếp tục dữliệu của hàng thứ hai được đư
Trang 1CHƯƠNG I DẪN NHẬP
Ngày nay với sự phát triển của xã hội thì ngày càng có nhiều cách tiếp cậnvới những thông tin mới ta có thể biết được thông tin qua báo chí , truyền hình,mạng internet, qua các pano, áp phích … Thông tin cần phải truyền đi một cáchnhanh chóng, kịp thời và rộng rãi trong toàn xã hội, và việc thu thập thông tin kịpthời, chính xác là yếu tố hết sức quan trọng trong sự thành công của mõi lĩnh vực.Các thiết bị tự động được điều khiển từ xa qua một thiết bị chủ hoặc được điềukhiển trực tiếp qua hệ thống máy tính
Cũng như trên thế giới công nghệ càng phát triển cao thì đồi hỏi lĩnh vựcđiều khiển cần được mở rộng hơn, thông tin được cập nhật nhanh chóng và đượcđiều khiển một cách chính xác để mang lại nhiều lợi nhuận cho xã hội loài người.Việc sử dụng vi điều khiển để điều khiển hiển thị có rất nhiều ưu điểm với cácphương pháp truyền thông rất đa dạng như : panô, áp phích Với những lý do trênnhóm thực hiện đề tài của chúng em đưa ra cách truyền tải thông tin đó là dùngquang báo
NỘI DUNG ĐỀ TÀI
Nghiên cứu và tìm phương pháp điều khiển và xử lý dữ liệu cho bảng led matrận hiển thị
Thi công bản quang báo hiển thị
Viết chương trình tạo hiệu ứng và xử lý dữ liệu
MỤC ĐÍCH CỦA ĐỀ TÀI
Trong quá trình nghiên cứu và thực hiện đề tài này nhằm giúp người học: Tăng khả năng tự nghiên cứu cũng như tự học
Bước đầu tiếp xúc với môi trường thực tế
Vận dụng những kiến thức đã có đồng thời tìm tòi những kiến thức mới đểhiểu sâu sắc hơn trong lĩnh vực này
ĐỐI TƯỢNG NGHIÊN CỨU
Các phương án điều khiển và xử lý dữ liệu cho bảng led ma trận
Tìm hiểu vi điều khiển PIC 18F4550
Tìm hiểu phương pháp lập trình C
Bảng quang báo led ma trận
Trang 2CHƯƠNG II GIỚI THIỆU MỘT
SỐ QUANG BÁO
Ngày nay, các bảng quang báo ngày càng trở nên phổ biến và rất đa dạng vềchủng loại, dưới đây nhóm xin giới thiệu một số mô hình led cube 3D
Chúng ta có thể mở rộng khối led 3d cube chẳng hạn như 20x20x20, vv…
Trang 3CHƯƠNG II :
CÁC PHƯƠNG
PHÁP HIỂN THỊ LED MA TRẬN
Trang 4Led ma trận được coi là một trong các nguồn quang điện tử phổ biến nhất.
Nó không đắt, tiêu thụ ít công suất, và dễ dàng thích hợp cho các mạch điện tử
1 PHƯƠNG PHÁP HIỂN THỊ SỬ DỤNG THANH GHI DỊCH:
Giới thiệu chung về phương pháp quét hàng
Quét hàng là phương pháp mà trong một khoảng thời gian xác định chỉ chomột hàng được tích cực hiển thị trong khi các hàng khác đều tắt, các hàng đượcquét (tích cực) tuần tự ở các khoảng thời gian kế tiếp nhau được lặp lại nhiều lầnvới tốc độ lớn hơn 24hình /1s sẽ cho ta một hình ảnh liên tục cần hiển thị lên trênmàn hình led ma trận
Trang 5Quá trình thực hiện quét hàng:
Quét hàng sử dụng thanh ghi dịch là tương đối phức tạp cho người lập trìnhtrong việc đưa dữ liệu ra cột Dữ liệu lần lượt được đưa vào chân Data_in của thanhghi dịch sau đó tác động xung clock dữ liệu đươc dịch đi
VD: Đưa dữ liệu ra 8 cột được diễn ra như sau:
Sơ đồ qui trình đưa dữ liệu ra 8 cột cho led ma trận
Dữ liệu của hàng thứ nhất được đưa ra cột sau đó tích cực hàng thứ nhất nhưvây dữ liệu của hàng thứ nhất được hiển thị trên màn hình led ma trận, tiếp tục dữliệu của hàng thứ hai được đưa ra cột sau đó tích cực hàng thứ hai lúc này dữ liệucủa hàng thứ hai được hiển thị trên màn hình led ma trận, cứ như vậy cho đến dữliệu của hàng cuối cùng được đưa ra cột sau đó tích cực hàng cuối cùng Cứ nhưthế quá trình trên được lặp đi lặp lại > 24lần/1s, đến đây chúng ta quan sát đượcmột hình ảnh liên tục hiển thị trên màn hình led ma trận
Ví dụ: Hiển thị chữ B lên màn hình led ma trận (hàng được tích cực ở mức 1, cộtđược tích cực ở mức 0)
Sơ đồ hiển thị chữ B trên led ma trận dùng phương pháp quét hàng
Hàng 1
Hàng 8
Trang 6Dữ liệu thứ nhất có giá trị: 11111111 được đưa ra cột tích cực hàng thứ nhất(điều khiển hàng thứ nhất cho ra giá trị là 1); dữ liệu thứ hai có giá trị: 00001111đưa ra cột, tích cực hàng thứ hai; dữ liệu thứ 3 có giá trị: 01110111 đưa ra cột, tíchcực hàng thứ 3; dữ liệu thứ 4 có giá trị: 01110111 đưa ra cột, tích cực hàng thứ 4;tiếp tục đữ liệu hàng thứ 5 có giá trị: 00001111 đưa ra cột, tích cực hàng thứ 5; kếtiếp là dữ liệu của hàng thứ 6 có giá trị: 01110111 được đưa ra cột, tích cực hàngthứ 6 ; dữ liệu của hàng thứ 7 có giá trị: 01110111 đưa ra cột, tích cực hàng thứ 7;
dữ liệu thứ 8 có giá trị: 00001111 đưa ra cột, tích cực hàng thứ 8 Như vậy toàn bộ
dữ liệu của chữ B đã được đưa ra hiển thị trên màn hình led ma trận Quá trình trênđược diễn ra rất nhanh > 24lần/ 1s nên chúng ta có cảm giác nó diễn ra một cáchđồng thời nhờ đó mà chúng ta quan sát được trên màn hình led ma trậnlà một chữ Bliên tục
Quét cột:
Giới thiệu chung về phương pháp quét cột
Phương pháp quét cột là phương pháp mà trong một khoảng thời gian xácđịnh chỉ cho một cột được tích cực hiển thị trong khi các cột khác đều tắt, các cộtđược quét (tích cực) tuần tự ở các khoảng thời gian kế tiếp nhau được lặp lại nhiềulần với tốc độ > 24 hình/1s sẽ cho ta một hình ảnh liên tục cần hiển thị lên trên mànhình led ma trận
Quá trình thực hiện quét cột.
Dữ liệu của cột thứ nhất được đưa ra hàng sau đó tích cực cột thứ nhất nhưvây dữ liệu của cột thứ nhất được hiển thị trên màn hình led ma trận, tiếp tục dữliệu của cột thứ hai được đưa ra hàng sau đó tích cực cột thứ hai lúc này dữ liệu củahàng thứ hai được hiển thị trên man hình led ma trận, cứ như vậy cho đến dữ liệucủa cột cuối cùng được đưa ra hàng sau đó tích cực cột cuối cùng Cứ như thế quátrình trên được lặp đi lặp lại > 24lần/1s, đến đây chúng ta quan sát được một hìnhảnh liên tục hiển thị trên màn hình led ma trận
Ví dụ: Hiển thị chữ B lên màn hình led ma trận (hàng được tích cực ở mức1,cột được tích cực ở mức 0)
Sơ đồ hiển thị chữ B trên led ma trận dùng phương pháp quét cột
Hàng 1
Hàng 8
Trang 7Dữ liệu thứ nhất có gía trị: 11111110 được đưa ra hàng, tích cực cột thứ nhất(điều khiển cột thứ nhất cho ra giá trị là 0); dữ liệu thứ hai có giá trị: 10010010 đưa
ra hàng, tích cực cột thứ hai; dữ liệu thứ 3 có giá trị:10010010 đưa ra hàng, tích cựccột thứ 3; dữ liệu thứ 4 có giá trị: 10010010 đưa ra hàng, tích cực cột thứ 4; tiếp tục
đữ liệu hàng thứ 5 có giá trị: 01101100 đưa ra hàng, tích cực cột thứ 5; kế tiếp là dữliệu của cột thứ 6 có giá trị: 00000000 được đưa ra hang, tích cực côt thứ 6 ; dữ liệucủa cột thứ 7 có giá trị: 00000000 đưa ra hàng, tích cực cột thứ 7; dữ liệu thứ 8 cógiá trị: 00000000 đưa ra hàng, tích cực cột thứ 8 Như vậy toàn bộ dữ liệu của chữ
B đã được đưa ra hiển thị trên màn hình led ma trận Quá trình trên được diễn ra rấtnhanh > 24lần/ 1s nên chúng ta có cảm giác nó diễn ra một cách đồng thời, nhờ đóchúng ta quan sát được trên màn hình led ma trận là một chữ B liên tục
Ưu, nhược điểm của phương pháp hiền thị led ma trận sử dụng thanh ghi dịch:
Ưu điểm:
Tiết kiệm đường truyền, hiệu quả kinh tế
Tiết kiệm chân PORT
Truyền dữ liệu đi xa hơn
Mở rộng bảng ma trận lên một cách dễ dàng
Lập trình dễ dàng trong phương pháp quét cột
Nhược điểm:
Tốn thời gian để thực hiện việc truyền dữ liệu đến các cột
Chuyển đổi không linh hoạt bằng sử dụng phương pháp chốt
Lập trình khó khăn hơn khi sử dụng phương pháp quét hàng
1 1 1
Trang 8 CHỐT HÀNG
Chốt hàng là phương pháp trong một khoảng thời gian xác định chỉ có một cộtđược tích cực, dữ liệu được đưa ra 8 hàng rồi chốt lại, dữ liệu được hiển thị trênmàn hình led ma trận Sau đó dữ liệu kế tiếp được đưa ra 8 hàng và được chốt lạibởi một IC chốt khác, trong khi đó dữ liệu trước đó vẫn hiện diện tại ngõ ra của ICchốt Như vậy dữ liệu của hàng nào được đưa ra đúng địa chỉ của hàng đó trong khicác dữ liệu của các hàng khác vẫn hiện diện trên hàng mà không bị mất đi Việcthực hiện chốt hàng được thể hiện ở lưu đồ như sau:
Sơ đồ qui trình hiển thị chốt hàng
Chốt cột là phương pháp trong một khoảng thời gian xác định chỉ có một hàngđược tích cực, dữ liệu được đưa ra 8 cột rồi chốt lại, dữ liệu được hiển thị trên mànhình led ma trận Sau đó dữ liệu được đưa ra 8 cột kế tiếp và được chốt lại bởi một
IC chốt khác, trong khi đó dữ liệu trước đó vẫn hiện diện tại ngõ ra của IC chốt (dữliệu vẫn hiện diện tại các cột) Như vậy dữ liệu của cột nào được đưa ra đúng địachỉ của cột đó trong khi các dữ liệu của các cột khác vẫn hiện diện trên cột màkhông bị mất đi Việc thực hiện chốt cột được thể hiện ở lưu đồ như sau:
Sơ đồ qui trình hiển thị chốt cột
Trang 9Ưu, nhược điểm của phương pháp hiền thị led ma trận sử dụng IC chốt:
Ưu điểm:
Mở rộng số hàng, số cột của bảng quang báo
Dữ liệu được truyền đi nhanh
Chuyển đổi cách quét hàng, cột một cách linh hoạt
Nhược điểm:
Tạo bảng mã khó khăn
Khó khăn trong việc lập trình xuất dữ liệu ra
Trang 10CHƯƠNG III
TÌM HIỂU VÀ
KHẢO SÁT VỀ
LINH KIỆN
Trang 11I PIC 18F4550
1 Sơ đồ khối của Pic18F4550 và những họ tương tự:
Trang 13Một vài thông số về Pic 18F455
Đặc tính bus nối tiếp:
Tuân thủ chuẩn giao tiếp USB V2.0
Tốc độ thấp (1.5Mb/s) và tốc độ đầy đủ(12Mb/s)
Hỗ trợ điều khiển,ngắt,bất đồng bộ và khối truyền số lượng lớn
Hỗ trợ tối đa 32 điểm cuối(16 kết nối đôi)
2Kbyte truy cập bộ nhớ Ram cho các cổng USB
Chế độ quản lí nguồn:
Chạy(run):CPU on,thiết bị ngoại vi on
Rảnh rỗi(idle):CPU off,thiết bị ngoại vi on
Ngủ(sleep):CPU off,thiết bị ngoại vi off
Chế độ rảnh rỗi dòng điện hạ xuống 5,8uA
Chế độ ngủ dòng điện hạ xuống 0,1uA
Bộ dao động timer1:1,1uA,33kHz,2V
Watchdog timer:2,1uA
Cơ cấu tổ chức linh hoạt của oscillator:
4 chế độ thach anh trong đó bao gồm chuẩn PLL cho USB
2 chế độ xung ngoài lên đến 48MHz
Khối dao động bên trong có 8 lựa chọn tần số từ 31kHz lên đến 8MHz
Hai khối oscillator như vậy cho phép lựa chọn để microcontroller và các moduleusb có thể hoạt động ớ các xung clock khác nhau
Đặc tính nổi bật của thiết bị ngoại vi:
High-Current Sink/Source: 25 mA/25 mA
3 ngắt ngoại vi
4 chuẩn timer(timer0-timer3)
Lên đến 2chuẩn Capture/Compare/PWM (CCP):
Capture is 16-bit, max resolution 5.2 ns (TCY/16)
Compare is 16-bit, max resolution 83.3 ns (TCY)
PWM output: PWM resolution is 1 to 10-bit
Tăng cường(Enhanced) Capture/Compare/PWM (ECCP) module:
Master Synchronous Serial Port (MSSP) module
Hỗ trợ 3 đường dây như chuẩn SPI (tất cả 4 chế độ)và I2C™ chế độ chủ và tớ10-bit, lên đến 13kênh chuyển đổi Analog-to-Digital(A/D)
So sánh đôi Analog với nhiều ngõ vào
Đặc tính đặc biệt của vi điều khiển:
Bộ nhớ chương trình có thể ghi/xóa lên đến 100.000 lần
Bộ nhớ dữ liệu EEPROM có thể ghi/xóa đến 1.000.000 lần
Flash/Data EEPROM có thể duy trì đến 40 năm
Bản thân có thể lập trình được dưới sự điều khiển của phần mềm
Ưu tiên cho các chế độ ngắt Hoạt động rộng dưới điện áp từ (2V-5.5V)
Trang 14Đặc tính Pic18F2455 Pic18F2550 Pic18f4455 Pic18F4550
Data EEPROM Memory
Ports A, B, C,D,E
Ports A, B, C,D,E
MSSP, EnhancedUSART
MSSP, EnhancedUSART
MSSP, EnhancedUSARTUniversal Serial Bus
(optional),WDT
POR, BOR, RESETInstruction, Stack Full, StackUnderflow (PWRT,OST), MCLR(optional),WDT
POR, BOR, RESETInstruction, Stack Full, StackUnderflow (PWRT,OST), MCLR(optional),WDT
POR, BOR, RESETInstruction, Stack Full, StackUnderflow (PWRT,OST), MCLR(optional),WDTProgrammable Low-
Trang 15dẫn,và với 83hướng dẫnkích hoạt bênngoài
dẫn,và với 83hướng dẫnkích hoạt bênngoài
dẫn,và với 83hướng dẫnkích hoạt bênngoài
dẫn,và với 83hướng dẫnkích hoạt bênngoài
28-pin SOIC
28-pin PDIP28-pin SOIC
40-pin PDIP44-pin QFN44-pin TQFP
40-pin PDIP44-pin QFN44-pin TQFPBảng đặc tính của PIC
2 SƠ ĐỒ KHỐI CỦA PIC18F4455/4550(40PIN):
Trang 163 Bộ nhớ chương trình và stack của pic18f2455/2550/4455/4550
Trang 17 STACK CỦA IC18F2455/2550/4455/4550:
Địa chỉ trả về và những thanh ghi liên kết
STKPTR: STACK POINTER REGISTER(thanh ghi chọn stack)
bit 7 STKFUL: Stack Full Flag bit(cờ báo stack đầy)
1 = Stack became full or overflowed (stack đầy hoặc tràn)
0 = Stack has not become full or overflowed(stack chưa đầy)
bit 6 STKUNF: Stack Underflow Flag bit (1)
1 = Stack underflow occurred (stack uderflow xảy ra)
0 = Stack underflow did not occur(stack unserflow không xảy ra)
bit 5 Unimplemented: Read as ‘0’(không quan tâm và được xem như là “0”)
bit 4-0 SP4:SP0: Stack Pointer Location bits(những bit chọn vị trí stack)
Note 1: Bit 7 and bit 6 are cleared by user software or by a POR.(bit7 và bit6 chỉđược xóa bởi phần mềm bởi POR)
Bộ nhớ dữ liệu:bộ nhớ dữ liệu trên thiết bị pic18 thì được bổ sung thêm Ramtĩnh.Mỗi thanh ghi trên bộ nhớ chương trình có 12bit địa chỉ ,cho phép lưu trữ dữ liệulên tới 4096byte.Bộ nhớ dữ liệu được cất giữ vào 16 bank mỗi bank chứa 256byte.Một số thanh ghi chức năng đặc biệt(special function registers):
Đây là các thanh ghi được sử dụng để thiết lập và điều khiển các khối chức năngđược tích hợp bên trong vi điều khiển và bên ngoài vi điều khiển
Trang 184 CÁC THANH GHI ĐẶC BIỆT
SƠ ĐỐ CÁC THANH GHI ĐẶC BIỆT (SPECIAL FUNCTION REGISTER)
Thanh ghi có chứa kết quả thực hiện phép toán của khối ALU
Trang 19bit 7-5 Unimplemented: Read as ‘0’(không quan tâm nên mặc định là “0”
bit 4 N: Negative bit (bit phủ định) (ALU MSB = 1)
1 = Result was negative (kết quả phủ định)
0 = Result was positive(kết quả tích cực)
bit 3 OV: Overflow bit (bit tràn)
bit này chỉ ra sự tràn của 7 bit quan trọng là nguyên nhân dẫn đến sự thay đổitrạng thái bit OV
1 = Overflow occurred for signed arithmetic (có tràn xảy ra)
0 = No overflow occurred(không có tràn xảy ra)bit 2 Z: Zero bit
1 = The result of an arithmetic or logic operation is zero(kết quả của thuật toán
là “0”)
0 = The result of an arithmetic // (kết quả của thuật toán
khác “0”)bit 1 DC: Digit Carry/Borrow bit(bit số mang theo/bit mượn)
từ các thanh ghi sau ADDWF, ADDLW, SUBLW and SUBWF
1 = được thêm vào từ kết quả của sự thay đổi trạng thái từ các thanh ghi trên
0 = có nghĩa trạng của các thanh ghi trên không thay đổi
bit 0 C: Carry/Borrow bit:( bit mang theo/bit mượn)
của các thanh ghi ADDWF, ADDLW, SUBLW and SUBWF:
1 = được thêm vào MSB của kết quả xảy ra
0 = được thêm vào MSB của kết quả xảy ra
EECON1 và EECON2 nhưng do thanh ghi EECON2 không phải là thanh ghivật lí nên chúng ta chỉ đề cập đến thanh ghi EECON1
eeprom 1)
bit 7 EEPGD: bit chọn bộ nhớ chương trình hay bộ nhớ dữ liệu
1 = truy xuất bộ nhớ chương trình
0 = truy xuất bộ nhớ dữ liệu
bit 6 CFGS:bit chọn Flash Program/Data EEPROM hay là thanh ghi cấu hình
1 = truy xuất thanh ghi cấu hình
0 = truy xuất bộ nhớ chương trình hay là bộ nhớ dữ liệu
bit 5 :bit này không quan tâm nên mặc định là “0”
Trang 20bit 4 FREE: bit cờ báo hiệu cho phép xóa
1 = xóa bộ nhớ chương trình bằng TBLPTR và tiếp theo là lệnh WR
0 = chỉ thực hiện lệnh ghi
bit 3 WRERR: bit cờ báo hiệu lỗi chương trình/dữ liệu EEPROM
1 = hoạt động bị lỗi nên phải kết thúc sớm
0 = hoạt động ghi hoàn tất
bit 2 WREN: bit cờ báo hiệu việc ghi chương trình/dữ liệu EEPROM
1 = cho phép ghi đến Flash program/data EEPROM
0 = cản trở không cho lệnh ghi đến Flash program/data EEPROM
bit 1 WR: bit điều khiển lệnh ghi
1 = bắt đầu thì dữ liệu EEPROM được xóa và ghi hoặc có thể chỉ xóa hoặc chỉghi(bit này chỉ có thể set bằng phần mềm)
0 = việc ghi đã hoàn thành
bit 0 RD: bit điều khiển lệnh đọc
1 = lệnh đọc dữ liệu EEPROM bắt đầu (RD được xóa bằng phần cứng RD bitchỉ có thể set bằng phần mềm.RD bit không thể set được khi EEPGD = 1
or CFGS = 1.)
0 = không thực hiện lệnh đọc
bit 7 GIE/GIEH: Global Interrupt Enable bit(bit ngắt toàn cục)
khi IPEN = 0:
1 = cho phép tất cả các ngắt
0 = không cho phép ngắt nào hoạt động khi IPEN = 1:
1 = cho phép các ngắt ưu tiên cao hoạt động
0 = không cho các ngắt ưu tiên cao hoạt động
bit 6 PEIE/GIEL: Peripheral Interrupt Enable bit(bit cho phép các ngắt ngoại vi hoạtđộng)
khi IPEN = 0:
1 = cho phép các ngắt ngoại vi hoạt động
0 = không cho phép các ngắt ngoại vi hoạt động
khi IPEN = 1:
1 = cho phép các ngắt ưu tiên thấp hoạt động
0 = không cho phép các ngắt ưu tiên thấp hoạt động
bit 5 TMR0IE: TMR0 Overflow Interrupt Enable bit (bit cho phép ngắt tràn timer0hoạt động)
1 = cho phép ngắt tràn timer0 hoạt động
0 = không cho phép ngắt tràn timer0 hoạt động
bit 4 INT0IE: INT0 External Interrupt Enable bit (bit cho phép ngắt ngoài hoạt động)
Trang 210 = không cho phép ngắt ngoài
bit 3 RBIE: RB Port Change Interrupt Enable bit(bit cho phép ngắt dựa vào thay đổitrên portB hoạt động)
1 = cho phép ngắt hoạt động
0 = không cho phép ngắt hoạt động
bit 2 TMR0IF: TMR0 Overflow Interrupt Flag bit(bit cờ báo hiệu ngắt tràn timer0)
1 = thanh ghi timer0 bị tràn(chỉ có thể xóa bằng phần mềm)
0 = thanh ghi timer0 không bị tràn
bit 1 INT0IF: INT0 External Interrupt Flag bit (bit cờ báo hiệu có ngắt ngoài)
1 = ngắt ngoài đang diễn ra(chỉ có thể xóa bằng phần mềm)
0 = ngắt ngoài không có diễn ra
bit 0 RBIF: RB Port Change Interrupt Flag bit(bit cờ báo hiệu có ngắt dựa vào sựthay đổi portB)
1 = có sự thay đổi từ pinB7-B4 (phải xóa bằng phần mềm)
0 = có sự thay đổi trạng thái từ pinB7-B4
bit 7 RBPU: PORTB Pull-up Enable bit(bit cho phép portB kéo lên)
1 = tất cả portB không được phép kéo lên
0 = chỉ cho phép riêng portB được phép chốt giá trị
bit 6 INTEDG0: ngắt ngoài(0) phụ thuộc vào cạnh tác động được chọn
bit 3 không dùng đến nên mặc định là “0”
bit 2 TMR0IP: ngắt ưu tiên của tràn timer0
1 = ưu tiên cao
0 = ưu tiên thấp
bit 1 không dùng đến nên mặc định là “0”
bit 0 RBIP: ngắt ưu tiên phụ thuộc vào sự thay đổi trên portB
1 = ưu tiên cao
0 = ưu tiên thấp
Trang 22bit 7 INT2IP: bit ưu tiên ngắt ngoài INT2
1 = ưu tiên cao
0 = ưu tiên thấp
bit 6 INT1IP: bit ưu tiên ngắt ngoài INT1
1 = ưu tiên cao
0 = ưu tiên thấp
bit 5 không dùng đến nên mặc định là “0”
bit 4 INT2IE: bit cho phép ngắt ngoài INT2
1 = cho phép ngắt ngoài INT2 hoạt động
0 = không cho phép ngắt ngoài INT2 hoạt động
bit 3 INT1IE: bit cho phép ngắt ngoài INT1
1 = cho phép ngắt ngoài INT1 hoạt động
0 = không cho phép ngắt ngoài INT1 hoạt động
bit 2 không dùng nên mặc định là “0”
bit 1 INT2IF:bit cờ của ngắt ngoài INT2
1 = ngắt ngoài INT2 đã thực thi(chỉ có thể xóa bit này bằng phần mềm)
0 = ngắt ngoài INT2 chưa thực thi
bit 0 INT1IF: bit cờ của ngắt ngoài INT1
1 = ngắt ngoài INT1 đã thực thi(chỉ có thể xóa bit này bằng phần mềm)
0 = ngắt ngoài INT1 chưa thực thi
chúng ta có 2 thanh ghi thuộc loại này đó là PIR1 và PIR2
bit 7 SPPIF: bit cờ ngắt song song chức năng đọc/ghi
1 = đọc hoặc ghi vừa mới được thực thi (phải xóa bằng phần mềm)
0 = không có việc đọc /ghi được thực thi
bit 6 ADIF: bit cờ ngắt của khối chuyển đổi A/D
1 = việc chuyển đổi A/D hoàn tất (phải xóa bằng phần mềm)
0 = việc chuyển đổi A/D chưa hoàn tất
bit 5 RCIF: bit cờ ngắt của việc nhận dữ liệu qua chuẩn UESART
Trang 231 = nhận dữ liệu qua chuẩn UESART vào bộ đệm đến RCREG đã đầy(xóa bitnày khi RCREG đã đọc xong)
0 = bộ đệm đang trống
bit 4 TXIF: bít cờ ngắt của việc truyền dữ liệu qua chuẩn UESART
1 = truyền dữ liệu qua chuẩn UESART từ bộ đệm đến TXREG đang rỗng(chỉ
có thể xóa bit này khi TXREG đã ghi xong)
0 = bộ đệm đang đầy
bit 3 SSPIF: bit cờ ngắt của Master Synchronous Serial Port
1 = việc truyền/nhận đã hoàn tất(bit này phải xóa bằng phần mềm)
0 = giá trị cần so sánh không bằng với giá trị trong thanh ghi TMR1
Chế độ PWM: (không được dùng ở chế độ này)
bit 1 TMR2IF: TMR2 to PR2 Match Interrupt Flag bit
1 = giá trị trong thanh ghi TMR2 bằng với giá trị trong thanh ghi PIR2(phảixóa bằng phần mềm)
0 = giá trị giữa hai thanh ghi TMR2 và PIR2 không bằng nhau
bit 0 TMR1IF: bit cờ ngắt tràn timer1
1 = thanh ghi timer1 tràn(phải xóa bằng phần mềm)
0 = thanh ghi timer1 chưa tràn
bit 7 OSCFIF: Oscillator Fail Interrupt Flag bit
1 = hệ thống dao động đã bị đứt,xung clock ngõ vào có thể thay thế bằngINTOSC (phải được xóa bằng phần mềm)
0 = hệ thống xung clock hoạt động
bit 6 CMIF: bit cờ ngắt của Comparator
1 = ngõ vào của Comparator bị thay đổi(phải xóa bằng phần mềm)
0 = ngõ vào của Comparator không thay đổi
bit 5 USBIF: bit cờ ngắt của USB
1 = USB có yêu cầu ngắt (phải xóa bằng phần mềm)
0 = không có ngắt được yêu cầu
bit 4 EEIF: bit cờ ngắt của hoạt động ghi Data EEPROM/Flash
1 = việc ghi dữ liệu đã hoàn tất(phải xóa bằng phần mềm)
Trang 240 = việc ghi dữ liệu chưa hoàn tất hoặc có thể chưa bắt đầu
bit 3 BCLIF: bit cờ ngắt của việc xung đột bus
1 = có xung đột bus diễn ra(phải được xóa bằng phần mềm)
0 = không có xung đột bus
bit 2 HLVDIF: bit cờ ngắt của việc phát hiện điện áp cao/thấp
1 = có diện áp cao/thấp diễn ra(phải xóa bằng phần mềm)
0 = không có điện áp cao/thấp diễn ra
bit 1 TMR3IF: bit cờ ngắt tràn timer3
1 = thanh ghi TMR3 tràn(phải xóa bằng phần mềm)
0 = thanh ghi TMR3 không tràn
bit 0 CCP2IF: bit cờ ngắt CCP2
IPEN=0,bit PEIE phải được set để cho phép các ngắt ngoại vi hoạt động.Ở đâychúng ta có 2 thanh ghi cho phép ngắt ngoại vi hoat động đó là PIE1 và PIE2
bit 7 SPPIE: bit cho phép ngắt SPP read/write
1 = cho phép ngắt SPP read/write
0 = không cho phép ngắt SPP read/write
bit 6 ADIE: bit cho phép ngắt khối chuyển đổi A/D
1 = cho phép ngắt A/D
0 = không cho phép ngắt A/D
bit 5 RCIE: bit cho phép ngắt nhận dữ liệu theo chuẩn EUSART
1 = cho phép ngắt
0 = không cho phép ngắt
bit 4 TXIE: bit cho phép ngắt truyền dữ liệu theo chuẩn EUSART
1 = cho phép ngắt
Trang 25bit 7 OSCFIE: bit cho phép ngắt khi oscillator bi đứt
Trang 26 Thanh ghi IPR:là thanh ghi chứa riêng các bit ưu tiên của các ngắt ngoại vi.Cóhai thanh ghi như vậy đó là IPR1 và IPR2.
bit 7 SPPIP: bit ưu tiên ngắt Streaming Parallel Port Read/Write
1 = ưu tiên cao
0 = ưu tiên thấp
bit 6 ADIP: bit ưu tiên khối chuyển đổi A/D
1 = ưu tiên cao
0 = ưu tiên thấp
bit 5 RCIP: EUSART Receive Interrupt Priority bit
1 = ưu tiên cao
0 = ưu tiên thấp
bit 4 TXIP: EUSART Transmit Interrupt Priority bit
1 = ưu tiên cao
0 = ưu tiên thấp
bit 3 SSPIP: Master Synchronous Serial Port Interrupt Priority bit
1 = ưu tiên cao
0 = ưu tiên thấp
bit 2 CCP1IP: CCP1 Interrupt Priority bit
1 = ưu tiên cao
0 = ưu tiên thấp
bit 1 TMR2IP: TMR2 to PR2 Match Interrupt Priority bit
1 = ưu tiên cao
0 = ưu tiên thấp
bit 0 TMR1IP: TMR1 Overflow Interrupt Priority bit
1 = ưu tiên cao
0 =ưu tiên thấp
bit 7 OSCFIP: Oscillator Fail Interrupt Priority bit
1 =ưu tiên cao
0 = ưu tiên thấp
Trang 27bit 6 CMIP: Comparator Interrupt Priority bit
1 = ưu tiên cao
0 = ưu tiên thấp
bit 5 USBIP: USB Interrupt Priority bit
1 = ưu tiên cao
0 = ưu tiên thấp
bit 4 EEIP: Data EEPROM/Flash Write Operation Interrupt Priority bit
1 = ưu tiên cao
0 = ưu tiên thấp
bit 3 BCLIP: Bus Collision Interrupt Priority bit
1 = ưu tiên cao
0 = ưu tiên thấp
bit 2 HLVDIP: High/Low-Voltage Detect Interrupt Priority bit
1 = ưu tiên cao
0 = ưu tiên thấp
bit 1 TMR3IP: TMR3 Overflow Interrupt Priority bit
1 = ưu tiên cao
0 = ưu tiên thấp
bit 0 CCP2IP: CCP2 Interrupt Priority bit
1 = ưu tiên cao
0 = ưu tiên thấp
để xác định nguyên nhân Reset hoặc đánh thức từ chế độ không tải hoặc chế
độ ngủ.thanh ghi RCON cũng chứa bit IPEN-bit này có nhiệm vụ cho phép ưutiên ngắt
bit 7 IPEN: bit cho phép ưu tiên ngắt
1 = cho phép
0 = không cho phép
bit 6 SBOREN: BOR Software Enable bit
bit 5 không dùng đến mặc định là “0”
bit 4 RI: RESET Instruction Flag bit
bit 3 TO: Watchdog Time-out Flag bit
bit 2 PD: Power-Down Detection Flag bit
bit 1 POR: Power-on Reset Status bit
bit 0 BOR: Brown-out Reset Status bit
Trang 28 INTERRUPTS(NGẮT):các vi điều khiển PIC18F2455/2550/4455/4550 có
nhiều ngắt và các ngắt này được chỉ định là ngắt ưu tiên cao và ngắt ưu tiênthấp tùy thuộc vào hai vector ngắt ưu tiên cao(000008h)và ngắt ưu tiênthấp(000018h)
Có 10 thanh ghi điều khiển hoạt động của ngắt chúng là các thanh ghi sau:
RCON,INTCON, INTCON2, INTCON3, PIR1, PIR2, PIE1, PIE2, IPR1, IPR2
INTERRUPT LOGIC
Trang 295 CÁC CỔNG XUẤT NHẬP CỦA PIC ( I/O PORTS )
Tùy theo thiết bị chọn và thuộc tính cho phép mà có thế lên đến 5 port lựachọn.Một vài chân của các ngõ xuất nhập tích hợp nhiều chức năng tùy biến khôngđơn thuần với mục đích là các chân xuất nhập
Mỗi port có 3 thanh ghi cho các hoạt động của chúng.Những thanh ghi đó là:-Thanh ghi TRIS(thanh ghi đinh hướng dữ liệu)
-Thanh ghi PORT( thanh ghi đọc mức độ của các chân thiết bị)
-Thanh ghi LAT(chốt ngõ ra)
Một mẫu đơn giản chung nhất của các ngõ I/O,không có giao tiếp với các thiết
bị ngoại vi được biễu diễn hình dưới đây:
Thanh ghi PORTA, TRISA và LATA :
PortA có 8 đường bit 2 chiều(I/O).Khi set bit ở TRISA là 1 thì chân ở PORTB
sẽ là input.Và ngược lại khi clear bit ở TRISA là 0 thì chân ở PORTA sẽ làoutput.Cho nên đọc giá trị ở thanh ghi PORTA chúng ta sẽ biết được trạng thái cácchân,và trạng thái này sẽ được ghi vào thanh ghi chốt
Thanh ghi data latch (LATA)cũng như một sơ đồ nhớ.Những thao tác đọc-sửa ghi trên thanh ghi LATA sẽ được chốt giá trị ngõ ra cho PORTA
đổi-Chân RA4 tích hợp với TIMER0 và khối xung clock ngõ vào để trở thành chân RA4/TOCKI
Chân RA6 thì tích hợp với chân dao động chính ,nó được xem như bộ daođộng hoặc là chân được chọn chính ở thanh ghi cầu hình (1H)
RA4 cũng được tích hợp với module USB,hệ thống sẽ nhận dữ liệu ngõ vào từ bộtruyền nhận USB bên ngoài
Trang 30Một vài chân PORTA có tích hợp chức năng ngõ vào analog để so sánh điện
áp Vrep+ và Vrep- với điện áp chuẩn ngõ ra.Chân RA5 và RA3:RA0 là các chân củangõ vào chuyển đổi A/D được chọn bằng cách clear/set các bit điều khiển ở thanh ghiADCON1
Thanh ghi PORTB, TRISB và LATB :
PortB có 8 đường bit 2 chiều(I/O).Khi set bit ở TRISB là 1 thì chân ở PORTB sẽ
là input.Và ngược lại khi clear bit ở TRISB là 0 thì chân ở PORTB sẽ là output.Chonên đọc giá trị ở thanh ghi PORTB chúng ta sẽ biết được trạng thái các chân,và trạngthái này sẽ được ghi vào thanh ghi chốt
Thanh ghi data latch (LATB)cũng như một sơ đồ nhớ.Những thao tác đọc-sửađổi-ghi trên thanh ghi LATB sẽ được chốt giá trị ngõ ra cho PORTB
Mỗi chân của PORTB đều có điện trở kéo lên bên trong yếu,chỉ cần đơn bit điềukhiển có thể tắt hết các điện trở kéo lên đó.Các điện trở kéo lên yếu đó sẽ tự động tắthết khi PORTB được cấu hình là ngõ ra.Các chân của PORTB có chức năng như cácchân I/O thông thường ngoài ra có 4 chân là RB7:RB4 còn là các chân được dùng vàoviệc ngắt khi có thay đổi thuộc tính trên các chân này.Ngắt này dùng vào việc đánhthức các thiết bị khi ở chế độ sleep.Ngoài ra chân RB4 còn tích hợp với CSSPP(chipselect function for the Streaming Parallel Port)
Các chân RB3:RB2 được tích hợp với USB ngoại vi và xử lý những tín hiệu ngõ
ra khác cho việc truyền nhận USB bên ngoài
Thanh ghi PORTC, TRISC và LATC:
PortC có 7 đường bit 2 chiều(I/O)(ở dòng PIC 18fx455 và 18fx550 thì chân RC3không được dùng).Khi set bit ở TRISC là 1 thì chân ở PORTC sẽ là input.Và ngượclại khi clear bit ở TRISC là 0 thì chân ở PORTC sẽ là output.Cho nên đọc giá trị ởthanh ghi PORTC chúng ta sẽ biết được trạng thái các chân,và trạng thái này sẽ đượcghi vào thanh ghi chốt
Thanh ghi data latch (LATC)cũng như một sơ đồ nhớ.Những thao tác đọc-sửađổi-ghi trên thanh ghi LATC sẽ được chốt giá trị ngõ ra cho PORTC
PORTC tích hợp chức năng giao tiếp với các khối giao tiếp nối tiếp nhưEUSART,MSSP và USB modue
Thanh ghi PORTD, TRISD và LATD:
PORTD có 8 đường bit 2 chiều(I/O) Khi set bit ở TRISD là 1 thì chân ở PORTD
sẽ là input.Và ngược lại khi clear bit ở TRISD là 0 thì chân ở PORTD sẽ làoutput.Cho nên đọc giá trị ở thanh ghi PORTD chúng ta sẽ biết được trạng thái cácchân,và trạng thái này sẽ được ghi vào thanh ghi chốt
Tất cả các chân của PORTD được dùng như các ngõ xuất nhập thôngthường.Nhưng cũng có thể là 8 chân của ngõ của cổng song song.PORTD còn là ngõ
ra của module PWM
Trang 31 Thanh ghi PORTE, TRISE và LATE:
Ở các dòng Pic18f2455 và 18f2550 thì không có PORTE,Còn những dòngPic18f4455 và 18f4550 thì có thêm PORTE
PORTE có 4pin(RE0/AN5/CK1SPP, RE1/AN6/CK2SPP, RE2/AN7/OESPP)đượccấu hình riêng như là những ngõ vào và ngõ ra.Còn chân thứ 4 của PORTE là chânMCLR/VPP/RE3 là chân chỉ có chức năng input
Thanh ghi PORTE ngoài chức năng định nghĩa các pin của PORTE là ngõ vàohay ngõ ra thì thanh ghi PORTE còn chứa bit điều khiển RPDU cho phép hoặc khôngcho phép các điện trở kéo lên của PORTD
bit 7 RDPU: bit điều khiển chức năng pull-up của PORTD
1 = cho phép
0 = không cho phép
bit 6-4 không quan tâm và mặc định là “0”
bit 3-0 RE3:RE0: PORTE Data Input bits(1,2,3)
6 CÁC KHỐI TIMER:
ở các dòng pic18fx455 và 18fx550 có 3 khối timer(timer0,timer1,timer2)
Mỗi khối timer có các thanh ghi điều khiển: Các thanh ghi điều khiểntimer0 :TMR0H, TMR0L, INTCON, INTCON2, T0CON, TRISA