Chöông 3 giới thiệu về PIC 16f877a

16 306 0
Chöông 3 giới thiệu về PIC 16f877a

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 3:Giới thiệu PIC 16f877a 3.1Đây vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit Mỗi lệnh thực thi chu kì xung clock Tốc độ hoạt động tối đa cho phép 20 MHz với chu kì lệnh 200ns Bộ nhớ chương trình 8Kx14 bit, nhớ liệu 368x8 byte RAM nhớ liệu EEPROM với dung lượng 256x8 byte Số PORT I/O với 33 pin I/O Các đặc tính ngoại vi bao gồm khối chức sau:  Timer0: đếm bit với chia tần số bit  Timer1: đếm 16 bit với chia tần số, thực chức đếm dựa vào xung clock ngoại vi vi điều khiển hoạt động chế độ sleep  Timer2: đếm bit với chia tần số, postcaler Hai Capture/so sánh/điều chế độ rông xung 3.2 Sơ đồ chân vi điều khiển PIC 3.3 TỔ CHỨC BỘ NHỚ Cấu trúc nhớ vi điều khiển PIC16F877A bao gồm nhớ chương trình (Program memory) nhớ liệu (Data Memory) 3.3.1.BỘ NHỚ CHƯƠNG TRÌNH Bộ nhớ chương trình vi điều khiển PIC16F877A nhớ flash, dung lượng nhớ 8K word (1 word = 14 bit) phân thành nhiều trang (từ page0 đến page 3) Như nhớ chương trình có khả chứa 8*1024 = 8192 lệnh (vì lệnh sau mã hóa có dung lượng word (14 bit).Để mã hóa đòa 8K word nhớ chương trình, đếm chương trình có dung lượng 13 bit (PC).Khi vi điều khiển reset, đếm chương trình đến đòa 0000h (Reset vector) Khi có ngắt xảy ra, đếm chương trình đến đòa 0004h (Interrupt vector).Bộ nhớ chương trình không bao gồm:Bộ nhớ stack không đòa hóa đếm chương trình Bộ nhớ stack đề cập cụ thể phần sau 3.3.2 BỘ NHỚ DỮ LIỆU Bộ nhớ liệu PIC nhớ EEPROM chia làm nhiều bank Đối với PIC16F877A nhớ liệu chia làm bank Mỗi bank có dung lượng 128 byte, bao gồm ghi có chức đặc biệt SFG (Special Function Register) nằm vùng đòa thấp ghi mục đích chung GPR (General Purpose Register) nằm vùng đòa lại bank Các ghi SFR thường xuyên sử dụng (ví dụ ghi STATUS) đặt tất cà bank nhớ liệu giúp thuận tiện trình truy xuất làm giảm bớt lệnh chương trình Sơ đồ cụ thể nhớ liệu PIC16F877A sau: I – Các port PIC16F87X * PORTA ghi TRISA PORTA có độ rộng bit , port vào hai chiều Thanh ghi liệu trực tiếptương ứng TRISA Cho tất cảa bit TRISA chân tương ứng ởPORTA ngõ vào Cho tất bit TRISA chân tương ứng PORTA ngõ Việc đọc ghi PORTA đọc trạng thái chân , ngược lại việc ghi lên ghi qua port chốt Tất hoạt động ghi hoạt động đọc-điều chỉnh-ghi Bởi , liệu ghi đến port có nghĩa chân port đọc , giá trị chỉnh sửa ghi vào port chốt liệu Chân RA4 đa hợp với xung clock ngồi ngõ vào Timer0 thành chânRA4/T0CKI Chân RA4/T0CKI ngõ vào có Trigger Schmitt ngõ códạng mở Tất chân khác PORTA có ngõ vào TTL có ngõ điều khiển CMOS Những chân khác PORTA đa hợp với ngõ vào tương tự ngõ vàotương tự VREF Hoạt động chân chọn cách xố đặt bit điều khiển ghi ADCON1 ( A/D Control Register1 ).Thanh ghi TRISA điều khiển hướng chân RA , chúng sử dụng ngõ vào tương tự Người sử dụng cần phải bit ghi TRISA ln ln đặt sử dụng chúng ngõ vào tương tự * PORTB ghi TRISB PORTB có độ rộng bit , port vào hai chiều Ba chân PORTB đahợp với chức lập trình mức điện thấp (Low Voltage Programming ) :RB3/PGM , RB6/PGC RB7/PGD Mỗi chân PORTB có điện trở kéo lên yếu bên Một bit điều khiển đơn mở tất điện trở kéo lên 10 Điều thực cách xóa bit RBPU (OPTION_REG) Những điệntrở kéo lên tự động tắt chân port cấu ngõ Các điện trở bị cấm có Power-on Reset Bốn chân PORTB , RB7:RB4 ,có ngắt để thay đổi đặc tính Chỉ chân cấu ngõ vào gây ngắt Những chân vào RB7:RB4 ) so sánh với giá trị chốt trước lần đọc cuối PORTB Các kết khơng phù hợp ngõ chân RB7: RB4 OR với để phát ngắt Port Change RB với cờ ngắt RBIF ( INTCON ) Ngắt đánh thức thiết bị từ trạng thái nghĩ( SLEEP ) Trong thủ tục phục vụ ngắt , người sử dụng xóa ngắt theo cách sau a) Đọc ghi lên PORTB Điều kết thúc điều kiện khơng hòa hợp b)XóabitcờRBIF *PORTC ghi TRISC PORTC có độ rộng bit , port hai chiều Thanh ghi liệu trực tiếp tương ứng TRISC Cho tất bit TRISC chân tương ứng PORTC ngõ vào Cho tất bit TRISC chân tương ứng PORTC ngõ PORTC đa hợp với vài chức ngoại vi , chân PORTC có đệmTrigger Schmitt ngõ vào Khi I2C cho phép , chân 11 PORTC cóthể cấu hình với mức I2C bình thường , với mức SMBus cách sử dụng bit CKE (SSPSTAT) Khi chức ngoại vi cho phép , chúng tacần phải quan tâm đến việc định nghĩa bit TRIS cho chân PORTC Một vài thiết bị ngoại vi ghi đè lên bit TRIS để tạo nên chân ngõ , thiết bị ngoại vi khác ghi đè lên bit TRIS tạo nên chân ngõ vào Khi bit TRIS ghi đè bị tác động thiết bị ngoại vi cho phép ,những lệnh đọc-thay thế-ghi ( BSF , BCF , XORWF ) với TRISC nơi đến cần phải tránh Người sử dụng cần phải vùng ngoại vi tương ứng để đảm bảo choviệc đặt TRIS bit 12 13 *PORTD ghi TRISD PORTD TRISD khơng có PIC16F873 PIC16F876 PORTD port bit với đệm Trigger Schmitt ngõ vào Mỗi chân cấu hình riêng lẻ ngõ vào ngõ ra.PORTD cấu port vi xử lýrộng bit ( parallel slave port ) cách đặt bit điều khiển PSPMIDE ( TRISE ) Trong chế độ , đệm ngõ vào TTL PORTE ghi TRISE PORTE TRISE khơng có PIC16F873 PIC16F876 PORTE có ba chân (RE0/RD/AN5 , RE1/WR/AN6 , RE2/CS/AN7 ) chân cấu hình riêng lẻ ngõ vào ngõ Những chân có đệm TriggerSchmitt ngõ vào Những chân PORTE đóng vai trò ngõ vào điều khiển vào cho port vi xử lý bit PSPMODE ( TRISE ) set Trong chế độ , người sử dụng cần phải bit TRISE set , chân cấu ngõ vào số Cũng bảo đảm rằngADCON1 cấu hình cho vào số Trong chế độ , đệm ngõ vào làTTL Những chân PORTE đa hợp với ngõ vào tương tự Khi chọn cho ngõ vào tương tự , chân đọc giá trị ‘0’ TRISE điều khiểnhướng chân RE chân sử dụng ngõ vào tương tự Người sử dụng cần phải giữ chân 14 cấu ngõ vào sử dụng chúng ngõ vào tương tự 3.3.4 – Bộ nhớ liệu EEPROM nhớ chương trình FLASH Bộ nhớ liệu EEPROM nhớ chương trình FLASH cho phép đọc ghi suốt hoạt động bình thường phạm vi VDD Những thao tác xảy byte đơn cho nhớ liệu EEPROM từ đơn cho nhớ chương trìnhFLASH Một thao tác ghi gây xóa ghi , thao tác thực mộtbyte từ định Sự truy cập vào nhớ chương trình phải kể đến tính tốn checksum Ghi byte word tự động xóa vùng nhớ ghi lên giá trị ( xóatrước ghi ) Việc ghi vào nhớ liệu EEPROM khơng ảnh hưởng đến hoạt độngcủa thiết bị Việc ghi vào nhớ chương trình dừng thực thi lệnh qtrình ghi hồn thành Bộ nhớ chương trình khơng thể truy cập suốt qtrìnhghi Trong suốt q trình ghi , dao động tiếp tục chạy , thiết bị ngoại vi tiếp tục hoạt động kiện ngắt phát đợi q trình ghi hồn thành Khi q trình ghi hồn thành , lệnh hàng đợi lệnh thực rẽ nhánh đến vectơ ngắt xảy đến ngắt phép gây suốt q trình ghi Việc đọc ghi truy cập đến hai nhớ xảy giántiếp thơng qua việc đặt ghi mục đích chung ( SFR ) Có sáu ghi mục đích chung sử dụng EEDATA EEDATH EEADR EEADRH EECON1 EECON2 Bộ nhớ liệu EEPROM cho phép thao tác đọc ghi byte khơng can thiệp đến thao tác bình thường vi điều khiển Khi có trao đổi với nhớ liệu EEPROM , ghi EEADR giữ địa truy cập Phụ thuộc vào thao tác ,thanh ghi EEDATA giữ liệu ghi đọc địa ghiEEADR PIC16F873/874 có 128 byte cho nhớ liệu EEPROM PIC16F876/877 có 256 byte cho nhớ liệu EEPROM sử dụng tất bit EEADR 15 3.3.5 – Q trình đọc nhớ liệu EEPROM Q trình đọc nhớ liệu EEPROM u cầu địa cần truy cập phải ghi vào ghi EEADR xóa bit EEPGD Sau bit RD set , liệu phải sẵnsàng ghi EEDATA chu kỳ lệnh EEDATA giữ giá trị nàycho đến thao tác đọc bắt đầu ghi vi chương trình Các bước q trình đọc nhớ liệu EEPROM : Ghi địa cần truy cập vào ghi EEADR địa khơng lớn kích thước nhớ linh kiện PIC16F87X Xóa bit EEPGD để trỏ đến nhớ liệu EEPROM Set bit RD để bắt đầu thao tác đọc Đọc liệu từ ghi EEDATA: Q trình ghi liệu vào nhớ liệu EEPROM tiến hành qua vài bước Cả địa giá trị liệu cần phải ghi vào ghi mục đích chung SFR Bit EEPGD cần phải xóa , bit WREN phải set phép ghi Bit WREN phaỉ bị xóa suốt thời gian ngoại trừ q trình ghi vào nhớ liệuEEPROM Bit WR set bit WREN set 16 .. .3. 2 Sơ đồ chân vi điều khiển PIC 3. 3 TỔ CHỨC BỘ NHỚ Cấu trúc nhớ vi điều khiển PIC1 6F877A bao gồm nhớ chương trình (Program memory) nhớ liệu (Data Memory) 3. 3.1.BỘ NHỚ CHƯƠNG... hóa đếm chương trình Bộ nhớ stack đề cập cụ thể phần sau 3. 3.2 BỘ NHỚ DỮ LIỆU Bộ nhớ liệu PIC nhớ EEPROM chia làm nhiều bank Đối với PIC1 6F877A nhớ liệu chia làm bank Mỗi bank có dung lượng 128... EEDATA giữ liệu ghi đọc địa ghiEEADR PIC1 6F8 73/ 874 có 128 byte cho nhớ liệu EEPROM PIC1 6F876/877 có 256 byte cho nhớ liệu EEPROM sử dụng tất bit EEADR 15 3. 3.5 – Q trình đọc nhớ liệu EEPROM Q

Ngày đăng: 07/09/2017, 15:28

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan