PROGRAMMING 8 BIT PIC MICROCONTROLLERS IN C WITH INTERACTIVE HARDWARE SIMULATION EBOOK

Tìm thấy 10,000 tài liệu liên quan tới từ khóa "PROGRAMMING 8 BIT PIC MICROCONTROLLERS IN C WITH INTERACTIVE HARDWARE SIMULATION EBOOK":

Đồ án môn học Tìm hiểu Microchip PIC và ứng dụng

ĐỒ ÁN MÔN HỌC TÌM HIỂU MICROCHIP PIC VÀ ỨNG DỤNG

PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology. Dòng PIC đầu tiên là PIC1650 được phát triển bởi Microelectronics Division thuộc General Instrument.

PIC bắt nguồn là chữ viết tắt của Programmable Intelligent Computer (Máy tính khả trình thông minh) là một sản phẩm của hãng General Instrument đặt cho dòng sản phẩm đầu tiên của họ là PIC1650. Lúc này, PIC1650 được dùng để giao tiếp với các thiết bị ngoại vi cho máy chủ 16bit CP1600, vì vậy, người ta cũng gọi PIC với cái tên Peripheral Interface Controller (Bộ điều khiển giao tiếp ngoại vi). CP1600 là một CPU tốt, nhưng lại kém về các hoạt động xuất nhập, và vì vậy PIC 8bit được phát triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600. PIC sử dụng microcode đơn giản đặt trong ROM, và mặc dù, cụm từ RISC chưa được sử dụng thời bây giờ, nhưng PIC thực sự là một vi điều khiển với kiến trúc RISC, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động).

Năm 1985 General Instrument bán bộ phận vi điện tử của họ, và chủ sở hữu mới hủy bỏ hầu hết các dự án lúc đó đã quá lỗi thời. Tuy nhiên PIC được bổ sung EEPROM để tạo thành 1 bộ điều khiển vào ra khả trình. Ngày nay rất nhiều dòng PIC được xuất xưởng với hàng loạt các module ngoại vi tích hợp sẵn (như USART, PWM, ADC...), với bộ nhớ chương trình từ 512 Word đến 32K Word.
Trong phạm vi đề tài này em xin phép được lựa chọn tìm hiểu về VXL PIC và ứng dụng của nó.
Xem thêm

55 Đọc thêm

Light Switch Mobile Business Apps Succinctly by Jan Van der Haegen

LIGHT SWITCH MOBILE BUSINESS APPS SUCCINCTLY BY JAN VAN DER HAEGEN

he goal of this ebook is to teach you how to build a mobileoriented singlepage application (SPA) with Visual Studio LightSwitch by walking you through the process of building a CRM sample application. This application is an HTML5 singlepage application that targets both smartphones and tablets,and creating it would take a LightSwitch developer a short time.This book starts off with a very simple hello world application. After a bit of theory and LightSwitch vocabulary 101, you’ll find a couple of handson chapters, each describing different aspects of a LightSwitch mobile business application in more depth: the database project, tweaking the visual aspects of the application, the programming model and techniques, and global styling. Finally, you’ll deploy the application to the cloud, and I’ll end the tour by providing some links to additional learning content.
Xem thêm

120 Đọc thêm

Theory and problems of programming with c++ 1996

THEORY AND PROBLEMS OF PROGRAMMING WITH C++ 1996

Like all Schaum’s Outline Series books, this is intended to be used primarily for self study,
preferably in conjunction with a regular course in C++ Programming. The book covers nearly all
aspects of ANSIIS0Standard C++. It includes over 200 examples and solved problems. The
author firmly believes that programming is best learned by practice, following a wellconstructed
collection of examples with complete explanations. This book is designed to provide that
support.
C++ was created by Bjarne Stroustrup in the 1980s. Based upon C and Simula, it has become
the most popular language for objectoriented programming. The final ANSIIS0Standard was
just recently completed, so some of the standard features described in this book may not yet be
available on all compilers. In particular, the powerful Standard Template Library is just now
becoming available from some vendors.
Although most people who undertake to learn C++ have already had some previous programming experience, this book assumes none. It approaches C++ as one’s first programming
language. Therefore, those who have had previous experience may need only skim the first few
chapters.
C++ is a difficult language for at least two reasons. It inherits from the C language
economy of expression that novices often find cryptic. And as an objectoriented language,
widespread use of classes and templates presents a formidable challenge to those who have
thought in those terms before. It is the intent of this book to provide the assistance necessary
firsttime programmers to overcome these obstacles.
Xem thêm

446 Đọc thêm

Thiết kế, chế tạo mạch đo nhiệt độ hiển thị trên LCD 16x2

THIẾT KẾ, CHẾ TẠO MẠCH ĐO NHIỆT ĐỘ HIỂN THỊ TRÊN LCD 16X2

MỤC LỤC:
Table of Contents
MỞ ĐẦU 4
CHƯƠNG I: CÁC PHƯƠNG PHÁP ĐO NHIỆT ĐỘ 6
1.1 Khái niệm về nhiệt độ: 6
1.1.1 Khái niệm: 6
1.1.2 Sơ lược về phương pháp đo nhiệt độ: 6
1.2 Đo nhiệt độ bằng phương pháp tiếp xúc 7
1.2.1 Đo nhiệt độ bằng nhiệt điện trở: 7
1.2.2 Đo nhiệt độ bằng cặp nhiệt ngẫu: 7
1.2.3 IC cảm biến nhiệt độ 8
1.3 Đo nhiệt độ bằng phương pháp không tiếp xúc 8
CHƯƠNG II: CƠ SỞ LÝ THUYẾT 9
2.1Tìm hiểu về cảm biến nhiệt độ LM35. 9
2.2Vi điều khiển PIC 16F877A. 11
2.2.1PIC là gì? 11
2.2.2Các dòng PIC và cách lựa chọn vi điều khiển PIC. 11
2.2.3Các dòng PIC và cách lựa chọn vi điều khiển PIC. 12
2.2.4Tổ chức bộ nhớ. 17
2.2.5Stack. 21
2.2.6Các cổng xuất, nhập của PIC 16F877A. 21
2.2.7Các Timer. 24
2.2.8Chuyển đổi ADC. 28
2.2.9Bộ so sánh. 29
2.2.10 Bộ tạo điện áp so sánh. 30
2.2.11CCP. 32
2.2.12Ngôn ngữ lập trình cho PIC. 32
3.3Màn hình LCD. 35
3.3.1Hình dáng và cấu tạo. 35
3.3.2Chức năng các chân. 36
CHƯƠNG III: THIẾT KẾ VÀ CHẾ TẠO 38
3.1. SƠ ĐỒ KHỐI 38
3.1.1. Phân tích chức năng các khối. 39
3.1.2. Sơ đồ nguyên lý. 43
3.1.3. Phân tích nguyên lý hoạt động của cả mạch điện. 44
3.2. Thiết kế sơ đồ board mạch. 45
3.3. Xây dựng phần mềm. 46
3.4. Chương trình. 46
 Lưu đồ thuật toán 46
3.5. Ứng dụng thực tiễn của mạch 49
CHƯƠNG IV: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 50
TÀI LIỆU THAM KHẢO 51



MỞ ĐẦU
 Lý do chọn đề tài
Ngày nay khoa học công nghệ hiện đại đã có những bước tiến nhanh và xa đi theo nó là những thành tựu ứng dụng trong các lĩnh vực đời sống, công nghiệp. Kỹ thuật điều khiển trong tiến trình hoàn thiện lý thuyết cũng đã tạo cho mình nhiều phát triển có ý nghĩa. Bây giờ khi nhắc tới điều khiển con người dường như hình dung tới độ chính xác, tốc độ xử lý và thuật toán thông minh đồng nghĩa là lượng chất xám cao hơn. Hiện nay trên thị trường có rất nhiều loại vi điều khiển như 8051, Motorola 68HC, AVR, ARM,.... Ngoài họ 8051 được hướng dẫn một cách căn bản ở môi trường đại học, chúng em đã chọn vi điều khiển PIC để mở rộng vốn kiến thức và phát triển các ứng dụng trên công cụ này vì các nguyên nhân sau:
Họ vi điều khiển nàycó thể tìm mua dễ dàng tại thị trường Việt Nam.
• Có đầy đủ tính năng của một vi điều khiển khi hoạt động độc lập.
• Là sự bổ sung rất tốt về kiến thức cũng như ứng dụng cho họ vi điều khiển mang tính truyền thống: họ vi điều khiển 8051. Giá thành không đắt.
• Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạp chương trình từ dơn giản tới phức tạp...
• Các tính năng đa dạng của vi điều khiển PIC và các tính năng này không ngừng được phát triển.
• Số lượng người sử dụng họ vi điều khiển PIC trên thế giới cũng như Việt Nam khá nhiều.Đã tạo thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển, dễ dàng trao đổi, học tập, dễ dàng tìm được hỗ trợ khi gặp khó khăn.
Vì vậy, sau một thời gian học tập và tìm hiểu tài liệu với sự giảng dạy của các thầy cô giáo. Cùng với sự dẫn dắt nhiệt tình của giáo viên hướng dẫn thầy Nguyễn Viết Ngư. Chúng em đã chọn đề tài:
“thiết kế chế tạo mạch đo nhiệt độ hiển thị trên LCD 16x2” làm đồ án tích hợp 1 của mình.


 Đối tượng nghiên cứu
Với đề tài này chúng em tập trung vào:
• Tìm hiểu về vi điều khiển PIC 16F877A.
• Nghiên cứu và chế tạo thiết bị đo nhiệt độ phòng.
 Mục đích nghiên cứu
Khi nghiên cứu đồ án này chúng em đã:
• Hiểu được cách thức và chế độ hoạt động của VĐK PIC 16F877A.
• Hiểu được cách thức hoạt động của cảm biến nhiệt độ LM 35.
• Thiết kế, chế tạo được mạch đo nhiệt độ phòng dùng PIC 16F877A.
 Phương pháp nghiên cứu
Do đây là một đồ án sản phẩm, nên chúng em đã áp dụng phương pháp nghiên cứu lý thuyết, nghiên cứu thực nghiệm trực tiếp trên sản phẩm thật, chạy thử và hoàn thiện chương trình.
 Ý nghĩa nghiên cứu
Như đã nói ở trên thì nếu thực hiện thành công đề tài này sẽ mang lại ý nghĩa to lớn về cả thực tiễn và lý luận.
• Ý nghĩa lý luận:
Toàn bộ chương trình và bản thuyết minh của đề tài sẽ trở thành tài liệu nghiên cứu, tham khảo nhanh, dễ hiểu, thiết thực cho các bạn sinh viên, những người thích tìm hiểu về đề tài này của chúng em.
• Ý nghĩa thực tiễn:
Với sự thành công của đề tài sẽ góp phần giúp cho các bạn sinh viên mới nói chung và các bạn sinh viên khoa Điện Điện Tử nói riêng thấy rõ được ý nghĩa thực tế và thêm yêu thích chuyên ngành mình đã chọn.
Do kiến thức và trình độ năng lực hạn hẹp nên việc thực hiện đề tài này không thể tránh được thiếu sót, kính mong nhận được sự thông cảm và góp ý của thầy giáo, cô giáo và các bạn để đồ án này hoàn chỉnh hơn.
Chúng em xin trân thành cảm ơn
Sinh viên thực hiện: Phạm Văn Thực
Thân Thị Thương



CHƯƠNG I: CÁC PHƯƠNG PHÁP ĐO NHIỆT ĐỘ
1.1 Khái niệm về nhiệt độ:
1.1.1 Khái niệm:
Nhiệt độ là đại lý đặc trưng cho cường độ chuyển động của các nguyên tử, phân tử của một hệ vật chất. Tuỳ theo từng trạng thái của vật chất ( rắn, lỏng, khí) mà chuyển động này có khác nhau. ở trạng thái láng, các phân tử dao động quanh vi trí cân bằng nhưng vi trí cân bằng của nó luôn dịch chuyển làm cho chất lỏng không có hình dạng nhất định. Còn ở trạng thái rắn, các phần tử, nguyên tử chỉ dao động xung quanh vị trí cân bằng. Các dạng vận động này của các phân tử, nguyên tử được gọi chung là chuyển động nhiệt. Khi tương tác với bên ngoài có trao đổi năng lượng nhưng không sinh công, thì quá trình trao đổi năng lượng nói trên gọi là sự truyền nhiệt. Quá trình truyền nhiệt trên tuân theo 2 nguyên lý:
Bảo toàn năng lượng.
Nhiệt chỉ có thể tự truyền từ nơi có nhiệt độ cao đến nơi có nhiệt độ thất. Ở trạng thái rắn, sự truyền nhiệt xảy ra chủ yếu bằng dẫn nhiệt và bức xạ nhiệt.
Đối với các chất lỏng và khí ngoài dẫn nhiệt và bức xạ nhiệt còn có truyền nhiệt bằng đối lưu. Đó là hiện tượng vận chuyển năng lượng nhiệt bằng cách vận chuyển các phần của khối vật chất giữa các vùng khác nhau của hệ do chênh lệch về tỉ trọng.

1.1.2 Sơ lược về phương pháp đo nhiệt độ:
Nhiệt độ là đại lượng chỉ có thể đo gián tiếp trên cơ sở tính chất của vật phụ thuộc nhiệt độ. Hiện nay chóng ta có nhiều nguyên lí cảm biến khác nhau để chế tạo cảm biến nhiệt độ như: nhiệt điện trở, cặp nhiệt ngẫu, phương pháp quang dùa trên phân bố phổ bức xạ nhiệt, phương pháp dùa trên sự dãn nở của vật rắn, lỏng, khí hoặc dùa trên tốc độ âm… Có 2 phương pháp đo chính:
Ở dải nhiệt độ thấp và trung bình phương pháp đo là phương pháp tiếp xúc, nghĩa là các chuyển đổi được đặt trực tiếp ngay trong môi trường đo. Thiết bị đo như: nhiệt điện trở, cặp nhiệt, bán dẫn.
Ở dải nhiệt độ cao phương pháp đo là phương pháp không tiếp xúc ( dông cụ dặt ngoài môi trường đo). Các thiết bị đo nh­: cảm biến quang, hoả quang kế ( hoả quang kế phát xạ, hoả quang kế cường độ sáng, hoả quang kế màu sắc)…

1.2 Đo nhiệt độ bằng phương pháp tiếp xúc
1.2.1 Đo nhiệt độ bằng nhiệt điện trở:
Nguyên lý hoạt động:
Điện trở của một số kim loại thay đổi theo nhiệt độ và dùa vào sự thay đổi điện trở đó người ta đo được nhiệt độ cần đo.
Nhiệt điện trở dùng trong dụng cụ đo nhiệt độ làm việc với dòng phụ tải nhỏ để nhiệt năng sinh ra do dòng nhiệt điện trở nhỏ hơn so với nhiệt năng nhận được từ môi trường thí nghiệm.
Yêu cầu cơ bản đối với vật liệu dùng làm chuyển đổi của nhiệt điện trở là có hệ số nhiệt độ lớn và ổn định, điện trở suất khá lớn…
Trong công nghiệp nhiệt điện trở được chia thành nhiệt điện trở kim loại và nhiệt điện trở bán dẫn.
1.2.2 Đo nhiệt độ bằng cặp nhiệt ngẫu:
Nguyên lý làm việc:
Bộ cảm biến cặp nhiệt ngẫu là 1 mạch từ có 2 hay nhiều thanh dẫn điện gồm 2 dây dẫn A và B. Sebeck đã chứng minh rằng nếu mối hàn có nhiệt độ t và t0 khác nhau thì trong mạch khép kín có một dòng điện chạy qua. Chiều của dòng điện này phụ thuộc vào nhiệt độ tương ứng của mối hàn nghĩa là t > t0 thì dòng điện chạy theo hướng ngược lại. Nếu để hở một đầu thì sẽ xuất hiện một sức điện động nhiệt. Khi mối hàn có cùng nhiệt độ ( ví dụ bằng t0 ) thì sức điện động tổng bằng:
EAB = eAB(t0) + eAB(t0) = 0
Từ đó rót ra: eAB = eAB(t0)
Khi t¬¬¬0 và t khác nhau thì sức điện động tổng bằng:
EAB = eAB(t) – e+AB(t0)
Phương trình trên là phương trình cơ bản của cặp nhiệt ngẫu ( sức điện động phụ thuộc vào hệ số nhiệt độ của mạch vòng t và t0)
Nh­ vậy bằng cách đo sức điện động ta có thể tìm được nhiệt độ của đối tượng.
Phương pháp này được sử dụng nhiều trong công nghiệp khi cần đo những nơi có nhiệt độ cao.

1.2.3 IC cảm biến nhiệt độ
Có rất nhiều hãng chế tạo linh kiện điện tử đã sản xuất ra các loại IC bán dẫn dùng để đo dải nhiệt độ từ 55150 0C. Trong các mạch tổ hợp IC, cảm biến nhiệt thường là điện áp của líp chuyển tiếp pn trong một loại tranzitor loại bipola.

1.3 Đo nhiệt độ bằng phương pháp không tiếp xúc
Nguyên lý hoạt động:
Dưạ trên định luật bức xạ của vật đen tuyệt đối, tức là vật hấp thụ năng lượng theo mọi hướng với khả năng lón nhất. Bức xạ nhiệt của mọi vật đặc trưng bởi mật độ phổ E nghĩa là số năng lượng bức xạ trong một đơn vị độ dài của sóng.
Quan hệ giữa mật độ bức xạ của vật đen tuyệt đối với nhiệt độ và độ dài sóng được biểu diễn bởi công thức:
E0 = C1.5(ec2T1)1
Trong đó: C1: Hằng số và C1= 37,03.107 (Jm2s)
C2: Hằng số vá C2= 1,432.102 (m.độ)
: Độ dài sóng
T: Nhiết độ tuyệt đối




CHƯƠNG II: CƠ SỞ LÝ THUYẾT

2.1Tìm hiểu về cảm biến nhiệt độ LM35.
LM35 là một cảm biến nhiệt độ analog, thuộc họ IC cảm biến nhiệt độ sản xuất theo công nghệ bán dẫn dựa trên các chất bán dẫn dễ bị tác động bởi sự thay đổi của nhiệt độ, đầu ra của cảm biến là điện áp (V) tỉ lệ với nhiệt độ mà nó được đặt trong môi trường cần đo.
Họ LM35 có rất nhiều loại và nhiều kiểu đóng vỏ khác nhau:

Hình 1.1: Cảm biến nhiệt độ LM35.
Đặc điểm nổi bật:
Nhiệt độ được xác định bằng cách đo hiệu điện thế ngõ ra của LM35.
Điện áp đầu vào từ 4V đến 30V.
Độ phân giải điện áp đầu ra là 10mV0C.
Độ chính xác cao, tính năng cảm biến nhiệt độ rất nhạy.
Ở nhiệt độ 25(0C) nó có sai số không quá 1%. Với dải đo từ 50 đến 150(0C), tín hiệu ngõ ra tuyến tính liên tục với những thay đổi của tín hiệu ngõ vào.
Thông số kỹ thuật:
Tiêu tán công suất thấp.
Dòng làm việc từ 400µA đến 5mA.
Dòng ngược 15mA.
Dòng thuận 10mA.
Độ chính xác cao: khi làm việc ở nhiệt độ 250C là 0,50C.
Trở kháng đầu ra thấp 0,1 cho 1mA tải.
Đặc tính điện:
Dải nhiệt độ đo được của LM35 là từ 550C đến 1500C với các mức điện áp ra khác nhau. Vậy ứng với tầm hoạt động từ 0(0C) đến 100(0C)ta có sự biến thiên điện áp ngõ ra là:
Ở 550C thì điện áp ngõ ra Vout = 550mV
Ở 00C thì điện áp ngõ ra Vout = 0V
Ở 250C thì điện áp ngõ ra Vout = 250mV
Ở 1500C thì điện áp ngõ ra Vout = 1500mV

2.2Vi điều khiển PIC 16F877A.
2.2.1PIC là gì?
PIC là viết tắt của “Programmable Intelligent Computer”, có thể tạm dịch là “máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi điều khiển đầu tiên của họ. Hãng Micrchip tiếp tục phát triển sản phẩm này và cho đến nay hãng đã tạo ra gần 100 loại sản phẩm khác nhau.
2.2.2Các dòng PIC và cách lựa chọn vi điều khiển PIC.
• Các kí hiệu của vi điều khiển PIC:
PIC12xxxx: độ dài lệnh 12 bit
PIC16xxxx: độ dài lệnh 14 bit
PIC18xxxx: độ dài lệnh 16 bit
C: PIC có bộ nhớ EPROM (chỉ có 16C84 là EEPROM)
F: PIC có bộ nhớ flash
LF: PIC có bộ nhớ flash hoạt động ở điện áp thấp
LV: tương tự như LF, đây là kí hiệu cũ
Bên cạnh đó một số vi điệu khiển có kí hiệu xxFxxx là EEPROM, nếu có thêm chữ A ở cuối là flash (ví dụ PIC16F877 là EEPROM, còn PIC16F877A là flash). Ngoài ra còn có thêm một dòng vi điều khiển PIC mới là dsPIC. Ở Việt Nam phổ biến nhất là các họ vi điều khiển PIC do hãng Microchip sản xuất.
• Cách lựa chọn một vi điều khiển PIC phù hợp:
Trước hết cần chú ý đến số chân của vi điều khiển cần thiết cho ứng dụng. Có nhiều vi điều khiển PIC với số lượng chân khác nhau, thậm chí có vi điều khiển chỉ có 8 chân, ngoài ra còn có các vi điều khiển 28, 40, 44, … chân. Cần chọn vi điều khiển PIC có bộ nhớ flash để có thể nạp xóa chương trình được nhiều lần hơn.
Tiếp theo cần chú ý đến các khối chức năng được tích hợp sẵn trong vi điều khiển,các chuẩn giao tiếp bên trong. Sau cùng cần chú ý đến bộ nhớ chương trình mà vi điều khiển cho phép. Ngoài ra mọi thông tin về cách lựa chọn vi điều khiển PIC có thể được tìm thấy trong cuốn sách “Select PIC guide” do nhà sản xuất Microchip cung cấp.
Do thời gian làm đồ án có hạn nên chúng em chỉ tập trung tìm hiểu các tính năng của PIC 16F877A có liên quan đến đề tài.
2.2.3Các dòng PIC và cách lựa chọn vi điều khiển PIC.
PIC 16F877A là dòng PIC khá phổ biến, khá đầy đủ tính năng phục vụ cho hầu hết tất cả các ứng dụng thực tế. Đây là dòng PIC khá dễ cho người mới làm quen với PIC có thể học tập và tạo nền tảng về họ vi điều khiển PIC của mình.
PIC 16F877A thuộc họ vi điều khiển 16Fxxx có các đặc tính ngoại vi sau:
Ngôn ngữ lập trình đơn giản với 35 lệnh có độ dài 14 bit.
Tất cả các câu lệnh thực hiện trong một chu kì lệnh ngoại trừ một số câu lệnh rẽ nhánh thực hiện trong hai chu kì lệnh. Chu kì lệnh bằng 4 lần chu kì dao động của thạch anh.
Bộ nhớ chương trình Flash 8Kx14 words, với khả năng ghi xóa khoảng 100 ngàn lần.
Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte. Số PORT IO là 5 với 33pin IO.
Khả năng ngắt (lên tới 14 nguồn cả ngắt trong và ngắt ngoài).
Ngăn nhớ Stack được chia làm 8 mức.
Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc gián tiếp.
Dải điện thế hoạt động rộng: 2.0V đến 5.5V.
Nguồn sử dụng 25mA.
Công suất tiêu thụ thấp:<0.6mA với 5V, 4MHz ; 20µA với nguồn 3V, 32 KHz.
Có 3 timer:
Timer 0: bộ đếm 8 bit với bộ chia tần số 8 bit.
Timer 1: bộ đếm 16 bit với bộ chia tần số,có thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.
Timer 2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.
Hai bộ Captureso sánhđiều chế độ rông xung.
Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.
Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.
Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR, CS ở bên ngoài.
Các đặc tính Analog:
8 kênh chuyển đổi ADC 10 bit.
Hai bộ so sánh.
Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:
Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.
Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.
Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.
Khả năng tự nạp chương trình với sự điều khiển của phần mềm.
Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial Programming) thông qua 2 chân.
Watchdog Timer với bộ dao động trong.
Chức năng bảo mật mã chương trình.
Chế độ Sleep.
Có thể hoạt động với nhiều dạng Oscillator khác nhau.


Hình 1.2: Hình ảnh thực tế và sơ đồ chân của PIC 16F877A.

Hình 1.3: Sơ đồ khối bộ vi điều khiển PIC 16F877A.

PIC 16F877A có tất cả 40 chân,được chia thành 5 PORT, 2 chân cấp nguồn, 2 chân GND, 2 chân thạch anh và 1 chân dùng để RESET vi điều khiển.
Chức năng các chân:
+ Chân OSC1CLK1(13): ngõ vào kết nối với dao động thạch anh hoặc ngõ vào nhận xung clock từ bên ngoài.
+ Chân OSC2CLK2(14): ngõ ra dao động thạch anh hoặc ngõ ra cấp xung clock.
+ Chân (1) có 2 chức năng.
: ngõ vào reset tích cực ở mức thấp.
Vpp: ngõ vào nhận điện áp lập trình khi lập trình cho PIC.
+ Chân RA0AN0(2), RA1AN1(3), RA2AN2(3): có 2 chức năng
RA0,1,2: xuất nhập số.
AN 0,1,2: ngõ vào tương tự của kênh thứ 0,1,2.
+ Chân RA2AN2VREFCVREF+(4): xuất nhập số ngõ vào tương tự của kênh thứ 2 ngõ vào điện áp chuẩn thấp của bộ AD ngõ vào điện áp chẩn cao của bộ AD.
+ Chân RA3AN3VREF+(5): xuất nhập số ngõ vào tương tự kênh 3 ngõ vào điện áp chuẩn (cao) của bộ AD.
+ Chân RA4TOCK1C1OUT(6): xuất nhập số ngõ vào xung clock bên ngoài cho Timer 0 ngõ ra bộ so sánh 1.
+ Chân RA5AN4 C2OUT(7): xuất nhập số ngõ vào tương tự kênh 4 ngõ vào chọn lựa SPI phụ ngõ ra bộ so sánh 2.
+ Chân RB0INT (33): xuất nhập số ngõ vào tín hiệu ngắt ngoài.
+ Chân RB1(34), RB2(35): xuất nhập số.
+ Chân RB3PGM(36): xuất nhập số cho phép lập trình điện áp thấp ICSP.
+ Chân RB4(37), RB5(38): xuất nhập số.
+ Chân RB6PGC(39): xuất nhấp số mạch gỡ rối và xung clock lập trình ICSP.
+ Chân RB7PGD(40): xuất nhập số mạch gỡ rối và dữ liệu lập trình ICSP.
+ Chân RC0T1OCOT1CKI(15): xuất nhập số ngõ vào bộ giao động Timer1 ngõ vào xung clock bên ngoài Timer 1.
+ Chân RC1T1OSICCP2(16): xuất nhập số ngõ vào bộ dao động Timer 1 ngõ vào Capture2, ngõ ra compare2, ngõ ra PWM2.
+ Chân RC2CCP1(17): xuất nhập số ngõ vào Capture1 ,ngõ ra compare1, ngõ ra PWM1.
+ Chân RC3SCKSCL(18): xuất nhập số ngõ vào xung clock nối tiếp đồng bộ, ngõ ra chế độ SPI. ngõ vào xung clock nối tiếp đồng bộ, ngõ ra của chế độ I2C.
+ Chân RC4SDISDA(23): xuất nhập số dữ liệu vào SPI xuất nhập dữ liệu I2C.
+ Chân RC5SDO(24): xuất nhập số dữ liệu ra SPI.
+ Chân RC6TXCK(25): xuất nhập số truyền bất đồng bộ USART xung đồng bộ USART.
+ Chân RC7RXDT(26): xuất nhập số nhận bất đồng bộ USART.
+ Chân RD07PSP07(1930): xuất nhập số dữ liệu port song song.

2.2.4Tổ chức bộ nhớ.
Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ dữ liệu (Data memory) và bộ nhớ chương trình (Program memory).
Bộ nhớ dữ liệu:
Bộ nhớ dữ liệu của PIC là bộ nhớ EFPROM được chia ra làm nhiều bank. Đối với PIC16F877A bộ nhớ dữ liệu được chia ra làm 4 bank. Mỗi bank có dung lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệt SFR (Special Funcition Register) nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chung GPR(General Purpose Register) nằm ở vùng địa chỉ trong bank.các thanh ghi SFR thường xuyên được sử dụng sẽ được đặt ở tất cả các bank của bộ nhớ 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ể của bộ nhớ dữ liệu PIC 16F877A như sau:

Hình 1.4: Bộ nhớ dữ liệu của PIC.
Bộ nhớ chương trình:
Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash, dung lượng bộ nhớ 8K word (1 word = 14 bit) và được phân thành nhiều trang ( từ page 0 đến page 3). Như vậy bộ nhớ chương trình có thể chứa được 81024=8192 lệnh (vì mỗi lệnh sau khi mã hóa sẽ có dung lượng 1 word=14 bit)
Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình, bộ đếm chương trình có dung lượng 13 bit. Khi 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(interrupt vector).
Bộ nhớ chương trình không bao gồm bộ nhớ stack và không được địa chỉ hóa bởi bộ đếm chương trình.

Hình 1.5: Bộ nhớ chương trình PIC 16F877A.
• Thanh ghi chức năng đặc biệt sfr
Đây là các 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 trong vi điều khiển. Có thể phân thanh ghi SFR làm 2 loại: thanh ghi SFR liên quan đến 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 bên ngoài (ví dụ ADC…). Phần này sẽ đề cập đến các thanh ghi liên quan đến các chức năng bên trong. Các thanh ghi dùng để thiết lập và điều khiển các khối chức năng sẽ được nhắc đến khi ta đề cập đến các khối chức năng đó.
Thanh ghi STATUS (03h, 83h, 103h, 183h): thanh ghi chứa kết quả thực 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 pullup của các chân trong PORTB, xác lập các thông số về xung tác động, cạnh tác động của ngắt ngoại vi và bộ đếm Timer 0.

Thanh ghi INTCON (0Bh, 8Bh,10Bh, 18Bh): thanh ghi cho phép đọc và ghi, chứa các bit diều khiển và các cờ hiệu khi Timer 0 bị tràn, ngắt ngoại vi RB0INT và ngắt interruptonchange 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 các 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 cho phép bởi các bit điều khiển chứa trong thanh ghi PIE1.

Thanh 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.

• 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 thông 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ể tùy 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.2.5Stack.
Stack không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu mà là một vùng nhớ đặc biệt không cho phép đọc hay ghi. Khi lệnh CALL được thực hiện hay khi một ngắt xảy ra làm chương trình bị rẽ nhánh, giá trị của bộ đếm chương trình PC tự động được vi điều khiển cất vào trong stack. Khi một trong các lệnh RETURN, RETLW khi RETFIE được thực thi, giá trị PC sẽ tự động lấy ra từ trong stack, vi điều khiển sẽ thực hiện tiếp chương trình theo đúng quy trình định trước.
Bộ nhớ Stack trong vi điều khiển PIC họ 16F887xA có khả năng chứa được 8 địa chỉ và hoạt động theo cơ chế xoay vòng. Nghĩa là giá trị cất vào bộ nhớ Stack lần thứ 9 sẽ ghi đè lên giá trị Stack lần đầu tiên và giá trị cất vào bộ nhớ Stack lần thứ 10 sẽ ghi đè giá trị 6 vào Stack lần thứ 2.
Cần chú ý là không có cờ hiệu nào chi biết trạng thái stack, do đó ta không biết được khi nào stack tràn. Bên cạnh đó tập lệnh của vi điều khiển dòng PIC cũng không có lệnh POP hay PUSH, các thao tác với bộ nhớ stack sẽ hoàn toàn được điều khiển bởi CPU.
2.2.6Các cổng xuất, nhập của PIC 16F877A.
Cổng xuất nhập (IO 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 rất đa dạng và thông qua 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.
Một cổng xuất nhập của vi điều khiển gồn nhiều chân (IO pin), tùy theo cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượng chân trong mỗi cổng có thể khác nhau. Bên cạnh đó, do vi điều khiển được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi bên cạnh chức năng là công xuất nhập thông thường, một số chân xuất nhập còn có thêm các chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi nếu trên đối với thế giới bên ngoài. Chức năng của từng chân xuất nhập trong mỗi cổng hoàn toàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên quan đến các chân xuất nhập đó.
Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD, và PORTE. Cấu trúc và chức năng của cổng xuất nhập sẽ được đề cập ở phần sau.
Port A
PORTA (RPA) bao gồm 6 IO pin. Đây là chân “hai chiều” (bidirectional pin),nghĩa là có thể xuất và nhập được.
Chức năng IO này được điều khiển bởi thanh ghi TRISA (địa chỉ 85h). Muốn xác lập chức năng của một chân trong PORTA là input, ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong PORTA là output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA. Thao tác này hoàn toàn tương tự đối với các PORT và các thanh ghi điều khiển tương ứng TRIS.
Bên cạnh đó PORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog, ngõ vào xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port).
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
CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp
ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC
Port B
PORTB (RPB) gồm 8 pin IO. Thanh ghi điều khiển xuất nhập tương ứng là TRISB. Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau. PORTB còn liên quan đến ngắt ngoại vi và bộ Timer0. PORTB còn được tích hợp chức năng điện trở kéo lên được điều khiển bởi chương trình.
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.
Port C
PORTC (RPC) gồm 8 pin IO. Thanh ghi điều khiển xuất nhập tương ứng là TRISC. Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ Timer1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART:
Các thanh ghi điều khiển liên quan đến PORTC :
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
Port D
PORTD (RPD) gồm 8 pin IO. Thanh ghi điều khiển xuất nhập tương ứng là TRISD. PORTD còn là cổng xuất dữ liệu của chuẩ giao tiếp PSP (parallel slave Port).
Các thanh ghi gồm :
PORTD : chứa giá trị các pin trong PORTD.
TRISD : điều khiển xuất nhập.
Port E
PORTE (RPE)gồm 3 pin IO. Thanh ghi điều khiển xuất nhập tương ứng là TRISE.Các chân của PORTE có ngõ vào analog. Bên cạnh đó PORTE còn là các chân điều khiển củag chuẩn giao tiếp PSP..
Các thanh ghi liên quan đến PORTE bao gồm :
PORTE : chứa giá trị các chân trong PORTE .
TRISE: điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp.
PSP. ADCON1 : thanh ghi điều khiển khối ADC.

2.2.7Các Timer.
Timer 0
Đây là một trong ba bộ đếm hoặc bộ định thời của vi điều khiển PIC16F877A. Timer0 là bộ đếm 8 bit được kết nối với bộ chia tần số (prescaler) 8 bit. Cấu trúc của Timer0 cho phép ta lựa chọn xung clock tác động và cạch tích cực của xung clock. Ngắt Timer0 sẽ xuất hiện khi Timer 0 bị tràn.
Bít TMR0IE (INTCON<5>) là bít điều khiển của Timer0. TMR0IE=1 cho phép ngắt Timer0 tác động. TMR0IE=0 không cho phép ngắt Timer0 tác động.
Xem thêm

50 Đọc thêm

New Design Instruction Set For Microprocessor

NEW DESIGN INSTRUCTION SET FOR MICROPROCESSOR

OSU8 began as a student project in 1994 to create a simple but functional 8bit microprocessor, starting with a definition of the architecture to implementation in a Xilinx FPGA chip, and fullcustom CMOS implementation.

17 Đọc thêm

Cấu trúc 80C88 32PGS

CẤU TRÚC 80C88 32PGS

Description
The Harris 80C88 high performance 816bit CMOS CPU is
manufactured using a selfaligned silicon gate CMOS process
(Scaled SAJI IV). Two modes of operation, MINimum
for small systems and MAXimum for larger applications such
as multiprocessing, allow user configuration to achieve the
highest performance level.
Full TTL compatibility (with the exception of CLOCK) and
industrystandard operation allow use of existing NMOS
8088 hardware and Harris CMOS peripherals.
Complete software compatibility with the 80C86, 8086, and
8088 microprocessors allows use of existing software in new
designs.

32 Đọc thêm

LEARNING COCOA WITH OBJECTIVE-C (2002)

LEARNING COCOA WITH OBJECTIVE-C (2002)

released to the public on August 24, 2002, brings many changes and improvements to thelegacy set forth by the previous Mac OS X releases. These changes include severaladditions to the Cocoa application programming interfaces (APIs), known as the Cocoaframeworks, arguably the best GUI application development environment on the face ofthe planet. An integrated set of libraries and runtime, Cocoa provides a rich infrastructureon which to build great user applications.On Codenames and CatsAs mentioned earlier, Mac OS X 10.2 was code-named Jaguar during itsdevelopment and testing phase. Earlier releases of Mac OS X included Puma(Mac OS X 10.1) and Cheetah (Mac OS X 10.0). Software developers like togive their projects names that evoke some emotion or theme for the release beingworked on. A little research shows that the cheetah is the world's fastest landmammal, while the jaguar, unlike many other big cats, has no predators save forman. Worthy goals indeed.Apple became so enamored of the Jaguar name that they ended up putting it ontothe box in which Mac OS X 10.2 is released, complete with a jaguar fur motif.When it comes to building Cocoa applications, developers can choose from three languagesto work with the Cocoa APIs: Objective-C, Java, and AppleScript. This new edition ofLearning Cocoa, retitled as Learning Cocoa with Objective-C and thoroughly revised andupdated for Jaguar, shows you how to get started with building Cocoa applications for MacOS X using the Objective-C binding to the Cocoa frameworks.As an introductory book on Cocoa development, Learning Cocoa with Objective-Caccomplishes the following:●●
Xem thêm

461 Đọc thêm

Lập trình vi điều khiển PIC- Programming PIC MCU

LẬP TRÌNH VI ĐIỀU KHIỂN PIC- PROGRAMMING PIC MCU

Lập trình vi điều khiển PIC- Programming PIC MCU

117 Đọc thêm

Nghiên cứu, thiết kế, chế tạo, mạch điều khiển tốc động cơ DC

NGHIÊN CỨU, THIẾT KẾ, CHẾ TẠO, MẠCH ĐIỀU KHIỂN TỐC ĐỘNG CƠ DC

Mục lục
LỜI NÓI ĐẦU 3
PHẦN I: CƠ SỞ LÍ LUẬN 5
1.1 Vi điều khiển PIC16F877A 5
1.1.1 Khái quát về vi điều khiển PIC16F877A 5
1.1.2 Tìm hiểu về vi điều khiển PIC16F877A 8
1.2 Một số linh kiện khác 18
1.2.1 IRFZ44N 18
1.2.2 PC817 19
1.2.3 IC7812 IC7805 20
1.2.4 IR2184………………………………………………………………………………………………..20
1.2.5 Động cơ DC 23
1.2.6 Giới thiệu mạch cầu H dùng mosfet………………………………………………….......28
PHẦN II THIẾT KẾ VÀ THI CÔNG 31
2.1 Phần Cứng 31
2.1.1 Sơ đồ khối 31
2.1.2 Mạch điều khiển 32
2.1.3 Mạch công suất 33
2.1.5 Mạch nguyên lý hoàn thiện. 35
2.2 Chương trình 36
KẾT LUẬN......................................................................................................................................... 39

PHẦN I:CƠ SỞ LÍ LUẬN
1.1 Vi điều khiển PIC16F877A
1.1.1 Khái quát về vi điều khiển PIC16F877A
1.1.1.1 Sơ đồ chân và sơ đồ nguyên lí của PIC16F877A
Sơ đồ chân

Sơ đồ nguyên lý

1.1.1.2. Nhận xét
Từ sơ đồ chân và sơ đồ nguyên lý ở trên, ta rút ra các nhận xét ban đầu như sau :
PIC16F877A có tất cả 40 chân
40 chân trên được chia thành 5 PORT, 2 chân cấp nguồn, 2 chân GND, 2 chan thạch anh và một chân dùng để RESET vi điều khiển.
5 port của PIC16F877A bao gồm :
+ PORTB : 8 chân
+ PORTD : 8 chân
+ PORTC : 8 chân
+ PORTA : 6 chân
+ PORT E : 3 chân
1.1.1.3. Khái quát về chức năng của các port trong vi điều khiển PIC16F877A
PORTA
PORTA gồm có 6 chân. Các chân của PortA, ta lập trình để có thể thực hiện được chức năng “hai chiều” : xuất dữ liệu từ vi điều khiển ra ngoại vi và nhập dữ liệu từ ngoại vi vào vi điều khiển.
Việc xuất nhập dữ liệu ở PIC16F877A khác với họ 8051. Ở tất cả các PORT của PIC16F877A, ở mỗi thời điểm chỉ thực hiện được một chức năng :xuất hoặc nhập. Để chuyển từ chức năng này nhập qua chức năng xuất hay ngược lại, ta phải xử lý bằng phần mềm, không như 8051 tự hiểu lúc nào là chức năng nhập, lúc nào là chức năng xuất.
Trong kiến trúc phần cứng của PIC16F877A, người ta sử dụng thanh ghi TRISA ở địa chỉ 85H để điều khiển chức năng IO trên. Muốn xác lập các chân nào của PORTA là nhập (input) thì ta set bit tương ứng chân đó trong thanh ghi TRISA. Ngược lại, muốn chân nào là output thì ta clear bit tương ứng chân đó trong thanh ghi TRISA. Điều này hoàn toàn tương tự đối với các PORT còn lại
Ngoài ra, PORTA còn có các chức năng quan trọng sau :
Ngõ vào Analog của bộ ADC : thực hiện chức năng chuyển từ Analog sang Digital
Ngõ vào điện thế so sánh
Ngõ vào xung Clock của Timer0 trong kiến trúc phần cứng : thực hiện các nhiệm vụ đếm xung thông qua Timer0…
Ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port)
PORTB
PORTB có 8 chân. Cũng như PORTA, các chân PORTB cũng thực hiện được 2 chức năng : input và output. Hai chức năng trên được điều khiển bới thanh ghi TRISB. Khi muốn chân nào của PORTB là input thì ta set bit tương ứng trong thanh ghi TRISB, ngược lại muốn chân nào là output thì ta clear bit tương ứng trong TRISB.
Thanh ghi TRISB còn được tích hợp bộ điện trở kéo lên có thể điều khiển được bằng chương trình.
PORTC
PORTC có 8 chân và cũng thực hiện được 2 chức năng input và output dưới sự điều khiển của thanh ghi TRISC tương tự như hai thanh ghi trên.
Ngoài ra PORTC còn có các chức năng quan trọng sau :
Ngõ vào xung clock cho Timer1 trong kiến trúc phần cứng
Bộ PWM thực hiện chức năng điều xung lập trình được tần số, duty cycle: sử dụng trong điều khiển tốc độ và vị trí của động cơ v.v….
Tích hợp các bộ giao tiếp nối tiếp I2C, SPI, SSP, USART
PORTD
PORTD có 8 chân. Thanh ghi TRISD điều khiển 2 chức năng input và output của PORTD tương tự như trên. PORTD cũng là cổng xuất dữ liệu của chuẩn giao tiếp song song PSP (Parallel Slave Port).
PORTE
PORTE có 3 chân. Thanh ghi điều khiển xuất nhập tương ứng là TRISE. Các chân của PORTE có ngõ vào analog. Bên cạnh đó PORTE còn là các chân điều khiển của chuẩn giao tiếp PSP.

1.1.2 Tìm hiểu về vi điều khiển PIC16F877A
1.1.2.1 Cấu trúc phần cứng của PIC16F877A
PIC là tên viết tắt của “ Programmable Intelligent computer” do hãng General Instrument đặt tên cho con vi điều khiển đầu tiên của họ. Hãng Micrchip tiếp tục phát triển sản phầm này và cho đến hàng đã tạo ra gần 100 loại sản phẩm khác nhau.
PIC16F887A là dòng PIC khá phổ biến, khá đầy đủ tính năng phục vụ cho hầu hết tất cả các ứng dụng thực tế. Đây là dòng PIC khá dễ cho người mới làm quen với PIC có thể học tập và tạo nền tản về họ vi điều khiển PIC của mình.
Cấu trúc tổng quát của PIC16F877A như sau :
8K Flash Rom
368 bytes Ram
256 bytes EFPROM
5 port vào ra với tín hiệu điều khiển độc lập
2 bộ định thời Timer0 và Timer2 8 bit
1 bộ định thời Timer1 16 bit có thể hoạt động ở cả chế độ tiết kiệm năng lượng với nguồn xung clock ngoài
2 bộ Capture Compare PWM
1 bộ biến đổi Analog > Digital 10 bit, 8 ngõ vào
2 bộ so sánh tương tự
1 bộ định thời giám sát (Watch Dog Timer)
1 cổng song song 8 bit với các tín hiệu điều khiển
1 cổng nối tiếp
15 nguồn ngắt

Sơ đồ khối vi điều khiển 16F877A

1.1.2.2 Tổ chức bộ nhớ PIC16F877A
Bộ nhớ chương trình

Bộ nhớ chương trình PIC16F877A
Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ Flash, dung lượng 8K word (1 word chứa 14bit) và được phân thành nhiều trang như hình trên.
Để mã hóa được địa chỉ 8K word bộ nhớ chương trình, thanh ghi đếm chương trình PC có dung lượng 13 bit.
Khi vi điều khiển reset, bộ đếm chương trình sẽ trỏ về địa chỉ 0000h. Khi có ngắt xảy ra thì thanh ghi PC sẽ trỏ đến địa chỉ 0004h.
Bộ nhớ chương trình không bao gồm bộ nhớ Stack và không được địa chỉ hóa bởi bộ đém chương trình.
Bộ nhớ dữ liệu
Bộ nhớ dữ liệu của PIC16F877A được chia thành 4 bank. Mỗi bank có dụng lượng 128 byte.
Nếu như 2 bank bộ nhớ dữ liệu của 8051 phân chia riêng biệt : 128 byte đầu tiên thuộc bank1 là vùng Ram nội chỉ để chứa dữ liệu, 128 byte còn lại thuộc bank 2 là cùng các thanh ghi có chức năng đặc biệt SFR mà người dùng không được chứa dữ liệu khác trong đây thì 4 bank bộ nhớ dữ liệu của PIC16F877A được tổ chức theo cách khác.
Mỗi bank của bộ nhớ dữ liệu PIC16F877A bao gồm cả các thanh ghi có chức năng đặc biệt SFR nằm ở các các ô nhớ địa chỉ thấp và các thanh ghi mục đích dùng chung GPR nằm ở vùng địa chỉ còn lại của mỗi bank thanh ghi. Vùng ô nhớ các thanh ghi mục đích dùng chung này chính là nơi người dùng sẽ lưu dữ liệu trong quá trình viết chương trình. Tất cả các biến dữ liệu nên được khai báo chứa trong vùng địa chỉ này.
Trong cấu trúc bộ nhớ dữ liệu của PIC16F877A, các thanh ghi SFR nào mà thường xuyên được sử dụng (như thanh ghi STATUS) sẽ được đặt ở tất cả các bank để thuận tiện trong việc truy xuất. Sở dĩ như vậy là vì, để truy xuất một thanh ghi nào đó trong bộ nhớ của 16F877A ta cần phải khai báo đúng bank chứa thanh ghi đó, việc đặt các thanh ghi sử dụng thường xuyên giúp ta thuận tiên hơn rất nhiều trong quá trình truy xuất, làm giảm lệnh chương trình.

Sơ đồ bộ nhớ dữ liệu của PIC16F877A
Dựa trên sơ đồ 4 bank bộ nhớ dữ liệu PIC16F877A ta rút ra các nhận xét như sau :
Bank0 gồm các ô nhớ có địa chỉ từ 00h đến 77h, trong đó các thanh ghi dùng chung để chứa dữ liệu của người dùng địa chỉ từ 20h đến 7Fh. Các thanh ghi PORTA, PORTB, PORTC, PORTD, PORTE đều chứa ở bank0, do đó để truy xuất dữ liệu các thanh ghi này ta phải chuyển đến bank0. Ngoài ra một vài các thanh ghi thông dụng khác ( sẽ giới thiệu sau) cũng chứa ở bank0
Bank1 gồm các ô nhớ có địa chỉ từ 80h đến FFh. Các thanh ghi dùng chung có địa chỉ từ A0h đến Efh. Các thanh ghi TRISA, TRISB, TRISC, TRISD, TRISE cũng được chứa ở bank1
Tương tự ta có thể suy ra các nhận xét cho bank2 và bank3 dựa trên sơ đồ trên.
Cũng quan sát trên sơ đồ, ta nhận thấy thanh ghi STATUS, FSR… có mặt trên cả 4 bank. Một điều quan trọng cần nhắc lại trong việc truy xuất dữ liệu của PIC16F877A là : phải khai báo đúng bank chứa thanh ghi đó. Nếu thanh ghi nào mà 4 bank đều chứa thì không cần phải chuyển bank.
1.1.2.3 Một vài thanh ghi chức năng đặc biệt SFR
Thanh ghi STATUS: thanh ghi này có mặt ở cả 4 bank thanh ghi ở các địa chỉ 03h, 83h, 103h và 183h : chứa kết quả thực 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 : có mặt ở bank2 và bank3 có địa chỉ 81h và 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ủa 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 : có mặt ở cả 4 bank ở địa chỉ 0Bh,8Bh,10Bh,18Bh. Thanh ghi cho phép đọc và ghi, chứa các bit điều khiển và các bit báo tràn timer0, ngắt ngoại vi RB0INT và ngắt khi thay đổi trạng thái tại các chân của PORTB.

Thanh ghi PIE1 :địa chỉ 8Ch, chứa các bit điều khiển chi tiết các ngắt của các khối chức năng ngoại vi.

Thanh ghi PIR1 : địa chỉ 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 cho phép bởi các bit điều khiển chứa trong thanh ghi PIE1.

Thanh ghi PIE2 : địa chỉ 8Dh, chứa các bit điều khiển các ngắt của các khối chức năng CCP, SSP bú, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM.

Thanh ghi PIR2: địa chỉ 0Dh, 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 cho phép bởi các bit điều khiển chứa trong thanh ghi PIE2

Thanh ghi PCON : địa chỉ 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.

1.1.2.4 Thanh ghi W(work)
Đây là thanh ghi rất đặc biệt trong PIC16F877A. Nó có vai trò tương tự như thanh ghi Accummulator của 8051, tuy nhiên tầm ảnh hưởng của nó rộng hơn rất nhiều.
Tập lệnh của PIC16F877A có tất cả 35 lệnh thì số lệnh có sự “góp mặt” của thanh ghi W là 23 lệnh. Hầu hết các lệnh của PIC16F877A đều liên quan đến thanh ghi W. Ví dụ như, trong PIC chúng ta không được phép chuyển trực tiếp giá trị của một thanh ghi này qua thanh ghi khác mà phải chuyển thông qua thanh ghi W.
Thanh ghi W có 8 bit và không xuất hiện trong bất kỳ bank thanh ghi nào của bộ nhớ dữ liệu của 16F877A. Mỗi dòng lệnh trong PIC16F877a được mô tả trong 14 bit. Khi ta thực hiện một lệnh nào đó, nó phải lưu địa chỉ của thanh ghi bị tác động (chiếm 8 bit) và giá trị một hằng số k nào đó (thêm 8 bit nữa) là 16 bit, vượt quá giới hạn 14 bit. Do vậy ta không thể nào tiến hành một phép tính toàn trực tiếp nào giữa 2 thanh ghi với nhau hoặc giữa một thanh ghi với một hằng số k. Hầu hết các lệnh của PIC16F877A đều phải liên quan đến thanh ghi W cũng vì lý do đó. Khi thực hiện một dòng lệnh nào đó, thì PIC sẽ không phải tốn 8 bit để lưu địa chỉ của thanh ghi W trong mã lệnh ( vì được hiểu ngầm). Có thể xem thanh ghi W là thanh ghi trung gian trong quá trình viết chương trình cho PIC16F877A.
1.1.2.5 Các vấn đề về Timer
PIC16F877A có tất cả 3 timer : timer0 (8 bit), timer1 (16 bit) và timer2 (8 bit).
Timer0

Sơ đồ khối của Timer0
Cũng giống như 8051, Timer0 của 16F877A cũng có 2 chức năng : định thời và đếm xung. 2 chức năng trên có thể được lựa chọn thông qua bit số 5 TOCS của thanh ghi OPTION.
Ngoài ra, ta cũng có thể lựa chọn cạnh tích cực của xung clock, cạnh tác động ngắt…thông qua thanh ghi trên.
Timer0 được tích hợp thêm bộ tiền định 8 bit (prescaler), có tác dụng mở rộng “dung lượng” của Timer0. Bộ prescaler này có thể được điều chỉnh bởi các 3 bit PS2:PS0 trong thanh ghi OPTION. Nó có thể có giá trị 1:2, 1:4, 1:8, 1:16, 1:32, 1:64, 1:128, 1:256 tùy thuộc vào việc thiết lập các giá trị 0 ,1 cho 3 bit trên.
Bộ tiền định có giá trị 1:2 chẳng hạn ,có nghĩa là : bình thường không sử dụng bộ tiền định của Timer0 (đồng nghĩa với tiền định tỉ lệ 1:1) thì cứ khi có tác động của 1 xung clock thì timer0 sẽ tăng thêm một đơn vị. Nếu sử dụng bộ tiền định 1:4 thì phải mất 4 xung clock thì timer0 mới tăng thêm một đơn vị. Vô hình chung, giá trị của timer0 (8 bit) lúc này không còn là 255 nữa mà là 2554=1020.
Các thanh ghi liên quan đến Timer0 bao gồm :
TMR0 : chứa giá trị đếm của Timer0
INTCON : cho phép ngắt hoạt động
OPTION_REG : điều khiển prescaler
Timer1
Xem thêm

39 Đọc thêm

MẠCH ĐO NHIỆT ĐỘ DÙNG CẢM BIẾN NHIỆT LM35DZ VÀ CHIP VDK PIC16F887A HIỂN THỊ TRÊN 2 LED 7 ĐOẠN.

MẠCH ĐO NHIỆT ĐỘ DÙNG CẢM BIẾN NHIỆT LM35DZ VÀ CHIP VDK PIC16F887A HIỂN THỊ TRÊN 2 LED 7 ĐOẠN.

BÁO CÁO THỰC TẬP MẠCH SỐ ỨNG DỤNG
ĐỀ TÀI:MẠCH ĐO NHIỆT ĐỘ DÙNG CẢM BIẾN
NHIỆT LM35DZ VÀ CHIP VDK PIC16F887A HIỂN
THỊ TRÊN 2 LED 7 ĐOẠN.
I. Giới thiệu sơ lược về Chip VDK Pic16F877A:
Bộ vi điều khiển viết tắc là Microcontroller là mạch tích hợp trên một chip có
thể lập trình được,dùng để điều khiển hoạt động của hệ thống .Theo các tập
lệnh của người lập trình, bộ vi điêu khiển tiến hành đọc, lưu trữ thông tin, xử lý
thông tin, đo thời gian và tiến hành đóng mở một cơ cấu nào đó .
Trong các thiết bị điện và điện tử các bộ vi điều khiển điều khiển hoạt động của
ti vi, máy giặt, đầu đọc lase, lò vi ba, điện thoại …Trong hệ thống sản xuất tự
động, bộ vi điều khiển sử dụng trong robot, các hệ thống đo lường giám sát
.Các hệ thống càng thông minh thì vai trò của vi điều khiển ngày càng quan
trọng. Hiện nay trên thị trường có rất nhiều họ vi điều khiển như: 6811 của
Motorola, 8051 của Intel, Z8 của Zilog, PIC 16 của Microchip Technology …
Trong đề tài này chỉ trình bày một bộ vi điều khiển trong số trên (Pic 16F877A).
Hiện nay có khá nhiều dòng PIC và có rất nhiều khác biệt về phần cứng, nhưng
chúng ta có thể điểm qua một vài nét như sau :
• 816 bit CPU, xây dựng theo kiến trúc Harvard
• Flash và Rom có thể tuỳ chọn 256 byte đến 256 kbybe
• Các cổng xuấtnhập (mức lôgic thường từ 0v đến 5v, ứng với mức logic 0 và 1)
• 816 bit timer
• Các chuẩn giao tiếp ngoại vi nối tiếp đồng bộ không đồng bộ
• Bộ chuyển đổi ADC
• Bộ so sánh điện áp
• MSSP Pripheral dùng cho các giao tiếp I2C, SPI
• Bộ nhớ nội EEPROM có thể ghi xoá lên tới hàng triệu lần
• Modul điều khiển động cơ, đọc encoder
• Hỗ trợ giao tiếp USB
• Hỗ trợ điều khiển Ethernet
• Hỗ trợ giao tiếp CAN
• Hỗ trợ giao tiếp LIN
• Hỗ trợ giao tiếp IRDA
• DSP những tính năng xử lý tín hiệu số
Sơ đồ chân của PIC 16F877A:
Các thông số về vi điều khiển PIC16F877A
CPU tốc độ cao :
• Chỉ có 35 cấu trúc lệnh
• Hầu hết các cấu trúc lệnh chỉ mất một chu kỳ máy, ngoại trừ lệnh rẻ nhánh
chương trình mất hai chu kỳ máy
• Tốc độ làm việc: xung clock đến 20MHz, tốc độ thực thi lệnh 200ns
• 8K14 words của bộ nhớ chương trình ( flash program memory)
• 3688 byte bộ nhớ dữ liệu RAM
• 2568 byte bộ nhớ dữ liệu EEPROM
Đặc điểm ngoại vi:
• Timer 0: 8 bit timercounter với 8 bít bộ chia tỉ lệ
• Timer 1: 16 bit timercounter với bộ chia tỉ lệ có thể tăng lên trong chế độ
Sleep theo xung đồng hồ bên ngoài
• Timer2 : 8 bit timercounter
• Hai Modul capture, compare, PWM
+ Capturre 16 bit có độ phân giải 12,5ns
+ Compare 16 bit có độ phân giải 200ns
+ PWM 16 bít có độ phân giải 10 bit.
• Cổng giao tiếp nối tiếp đồng bộ với chế độ Master và Master Slave.
• Bộ truyền nhận nối tiếp vạn năng.
• Cổng Slave song song 8 bit được điều khiển đọc ghi từ bên ngoài.
Đặc điểm tương tự:
• Độ phân giải 10 bit với 8 kênh chuyển đổi tương tự số.
• Modul so sánh tương tự gồm:
+ Hai modul so sánh tương tự.
+ Modul tham chiếu điện áp trên chip(VEF) có thể lập trình được ,có thể lập
trình nhiều chức năng đầu vào từ các đầu vào và điện áp bên trong.
+ Hai đầu ra so sánh có thể sử dụng bên ngoài.
Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:
+ Bộ nhớ Flash có khả năng ghi xoá được 100.000 lần.
+ Bộ nhớ EEPROM với khả năng ghi xoá được 1.000.000 lần.
+ Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.
+ Khả năng tự nạp chương trình với sự điều khiển của phần mềm.
+ Nạp được chương trình ngay trên mạch điện ICSP (In Cicuit Serial
Programming) thông qua hai chân.
+ Watchdog timer với bộ dao động trong.
+ Chức năng bảo mật mã chương trình .
+ Chế độ SLEEP
+ Có thể hoạt động với nhiều dạng Oscillator khác nhau.
Sơ đồ khối của vi điều khiển PIC16F877A
Sơ đồ bộ nhớ dữ liệu của PIC16F877A
II. Giới thiệu về cảm biến nhiệt LM35DZ:
LM35DZ là loại cảm biến nhiệt độ được sử dụng rộng rãi trong công nghiệp,bởi
giá thành thấp và cách vận hành đơn giản.LM35DZ có mức điện áp thay đổi
trực tiếp theo độ C (10mVC).
Sơ đồ chân của LM35DZ:
Chân +Vslà chân cung cấp điện áp cho LM35DZ hoạt động (4—20V).
Chân Vout là chân điện áp ngõ ra của LM35DZ,được đưa vào chân Analog của
các bộ ADC.
Chân GND là chân nối mass,lưu ý cần nối mass chân này để trành làm hỏng
cảm biến cũng như làm giảm sai số trong quá trình đo.
III. Giới thiệu về Led 7 đoạn Anode chung dùng trong mạch hiển thị:
LED 7 đoạn là một công cụ thông dụng được dùng để hiển thị các thông số dưới
dạng các số từ 0 đến 9. Mặc dù công cụ LCD giúp ta thể hiện các thông số một
cách linh động hơn nhưng LED 7 đoạn vẫn được sử dụng nhiều trong công
nghiệp do các ưu thế của nó như: ít chịu ảnh hưởng của nhiệt độ, dễ tạo sự chú
. và góc nhìn rộng.
LED 7 đoạn bao gồm 7 đoạn LED được đánh dấu là các kí tự a, b, c, d, e, f, g và
một dấu chấm thập phân kí hiệu là dp. Ta có thể xem LED 7 đoạn là một tổ hợp
gồm 8 LED. 8 LEDnày có một đầu (Anode hoặc Cathode) được nối chung và
được bố trí theo mộtqui tắc nhất định dùng để hiển thị các chữ số thập phân.
a
d
p
b
c
e
d
g
f
Có hai loại LED 7 đoạn, đó là loại Anode chung (cực Anode của các LED được
nối chung với nhau) và loại Cathode chung (cực Cathode của các LED được nối
chung với nhau). Tùy theo từng loại LED mà ta có các phương pháp điều khiển
các LED trong tổ hợp đó sáng tắt một cách thích hợp. Đối với loại Anode chung,
một LED sẽ được bật sang nếu mức logic đưa vao chan điều khiển đoạn LED đo
la mức logic 0. Đối với loại Cathode chung, một LED sẽ được bật sang nếu mức
logic đưa vao chan điều khiển đoạn LED đo là mức logic 1.
IV. Sơ đồ nguyên lí mạch đo nhiệt độ dùng PIC 16F877A + Sensor nhiệt
LM35DZ hiển thị trên 2 led 7 đoạn Anode chung:
V. Mã nguồn chương trình:
++++++++++++++++++++++++++++++++++++++++++++++
+++++|
| CHUONG TRINH HIENTHI NHIET DO TREN 2 LED 7 DOAN
| BAO CAO THUC TAP MACH SO UNG DUNG
| NGUYEN TIEN CHUAN07125052020707DT2
| |++++++++++++++++++++++++++++++++++++++
+++++++++++++|
|||||||||||| KET NOI PHAN CUNG ||||||||||||||||
+++++++++++++++++++++++++++++++++++++++++++++++
++++++
| RB0>6 KET NOI DEN CAC CHAN A,B,C,D,E,F,G CUA 2 LED 7 DOAN ANODE
CHUNG.
| CHAN 8(VCC) CUA 2 LED 7 D0AN DUOC DIEU KHIEN BOI 2 BJT THUAN PNP:
A1015
| CHAN C CUA 2 BJT NOI VOI CHAN VCC CUA 2 LED 7 DOAN DE DIEU KHIEN
QUET LED
| CHAN E CUA BJT NOI VOI NGUON
| CHAN B (BAM DIEN TRO 10K )CUA BJT HANG CHUC VA DON VI NOI LAN LUOT
VOI CHAN RD1,RD0
|+
| SU DUNG TRINH BIEN DICH PCWH COMPLIER VER:4.018
| SU DUNG TRINH WINPIC800 DE NAP FILE HEX LEN PIC QUA CHUAN GIAO TIEP
ICSP
|++++++++++++++++++++++++++++++++++++++++++++++
+++++++
include <16F877A.h> KHAI BAO SU DUNG PIC 16F877A
include FILE DINH NGHIA CAC THANH GHI VA CAC BIT
device =16 adc=10 KHAI BAO SU DUNG CON TRO 16 BIT VA ADC 10 BIT
KHAI BAO CAU HINH CHO PIC 16F877A
FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP,
NOCPD, NOWRT
KHAI BAO SU DUNG DELAY VOI TAN SO DAO DONG NGOAI
use delay(clock=20000000)
int8 high,low; KHAI BAO CAC BIEN SO NGUYEN 1 BYTE
KHAI BAO BANG MA LED 7 DOAN ANODE CHUNG
int8 const a10 = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
CHUONG TRINH CON TACH SO HANG CHUC VA HANG DON VI
void convert_bcd(int8 x)
{
low=x%10; CHU SO HANG DON VI
high=x10; CHU SO HANG CHUC
}
CHUONG TRINH CON HIEN THI RA 2 LED 7 DOAN
void display()
{
PORTB=alow;
RD0=0;
delay_us(500);
RD0=1;
PORTB=ahigh;
RD1=0;
delay_us(500);
RD1=1;
}
void main()
{
float value;
int16 i;
trisb = 0x00; THIET LAP CAC CHAN PORTB LA OUTPUT
trisd = 0x00; THIET LAP CAC CHAN PORT D LA OUTPUT
trise = 0x00; THIET LAP CAC CHAN PORT E LA OUTPUT
trisa = 0xff; THIET LAP CAC CHAN PORT A LA INPUT
KHOI TAO ADC
setup_adc(ADC_CLOCK_INTERNAL); THIET LAP THOI GIAN LAY MAU BANG
XUNG CLOCK
setup_adc_ports(AN0); THIET LAP CHAN AN0 LA CHAN VAO ADC
set_ADC_channel(0) ;
delay_us(10); TRE 10US
value=(float)read_adc(); DOC GIA TRI ADC
value = value2.048;
convert_bcd((int8)value); GOI CHUONG TRINH CON CONVERT_BCD
i=0;
while(1)
{
i++;
value =(float) read_adc();
value = value2.048;
if (i==2000)
{
convert_bcd((int8)value);
i=0;
}
display();
}
}
VI. Lời kết:
Vì kiến thức còn nhiều hạn chế ,nên đề tài mạch đo nhiệt độ của chúng em
không thể tránh khỏi những sai sót,cũng như chức năng của mạch còn nhiều
hạn chế.Sau 4 tuần triển khai làm việc nhóm,với sự hướng dẫn của Thầy LÊ
NGỌC QUÝ VĂN ,nhóm của chúng em đã hoàn thành mạch đúng theo mục đích
ban đầu ,với thời gian theo yêu cầu.
XIN CHÂN THÀNH CẢM ƠN THẦY
Xem thêm

11 Đọc thêm

Automating with SIMATIC s7 400 inside TIA portal publicis (2013)

AUTOMATING WITH SIMATIC S7 400 INSIDE TIA PORTAL PUBLICIS (2013)

With many innovations, the SIMATIC S71500 programmable logic controller (PLC) sets new standards in productivity and efficiency in control technology. By its outstanding system performance and with PROFINET as the standard interface, it ensures extremely short system response times and the highest control quality with a maximum of flexibility for most demanding automation tasks.

The engineering software STEP 7 Professional operates inside TIA Portal, a user interface that is designed for intuitive operation. Functionality includes all aspects of Automation: from the configuration of the controllers via the programming in the IEC languages ??LAD, FBD, STL, and SCL up to the program test.

In the book, the hardware components of the automation system S71500 are presented including the description of their configuration and parameterization. A comprehensive introduction into STEP 7 Professional illustrates the basics of programming and troubleshooting. Beginners learn the basics of automation with Simatic S71500 and users who will switch from S7300 and S7400 receive the necessary knowledge.
Xem thêm

747 Đọc thêm

10 C LANGUAGE TIPS FOR ENGINEERS

10 C LANGUAGE TIPS FOR ENGINEERS

Tip #4 – Avoid using assembly languageThe natural language for a microprocessor is assembly language instructions. Writing a program in the lowlevel machine language can result in more efficient code for the processor; however, humans don’t naturallyspeak this language and as experience has shown writing assembly language results in misunderstanding.Misunderstanding then leads to improper maintenance or worse and the result is a system overridden withbugs. Because of this, the general tip is to avoid the use of assembly language. The detailed truth of thematter is that most compilers now a day compile very efficient code. Developing in the higher languages likeC/C++ results in a more organized structure which is easier to understand and maintain, the result of which isoverall better code. A simple example can be seen in Listing 7 which compares the assembly to C code toincrement a 32 bit variable.Listing 7 – Incrementing a variable in Assembly vs CWith that said, there are still occasions when it is appropriate to use assembly language, but those times arescarce. The first recommended time may be when developing a boot-loader. In this instance, during start-up itmay be necessary to optimize how quickly a decision is made to boot the application or the boot-loader. Inthis case assembly code for the branch decision may make sense. Another, is when developing a control loopthat has tight timing requirements on a DSP. In order to squeeze every clock cycle out of the device it maymake sense to code the control loop in assembly. If the task at hand is appropriate for using assembly, makesure that it is well documented so that future developers (or future versions of yourself) can understand whatthe code is doing.Tip #5 – Take advantage of modularityOne of the most common experiences the author has when taking on a new project that was started byhardware engineers is the atrocious organization of the code. It isn’t uncommon to find that code consists of asingle main module with in excess of 25,000 lines. In these applications everything is global, functions aresparse and goto statements rule the organization of the code. Fifteen years ago this was the norm but notanymore! Programming in C/ has given engineers the ability to break up their code into separate functionalmodules. This eases navigation of the code but also starts to allow an engineer to use object orientedtechniques such as encapsulation. Where it makes sense, organize code into logical modules. It’ll take a little
Xem thêm

8 Đọc thêm

TÀI LIỆU CCS _LẬP TRÌNH VI ĐIỀU KHIỂN

TÀI LIỆU CCS _LẬP TRÌNH VI ĐIỀU KHIỂN

Chương II: LẬP TRÌNH CHO PIC DÙNG C COMPILER
I. GIỚI THIỆU PIC C COMPILER:
1. Giới Thiệu PIC C Compiler:
PIC C compiler là ngôn ngữ lập trình cấp cao cho PIC được viết trên nền C. chương trình
viết trên PIC C tuân thủ theo cấu trúc của ngôn ngữ lập trình C. Trình biên dịch của PIC C compiler sẽ chuyển chương trình theo chuẩn của C thành dạng chương trình theo mã Hexa (file.hex) để nạp vào bộ nhớ của PIC. Quá trình chuyển đổi được minh hoạ như hình 2.1.








File.c (Chương trình viết cho PIC dưới dạng C)







Biên dịch

File.hex (Chương trình dưới dạng mã hex để nạp cho PIC)





Thiết bị
lập trình

















Hình 2.1 Quá trình lập trình, biên dịch và nạp cho PIC

PIC C compiler gồm có 3 phần riêng biệt là PCB, PCM và PCH. PCB dùng cho họ MCU với bộ lệnh 12 bit, PCM dùng cho họ MCU với bộ lệnh 14 bit và PCH dùng cho họ MCU với bộ lệnh 16 và 18 bit. Mỗi phần khác nhau trong PIC C compiler chỉ dùng được cho họ MCU tương ứng mà không cho phép dùng chung (Ví dụ không thể dùng PCM hoặc PCH cho họ MCU 12 bit được mà chỉ có thể dùng PCB cho MCU 12 bit).
2. Cài Đặt Và Sử Dụng PIC C Compiler:
a. Cài đặt PIC C compiler:
Để cài đặt PIC C compiler, bạn phải có đĩa CD chứa software PCW. Phần mềm này có thể download trên mạng ở địa chỉ . Khi có đĩa CD software, việc cài đặt PIC C compiler được thực hiện theo các bước sau:
Từ Start menu > chọn run > chọn browse > chọn thư mục PCW > chọn setupPCW > click
OK. Khi đó xuất hiện cửa sổ welcome.
Trên cửa sổ Welcome, click chuột vào nút Next, sau khi click Next, cửa sổ Software License
Agreement sẽ xuất hiện, click nút nhấn Yes.
Trong của sổ Readme information, click nút nhấn Next.
Xem thêm

71 Đọc thêm

Direct 3D Succinctly by Chris Rose

DIRECT 3D SUCCINCTLY BY CHRIS ROSE

DirectX is an application programming interface (API) developed by Microsoft to enable programmers to leverage the power of many different types of hardware with a uniform programming interface. It contains components that deal with all aspects of multimedia including
graphics, sound, and input. In this book, we will look at techniques for programming threedimensional (3D) graphics using DirectX 11 and Visual Studio 2012. The version of Visual Studio used throughout the book is the Windows 8 version of Visual Studio Express 2012.
A background of C++ is assumed, and this book is designed as a follow up to the previous book in the series (Direct2D Succinctly), which mostly looked at twodimensional (2D) graphics. We will look at the basics of DirectX and 3D graphics, communicating with the GPU and loading 3
D model files. We will look at texture mapping, highlevel shading language (HLSL), and lighting. We will also look at how to read and respond to user input via a mouse, keyboard, and touchscreen.
We will put it all together, including information on Direct2D from the previous book, and create the beginnings of a simple 3D game.
Xem thêm

145 Đọc thêm

PHÂN LOẠI SẢN PHẨM DÙNG MÃ VẠCH BAR CODE

PHÂN LOẠI SẢN PHẨM DÙNG MÃ VẠCH BAR CODE

ĐỒ ÁN CHUYÊN NGÀNHMÔ HÌNH PHÂN LOẠI SẢN PHẨM DÙNGMÃ VẠCH – BAR CODECHUYÊN NGÀNH: CÔNG NGHỆ ĐIỆN TỬ ĐIỆN TỬ TỰ ĐỘNG MỤC LỤCLỜI CẢM ƠNLỜI NÓI ĐẦUCHƯƠNG 1: CƠ SỞ LÝ THUYẾT VI ĐIỀU KHIỂN PIC1.Giới thiệu pic:1.1Sơ lược về pic:1.2Phân loại pic:1.3Ngôn ngữ lập trình:2.Sơ đồ vi điều khiển:2.1Sơ đồ chân vi điều khiển 3 pic 16f877a:2.2Sơ đồ khối:2.3Bộ nhớ:3.Đặc điểm pic 16f877a:4.Chức năng các modul của pic 1678ffa:4.1Modul IO:4.2Modul điều rộng xung (pwm):4.3Giao tiếp nối tiếp:5.Tập lệnh:CHƯƠNG 2: NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨUPHẦN 1: KẾT QUẢ VÀ CÁCH PHÂN LOẠI SẢN PHẨM PHẦN 2: TÌM HIỂU MÃ VẠCH BARCODE1.Lời mở đầu:2.Mã vạch hàng hóa:3.Một số khái niệm cơ bản của máy đọc mã vạch:4.Máy đọc mã vạch laser barcode scan al3s:5.Cấu trúc mã vạch EAN_8:6.Mã số 93 mã vạch7.Mã số 39 mã vạch8.Mã số 128 mã vạchPHẦN 3: NGHIÊN CỨU BĂNG TẢI1.Khái niệm:2. Các loại băng chuyền phân loại sản phẩm hiện nay3.Đặc điểm4.Ứng dụng5.Người vận hành băng tải cần tuân thủ các nguyên tắc sau6.Một số sự cố và biện pháp khắc phụcPHẦN 4: MÔ HÌNH PHÂN LOẠI SẢN PHẨM DÙNG BARCODE1.Mô hình đồ án 2. Lưu đồ giải thuật3.Khối nguồn4.Sơ đồ khốiPHẦN 5: KẾT QUẢ VÀ CÁCH PHÂN LOẠI SẢN PHẨM1. Kết quả2. Cách chạy mô hình3. Cách phân loại sản phẩmPHẦN 6: HƯỚNG PHÁT TRIỂNCHƯƠNG 1: CƠ SỞ LÝ THUYẾT VI ĐIỀU KHIỂN PIC1.Giới thiệu pic:1.1Sơ lược về pic:PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch là “máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi điều khiển đầu tiên của họ PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên cứu phát triển thêm và từ đó hình thành nên dòng vi điều.1.2Phân loại pic:Kí hiệu: PIC12xxxx: độ dài lệnh 12 bit. PIC16xxxx: độ dài lệnh 14 bit. PIC18xxxx: độ dài lệnh 16 bit.Theo chữ cái: C: PIC có bộ nhớ EPROM (chỉ có 16C84 là EEPROM). F: PIC có bộ nhớ flash. LF: PIC có bộ nhớ flash hoạt động ở điện áp thấp. LV: tương tự như LF, đây là kí hiệu cũ.Theo hai chữ số đầu tiên:+Pic 12cxx,dòng pic cơ bản.+Pic 10F, 12F,16F dòng phổ biến hiên nay 14bit.+Pic 18 dòng cao cấp, độ dài lệnh 16bit.+Vi điều khiển có kí hiệu xxFxxx là EEPROM, nếu có thêm chữ A ở cuối là flash (ví dụ PIC16F877 là EEPROM, còn PIC16F877A là flash). Ngoài ra còn có thêm một dòng vi điều khiển PIC mới là dsPIC. Ở Việt Nam phổ biến nhất là các họ vi điều khiển PIC do hãng Microchip sản xuất.1.3Ngôn ngữ lập trình:Hộp ngữ, ccs, map lap.2.Sơ đồ vi điều khiển: 2.1Sơ đồ chân vi điều khiển 3 pic 16f877a:2.2Sơ đồ khối:2.3Bộ nhớ: 2.3.1Bộ nhớ chương trình: Có địa chỉ từ 0000h đến 1FFFh, trong đó từ địa chỉ 00005h đến 1FFFh phân thành 3 trang.2.3.2Bộ nhớ dữ liệu: Bộ nhớ EEPROM pic 16f877a, được chia ra làm 4 bank. Mỗi bank có dung lượng 128 byte bao gồm các thanh ghi có chức năng đặc biệt SFG Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F877A như sau:3.Đặc điểm pic 16f877a:Hổ trợ dao động thạch anh lên tới 20 Mhz.8 kênh adc 10 bit.Có 2 kênh cpp gồm ccp1 và eccpi.1 module giao tiếp nối tiếp usart theo chẩn rs 232 và rs 485.Mơ dun psp (parallel slave port).Timer 0: bộ đếm 8 bit.Timer 1: bộ dếm 16 bit, có thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.Timer 2: bộ đếm 8 bit.4.Chức năng các modul của pic 1678ffa:4.1Modul IO: Các port của 16f877a cho phép truyền và nhận dữ liệu theo 2 chiều. Hướng truyền được xác định bằng thanh ghi tris x “ x là port”, nếu 1 bit trong thanh ghi này được gán ở giá trị 0 thì pic hiểu là output còn ngược lại là input.vi du: trisb=’11110000’ từ rb0 đến rb3 la input, con lai la output.Port A: Gồm 8 chân, có chúc năng input và output ngoài ra còn có thêm các chức năng: + RA4 chân cấp xung clock cho timer 0. + chân vào điện thế chuẩn cho chức năng ADC. + RA6,RA7 chân cấp dao động ngồi cho vi điều khiển.Port B: Gồm 8 chân từ RB0 đến RB7, cũng có chức năng input và out như port a, ngoài ra còn có thêm chức năng liên quan đến ngắt ngoại vi và timer 0. Port B còn được tich hợp chức năng điện trở kéo được điểu khiển bởi chương trình.Bên cạnh đó một số chân của port B dùng trong qúa trinh nạp dữ liệu cho vi điều khiển.Port C: Củng giống như port A nhưng có thêm chức năng: dùng cho bộ định thời và đếm, bộ so sánh và điều khiển pwm, giao tiếp nối tiếp USART, giao tiếp I2C,SPI, SSP.Port D: Củng giống như port A, có 8 chân điều input và output. Ngoài ra còn có thêm chức năng của bộ enhthenced PWM và các cổng dữ liệu của chuẩn giao tiếp PSP (parallel slave port).Port E: Gồm 4 chân, có chức năng: + 3 chan ngõ vào ra của digital IO. + Các chân dữ liệu của giao tiếp PSP. + Chân MCLRVPPRE3 hoạt động như một input (khi MCLRE = 0).Nếu không thì hoạt động như Master clear input. RE3 có chức như the grogamming voltage input trong suốt quá trình lập trình.Các bộ timer: + Timer 0: Là bộ đếm 8 bit của pic 16f877a, kết nối với bộ chia tần số(prescaler) 8 bit. Cấu trúc của timer 0 cho phép chọn xung clock tác động, cạnh tích cực của xung clock, ngắt timer 0 xuất hiện khi tràn timer 0. bit TMR0IE (intcon<5>) bit điều khiện timer 0. TMROIE =1 cho phép ngắt timer 0, TMR0IF = 0, không cho phép ngắt timer 0 tác động. sơ đồ khối của timer 0 như sau:
Xem thêm

49 Đọc thêm

Automating with SIMATIC s7 1500 configuring, programming and testing with STEP 7 professional publicis (2014)

AUTOMATING WITH SIMATIC S7 1500 CONFIGURING, PROGRAMMING AND TESTING WITH STEP 7 PROFESSIONAL PUBLICIS (2014)

With many innovations, the SIMATIC S71500 programmable logic controller (PLC) sets new standards in productivity and efficiency in control technology. By its outstanding system performance and with PROFINET as the standard interface, it ensures extremely short system response times and the highest control quality with a maximum of flexibility for most demanding automation tasks.

The engineering software STEP 7 Professional operates inside TIA Portal, a user interface that is designed for intuitive operation. Functionality includes all aspects of Automation: from the configuration of the controllers via the programming in the IEC languages ??LAD, FBD, STL, and SCL up to the program test.

In the book, the hardware components of the automation system S71500 are presented including the description of their configuration and parameterization. A comprehensive introduction into STEP 7 Professional illustrates the basics of programming and troubleshooting. Beginners learn the basics of automation with Simatic S71500 and users who will switch from S7300 and S7400 receive the necessary knowledge.
Xem thêm

832 Đọc thêm

Siemens simatic s7 st 7pro1 course

SIEMENS SIMATIC S7 ST 7PRO1 COURSE

With many innovations, the SIMATIC S71500 programmable logic controller (PLC) sets new standards in productivity and efficiency in control technology. By its outstanding system performance and with PROFINET as the standard interface, it ensures extremely short system response times and the highest control quality with a maximum of flexibility for most demanding automation tasks.

The engineering software STEP 7 Professional operates inside TIA Portal, a user interface that is designed for intuitive operation. Functionality includes all aspects of Automation: from the configuration of the controllers via the programming in the IEC languages ??LAD, FBD, STL, and SCL up to the program test.

In the book, the hardware components of the automation system S71500 are presented including the description of their configuration and parameterization. A comprehensive introduction into STEP 7 Professional illustrates the basics of programming and troubleshooting. Beginners learn the basics of automation with Simatic S71500 and users who will switch from S7300 and S7400 receive the necessary knowledge.
Xem thêm

410 Đọc thêm

Cùng chủ đề