Báo cáo đồ án đọc nhiệt độ hiển thị lên LCD

86 1K 5
Báo cáo đồ án đọc nhiệt độ hiển thị lên LCD

Đ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

Với phát triển không ngừng khoa học công nghệ, sống người ngày trở nên tiện nghi đại hơn. Điều đem lại cho nhiều giải pháp tốt hơn, đa dạng việc xử lý vấn đề tưởng chừng phức tạp gặp phải sống. Việc ứng dụng thành tựu khoa học kỹ thuật đại tất lĩnh vực phổ biến toàn giới, thay dần phương thức thủ công , lạc hậu ngày cải tiến đại hơn, hoàn mỹ hơn. Cùng với phát triển chung đó, nước ta mạnh mẽ tiến hành công công nghiệp hóa đại hóa đất nước để theo kịp phát triển nước khu vực giới. Trong lĩnh vực điện tử ngày đóng vai trò quan trọng việc phát triển kinh tế đời sống người. Sự phổ biến đóng góp không nhỏ tới phát triển tất ngành sản xuất, giải trí, .trong năm gần đặc biệt lĩnh vực tự động nhiệt độ, có phát triển mạnh mẽ với nhiều hình thức, phương pháp tiếp cận, chia sẻ thông tin đại toàn diện hơn. Với lòng đam mê, yêu thích lĩnh vực này, nhóm định chọn đề tài “ĐỌC NHIỆT ĐỘ HIỂN THỊ LÊN LCD” làm đề tài môn học. Trong thời gian thực đề tài cộng với kiến thức nhiều hạn chế, nên đồ án không tránh khỏi thiếu sót, nhóm thực mong đóng góp ý kiến thầy cô bạn sinh viên. Nhóm sinh viên thực đề tài LỜI CẢM ƠN Trong suốt khóa học XXX, với giúp đỡ quý thầy cô giáo viên hướng dẫn mặt từ nhiều phía thời gian thực đề tài, nên đề tài hoàn thành thời gian qui định. Nhóm thực xin chân thành cảm ơn đến : Quí thầy cô khoa Điện tử -Tin học giảng dạy kiến thức chuyên môn làm sở để thực tốt đồ án môn học tạo điều kiện thuận lợi cho chúng em hoàn tất đồ án môn học này. Đặc biệt, Thầy XXX ,giáo viên hướng dẫn đề tài nhiệt tình giúp đỡ cho nhóm thực lời dạy quý báu, giúp nhóm thực định hướng tốt thực đề tài. Tất bạn bè giúp đỡ động viên suốt trình làm đề tài. TP.HCM Ngày 29 Tháng năm 2011 Nhóm sinh viên thực NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ---o0o-- . . . . . . . . . . . . . . . . . Tp. Hồ Chí Minh, ngày… tháng …năm 2010 Giảng viên hướng dẫn NGUYỄN TRỌNG KHANH c CHƯƠNG 1:CHƯƠNG DẪN NHẬP I) ĐẶT VẤN ĐỀ : Trong công nghiệp đời sống có nhiều yếu tố ảnh hưởng đến trình sản xuất ảnh hưởng đến người. Trong nhiệt độ yếu tố thường đề cập đến nhiều nhất. Vì đời mạch điện tử đo nhiệt độ cần thiết. Với phát triển khoa học kỹ thuật, vi điều khiển đời giúp cho dễ dàng thiết kế mạch đo nhiệt độ với độ xác cao, đáng tin cậy… mà chi phí không cao II) GIỚI HẠN ĐỀ TÀI : Với quy mô đồ án tốt môn học, nên nhóm chúng em cố gắng làm mà giảng viên yêu cầu, kiến thức hạn chế nên chúng em thực yêu cầu sau : 1. Hiển thị nhiệt độ lên LCD 2. Nhập thông số cài đặt nhiệt độ từ nút nhấn 3. Báo động nhiệt độ mức cho phép. III) MỤC ĐÍCH NGHIÊN CỨU : Mục đích trước hết thực đề tài để hoàn tất chương trình môn học để đủ điều kiện hoàn thành yêu cầu môn học. Cụ thể nghiên cứu đề tài chúng em muốn phát huy thành ứng dụng vi điều khiển để váo mạch thực tế. Nó kinh nghiệm cho chúng em tiến đên đồ án tốt nghiệp tới. Ngoài trình thực đề tài hội để chúng em tự kiểm tra lại kiến thức học trường. Đồng thời phát huy tính sáng tạo, khả giải vấn đề nhu cầu đặt IV) ĐỐI TƯỢNG NGHIÊN CỨU: 1.Các phương án điều khiển xử lý liệu 2.Tìm hiểu vi xử lý PIC16F877A 3.Tìm hiểu LCD 4.Tìm hiểu cảm biến nhiệt độ LM35 5. Ứng dụng viết chương trình xử lí CHƯƠNG : GIỚI THIỆU VỀ CÁC LINH KIỆN 2.1) Giới thiệu PIC: 2.1.1) Sơ lược vi điều khiển PIC 16F877A: • Sơ đồ chân : Hình 2.1 Sơ đồ chân PIC 16F877A • Sơ đồ nguyên lý: Hình 2.2 Sơ đồ nguyên lý PIC 16F877A • Nhận xét: Từ sơ đồ chân sơ đồ nguyên lý trên, ta rút nhận xét ban đầu sau :  PIC16F877A có tất 40 chân  40 chân chia thành PORT, chân cấp nguồn, chân GND, chân thạch anh chân dùng để RESET vi điều khiển.  port PIC16F877A bao gồm :  PORTB : chân  PORTC : chân  PORTD : chân  PORTA : chân  PORT E : chân. Mỗi chân vi điều khiển PIC 16F877A có chức khác nhau. Trong có số chân đa công dụng: chân hoạt động đường xuất nhập chân chức đặc biệt dùng để giao tiếp với thiết bị ngoại vi. 2.1.2) Cấu trúc phần cứng PIC 16F877A: PIC tên viết tắt “ Programmable Intelligent computer” hãng General Instrument đặt tên cho vi điều khiển họ. Hãng Micrchip tiếp tục phát triển sản phầm hàng tạo gần 100 loại sản phẩm khác nhau. PIC16F887A dòng PIC phổ biến, đầy đủ tính phục vụ cho hầu hết tất ứng dụng thực tế. Đây dòng PIC dễ cho người làm quen với PIC học tập tạo tản họ vi điều khiển PIC mình.  Cấu trúc tổng quát PIC16F877A sau :  8K Flash Rom  368x8 bytes Ram  256 bytes EFPROM  port vào với tín hiệu điều khiển độc lập  định thời Timer0 Timer2 bit  định thời Timer1 16 bit hoạt động chế độ tiết kiệm lượng với nguồn xung clock  Capture/ Compare/ PWM  biến đổi Analog -> Digital 10 bit, ngõ vào  so sánh tương tự  định thời giám sát (Watch Dog Timer)  cổng song song bit với tín hiệu điều khiển  cổng nối tiếp  15 nguồn ngắt  Sơ đồ khối 3.2.2.2 Vòng lặp while while () thực thi hay thực thi lặp lại có giá trị true. Nếu có giá trị false câu lệnh bị kết thúc lập tức. 3.2.2.3 Vòng lặp for Dạng C89 vòng lặp for là: for ( ; ; ) Nó tổng quát hóa CCS thành: for ( ; ) Khi ba biểu thức diện câu lệnh for, mệnh đề: for (e1; e2; e3) s; tương đương với e1; while (e2) { s; e3; } Bất kì biểu thức vòng lặp for loại bỏ. Một biểu thức bị (e2 chẳng hạn) làm cho vòng lặp biến thành vòng lặp vô hạn. Thí dụ: vòng lặp for sau biểu thức dạng phức hợp ngăn cách dấu chấm phẩy ;: for (x=10,y=1;((x>4) && (y4) && (y lựa chọn phần tử, trỏ ++ -- - dấu ! ~ phép toán Bool * & sizeof mảng tiền tố tăng/giảm + (cast) số dương/âm NOT/phần đổi tham tham từ phải sang trái bù kiểu bit kiểu chiếu ngược chiếu độ lớn *, /, % nhân/chia/mô dun + - cộng/trừ > phép toán bit left shift/right shift >= quan hệ lớn hơn/lớn hay == != với/khác với & phép toán bit AND ^ phép toán bít XOR | phép toán bit OR && phép toán bool AND || phép toán bool OR ?: điều kiện tam phân = phép gán giá trị trực tiếp < += *=, /=, = phép va |= gán bit shift phép gán bit AND/XOR/OR toán tử , từ trái sang phải 3.2.5 Khai báo liệu 3.2.5.1 Các kiểu liệu Nhiều ngôn ngữ lập trình kể C, biểu thị số hai dạng: nguyên thực (hay không nguyên). Sự khác hình thành từ khía cạnh kỹ thuật cách thức xử lý lưu trữ giá trị nhớ. Kiểu nguyên viết dạng int dùng để biểu thị số nguyên. Kiểu nguyên có nhiều kích cỡ khác tùy theo phân lượng nhớ dùng độ lớn cao nhất1. Các từ khóa, có tên định tính, dùng thêm vào để điều chỉnh lại kích cỡ là: short, long long long2. Kiểu kí tự mà từ khóa char, biểu thị đơn vị nhỏ địa hóa (bởi kiến trúc máy tính) thường byte với bit. Dạng thực dùng để biểu thị số thập phân hay phận hữu tỉ. Mặc dù chúng không hoàn toàn xác mà biểu thị gần đúng. Có kiểu giá trị thực bao gồm: loại có độ xác đơn (có đặc tả float), loại có độ xác kép (có đặc tả double), loại có độ xác kép mở rộng (có đặc tả long double). Mỗi loại dùng để biểu thị giá trị không nguyên dạng khác nhau. Các kiểu nguyên có dấu (signed) hay không dấu (unsigned). Nếu không rõ khai báo mặc định (hiểu ngầm) loại có dấu. Một ngoại lệ kiểu char, signed char unsigned char khác nhau, kiểu char loại có dấu hay dấu. Đối với loại có dấu, bit có nghĩa cao dùng để biểu thị dấu (dương hay âm). Thí dụ số nguyên 16-bit loại có dấu dùng 15 bit để biểu thị giá trị (tuyệt đối) bit có nghĩa cao lại dùng biết số dương hay âm. Đối với loại không dấu bit lại dùng thêm vào để biểu thị giá trị. 3.2.5.2 Các số xác định giá trị biên Tập tin tiêu đề chuẩn limits.h xác định giá trị nhỏ lớn kiểu nguyên xác định giới hạn khác. Tập tin tiêu đề chuẩn xác định giá trị nhỏ lớn kiểu float, double, float.h long double. Nó xác định giới hạn khác liên quan tới việc xử lý giá trị dấu chấm động (floating-point) có độ xác đơn hay có độ xác kép chúng định nghĩa chuẩn IEEE 754. Bản số xác định biên kiểu nguyên thông thường Giá trị nhỏ Đặc tả hiểu ngầm Đặc tả viết rõ char viết y hệt CHAR_MIN CHAR_MAX signed char viết y hệt SCHAR_MIN SCHAR_MAX unsigned char viết y hệt UCHAR_MAX short signed short int SHRT_MIN SHRT_MAX unsigned short unsigned short int USHRT_MAX signed int INT_MIN INT_MAX unsigned unsigned int UINT_MAX long signed long int LONG_MIN LONG_MAX unsigned long unsigned long int ULONG_MAX LLONG_MIN2 LLONG_MAX2 ULLONG_MAX2 không viết hết, signed, hay int long long signed int unsigned long long long long unsigned long long int Giá trị lớn — Định tính long long hỗ trợ trình dịch thỏa mãn chuẩn C99. — Các limits.h LLONG_MIN, LLONG_MAX, ULLONG_MAX định nghĩa trình dịch tương ứng thỏa mãn chuẩn C99. 3.2.5.3 Các giá trị biên điển hình Sau danh sách kích cỡ biên điển hình kiểu nguyên. Các giá trị khác tùy theo kiến trúc (máy trình dịch). inttypes.h, ISO C cung cấp tiêu đề đó, có xác định kiểu nguyên có dấu dấu điều chắn kích cỡ nằm khoảng đến 64 bit. Kích cỡ biên điển hình kiểu nguyên Đặc tả hiểu ngầm Đặc tả viết rõ Số Số bit byte Giá trị nhỏ Giá trị lớn Char viết y hệt -128 or 127 hay 255 signed char viết y hệt -128 127 unsigned char viết y hệt 255 Short signed short int 16 -32 768 32 767 16 65 535 unsigned unsigned short short int Long signed long int 32 -2 147 483 648 147 483 647 unsigned long unsigned long int 32 294 967 295 long long signed long long int1 unsigned long long unsigned long int1 long 64 64 -9 223 372 036 223 372 036 854 854 775 808 775 807 18 446 744 073 709 551 615 — Định tính long long hỗ trợ trình dịch thỏa mãn chuẩn C99. Kích cỡ giới hạn kiểu int (mà định tính short, long, hay long long) thay đổi khác (nhiều kiểu nguyên khác) tùy theo sư thiết lập (của trình dịch hay kiến trúc máy). Cho nên, thao tác thông thường định nghĩa đồng nghĩa size_t — tập tin sys/types.h — đó, đủ sức để thích ứng với giá trị lớn trỏ mà cấp phát hệ thống. Đặc tả UNIX đơn kiểu int phải có 32 bit, chuẩn ISO C yêu cầu có 16 bit. 3.2.6 Các mảng 3.2.6.1Khai báo mảng tĩnh Trong C, mảng dùng để biểu thị cấu trúc dãy nhiều giá trị có kiểu xếp thứ tự. Một mảng gọi tĩnh độ dài dãy mảng cố định. Sự khai báo mảng tĩnh có cú pháp sau: int array[n]; Trong đó, tên mảng array chứa n giá trị kiểu int. Trong thực hành, phần nhớ cho n giá trị nguyên để dành riêng gán cho mảng (mặc dù giá trị phần tử mảng chưa xác định). Biến array thực chất kiểu tham chiếu kiểu nguyên; khởi thủy tới địa giá trị mảng. 3.2.6.2 Truy cập phần tử Các giá trị mảng gọi phần tử mảng. • Một cách để truy cập đến phần tử dùng đến cặp kí tự ngoặc vuông dạng [k]. Trong k số (hay vị trí thứ tự đếm từ 0). Như vậy, phần tử thứ k mảng array có cú pháp array[k] Giá trị trả array[k] giá trị mà chứa vị trí k. Thoạt nhìn cú pháp việc truy cập trông giống cú pháp mảng array khai báo chức hoàn toàn khác nhau. Chỉ số bắt đầu mảng 0. Như vậy, số lớn mảng tổng số phần tử mảng trừ 1. Thí dụ mảng A có 10 phần tử giá trị phần tử A A[0] phần tử cuối dùng A[9]. • Một cách truy cập khác dùng trỏ số học để tham chiếu đến giá trị phần tử mảng. Bảng sau minh họa cách dùng hai phương pháp: Array Chỉ số trỏ số học Phần tử vị trí Kiểu dùng array[0] array[1] Dùng trỏ *array n array[2] array[n] *(array + 1) *(array + 2) *(array + n) 3.2.6.3 Các mảng động C không cung cấp phương tiện để kiểm tra biên cho mảng. Nghĩa bắt lỗi gán cho mảng số âm hay số vượt độ đài mảng đó. Và số mảng vượt khỏi độ dài sẵn có mảng đó. Vì mảng nhất, tức chứa liệu có chung kiểu nên hai thành phần thông tin cần nhớ địa phần tử kiểu liệu. Nhắc lại cú pháp để khai báo mảng tĩnh, tức tạo biến tham chiếu nguyên cấp phát vùng nhớ tương ứng cho nó: int array[n]; Cách biểu tái lập với giúp đỡ thư viện chuẩn C. Hàm calloc cung cấp cách đơn giản để cấp phát vùng nhớ. Hai tham số dùng đến số lượng phần tử kích cỡ (độ lớn) phần tử. Khi việc cấp phát nhớ hoàn thành, calloc trả trỏ tới phần tử gán cho phần tử giá trị khởi động 0. Nếu cấp phát vùng nhớ không thành công (vì nhớ không đủ chỗ trống hạn) calloc trả trỏ rỗng. Thí dụ: đoạn mã sau có chức tương đương với việc khai báo mảng tĩnh n phần tử có kiểu int: int *array; array = calloc(n, sizeof(int)); Tuy nhiên, điểm vượt trội cách khai báo việc sử dụng cấp phát vùng nhớ động . Kích cỡ mảng (tức lượng không gian nhớ cấp phát cách an toàn cho mảng) lại thay đổi sau khai báo. Một việc cấp phát vùng nhớ động không cần thiết phần nhớ nên trả cho hệ điều hành. Thao tác tiến hành hàm free. Nó cần tham số: tên trỏ mà trước xin cấp phát vùng nhớ. Một cách an toàn sau trả vùng nhớ cho hệ điều hành, người lập trình nên cài (hay gán) cho trỏ liên đới giá trị NULL để hủy bỏ địa mà tới (nhằm tránh gây hiệu ứng phụ việc tham chiếu trỏ gây ra). free(array); array = NULL; 3.2.6.4Các mảng đa chiều C có hỗ trợ việc dùng mảng đa chiều. Việc định nghĩa chúng giống tạo mảng mảng , thực tế không hoàn toàn đúng. Cú pháp sau: int array2D[số_hàng][số_cột]; Sẽ định nghĩa mảng hai chiều; chiều thứ có số_hàng phần tử. Chiều thứ hai có số_hàng * số_cột phần tử -- tập hợp số_cột phần tử mà phần tử chiều thứ nhất. Các mảng đa chiều hoàn toàn xem dãy trỏ. Trong thí dụ trên, array2D (nếu số_hàng 1) tham chiếu giá trị nguyên mà tới mảng số_cột phần tử. 3.2.6.5 Dãy kí tự Dãy kí tự thay đổi nội dung mà không cần đến thư viện chuẩn. Tuy nhiên, thư viện có nhiều hàm dùng cho dãy kí tự có kết thúc mảng kí tự kết thúc kiểu char. Trong phần từ "dãy" để dãy kí tự. Các hàm thường dùng là: • strcat(dest, source) - nối dãy kí tự source tiếp vào vị trí cuối dãy kí tự dest • strchr(source, c) - tìm vị trí xuất c dãy kí tự source trả trỏ tới vị trí hay trỏ trống c không tìm thấy source • a strcmp(a, b) - so sánh hai dãy kí tự a b (theo thứ tự từ điển); trả số âm nhỏ b, chúng nhau, dương a lớn • strcpy(dest, source) - chép thay kí tự dãy dest vào dãy dest • strlen(st) - trả độ dài st • strncat(dest, source, n) - nối tối đa n kí tự từ dãy source tiếp vào vị trí cuối dãy dest; kí tự sau dấu kết thúc null không chép vào • strncmp(a, b, n) - so sánh từ kí tự đầu tối đa n kí tự từ hai dãy a b (theo thứ tự từ điển); hàm trả số âm phần so sánh a nhỏ b, nhau, dương lớn • strncpy(dest, source, n) - chép từ đầu đến tối đa n kí tự từ dãy source vào dãy dest • strrchr(source, c) - tìm vị trí lần cuối kí tự c dãy source trả trỏ vào vị trí hay trỏ trống không tìm thấy c Các hàm dùng tới là: • strcoll(s1, s2) - so sánh hai dãy theo trình tự địa phương đặc thù • strcspn(s1, s2) - trả số kí tự s1 trùng với kí tự s2 • strerror(err) - trả dãy kí tự dạng thông báo lỗi ứng với mã (câu viết) err • strpbrk(s1, s2) - trả trỏ vào kí tự s1 mà trùng với kí tự s2 hay trỏ trống không tìm thấy • strspn(s1, s2) - trả số kí tự s1 mà không xuất s2 • strstr(source, subst) - trả trỏ tới vị trí dãy subst dãy source hay trả trỏ rỗng không tồn dãy bên source • strtok(s1, s2) - trả trỏ đến chia kí tự s2 token bên s1 mà phân • strxfrm(s1, s2, n) - chuyển đổi s2 thành s1 dùng quy tắc địa phương đặc thù CHƯƠNG : THIẾT KẾ VÀ THI CÔNG MẠCH 4.1- THI CÔNG 4.1.1- MẠCH NGUỒN V in - A C - + B R ID G E C 4700uF C 33uF V IN GN D VOU T R 150 LED VC C 7805 C 104 Hình 4.1:Sơ đồ mạch khối nguồn - Nguồn cung cấp cho tất khối 5VDC. - Điện áp xoay chiều sau qua cầu diode nắn tương đối phẳng. - Tụ C1 có nhiện vụ làm phẳng điện áp, tụ C2 C3 triệt tiêu xung gai có tần số cao thấp. - IC ổn áp 7805 có nhiệm vụ ổn định điện áp chuẩn 5VDC. - R1=150 ohm hạn dòng cho led đơn. Ta có: Vled=2V; Iled=20(mA ).  VR=VCC-Vled=5-2=3V. IR=Iled=20(mA).  R=VR/IR=3/20=150(ohm). 4.2.2.2- Khối xử lý, hiển thị giải mã : VC C SW VO U T PO R TC J4 C 1 1 2 2 13 33pF Y 14 12 31 4M hz C M C L R /V P P C R B /N T R B1 R B2 R B /P G M /V R E F -/C V R E F R B4 /V R E F R B5 K /C O U T R B /P G C /S S /C O U T R B /P G D R R R R R R A A A A A A /A N /A N /A N /A N /T O /A N R R R R R R R R C C C C C C C C /T O S O /T C K /T O S /C C P /C C P /S C K /S C L /S D /S D A /S D /T X/C K /R X/D T O S C /C L R R D O R D R D R D R D R D R D R D /P /P /P /P /P /P /P /P S S S S S S S S P P P P P P P P R E /R D /A N R E /W R /A N O S C /C L K R E /C S /A N VSS VD D P IC F 7 A VSS VD D 3 3 3 2 2 2 9 10 11 32 33pF VC C Hình 4.2: SỜ ĐỒ KHỐI XỬ LÝ VÀ GIẢI MÃ D D D D D D D D S W 1 1 V V E R R E R R R R R R R R SS D D LCD VC C VC C R PO R TD PO R TB Hình 4.3: KHỐI HIỂN THỊ 4.3 – CODE CHƯƠNG TRÌNH HIỂN THỊ NHIỆT ĐỘ LÊN LCD: PO R TB VS+ LM35 G N D U U PO R TD R 6K2 CHƯƠNG :KẾT QUẢ THỰC HIỆN Mạch chạy tốt hiển thị nhiệt độ lên LCD. TÀI LIỆU THAM KHẢO www.cdvt.com www.datasheet.4u.com www.dientuvietnam.com.vn Giáo trình vi điều khiển pic 16F877A – Biên soạn Nguyễn Trọng Khanh www.google.com www.picvietnam.com …………………………………………………………………………………… [...]...Hình 2.3 Sơ đồ khối bên trong của vi điều khiển 16F877A 2.1.3) Một số chế độ đặt biệt của vi điều khiển PIC 16F877A: 2.1.3.1) Dao động: PIC16F877A có thể hoạt động trong bốn chế độ dao động khác nhau: • LP low-power crystal • XT crystal/resonatpor • HS high-speed crystal/resonatpor • RC resistor/capacitor Hình 2.4 Các chế độ dao động Trong các chế độ LP, XT và HS chúng ta sử dụng thạch anh dao động nối... tác động bởi cạnh xuống của chân RB0/INT Bit 5 T0CS: Bit lựa chọn nguồn xung Clock cho Timer 0 1: Xung Clock cung cấp bởi nguồn ngồi qua chân RA4/T0CKI 0: Xung Clock cung cấp bởi nguồn dao động nội Bit 4 T0SE: Bit lựa chọn cạnh nào của xung clock tác động lên timer 0 1: Cạnh xuống 0: Cạnh lên Bit 3 PSA: Bit quyết định tốc độ đếm PS2:PS0 sẽ tác động lên Timer 0 hay WDT 1: Tốc độ đếm PS2:PS0 sẽ tác động... các bit điều khiển để cấu hình cho các chứa năng như: ngắt ngồi, Timer 0 chức năng kéo lên Vdd của các chân Port B, và thời gian chờ của WDT H hình 2.12 Option-Reg Register Bit 7 RBPU : Bit cho phép PORTB được kéo lên nguồn 1: Khơng cho phép PORTB kéo lên nguồn 0: Cho phép PORTB kéo lên nguồn Bit 6 INTEDG: Bít lựa chọn cạnh tác động ngắt (INTERRUPT EDGE) 1: Ngắt sẽ được tác động bởi cạnh lên của chân... các chân OSC1 và OSC2 để tạo dao động Việc lựa chọn tụ trong dao động thạch anh được lựa chọn dựa vào bảng sau: Hình 2.5 Giá trị tụ trong dao động thạch anh Tụ có giá trị lớn sẽ mang tính ổn định của dao động nhưng làm tăng thời gian khởi động Cách tính chu kỳ máy: Ví dụ ta sử dụng thạch anh 10Mhz Khi đó: Tần số dao động của thạch anh là Fosc = 10Mhz thì chu kỳ dao động của thạch anh là Tosc = 1/Fosc=... động lên WDT 0: Tốc độ đếm PS2:PS0 sẽ tác động lên Timer 0 Bit 2-0 PS2:PS0: Dùng để lựa chọn tốc độ đếm của timer hay WDT 2.1.3.9) Thanh ghi điều khiển ngắt INTCON (Interrupt Control Register): Hình 2.13 Intcon Register Bit 7 GIE: Bit cho phép ngắt tồn cục 1: Cho phép ngắt tồn cục 0: Khơng cho phép ngắt Bit 6 PEIE: Bit cho phép ngắt khi ghi vào EEPROM hồn tất 1: Cho phép ngắt ghi vào EEPROM hoạt động... Chế độ đếm được lựa chọn bằng cách set bit T0CS (OPTION_REG ) Trong chế độ đếm, thanh ghi TMR0 sẽ tăng lên khi có cạnh lên hoặc cạnh xuống xuất hiện trên chân T0CKL (cạnh lên hoặc cạnh xuống được lựa chọn bởi bit T0SE (OPTION_REG, xóa bit T0SE sẽ lựa chọn cạnh lên) • Ngắt Timer 0 Ngắt Timer 0 được tạo ra khi thanh ghi TMR0 tràn từ 0FFh đến 00h Khi xảy ra tràn, cờ T0IF(INTCON) được bật lên. .. 0000h, lúc đó cờ ngắt TMR1IF sẽ bật lên • Thanh ghi điều khiển Timer 1 Hình 2.22 T1CON Register Bit 7,6 Khơng sử dụng, đọc là 0 Bit 5,4 T1CKPS1 : T1CKPS0 : Các bit chọn tỉ lệ xung ngõ vào cho Timer1 11 1:8 10 1:4 01 1:2 00 1:1 Bit 3 T10SCEN : Bit cho phép bộ dao động Timer 1 Oscillator 1 : Cho phép dao động 0 : Khơng cho phép dao động Bit 2 T1SYNC : Bit lựa chọn đồng bộ hóa xung clock ngồi của Timer... dụng khi bit TMR1CS = 1) 1: Khơng đồng bộ hóa xung clock ngoại 0: Đồng bộ hóa xung clock ngoại Bit 1 TMR1CS : Bit chọn nguồn xung clock cho Timer 1 1: Chọn xung clock ngồi qua chân T1OSC/T1CKI ( tác động cạnh lên) 0: Chọn xung clock nội (Fosc/4) Bit 0 TMR1ON: Bit cho phép ngoặc ngưng Timer 1 1: Cho phép 0: Khơng cho phép • Chế độ định thời trong hoạt động cuả Timer 1 Chế độ định thời được lựa chọn bằng... Timer 0 chưa tràn Bit 1 INTF:Cờ báo ngắt ngồi RB0/INT 1: Có ngắt 0: Khơng xảy ra ngắt Bit 0 RBIF:Cờ báo ngắt khi có thay đổi trạng thái PORTB 1: Có thay đổi 0: Khơng có thay đổi xảy ra trên PORTB Chế độ Capture (Bắt giữ): 1: Một Capture thanh ghi TMR1 xảy ra( phải được xóa bằng phần mềm) 0: Khơng xảy ra Capture thanh ghi TMR1 Chế độ Compare ( So sánh): 1: Khi các giá trị so sánh trong thanh ghi TMR1 được... khối so sánh • CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển khối so sánh điện áp • ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển khối ADC 2.1.3.11.2) PORT B và thanh ghi TRISB: PORTB có 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 PortB sẽ đọc trạng thái của các chân ở Port B Việc ghi giá trị vào

Ngày đăng: 27/09/2015, 09:50

Từ khóa liên quan

Mục lục

  • LỜI CẢM ƠN

  • Nhóm sinh viên thực hiện

  • Nhận xét:

  • 2.2.1) Liquid crystal display ( LCD ) :

    • 3.2.1 Các mệnh đề lựa chọn (hay điều kiện)

      • 3.2.1.1 Dạng dùng từ khóa if:

      • 3.2.1.2 Dạng dùng từ khóa switch

      • 3.2.2 Các mệnh đề tái lặp (hay vòng lặp)

        • 3.2.2.1 Vòng lặp do

        • 3.2.2.2 Vòng lặp while

        • 3.2.2.3 Vòng lặp for

        • 3.2.3 Các mệnh đề nhảy (hay bước nhảy)

          • 3.2.3.1 goto

          • 3.2.3.2 Continue

          • 3.2.3.3 break

          • 3.2.3.4 Return

          • 3.2.4 Các phép toán

          • 3.2.5 Khai báo dữ liệu

            • 3.2.5.1 Các kiểu dữ liệu cơ bản

              • 3.2.5.2 Các hằng số xác định các giá trị biên

              • 3.2.5.3 Các giá trị biên điển hình

              • 3.2.6 Các mảng

                • 3.2.6.1Khai báo mảng tĩnh

                • 3.2.6.2 Truy cập các phần tử

                • 3.2.6.3 Các mảng động

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

Tài liệu liên quan