Việc xóa bit GO/DONE trong quá trình chuyển đổi sẽ bỏ qua chuyển đổi hiện tại. Cặp thanh ghi kết quả chuyển đổi ADC sẽ không được cập nhật những mẫu chuyển đổi ADC đã hoàn tất. Do đó, cặp thanh ghi ADRESH và ADRESL sẽ chứa giá trị của lần chuyền đổi hoàn tất cuối cùng ( hoặc giá trị được ghi cuối cùng vào 2 thanh ghi này).
Sau khi một chuyển đổi ADC bị bỏ qua, việc lấy mẫu tiếp theo dựa trên kênh ADC
đã chọn sẽ tựđộng diễn ra. Sau đó bit GO/DONE có thểđược set để bắt đầu chuyển đổi ADC.
Chú ý: Bit GO/DONE không nên được set trong cùng một lệnh với lệnh mở
module ADC.
Cặp thanh ghi ADRESH và ADRESL dùng để lưu kết quả ADC 10 bit. Module ADC cho phép ta lựa chọn việc canh trái hay canh phải kết quả 10 bit trong thanh ghi kết quả bằng cách xóa hoặc set bit ADFM. Các bit còn lại mang giá trị là 0.
4.8 Hoạt động của module ADC trong chếđộ ngủ:
Module ADC có thể hoạt động trong chếđộ ngủ (Sleep). Điều này yêu cầu nguồn xung clock cung cấp cho ADC phải từ dao động RC (ADCS1:ADCS0 = 11). Khi xung clock RC được chọn, module ADC sẽ đợi một chu kỳ máy trước khi bắt đầu tiến hành chuyển đổi ADC. Điều này cho phép lệnh SLEEP có thể được thực thi mà không gây nhiễu đến quá trình ADC. Khi chuyển đổi ADC hoàn tất, bit GO/DONE sẽ bị xóa và kết quảđược lưu vào cặp thanh ghi ADRESH, ADRESL. Nếu ngắt ADC được cho phép, nó sẽ làm VĐK thoát khỏi chếđộ ngủ. Nếu ngắt không được cho phép, module ADC sau đó sẽ bị tắt mặc dù bit ADCON vẫn còn ở mức cao.
Khi nguồn xung clock khác được chọn chứ không phải RC, lệnh SLEEP sẽ làm cho chuyển đổi ADC hiện tại bị bỏ qua và module ADC sẽ bị tắt dù bit ADCON vẫn còn
đang ở mức 1.
4.9 Ảnh hưởng của Reset:
Một reset thiết bị sẽ buộc tất cả các thanh ghi rơi vào trạng thái Reset của chúng.
Điều này buộc module ADC bị tắt và bất kỳ chuyển đổi ADC nào cũng bị bỏ qua. Tất cả
các chân ngõ vào A/D sẽđược cấu hình là các ngõ vào Analog.
Giá trị trong cặp thanh ghi ADRESH:ADRESL không bị thay đổi trong một Reset Power-on. Cặp thanh ghi này sẽ chứa một giá trị không biết trước sau reset Power-on.
CHƯƠNG V : ĐIỆN THẾ THAM CHIẾU VÀ CÁC BỘ SO
SÁNH ĐIỆN
5.1 Module Comparator:
5.1.1 Giới thiệu module comparator :
Module so sánh (Compararor) chứa 2 bộ so sánh tương tự. Ngõ vào của bộ so sánh
được đa hợp với các chân xuất nhập từ RA0 đến RA3 trong khi ngõ ra lại đa hợp với các chân RA4 và RA5. Điện thế trên chip cũng có thểđưa vào ngõ vào của bộ so sánh.
Thanh ghi CMCON điều khiển ngõ vào và ngõ ra của bộ so sánh.
Bit 7 C2OUT: Bit cho biết kết quả ngõ ra của bộ so sánh 2 Khi C2INV = 0: 1: Nếu C2Vin+ > C2Vin- 0: Nếu C2Vin+ < C2Vin- Khi C2INV = 1: 1: Nếu C2Vin+ < C2Vin- 0: Nếu C2Vin+ > C2Vin- Bit 6 C1OUT : Bit ngõ ra bộ so sánh 1
Khi C1INV = 0: 1: Nếu C1Vin+ > C1Vin- 0: Nếu C1Vin+ < C1Vin- Khi C1INV = 1: 1: Nếu C1Vin+ < C1Vin- 0: Nếu C1Vin+ > C1Vin- Bit 5 C2INV : Bit đảo ngõ ra bộ so sánh 2
1: Ngõ ra C2 đảo
0: Ngõ ra C2 không đảo Bit 4 C1INV: Bit đảo ngõ ra bộ so sánh 1
1: Ngõ ra C1 đảo
0: Ngõ ra C1 không đảo
Bit 3 CIS: Bit chuyển đổi ngõ vào bộ so sánh Khi CM2:CM0 = 110:
1: C1 Vin- nối với chân RA3/AN3 C2 Vin- nối với chân RA2/AN2 0: C1 Vin- nối với chân RA0/AN0 C1 Vin- nối với chân RA1/AN1
Bit 2-0 CM2:CM0: Bit chọn chếđộ hoạt động của bộ so sánh.
5.1.2 Cài đặt chếđộ cho bộ so sánh:
Có 8 chế độ hoạt động của bộ so sánh, thanh ghi CMCON được sử dụng để lựa chọn những chế độ này. Thanh ghi TRIS điều khiển các chân I/O của bộ so sánh trong mỗi chế độ. Nếu chế độ so sánh bị thay đổi, ngõ ra của bộ so sánh sẽ không còn chính xác nữa.
Lưu ý: Các ngắt do bộ so sánh sinh ra nên được cấm trong suốt quá trình thay đổi chếđộ hoạt động, nếu không các ngắt ngoài ý muốn có thể sinh ra.
Một bộ so sánh đơn được trình bày trong hình bên cạnh đây, nó cho chúng ta biết sự thay đổi trạng thái logic ngõ ra tương ứng với trạng thái tín hiệu Analog ngõ vào.
Khi VIN+ > VIN- thì ngõ ra lên mức cao và ngược lại.
Tại những cạnh này ngõ ra không biết chắc chắn.
5.1.3 Nguồn tham chiếu của bộ so sánh:
Một nguồn tham chiếu nội hoặc ngoại có thể được sử dụng. Việc lựa chọn nguồn nội hay ngoại tùy thuộc vào chếđộ hoạt động của bộ so sánh.
5.1.3.1 Tín hiệu điện thế tham chiếu ngoại:
Khi sử dụng nguồn tham chiếu ngoại, module so sánh có thể được cấu hình hoạt
động từ một hoặc 2 nguồn so sánh khác nhau. Điện thế so sánh phải nằm trong khoảng từ
Vss đến Vdd và điện áp này có thểđược đưa vào bất cứ một chân nào của bộ so sánh.
5.1.3.2 Tín hiệu điện thế tham chiếu nội:
Module so sánh cũng cho phép lựa chọn một điện thế so sánh nội dùng cho các bộ
so sánh. Tín hiệu tham chiếu nội được sử dụng trong chế độ so sánh CM2:CM0 = 010. Trong chếđộ này tín hiệu so sánh nội được đưa vào chân VIN+ của 2 bộ so sánh.
5.1.4 Thời gian đáp ứng:
Thời gian đáp ứng là thời gian tính từ khi lựa chọn một điện thế tham chiếu hoặc một tín hiệu ở ngõ vào cho đến khi có một giá trịđiện áp hợp lý ở ngõ ra.
5.1.5 Tín hiệu ngõ ra của các bộ so sánh:
Tín hiệu ngõ ra của các bộ so sánh được đọc thông qua thanh ghi CMCON khi các bit này đã sẵn sàng. Ngõ ra của các bộ so sánh có thể được nối trực tiếp với các chân xuất nhập RA4 và RA5, các chân này phải được cấu hình là ngõ ra trong chếđộ này.
Chú ý:
- Khi các chân port được cấu hình là các chân ngõ vào Analog, việc đọc các thanh ghi port sẽ cho giá trị là “0”
5.1.6 Ngắt của các bộ so sánh:
Cờ ngắt CMIF của các bộ so sánh được bật lên khi giá trị ngõ ra của các bộ so sánh thay đổi so với giá trị của bit CMxOUT. Cờ ngắt này phải được xóa bằng phần mềm để
một ngắt kế tiếp có thể xảy ra.
Ngoài ra để một ngắt có thể xảy ra chúng ta cần phải set các bit CMIE, PEIE, GIE lên 1
5.1.7 Hoạt động của các bộ so sánh trong chếđộ ngủ:
Các bộ so sánh vẫn hoạt động trong chếđộ ngủ và các ngắt vẫn có thể xảy ra nếu
được cho phép. Do đó các ngắt này sẽđánh thức VĐK.
5.1.8 Ảnh hưởng của Reset:
Khi một Reset thiết bị xảy ra, nó sẽ buộc thanh ghi CMCON về trạng thái reset của nó, làm cho module rơi vào chếđộ tắt, CM2:CM0 = 111.
Các thanh ghi liên quan đến module so sánh:
5.2 Module điện áp tham chiếu :
5.2.1 Giới thiệu module điện thế tham chiếu
Module điện áp tham chiếu so sánh được sử dụng chủ yếu với module so sánh khi cần sử dụng nguồn so sánh là nguồn nội.
Module điện áp tham chiếu bao gồm một hệ thống 16 điện trở, hệ thống điện trở
này sẽ cung cấp cho chúng ta một điện áp tham chiếu có thề lập trình được .
Dãy điện trở này được chia nhỏ ra để cung cấp cho chúng ta các điện thế tham chiếu khác nhau.
5.2.2 Thanh ghi điều khiển CVRCON:
Bit 7 CVREN: Bit cho phép CVR hoạt động. 1: Cung cấp nguồn cho CVR
0: Ngưng cấp nguồn cho CVR.
Bit 6 CVROE: Cho phép ngõ ra CVR
1: Điện áp CVREF là ngõ ra trên chân RA2 0: Điện áp CVREF không kết nối với chân RA2 Bit 5 CVRR: Bit lựa chọn dãi giá trị hoạt động cùa CVREF
1: 0 đến 0.75 CVRSRC, với kích thước mỗi buớc là CVRSRC/24
0: 0.25 CVRSRC đến 0.75 CVRSRC, với kích thuớc bước là CVRSRC/32 Bit 4 Không sử dụng, giá trị là 0
Bit 3-0 CVR3:CVR0: Các bit lựa chọn giá trị VREF ( 0 <= VR3:VR0 <= 15) Khi VRR =1:
VREF = ( VR<3:0>/24) * Vdd Khi VRR = 0:
VREF = ¼ * VDD + ( VR<3:0>/32) * Vdd Bảng điện thế tham chiếu tiêu biểu với VDD=5.0V
VREF CVR3:CVR0 CVRR =1 CVRR =0 0000 0.00V 1.25V 0001 0.21V 1.14V 0010 0.42V 1.56V 0011 0.63V 1.72V 0100 0.83V 1.88V 0101 1.04V 2.03V 0110 1.25V 2.19V 0111 1.46V 2.34V 1000 1.67V 2.50V 1001 1.88V 2.66V 1010 2.08V 2.81V 1011 2.29V 2.97V 1100 2.50V 3.13V 1101 2.71V 3.28V 1110 2.92V 3.44V 1111 3.13V 3.59V
5.2.3 Độ chính xác của điện thế tham chiếu:
Giá trị điện thế VREF không thể bằng Vdd hay Vss được vì có hai con transistor ở
hai đầu.
5.2.4 Hoạt động của module VREF trong trạng thái ngủ
Khi VĐK thoát khỏi trạng thái ngủ hay watchdog timer, nội dung của thanh ghi CVRCON sẽ không còn tác dụng. Để hạn chế công suất tiêu thụ, trong chế độ ngủ
module điện thế tham chiếu nên cấm.
5.2.5 Trạng thái của module khi reset:
Khi VĐK được reset nó sẽ xóa bit CVREN, bit CVROE, bit CVRR và các bit CVRCON<3:0>
5.2.6 Sử dụng module với các mạch ngoài :
Nên nhớ rằng module VREF hoạt động độc lập với module comparator. Ngõ ra của module này có thểđược kết nối với chân ngõ ra nếu bit tương ứng trong thanh ghi TRIS
được xóa. Việc cho phép module VREF cung cấp điện thế cho các mạch ngoài sẽ làm tăng công suất của VĐK. Ngoài ra module này có thể dùng như bộ biến đổi D/A đơn giản. Do sự giới hạn về dòng điện ngõ ra nên một Bufer điện thếđược sử dụng để đảm bảo độ chính xác của tín hiệu điện thế.
PHẦN II
CÁC THÀNH PHẦN CỦA KIT
THỰC TẬP PIC 16F877A
¾ CHƯƠNG I: HIỂN THỊ LED ĐƠN.
¾ CHƯƠNG II: HIỂN THỊ LED 7 ĐOẠN.
¾ CHƯƠNG III: ĐÈN GIAO THÔNG.
¾ CHƯƠNG IV: CHẠY CHỮ LED MATRẬN.
¾ CHƯƠNG V: HIỂN THỊ LCD.
¾ CHƯƠNG VI: ADC
¾ CHƯƠNG VII: BÀN PHÍM GIAO TIẾP LCD.
¾ CHƯƠNG VIII: GIAO TIẾP I2C
CHƯƠNG I : HIỂN THỊ LED ĐƠN 1.1 Giới Thiệu Chung:
LED (viết tắt của Light Emitting Diode, có nghĩa là điốt phát quang) là các điốt có khả năng phát ra ánh sáng hay tia hồng ngoại, tử ngoại. Cũng giống nhưđiốt, LED được cấu tạo từ một khối bán dẫn loại p ghép với một khối bán dẫn loại n.
Hoạt động của LED giống với nhiều loại điốt bán dẫn. Khối bán dẫn loại p chứa nhiều lỗ trống tự do mang điện tích dương nên khi ghép với khối bán dẫn n (chứa các
điện tử tự do) thì các lỗ trống này có xu hướng chuyễn động khuếch tán sang khối n. Cùng lúc khối p lại nhận thêm các điện tử (điện tích âm) từ khối n chuyển sang. Kết quả
là khối p tích điện âm (thiếu hụt lỗ trống và dư thừa điện tử) trong khi khối n tích điện dương (thiếu hụt điện tử và dư thừa lỗ trống).
Ở biên giới hai bên mặt tiếp giáp, một số điện tử bị lỗ trống thu hút và khi chúng tiến lại gần nhau, chúng có xu hướng kết hợp với nhau tạo thành các nguyên tử trung hòa.
Quá trình này có thể giải phóng năng lượng dưới dạng ánh sáng (hay các bức xạ điện từ có bước sóng gần đó).
Tùy theo mức năng lượng giải phóng cao hay thấp mà bước sóng ánh sáng phát ra khác nhau (tức màu sắc của LED sẽ khác nhau). Mức năng lượng (và màu sắc của LED) hoàn toàn phụ thuộc vào cấu trúc năng lượng của các nguyên tử chất bán dẫn.
LED thường có điện thế phân cực thuận cao hơn điốt thông thường, trong khoảng 1,5
đến 3 V. Nhưng điện thế phân cực nghịch ở LED thì không cao. Do đó, LED rất dễ bị hư
hỏng do điện thế ngược gây ra.
Loại LED Điện thế phân cực thuận
Đỏ 1,4 - 1,8V
Vàng 2 - 2,5V
1.2 Mạch Nguyên Lý L7 1 2 L5 1 2 L3 1 2 VCC L6 1 2 4R2 330 1 2 3 4 5 6 7 8 9 L2 1 2 LEDDON 1 2 3 4 5 6 7 8 L4 1 2 L0 1 2 L1 1 2
Với VCC = 5VDC , điện áp trung bình trên mỗi LED là 2V, dòng qua LED là 10mA thì điện trở hạn dòng cho LED là:
Rled = mA VDC VDC 10 2 5 − = 300Ω Chọn Rled = 330 Ω
CHƯƠNG II : HIỂN THỊ LED 7 ĐOẠN
2.1 Các khái niệm cơ bản
Trong các thiết bị, để báo trạng thái hoạt động của thiết bịđó cho người sử dụng với thông số chỉ là các dãy sốđơn thuần, thường người ta sử dụng "led 7 đoạn". Led 7 đoạn
được sử dụng khi các dãy số không đòi hỏi quá phức tạp, chỉ cần hiện thị số là đủ, chẳng hạn led 7 đoạn được dùng để hiển thị nhiệt độ phòng, trong các đồng hồ treo tường bằng
điện tử, hiển thị số lượng sản phẩm được kiểm tra sau một công đoạn nào đó...
Led 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo hình và có thêm một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên phải của led 7 đoạn.
Tám led đơn trên led 7 đoạn có Anode(cực +) hoặc Cathode(cực -) được nối chung với nhau vào một điểm, được đưa chân ra ngoài để kết nối với mạch điện. 8 cực còn lại trên mỗi led đơn được đưa thành 8 chân riêng, cũng được đưa ra ngoài để kết nối với mạch điện. Nếu led 7 đoạn có Anode(cực +) chung, đầu chung này được nối với +Vcc, các chân còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 0. Nếu led 7 đoạn có Cathode(cực -) chung, đầu chung này được nối xuống Ground (hay Mass), các chân còn lại dùng đểđiều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 1.
Vì led 7 đoạn chứa bên trong nó các led
đơn, do đó khi kết nối cần đảm bảo dòng qua mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led. Nếu kết nối với nguồn 5V có thể hạn dòng bằng
điện trở 330Ω trước các chân nhận tín hiệu điều
khiển Sơ đồ vị trí các led được trình bày như hình
bên: Các điện trở 330Ω là các điện trở bên ngoài
được kết nối để giới hạn dòng điện qua led nếu led 7 đoạn được nối với nguồn 5V. Chân nhận tín hiệu a điều khiển led a sáng tắt, ngõ vào b đểđiều khiển led b. Tương tự với các chân và các led còn lại.
2.2 Kết nối với Vi Điều Khiển
Ngõ nhận tín hiệu điều khiển của led 7 đoạn có 8 đường, vì vậy có thể dùng 1 Port nào đó của Vi điều khiển đểđiều khiển led 7 đoạn. Như vậy led 7 đoạn nhận một dữ liệu 8 bit từ Vi điều khiển để điều khiển hoạt động sáng tắt của từng led led đơn trong nó, dữ
liệu được xuất ra điều khiển led 7 đoạn thường được gọi là "mã hiển thị led 7 đoạn". Có hai kiểu mã hiển thị led 7 đoạn: mã dành cho led 7 đoạn có Anode (cực +) chung và mã dành cho led 7 đoạn có Cathode (cực -) chung. Chẳng hạn, để hiện thị số 1 cần làm cho các led ở vị trí b và c sáng, nếu sử dụng led 7 đoạn có Anode chung thì phải đặt vào hai chân b và c điện áp là 0V (mức 0) các chân còn lại được đặt điện áp là 5V(mức 1), nếu sử dụng led 7 đoạn có Cathode chung thì điện áp (hay mức logic) hoàn toàn ngược lại, tức là phải đặt vào chân b và c điện áp là 5V (mức 1).
Bảng mã hiển thị led 7 đoạn:
Phần cứng được kết nối với 1 Port bất kì của Vi điều khiển, để thuận tiện cho việc xử lí về sau phần cứng nên được kết nối như sau: Px.0 nối với chân a, Px.1 nối với chân