ĐỒ ÁN TỐT NGHIỆP Đề Tài: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH ĐÈN GIAO THÔNG
Trang 1TRƯỜNG CAO ĐẲNG KỸ THUẬT CAO THẮNG
Trang 2
Tp Hồ Chí Minh, ngày thángnăm 2010
Giáo viên hướng dẫn
Thượng Văn Bé
Trang 3XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Tp Hồ Chí Minh, ngày thángnăm 2010
Giáo viên phản biện
Trang 4HẬN XÉT CỦA HỘI ĐỒNG
Tp Hồ Chí Minh, ngày tháng năm 2010
LỜI MỞĐẦU
-" ĐÈN GIAO THÔNG" là thiết bị chuyên dùng trong các trạm đèn giao thông; và điều đó đồng nghĩa với việc muốn hệ thống giao thông ổn định; mạch đèn phải hoạt động ổn định Nhóm chúng em đã khảo sát và tìm hiểu
Trang 5nhiều ứng dụng thực tế quan trọng có thể I/O hoặc điều chếđộ rộng xung; đọc ADC; truyền đồng bộ hoặc bất đồng bộ
-Nội dung chủ yếu của đề tài "ĐIỀU KHIỂN HỆ THỐNG ĐÈN GIAO THÔNG" bao gồm :
- Chương dẫn nhập : Nói về khả năng thực dụng của " Mạch đèn giao thông"
- Chương 2 : Giới thiệu về pic 16F877A
- Chương 3: Giới thiệu vềđặc tính các linh kiện được dùng trong
mạch
- Chương 4: Giới thiệu về LCD
- Chương 5: Giới thiệu về sơđồ mạch điện của hệ thống điều khiển
đèn giao thông
- Chương kết luận: Tóm tắt đề tài qua khảo sát chi tiết mạch
-Đề tài được nghiên cứu và thi công dựa vào sự hướng dẫn tận tình của thầy : THƯỢNG VĂN BÉ đã có nhiều năm kinh nghiệm giảng dạy ở các trường đại học và cao đẳng, nhóm chúng em trân trọng cảm ơn sự nhiệt tình hướng dẫn của thầy; để chúng em có thể hoàn thành đồ án
Nhóm sinh viên thực hành
CHƯƠNG DẪNNHẬP
Trang 6cũng như tính quan trọng của một hệ thống điều khiển đèn giao thông
Thực tế Vi Điều khiển Pic 16F877A là một trong những dòng sản phẩm của
Microchip có khả năng ứng dụng thực tế rất cao, có thể chống nhiễu tốt, và đó là một
trong những điều kiện tối ưu để Nhóm chúng em chọn dòng sản phẩm này vào ứng dụng cho đề tài này
Một "hệ thống" cần nhất là tính ổn định, hoạt động một cách logic, hoặc khi gặp sự cố có thể tự khôi phục lại trạng thái ban đầu, cơ bản hơn là khả năng ứng dụng của hệ thống đó vào thực tế là như thế nào? Từđó chúng ta có thể thấy rõ ứng dụng thực
tế của "hệ thống đèn giao thông" là rất quan trọng vì nó rất quen thuộc với chúng ta trong đời sống hằng ngày, đặt biệt đối với những người tham gia giao thông Vấn đề " quan trọng" là chúng ta có thể thấy rõ, đểđáp ứng được vấn đềđó thì hệ thống cần sựổn định cao và thậm chí cần tính thông minh.đó là lý do đểNhóm chúng em thực hiện đề tàinày
1.2.TẦM QUAN TRỌNG CỦA ĐỀ TÀI
Trong cuộc sống hằng ngày, vấn đề giao thông là vấn đề cấp thiết hằng ngày, đặt ra nhiều vấn đề cho các ngành chức năng như vấn đề ùng tắt giao thông tại các ngã
tư, người tham gia giao thông không tuân thủđúng các tín hiệu đèn tại các trạm giao thôngchính vì thế dẫn đến nhiều sự cố không thể tránh khỏi và đáng tiết xảy ra cho gia đình, cũng như cho xã hội
Xuất phát từ nhu cầu thực tếđó, chúng ta thiết nghĩ cần các giải pháp để giải quyết một phần nào đó về các nhu cầu thực tế trên.Và "hệ thống đèn giao thông thông minh" là hết sức cần thiết, nó có thể có những tính năng được cài đặt sẵn đểgiải quyết những sự cố kịp thời, tránh thời giờ lãng phí trong khi giao thông bị ùng tắt tại các ngã tư
1.3.GIỚI HẠN ĐỀ TÀI
Do thời gian có hạn nên Nhóm chúng em chỉ khảo sát trong phạm vi là tìm hiểu và thiết kế mạch từ mạch nguyên lý
Quan sát một số chếđộ hoạt động của hệ thống đã được cài đặt sẵn Các tính
năng ứng dụng của một số chếđộ vào nhu cầu thực tế Khảo sát khả năng
làm việc ổn định của Pic 16F877A
Đánh giá ưu điểm, khuyết điểm và hướng phát triển của đề tài ở phạm vi khác
Trang 71.4.MỤC ĐÍCH ĐỀ TÀI
Nhóm sinh viên thực hiện chọn đề tài này với các mục đích sau:
Củng cố và vận dụng các kiến thức đã học vào thực tế
Tìm hiểu và ứng dụng kiến thức chuyên môn về lĩnh vực ứng dụng thực tiễn
Củng cố và vận dụng các kiến thức đã học vào thực tế Củng cố và vận dụng các kiến thức đã học vào thực tế
Nghiên cứu vi điều khiển PIC 16F877A
Nghiên cứu cách làm việc của LCD 8 bit cũng như 4 bit
Củng cố và vận dụng các kiến thức đã học vào thực tế Thiết Củng cố và vận dụng các kiến thức đã học vào thực tế
kế và thi công mô hình hệ thống đèn giao thông Nghiên cứu Củng cố và vận dụng các kiến thức đã học vào thực tế
ngôn ngữ lập trình CCS
Trong ứng dụng xa hơn ởđề tài "hệ thống đèn giao thông này" chúng ta có thểthiết kế cho hệ thống giao tiếp với máy tính, tăng khả năng điều khiển từ xa đến hệ thống, bám sát thực tếđể thiết kế những tính năng mới và phù hợp với nhiều nhu cầu hơn
Những từđược dùng trong quyển báo cáo này :
Manual Control : điều khiển bằng tay
Manual Control : điều khiển bằng tay
RUNNING MODEL 1 (2) : đang chạy trong chếđộ 1 (2) Cst
Manual Control : điều khiển bằng tay Manual Control : điều khiển bằng tay
(beaconing station): trạm báo hiệu R (RED) : đỏ (đèn đỏ) Manual Control : điều khiển bằng tay
Y (YELLOW) : vàng (đèn vàng)
Manual Control : điều khiển bằng tay
G (Gr) (GREEN): xanh lá (đèn xanh)
Manual Control : điều khiển bằng tay
CHƯƠNG
2
GIỚI THIỆU VỀ VI ĐIỀU KHIỂN PIC 16F877A
Trang 8PIC 16F877A như sau: +8 K
Flash ROM +368 Bytes RAM
+256 Bytes EEPROM
+5 ports (A, B, C, D, E) vào ra với tín hiệu điều khiển độc lập +2
bộđịnh thời 8 bits (Timer 0 và Timer 2)
-Một bộđịnh thời 16 bits (Timer 1) có thể hoạt động trong chếđộ tiết kiệm năng lượng (SLEEP MODE) với nguồn xung Clock ngoài +2 bô CCP( Capture / Compare/ PWM) +1 bộ biến đổi AD 10 bits, 8 ngõ vào +2 bộ
so sánh tương tự (Compartor)
+1 bộđịnh thời giám sát (WatchDog Timer)
-Một cổng song song 8 bits với các tín hiệu điều khiển -Một
cổng nối tiếp -15 nguồn ngắt
-Có chếđộ tiết kiệm năng lượng
-Nạp chương trình bằng cổng nối tiếp ICSP(In-Circuit Serial Programming)
-Được chế tạo bằng công nghệ CMOS -35 tập
lệnh có độ dài 14 bits
-Tần số hoạt động tối đa 20MHz
2.2 SƠ LƯỢC VỀ HÌNH DẠNG CHÂN CỦA PIC16F877A:
Trang 9Hình 2.1: Các dạng sơđồ chân của pic 16F877A
Trang 10Hình 2.2: Sơđồ khối củapic 16F877A
Trang 11Khi vi điều khiển được reset, bộđếm chương trình sẽ chỉđến địa chỉ 0000h (Reset
vector).Khi có ngắt xảy ra, bộđếm chương trình sẽ chỉđến địa chỉ 0004h (Interrupts vector).Bộnhớ chương không bao gồm bộ nhớ stack và không được địa chỉ hoá bởi bộđếm chương trình
Hình 2.3: Bộ nhớ chương trình PIC 16F877A
2.3.2.Bộ Nhớ Dự Liệu
Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank.Đối với
PIC 16F877a bộ nhớ dữ liệu được làm 4 bank Mỗi bank có dung lượng 128byte, bao gồm các thanh ghi có chức năng đặc biệt SFG (Special Function Register) nằm ở các vùngđịa chỉ thấp và các thanh ghi mục đích chung GPR (General Purpose
Trang 12register) nằm ở vùng địa chỉ còn lại trong bank.Các thanh ghi SFR thường xuyên được
sử dụng (ví dụ như thanh ghi STATUS) sẽđược đặt ở tất cả các bank của bộ dữ liệu giúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh của chương
trình.Sơđồ cụ thể như sau:
Hình 2.4: Bộ nhớ dữ liệu PIC 16F877A
Trang 132.3.2.1.Thanh Ghi Chức Năng Đặc Biệt SFR
Đây là thanh ghi được sử dụng bởi CPU hoặc được 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.Có thể phân thanh ghi SFR làm hai loại: thanh ghi SFR lien quan đến các chức năng bên trong CPU và thanh ghi SFR dùng để thiết lập và điều khiển các khối chức năng bên ngoài (ví dụ
như ADC,PWM ).Một số thanh ghi SFR như sau:
Thanh ghi STATUS (03h, 83h, 103h, 183h): thanh ghi chứa kết quả thự hiện
phép toán của khối ALU, trạng thái reset và các bit chọn bank cần truy xuất trong bộ nhớ dữ liệu
Thanh ghi OPTION-REG (81h, 181h): thanh ghi này cho phép đọc và ghi, cho
phép điều khiển chức năng pull-up củ các chân trong PORTB, xác lập các tham số về xung tác động, cạnh tác động của ngắt ngoại vi và bộđếm Timer0
Thanh ghi INTCON (0Bh, 8Bh, 10Bh, 18Bh): thanh ghi cho phép đọc ghi, chức
các bit điều khiển và các bit cờ hiệu khi timer0 bị tràn, ngắt ngoại vi RB0/INT và ngắt interrupt-on-change tại các chân của PORTB
Thanh ghi PIE1 (8Ch): chứa các bit điều khiển chi tiết các ngắt của khối chức
năng ngoại vi
Thanh ghi PIR1 (0Ch): chứa cờ ngắt của các khối chức năng ngoại vi, các ngắt
này được phép bởi các bit điều khiển chứa trong thanh ghi PIE1
Trang 14Thanh ghi PIE2 (8Dh): chứa các bit điều khiển các ngắt của các khối chức năng
CCP2, SSP bus, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM
Thanh ghi PIR2 (0Dh): chứa các cờ ngắt của các khối chức năng ngoại vi,
các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE2
Thanh ghi PCON (8Eh): chứa các cờ hiệu cho biết trạng thái các chếđộ reset của
vi điều khiển
2.3.2.2.Thanh ghi mục đích chung GPR
Các thanh ghi này có thểđược truy xuất trực tiếp hoặc gián tiếp thong qua thanh ghi FSG (File Select Register).Đây là các thanh ghi dữ liệu thông thường, người sửdụng
có thể tuỳ theo mục đích chương trình mà có thể dùng các thanh ghi này đểchứa các biến số, hằng số, kết quả hoặc các tham số phục vụ cho chương trình
2.4.CÁC CỔNG XUẤT NHẬP CỦA PIC 16F877A
Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương tác với thế giới bên ngoài Sự tương tác này rất đa dạng và thông qua quá trình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng
Vi điều khiển PIC 16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB,
PORTC, PORTD, PORTE
2.4.1 Port A và thanh ghi TRISA
PORTA gồm 6 chân từ RA0 đến RA5.Việc ghi giá trị vào thanh ghi TRISA sẽ
qui định các chân của Port A là input hay output (nếu là 1 thì là input, là output nếu là 0).Việc đọc thanh ghi Port A sẽđọc trạng thái của các chân ở Port A.Việc ghi giá trị vào thanh ghi Port A sẽ thay đổi trạng thái của các chân Port A.Riêng chân RA4 được tích hợp chức năng là chân cung cấp xung clock ngoài cho Timer 0 (RA4/T0CKI) Nhữngchân khác của Port A được đa hợp với các chân ngõ vào Analog của ADC và chân ngõvào điện thế so sánh của bộ so sánh Comparator Hoạt động của những chân này được quy định bằng những bit tương ứng trong các
Trang 15thanh ghi ADCCON1 và CMCON1.Khi các chân của Port A được sử dụng làm ngõ vào Analog thì các bit trong thanh ghi TRISA phải được set bằng 1
Hình 2.5: Cấu trúc bên trong của PORTA
Hình 2.6: Cấu trúc bên trong của thanh ghi TrisA
Trang 16Bảng 2.1:Chức năng của PORTA
Chú ý:
Các thanh ghi SFR liên quan đến PORTA bao gồm:
PORTA (địa chỉ 05h): chứa giá trị các pin trong PORTA
TRISA (địa chỉ 85h): điều khiển xuất nhập
CMCON (địa chỉ 9Ch): thanh ghi điều khiển bộ so sánh
ADCON1(địa chỉ 9Fh): thanh ghi điều khiển bộ ADC
CVRCON (địa chỉ 9Dh): thanh ghi điều chỉnh bộ so sánh điện áp
2.4.2.PORTB và Thanh Ghi TRISB
Port B gồm 8 chân từ chân RB0-RB7 Việc ghi giá trị vào thanh ghi TRISB sẽquy định các chân của Port B là input hay output (1: input, 0: output) Việc đọc thanh ghi Port B sẽđọc trạng thái của các chân ở Port B Việc ghi giá trị vào thanh ghi Port B
sẽ thay đổi trạng thái của các chân Port B
Ba chân của Port B được đa hợp với chức năng In-Circuit Debugger và Low VoltageProgramming function: RB3/PGM, RB6/PGC, RB7/PGD Mỗi chân Port B có một transistor kéo lên Vdd Chức năng này hoạt động khi bit RBPU (Option <7>) được xóa.Chức năng này sẽ tựđộng được xóa khi Port B được quy định là iput.Bốn chân của Port
B từ RB7 đến RB4 có chức năng ngắt khi trạng thái chân Port B thay đổi (Khi Port B được quy định là output thì chức năng này không hoạt động Giá trị chân của Port được
so sánh với giá trịđã được lưu trước đó, khi có sựsai lệch giữa 2 giá trị này ngắt sẽ xảy ra với cờ ngắt RBIF (INTCON<0) sẽ bật lên Ngắt có thể làm cho VĐK thoát khỏi trạng thái SLEEP
Bất cứ sự truy xuất nào trên PortB sẽ xóa trạng thái sai lệch, kết thúc ngắt và cho phépxóa cờ ngắt RBIF
Trang 17Hình 2.6: Cấu trúc bên trong của PORTB từ RB0 - RB7
Bảng 2.2: Chức năng của PORTB
Chú ý:
Các thanh ghi SFR liên quan đến PORTB bao gồm:
PORTB (địa chỉ 06h, 106h): chứa giá trị các pin trong PORTB
TRISB (địa chỉ 86h, 186h): điều khiển xuất nhập
OPTION_REG (địa chỉ 81h, 181h): điều khiển ngắt ngoại vi và bộ
Timer0
Trang 182.4 3 PORTC và Thanh Ghi TRISC
Port C gồm 8 chân từ chân RC0-RC7 Việc ghi giá trị vào thanh ghi TRISC sẽ
quy định các chân của Port C là input hay output (1: input, 0: output) Việc đọc thanh ghi Port C sẽđọc trạng thái của các chân ở Port C Việc ghi giá trị vào thanh ghi Port C
sẽ thay đổi trạng thái của các chân Port C
Các chân của Port C được đa hợp với các chức năng ngoại vi
Khi các chức năng ngoại vi được cho phép ta cần quan tâm chặt chẽ tới giá trị các bit của thanh ghi TRISC Một số chức năng ngoại vi sẽ ghi đè giá trị 0 lên các bit của thanhghi TRISC và mặc định các chân này là output, ngoài ra một số chức năng ngoại vi khác
sẽ tựđộng mặc định một số chân là ngõ vào Do đó cần xem xét kĩ các tính năng của các hàm ngoại vi để thiết lập giá trị các bit trong thanh ghi TRISC cho thích hợp
Hình 2.7:Cấu trúc của chân RC3,
Trang 19Bảng 2.3: Chức năng PORTC
Chú ý:
Các thanh ghi SFR liên quan đến PORTC bao gồm:
PORTC (địa chỉ 07h): chứa giá trị các pin trong PORTC
TRISC(địa chỉ 87h): điều khiển xuất nhập
2.4.4 PORTD và Thanh Ghi TRISD
Port D gồm 8 chân từ chân RD0-RD7 Bên cạnh chức năng là port xuất nhập,
Port D còn có thể hoạt động như một cổng song song bằng cách set bit PSPMODE (TRISE<4>), trong chếđộ này buffer ngõ vào là TTL
Hình 2.9: Cấu trúc bên trong của PORTD
Trang 20Bảng 2.4: Chức năng của PORTD
Chú ý:
Các thanh ghi SFR liên quan đến PORTD bao gồm:
PORTD (địa chỉ 08h): chứa giá trị các pin trong PORTD
TRISD(địa chỉ 88h): điều khiển xuất nhập
2.4.5 PORTE và Thanh Ghi TRISE
Port E có 3 chân RE0 /RD/AN5, RE1/WR /AN6, RE2 /CS/AN7, có thểđược cấu hình như các chân xuất nhập thông thường
Các chân của Port E có thể trở thành các chân điều khiển cho cổng song song của VĐK khi bit PSPMODE (TRISE<4>) được set bằng 1 Trong chếđộ này, người sử dụng phải đảm bảo các chân của PortE là ngõ vào
Ngoài ra các chân Port E còn có thểđược cấu hình như các ngõ vào Analog, tại chếđộ này, khi đọc giá trị của các chân này sẽ cho ta giá trị là 0
Thanh ghi TRISE quy định chức năng xuất nhập của Port E ngay cả khi nó được sử dụng như các ngõ vào Analog Phải đảm bảo các chân này được quyđịnh là ngõ vào trong chếđộ này
Hình 2.10: Cấu trúc bên trong của PORTE
Trang 21Bảng 2.5: Chức năng của PORTE
2.5.BỘĐỊNH THỜI TIMER 0
Đây lả một trong ba bộđếm hoặc bộđịnh thời của vi điều khiển PIC
16F877A.Timer0 là bộđếm 8bit được kết nối với bộ chia tần số (prescaler) 8bit.Cấu trúc của Timer0 cho phép ta lựa chọn xung clock tác động và cạnh tích cực của xung clock
Ngắt Timer0 sẽ xuất hiện khi Timer0 bị tràn.Bit TMR0IE (INTCON<5>) là bit điều khiển của Timer 0, TMR0IE =1 cho phép ngắt Timer0 tác động, TMR0IF =0
không cho phép ngắt Timer0 tác động.Sơđồ khối của Timer0 như sau:
Hình 2.11: Sơđồ khối của Timer 0
Trang 22Muốn Timer0 hoạt động ở chếđộ Timer ta clear bit TOSC
(OPTION_REG<5>), khi đó giá trị thanh ghi TMR0 sẽ tăng theo từng chu kỳ xung đồng
hồ (tần số vào Timer0 bằng ¼ tần số Oscillator).Khi giá trị thanh ghi TMR0 từFFh trở về 00h, ngắt Timer0 sẽ xuất hiện.Thanh ghi TMR0 cho phép ghi và xoá được giúp ta ấn định được thời điểm ngắt của Timer0 xuất hiện một cách linh động
Muốn Timer 0 hoạt động ở chếđộ counter ta set bit TOSC
(OPTION_REG<5>).Khi đó xung tác động lên bộđếm được lấy từ chân
RA4/TOCK1.Bit TOSE (OPTION_REG<4>) cho phép lựa chọn cạnh tác động vào bộđếm.Cạnh tác động sẽ là cạnh lên nếu TOSE =0 và ngược lại là TOSE =1
Khi thanh ghi TMR0 bị tràn, bit TMR0IF (INTCON <2>) sẽđược set.Đây chính là
cờ ngắt của Timer0.Cờ ngắt này phải được xoá bằng chương trình trước khi bộđếm bắt đầu thực hiện lại quá trình đếm.Ngắt Timer0 không thểđánh thức vi điều khiển từ chếđộ sleep
Bộ chia tần số (prescaler) được chia sẻ giữa Timer0 và WDT (Watchdog
Timer).Điều đó có nghĩa là nếu prescaler được sử dụng cho Timer0 thì WDT sẽ không
có được hỗ trợ của prescaler và ngược lại.Prescaler được điều khiển bởi thanh ghi OPTION_REG.Bit PSA (OPTION_REG <3>) xác định đối tượng tác động của prescaler.Các bit PS2:PS0 (OPTION_REG <2:0>) xác định tỉ số chia tần số của
prescaler
Các lệnh tác động lên giá trị thanh ghi TMR0 sẽ xoá chếđộ hoạt động của
prescaler.Khi đối tượng tác động là Timer0 tác động lên giá trị thanh ghi TMR0 sẽxoá prescaler nhưng không làm thay đổi đối tượng tác động của prescaler.Khi đối tượng tácđộng là WDT, lệnh CLRWDT sẽ xoá prescaler, đồng thời prescaler sẽngưng tác vụ hỗ trợ cho WDT
Các thanh ghi điều khiển liên quan đến Timer0 bao gồm:
TMR0 (địa chỉ 01h, 101h): chứa giá trịđếm của Timer0
INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động
OPTION_REG (địa chỉ 81h, 181h): điều khiển prescaler
2.6.BỘĐỊNH THỜI TIMER 1
Timer1 là bộđịnh thời 16bit, giá trị của Timer1 sẽđược lưu trong hai thanh ghi
(TMR1H:TMR1L).Cờ ngắt của Timer1 là bit TMR1IF (PIR1<0>).Bit điều khiển của Timer1 sẽ là TMR1IE (PIE<0>)
Tương tự như Timer0,Timer 1 cũng có hai chếđộ hoạt động: chếđộđịnh thời (timer) với xung kích là xung clock của oscillator (tần số của timer bằng ¼ tần sốcủa oscillator)
và chếđộđếm (counter với xung kích là xung phản ánh các sự kiện cần đếm lấy từ bên ngoài thông qua chân RC0/T1OSO/T1CKI (cạnh tác động là cạnh lên).Việc lựa chọn
xung tác động (tương ứng với việc lựa chọn chếđộ hoạt động là timer hay counter)
được điều khiển bởi bit TMR1CS (T1CON<1>).Sau
đây là sơđồ khối của Timer1:
Trang 23Hình 2.12: Sơđồ khối của Timer 1
Ngoài ra Timer1 còn có chức năng reset input bên trong được điều khiển bới một trong hai khối CCP (Capture/Compare/PWM)
Khi bit T1OSCEN (T1CON <3>)được set, Timer1 sẽ lấy xung clock từ hai chân
RC1/T1OSI/CCP2 và RC0/T1OSO/T1CKI làm xung đếm.Timer1 sẽ bắt đầu dếm sau cạnh xuống đầu tiên của xung ngõ vào.Khi đó PORTC sẽ bỏ qua sự tác động của hai bit TRISC<1:0> và PORTC <2:1>được gán giá trị 0.Khi clear bit T1OSCEN Timer1
sẽ lấy xung đếm từ Oscillator hoặc từ chân RC0/T1OSO/T1CKI
Timer1 có hai chếđộđếm là đồng bộ (Synchrobous) và bất đồng bộ
(Asynchronous).Chếđộđếm được quyết định bởi bit điều khiển (T1CON<2>)
Khi T1CON<2> 1 xung đếm lấy từ bên ngoài sẽ không được đồng bộ hoá với xung clock bên trong,Timer1 sẽ tiếp tục quá trình đếm khí vi điều khiển ở chếđộ sleep và ngắt do Timer1 tạo ra khi bị tràn có khả năng đánh thức vi điều khiển.Ởchếđộđếm bất đồng bộ, Timer1 không thểđược sử dụng để làm nguồn xung clock cho khối CCP
Khi T1CON <2> 0 xung đếm vào Timer1 sẽđược đồng bộ hoá với xung clock bên trong Ở chếđộ này Timer1 sẽ không hoạt động khi vi điều khiển ở chếđộ sleep
Các thanh ghi liên quan đến Timer1 bao gồm:
INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): Cho phép ngắt hoạt động
PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer1 (TMR1IF)
PIE1 (địa chỉ 8Ch): cho phép ngắt Timer1 (TMR1IE)
TMR1L (địa chỉ 0Eh): chứa giá trị 8bit thấp của bộđếm Timer1
TMR1H (địa chỉ 10h): xác lập các thông số cho Timer1
Trang 242.7.BỘĐỊNH THỜI TIMER 2
Timer2 là bộđịnh thời 8bit và được hỗ trợ bởi hai bộ chia tần số prescaler và
postscaler.Thanh ghi chứa giá trịđếm của Timer2 là TMR2.Bit cho phép ngắt Timer2 tác động là TMR2ON (T2CON<2>).Cờ ngắt của Timer2 là bit TMR2IF
(PIR1<1>).Xung ngõ vào (tần số ¼ oscillator) được đưa qua bộ chia tần sốprescaler 4bit (với các tỉ số chia tần số là 1:1, 1:4 hoặc 1:16 và được điều khiển bởi
các bit T2CKPS1:T2CKPSO (T2CON<1:0>) Sau đây là sơđồ khối của Timer2:
Hình 2.13: Sơđồ khối của Timer 2
Timer2 còn được hỗ trợ bởi thanh ghi PR2.Giá trịđếm trong thanh ghi TMR2 sẽtăng
từ 00h đến giá trị chứa trong thanh ghi PR2, sau đó được reset về 00h.Khi reset thanh ghi PR2 được nhận giá trị mặc định FFh
Ngõ ra của Timer2 được đưa qua bộ chia tần số postscaler với các mức chia từ 1:1 đến 1:16.Postscaler được điều khiển bởi 4bit T2OUTPS3:T2OUTPS0.Ngõ ra của postscaler đóng vai trò quyết định trong việc điều khiển cờ ngắt
Ngoài ra ngõ ra của Timer2 còn được kết nối với khối SSP, do đó Timer2 còn đóng vai trò tạo ra xung clock đồng bộ cho khối giao tiếp SSP
Các thanh ghi liên quan đến Timer2 bao gồm:
INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): Cho phép ngắt hoạt động
PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer1 (TMR1IF)
PIE1 (địa chỉ 8Ch): cho phép ngắt Timer1 (TMR1IE)
TMR2 (địa chỉ 11h):chứa giá trịđếm của Timer2
T2CON (địa chỉ 12h): xác lập các thông số cho Timer2 PR2
(địa chỉ 92h): thanh ghi hỗ trợ Timer2
2.8.SỰ CHUYỂN ĐỔI ADC
ADC (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai dạng
tương tư và số.PIC 16f877A có 8 ngõ vào analog (RA0:RA4 và RE0:RE2).Hiệu
Trang 25điện thế chuẩn VREF có thểđược lựa chọn là VDD, VSS hay hiệu điện thế chuẩn được xác lập trên chân RA2 và RA3.Kết quả của sự chuyển đổi từ tín hiệu tương tự sang
tín hiệu số là 10bit số tương ứng và được lưu trong hai thanh ghi
ADRESH:ADRESL.Khi không sử dụng bộ chuyển đổi ADC, các thanh ghi này có thểđược sử dụng như các thanh ghi thông thường khác.Khi quá trình chuyển đổi hoàn tất, kết quả sẽđược lưu vào hai thanh ghi ADRESh:ADRESL, bit (ADCON0<2>) được xoá về 0 và cờ ngắt ADIF được set
Qui trình chuyển đổi từ tương tự sang số bao gồm:
Bước 1: Cấu hình cho module ADC
Cấu hình cho các chân ngõ vào điện thế chuẩn và I/O số (ADCON1) Lựa
chọn kênh ngõ vào AD (ADCON0) Lựa chọn tần số chuyển đổi
(ADCON0) Cấp nguồn cho module ADC (ADCON0)
Bước 2: Cấu hình các ngắt ADC (nếu cần)
Xoá cờ ngắt ADIF
Set bit GIE (cho phép ngắt toàn cục)
Set bit ADIE (cho phép ngắt chuyển đổi ADC)
Bước 3:Đợi thời gian Acquisition (lấy mẫu ) cần thiết
Bước 4:Đọc kết quả trong 2 thanh ghi ADRESH và ADRESL, xoá bit ADIF (nếu cần
thiết)
Bước 5:Đợi quá trình ADC hoàn tất
Chạy vòng lập đợi bit GO/DONE bị xoá hoặc cờ ngắt ADIF bật lên
Bước 6:Bắt đầu quá trình chuyển đổi ADC
Set bit GO/DONE (ADCON <0>)
Bước 7:Nếu muốn tiếp tục thực hiện chuyển đổi ADC trong chu kỳ kế tiếp thì quay lại bước 1 và bước 2
Hình 2.14: Sơđồ khối bộ chuyển đổi ADC
Trang 26Hình 2.15:Cách lưu kết quả chuyển đổi A/D
Chú ý:
Các thanh ghi liên quan đến bộ chuyển đổi ADC bao gồm:
INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép các ngắt PIR1
(địa chỉ 0Ch): chứa cờ ngắt AD (bit ADIF)
PIE1 (địa chỉ 8Ch): chứa bit điều khiển AD (ADIE)
ADRESH (địa chỉ 1Eh) và ADRESL (địa chỉ 9Eh):thanh ghi chứa kết quả
PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h): liên quan đến I/O
PORTE (địa chỉ 09h) và TRISE (địa chỉ 89h): liên quan đến I/O
ADCON0 (địa chỉ 1Fh) và ADCON1 (địa chỉ 9Fh): xác lập các thông số
cho bộ chuyển đổi AD
2.9.PWM - ĐIỀU CHẾĐỘ RỘNG XUNG
Khi hoạt động ở chếđộ PWM (Pule Width Modulation), tín hiệu sau khi điều chếsẽđược đưa ra các pin của khối CCP (cần ấn định các pin này là output)
*Các bước để cài đặt bộ PWM:
1.Điều khiển các pin của CCP là ouput bằng cách clear các bit tương ứng
trong thanh ghi TRISC
2.Thiết lập thời gian của 1 chu kỳ xung điều chế cho PWM (period) bằng cách đưa giá trị thích hợp vào thanh ghi PR2
3.Thiết lập độ rộng xung cần điều chế (duty cycle) bằng cách đưa giá trị vào thanh ghi CCPRxL và các bit CCP1CON <5:4>
4.Thiết lập giá trị bộ chia tần số prescaler của Timer 2 và cho phép Timer 2 hoạtđộng bằng cách đưa giá trị thích hợp vào thanh ghi T2CON
5.Cho phép CCP hoạt động ở chếđộ PWM
Trong đó giá trị 1chu kỳ (period) của xung điều chếđược tính bằng công thức:
PWM period = [(PR2+1)]*4*T OSC * (giá trị bộ chia tần số của TMR2)
Trang 27Bộ chia tần prescaler của Timer 2 chỉ có thể nhận các giá trị 1,4 hoặc 16.Khi giá trị thanh ghi PR2 bằng với giá trị thanh ghi TMR2 thì quá trình xảy ra: Thanh
ghi TMR2 tựđộng được xoá Pin của khối CCP được set
Giá trị thanh ghi CCPR1L (chứa giá trịấn định độ rộng xung điều chế duty cycle) được đưa vào thanh ghi CCPRxH
Độ rộng của xung điều chế (duty cycle) được tính theo công thức:
PWM duty cycle = (CCPRxL : CCPxCON <5:4>)* T OSC * (giá trị bộ chia tần
số của TMR2)
Như vậy 2bit CCPxCON <5:4> sẽ chứa 2bit LSB.Thanh ghi CCPRxL chứa byte cao của giá trị quyết định độ rộng xung.Thanh ghi CCPRxH đóng vai trò là buffer cho khối PWM.Khi giá trị trong thanh ghi CCPRxH bằng với giá trị trong thanh ghi TMR2 và hai bit CCPxCON <5:4> bằng với giá trị 2bit của bộ chia tần số prescaler, pin của khối CCP lại được đưa về mức thấp, như vậy ta có được hình ảnh của xung điều chế tại ngõ
ra của khối PWM như hình 2.9.2
Timer2 có hai bộ chia tần số prescaler và postscaler.Tuy nhiên bộ postscaler không được sử dụng trong quá trình điều chếđộ rộng xung của khối PWM.Nếu thời gian duty cycle dài hơn thời gian chu kì xung period thì xung ngõ ra riếp tục được giữở mức cao sau khi giá trị PR2 bằng với giá trị TMR2
Chú ý:
Các thanh ghi có liên quan :
TMR2 (địa chỉ 11h): chứa giá trịđếm của Timer2
T2CON (địa chỉ 12h): xác lập thông số cho Timer2
CCP1CON và CCP2CON (địa chỉ 17h và 1Dh) PIR2 (địa
chỉ 0Dh)
2.10.TRUYỀN DỮ LIỆU BẤT ĐỒNG BỘ
Thành phần quan trọng nhất của khối truyền dữ liệu là thanh ghi dịch dữ liệu
TSR (Transmit Shift Register).Thanh ghi TSR sẽ lấy dữ liệu từ thanh ghi đệm dùng cho
quá trình truyền dữ liệu TXREG.Dữ liệu cần truyền phải được đưa trước vào thanh ghi TXREG.Ngay sau khi bit Stop của dữ liệu cần truyền trước đó được truyền xong, dữ liệu từ thanh ghi TXREG sẽđược đưa vào thanh ghi TSR, thanh ghi TXREG bị rỗng, ngắt xảy ra và cờ hiệu TXIF (PIR1<4>) được set.Ngắt này được điều khiển bởi TXIE (PIE1<4>).Cờ hiệu TXIF vẫn được set bất chấp trạng thái của bit TXIE hay tác động của chương trình (không thể xoá TXIF bằng chương trình) mà chỉ reset về 0 khi có dữ liệu mới được đưa vào thanh ghi TXREG Sau
đây là sơđồ khối của quá trình truyền dữ liệu bất đồng bộ:
Trang 28Hình 2.16: Sơđồ của quá truyền dữ liệu
Tóm lại để truyền dữ liệu theo giao diện USART bất đồng bộ, ta cần thực
hiện tuần tự các bước sau:
1.Tạo xung truyền baud bằng cách đưa các giá trị cần thiết vào thanh ghi
SPBRG và bit điều khiển mức độ baud BRGH, theo công thức sau:
Bảng 2.6:Công thức tính giá trị thanh ghiRSBRG
Trong đó: X là giá trị của thanh ghi RSBRG (X là số nguyên và 0<X<255)
2.Cho phép cổng giao diện truyền bất đồng bộ bằng cách clear bit SYNC và set bit PSEN
3.Đưa 8bit dữ liệu cần truyền vào thanh ghi TXREG 4.Set
bit TXIE nếu cần sử dụng ngắt truyền
5.Set bit TX9 nếu định dạng dữ liệu cần truyền là 9bit
6.Set bit TXEN để cho phép truyền dữ liệu (lúc này bit TXIF cũng sẽ
đượcset)
7.Nếu định dạng dữ liệu là 9bit, đưa bit dữ liệu thứ 9 vào bit TX9D
8.Nếu sử dụng ngắt truyền, cần kiểm tra lại các bit GIE và PEIE (thanh ghi INTCON)
Chú ý:
Các thanh ghi liên quan :
INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép tất cả các ngắt PIE1 (địa chỉ 8Ch): chứa bit cho phép ngắt truyền TXIE
RCSTA (địachỉ 18h): chứa bit cho phép cổng truyền dữ liệu XREG
(địa chỉ 19h): thanh ghi chứa dữ liệu cần truyền SPBRG (địa chỉ
99h): quyết định tốc độ baud
Trang 292.11.NHẬN DỮ LIỆU ĐỒNG BỘ
Dữ liệu được đưa vào từ chân RC7/RX/DT sẽ kích hoạt khối phục hồi dữ
liệu.Khối phục hồi dữ liệu thực chất là một bộ dịch dữ liệu tốc độ cao và có tần sốhoạt động gấp 16 lần hoặc 64 lần tần số baud.Trong khi đó tốc độ dịch của thanh ghi nhận dữ liệu
sẽ bằng với tần số baud hoặc tần số của oscillator
Hình 2.17: Sơđồ của bộ nhận dữ liệu
Tóm lại để nhận dữ liệu theo giao diện USART bất đồng bộ, ta cần thực hiện tuần tự các bước sau:
1.Thiết lập tốc độ baud (đưa giá trị thích hợp vào thanh ghi SPBRG và bit BRGH (như bảng 2.6)
2.Cho phép cổng giao tiếp USART bất đồng bộ (clear bit SYNC và set bit SPEN) 3.Nếucần sử dụng ngắt nhận dữ liệu, set bit RCIE
4.Nếu dữ liệu truyền nhận có định dạng là 9 bit, set bit RX9 5.Cho
phép nhận dữ liệu bằng cách set bit CREN
6.Sau khi dữ liệu được nhận, bit RCIF sẽđược set và ngắt được kích hoạt (nếu bit RCIE được set)
7.Đọc giá trị thanh ghi RCSTA đểđọc bit dữ liệu thứ 9 và kiểm tra xem quá trình nhận dữliệu có bị lỗi không
8.Đọc 8bit dữ liệu từ thanh ghi RCREG
9.Nếu quá trình truyền nhận có lỗi xảy ra, xoá lỗi bằng cách xoá bit CREN
10.Nếu sử dụng ngắt nhận dữ liệu cần set bit GIE và PEIE (thanh ghi
INTCON)
Trang 302.12.NGẮT - INTERRUPT
Khái niệm
Ngắt là một tác vụ xử lý hay là một tín hiệu xử lý mà nó có thể bắt con PIC dừng
lại những gì đang làm để làm một công việc khác
Đối với PIC 16F877A có 15 nguồn Ngắt, khi ngắt được xảy ra cần: khai báo ngắt (set các bit điều khiển IE tương ứng) và có cờ ngắt tác động (IF), để biết Ngắt như
thế nào chúng ta cần xem sơđồ sau:
Hình 2.18: Giản đồ Ngắt
Chú thích:
Các bit điều khiển ngắt :
Bit GIE : INTCON <7> : Cho phép ngắt toàn cục
Bit PEIE : INTCON <6> : Cho phép ngắt ngoại vi Bit
RBIE : INTCON <3> : Cho phép ngắt PORTB Bit
INTE : INTCON <4> : Cho phép ngắt RB0
Bit TMR0IE : INTCON <2> : Cho phép ngắt Timer 0 Bit
FEIE : PIE2 <4> : Cho phép ngắt EFROM
Bit PSPIE : PIE1 <7> : Cho phép ngắt truyền song song Bit
ADIE : PIE1 <6> : Cho phép ngắt chuyển đổi ADC Bit
RCIE : PIE1<5> : Cho phép ngắt nhậ nối tiếp
Bit TXIE : PIE1<4> : Cho phép ngắt truyền nối tiếp
Trang 31Bit SSPIE : PIE1 <3> : Cho phép ngắt truyền nhận nối tiếp đang bận Bit
CCP1IE : PIE1 <2> : Cho phép ngắt CCP1
Bit TMR1IE : PIE1 <0> : Cho phép ngắt Timer1 Bit
TMR2IE : PIE1 <1> : Cho phép ngắt Timer2 Bit
CCP2IE : PIE2 <0> : Cho phép ngắt CCP2
Bit BCLIE : PIE2 <3> : Cho phép ngắt truyền nhận nối xảy ra Bit
CMIE : PIE2 <6> : Cho phép ngắt bộ so sánh
Các Bit cờ ngắt
Bit RBIF : INTCON <0> : Cờ ngắt PORTB
Bit INTF : INTCON <1> : Cờ ngắt RB0
Bit TMR0IF : INTCON <2> : Cờ ngắt Timer0 Bit
FEIF : PIR2 <4> : Cờ ngắt EFROM
Bit PSPIF : PIR1 <7> : Cờ ngắt truyền song song Bit
ADIF : PIR1 <6> : Cờ ngắt chuyển đổi ADC Bit RCIF :
PIR1 <5> : Cờ ngắt nhận nối tiếp Bit TXIF : PIR1 <4> :
Cờ ngắt nhận nối tiếp
Bit SSPIF : PIR1 <3> : Cờ ngắt cờ ngắt truyền nhận nối tiếp đang bận Bit
CCP1IF : PIR1 <2> : Cờ ngắt bộ CCP1 Bit TMR1IF : PIR1 <0> : Cờ ngắt
Timer1 Bit TMR2IF : PIR1 <1> : Cờ ngắt Timer2 Bit CCP2IF : PIR2 <0> :
Cờ ngắt bộ CCP2
Bit BCLIF : PIR2 <3> : Cờ ngắt truyền nhận nối xảy ra Bit
CMIF : PIR2 <6> : Cờ ngắt bô so sánh
Giả sử trong chương trình chính chúng ta có sử dụng Timer0, khi chương trình đang thực thi, nếu bộđịnh thời Timer 0 đếm xong sẽ báo cho chúng ta biết thông qua cờ tràn TR0IF Vậy nếu chúng ta dùng ngắt Timer0 thì chúng ta cần set bit TMR0IE và set bit GIE.Tương tự nếu chúng ta cần dùng ngắt ngoại vi RB thì cần set bit RBIE va2set bit GIE.Tuy nhiên, chúng ta cần ngắt Timer1 thì ngoài việc cần set bit TMR1IE và set bit GIE và cần set thêm bit PEIE
Dựa vào sơđồ cấu trúc trên chúng ta biết "set" bit nào khi khai báo ngắt tương ứng
2.13 SƠLƯỢC VỀ LỆNH VI ĐIỀU KHIỂN PIC 16F877A
PIC là vi điều khiển có tập lệnh rút gọn RISC (Reduced Instruction Set
Computer), bao gồm 35 lệnh và có thểđược phân ra thành 3 nhóm cơ bản :
Nhóm lệnh thao tác trên bit
Nhóm lệnh thao tác trên byte Nhóm
lệnh điều khiển
Trang 32Đối với dòng vi điều khiển PIC 16Fxxx, mỗi lệnh được mã hoá thành 14 bit word, bao gồm các bit opcode (dùng để xác định lệnh nào được mã hoá ) và các bit mô tả một hay vài tham số của lệnh
Củng cố và vận dụng các kiến thức đã học vào thực tế Lệnh ADDLW
Tác dụng: kiểm tra bit b trong thanh ghi f Nếu bit b bằng 0, lệnh tiếp theo được
thực thi.Nếu bit b bằng 1, lệnh tiếp theo được bỏ qua và thay vào đó là lệnh NOP Bit trạng thái : không có
Trang 33 Củng cố và vận dụng các kiến thức đã học vào thực tế Lệnh BTFSC
Cú pháp: BTFSC f,b (0 f 127,0 b7)
Tác dụng: kiểm tra bit b trong thanh ghi f Nếu bit b bằng 1, lệnh tiếp theo được
thực thi.Nếu bit b bằng 0, lệnh tiếp theo được bỏ qua và thay vào đó là lệnh NOP Bit trạng thái : không có
Củng cố và vận dụng các kiến thức đã học vào thực tế Lệnh CALL
Cú pháp: CALL k (0 k 2047)
Tác dụng: gọi một chương trình con.Trước hết địa chỉ quay trở về từ chương trình con (PC+1) được cất vào trong Stack, giá trịđịa chỉ mới được đưa vào bộđếm gồm 11 bit của biến k và 2 bit PCLATH<4:3> Bit trạng thái : không có
Tác dụng: reset watchdog Timer, đồng thời prescaler cũng được reset, các bit đảo PD
và TO được set lên 1
Bit trạng thái : đảo của PD và TO
Củng cố và vận dụng các kiến thức đã học vào thực tế Lệnh COMF
Củng cố và vận dụng các kiến thức đã học vào thực tế Lệnh DECFSZ
Trang 34Cú pháp: DECFSZ f,b (0 f 127, d€[0,1])
Tác dụng: giá trị trong thanh ghi f được giảm đi 1 đơn vị Nếu kết quả sau khi giảm khác
0, lệnh tiếp theo được thực thi.Nếu kết quả bằng 0, lệnh tiếp theo được bỏ qua và thay vào
đó là lệnh NOP Kết quảđược đưa vào thanh ghi W nếu d 0 hoặc thanh ghi f nếu d=1 Bit trạng thái : không có
Củng cố và vận dụng các kiến thức đã học vào thực tế Lệnh GOTO
Trang 35Tác dụng: dịch trái các bit trong thanh ghi f qua cờ carry kết quảđược chứa trong thanhghi W nếu d 0 hoặc thanh ghi f nếu d=1 Bit trạng thái : C
Củng cố và vận dụng các kiến thức đã học vào thực tế Lệnh RETURN
Trang 36Ngoài các lệnh trên còn có một số lệnh dùng trong chương trình như:
Củng cố và vận dụng các kiến thức đã học vào thực tế Lệnh #DIFINE
Cú pháp: #DIFINE <text1><text2>
Tác dụng: thay thế một chuỗi kí tự này bằng một chuỗi kí tự khác, có nghĩa là mỗi khi chuỗi kí tự text1 xuất hiện trong chương trình, trình biên dịch sẽ tựđộng thay thế chuỗi
kí tựđó bằng chuỗi kí tự<text2>
Củng cố và vận dụng các kiến thức đã học vào thực tế Lệnh INCLUDE
Cú pháp: INCLUDE <filename> hoặc INCLUDE "filename"
Tác dụng: đính kèm một file khác vào chương trình, tương tự như việc ta coppy file đó vào vị trí xuất hiện lệnh INCLUDE
Củng cố và vận dụng các kiến thức đã học vào thực tế Lệnh CONSTANT
Cú pháp:CONSTANT <name>=<value>
Tác dụng: khai báo một hằng số, có nghĩa là khi phát hiện chuỗi kí tự "name" trong chương trình, trình biên dịch sẽ tựđộng thay bằng chuỗi kí tự bằng giá trị "value" đã được định nghĩa trước đó
Củng cố và vận dụng các kiến thức đã học vào thực tế Lệnh SET
Cú pháp:<name variable> SET <value>
Tác dụng: gán giá trị cho một biến.Tên của biến có thể thay đổi trong quá trình thực thi chương trình
Củng cố và vận dụng các kiến thức đã học vào thực tế Lệnh EQU
Cú pháp: <name constant> EQU <value>
Tác dụng: gán giá trị cho tên của hằng số.Tên của hằng số không thay đổi trong quá trình thực thi chương trình
Củng cố và vận dụng các kiến thức đã học vào thực tế Lệnh ORG
Trang 37Transitor C1815 là một trong những loại được dùng phổ biến với những thiết bị
có công suất nhỏ, dòng ít, chủ yếu được dùng trong các thiết bịđiện tử dân dụng
3.1.1.Sơđồ chân của C1815
Hình 3.1: Sơđồ chân của C1815
3.1.2.Một sốđặc tính của C1815
-Điện áp ngõ ra (max): VCEO = 160V
-Dòng IC (max)= 1A
-Hệ số khuếch đại :
Trang 38Bảng 3.1:Đặc tính của C1815
Đặc Tính Điện áp giữa cực C - E (V CEO )
Điện áp giữa cực C - B (V CBO )
Điện áp giữa cực B - E (V EBO )
Dòng I C
Dòng I B
Công suất tiêu tán P C
Điện áp V CE (sat) Ic =500mA; I B = 50mA
900 1.5 0.45-0.75
100
Đơn Vị V V V A A
mW V V MHz
Phương pháp chốt là phương pháp nhằm tạo khả năng đáp ứng nhanh vì dữ liệu truyền đi theo kiểu song song.Chính vì thế phương pháp chốt được sử dụng khá phổbiến trong kỹ thuật hiển thị led.Một trong những IC đáp ứng khả năng Chốt là IC 74LS 373
3.2.1.Sơđồ chân của IC 74LS 373
Hình 3.2: Sơđồ chân của IC 74LS373
IC 74LS 373 là một IC chốt với cấu tạo có 20pin
Pin 20 là Vcc Pin 10
là GND
Pin 2, 5, 6, 9, 12, 15, 16, 19 là các ngõ ra tương ứng từ O0 - O7
Pin 3, 4, 7, 8, 13, 14, 17, 18 là các ngõ ra tương ứng từ D0 - D7
Pin 1 là ngõ Out Enable(ngõ ra cho phép) (hoạt động ở mức thấp) thuộc ngõ vào
Trang 39Pin 11 là Lacth Enable (ngõ cho phép chốt) (hoạt động ở mức cao) thuộc ngõ
vào
3.2.2.Sơđồ cấu tạo bên trong của IC chốt 74LS373
Hình 3.3: Sơđồ cấu tạo của IC 74LS373
Ta thấy trong sơđồ cấu tạo của IC có sử dụng mạch Chốt D (từ mạch flip flop D)
3.2.2.1.Khái quát về mạch Chốt D:
Mạch flip flop D:
Bảng 3.2: Bảng sự thật của flip-flop D
VàoD01
Ra
CK Q 01
Hình 3.4: Ký hiệu flip flop D
Khi nối ngõ vào của mạch FF RS hoặc JK ta được ngõ vào gọi ngõ vào đó là D (viết tắt Data hoặc Delay ) như hình 3.4
Công dụng của flip flop D : dùng để chuyển dữ liệu từ ngõ vào D đến ngõ ra Q
để cung cấp cho mạch tiếp theo Mặc khác dữ liệu ở ngõ vào D phải chờ cho đến khi cóxung đồng hồ mới xuất hiện ở ngõ ra Q nên flip flop D có thể xem như một mạch trì hoãn
Trang 40Mạch Chốt D:
Hình 3.5: Cấu tạo mạch chốt D
Bảng 3.3: Bảng sự thật củaRa
VàoD
Ngõ vào cho phép E còn được gọi là ngõ vào cho phép chốt
Hoạt động của logic của mạch chốt là:
Khi ngõ cho phép E ở cao, ngõ ra Q theo ngõ vào D (tức Q = D )
Khi ngõ cho phép E xuống thấp, trạng thái của ngõ vào D ngay trước khi E
xuống thấp được chốt vào, tức được lưu giữ bởi Q, và ngõ ra Q không thay đổi cho đến khi ngõ vào cho phép E lên cao trở lại
Nên nhớ là mạch chốt được nảy bằng mức nhớ không phải bằng cạnh, có vậy thì chốt mới cho phép ngõ ra theo ngõ vào cho phép ở cao
Công dụng: là có thể lưu giữ dữ liệu tạm thời.Đây là một nhu cầu logic cần thiết
3.2.2.2.Nguyên lý làm việc của IC Chốt 74LS 373
Từ nguyên lý làm việ của mạch Chốt D ta có thể hiểu phần nào về nguyên lý của