1. Trang chủ
  2. » Luận Văn - Báo Cáo

chương trình giao tiếp pic18f452 và máy tính qua cổng com sử dụng ngôn ngữ lập trình c#

26 1,7K 10

Đ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

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 801 KB

Nội dung

Để có thể thiết kế và vận hành các hệ thống đó, các kỹ sư cần nắm vững về kỹ thuật máy tính, cách viết các chương trình, ghép nối thiết bị ngoại vi, xử lýtín hiệu và điều khiển số… Trong

Trang 1

M C L C ỤC LỤC ỤC LỤC

LỜI NÓI ĐẦU 3

DANH MỤC HÌNH ẢNH 4

CHƯƠNG 1 : PHÂN TÍCH BÀI TOÁN 5

3.3.1 Yêu cầu hệ thống 5

3.3.1 Giới thiệu hệ thống 5

1 1 Lựa chọn vi điều khiển 5

1 2 Khối hiển thị LCD 6

1 3 Phần mềm truyền nhận dữ liệu với vi điều khiển trên PC 7

1 4 Chuẩn giao tiếp RS232 7

CHƯƠNG 2 : GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C# 9

2.1 Giới thiệu 9

2.2 Đặc điểm của ngôn ngữ lập trình C# 9

2.2.1 Ưu điểm 9

2.2.2 Nhược điểm 10

2.2.3 So sánh C# và C++ 10

CHƯƠNG 3 : THIẾT KẾ HỆ THỐNG 11

3.1 Sơ đồ khối hệ thống 11

3.2 Lưu đồ thuật toán chương trình của vi xử lý 11

3.3 Thiết kế hệ thống 12

3.3.1 Mạch mô phỏng trên proteus 12

3.3.1 Giao diện chương trình truyền nhận dữ liệu trên máy tính 12

3.4 Một số hình ảnh mô phỏng của hệ thống 13

3.5 Thư viện và mã nguồn lập trình 16

3.5.1 Thư viện hỗ trợ lập trình giao tiếp qua cổng nối tiếp 16

3.5.2 Xây dựng lớp đối tượng NewCOM 17

Trang 2

4.1 Những kết quả đã đạt được 25 4.2 Hướng phát triển của đề tài 25 TÀI LIỆU THAM KHẢO 26

Trang 3

LỜI NÓI ĐẦU

Ngày nay, các máy tính đã được cải tiến, nâng cấp để đạt tốc độ nhanh vàgiá thành rẻ Trong những thập niên qua, máy tính đã được áp dụng khắp mọinơi, thay thế các hệ thống cũ nhiều nhược điểm Đặc biệt trong lĩnh vực côngnghiệp, máy tính đã được ứng dụng ngày càng nhiều, mang lại nhiều tính năng

ưu việt cho hệ thống Trong các ứng dụng đó, ứng dụng đo lường và điều khiểnbằng máy tính đang ngày càng phát triển

Để có thể thiết kế và vận hành các hệ thống đó, các kỹ sư cần nắm vững về

kỹ thuật máy tính, cách viết các chương trình, ghép nối thiết bị ngoại vi, xử lýtín hiệu và điều khiển số…

Trong khuôn khổ bài thảo luận môn lập trình windows Chúng em xin trình

bày các kết quả đã nghiên cứu của đề tài : “Sử dụng ngôn ngữ lập trình C# và các kiến thức liên quan thiết kế modul truyền thông tin từ máy tính xuống

vi điều khiển và hiển thị nên màn hình LCD”.

Vì nhiều lý do khác nhau nên chúng em sẽ tiến hành thực hiện đề tài bằngvệc mô phỏng trên máy trính

Bài thảo luận được chia làm 4 chương :

Chương 1 : Phân tích bài toán

Trong chương này sẽ trình bày các ràng buộc của bài toán, các yêu cầu cầnđạt được của đề tài

Chương 2 : Giới thiệu ngôn ngữ lập trình C#

Trong chương này sẽ giới thiệu nền tảng, các tính năng nổi bật của ngôn ngữlập trình c#

Chương 3 : Thiết kế hệ thống

Chương này sẽ trình bày sơ đồ nguyên lý của hệ thống, giao diện chươngtrình đã thiết kế

Chương 4 : Kết quả và hướng phát triển của đề tài

Chương này trình bày các kết quả đã đạt được Các kết quả của quá trình môphỏng Giới thiệu hướng phát triển của đề tai

Trang 4

DANH M C HÌNH NH ỤC LỤC ẢNH

Hình 1 : Vi điều khiển PIC18F452 6

Hình 2 : Màn hình LCD 40x2 chuẩn HD44780U 6

Hình 3 : Sơ đồ hệ thống 11

Hình 4 : Sơ đồ thuật toán xử lý dữ liệu trên vi xử lý 11

Hình 5: Sơ đồ mô phỏng trên proteus 12

Hình 6 : Giao diện chương trình nhận dữ liệu trên máy trính 12

Hình 7 : Giao diện chương trình truyền dữ liệu trên máy tính 13

Hình 8 : Hoạt động của chương trình khi chưa gửi dữ liệu 13

Hình 9 : Hoạt động của chương trình khi nhận được dữ liệu 14

Hình 10 : Hoạt động truyền nhận dữ liệu trên phần mềm 15

Trang 5

CHƯƠNG 1 : PHÂN TÍCH BÀI TOÁN

3.3.1 Yêu cầu hệ thống

Từ thực tế và lý thuyết đã học trong các môn : vi xử lý, hệ thống nhúng vàlập trình windows Hệ thống chỉ hoạt động được nếu đáp ứng được các yêu cầusau đây :

- Máy tính có thể xuất thông tin người dùng đã nhập ra cổng COM

- Vi điều khiển có thể nhận dữ liệu từ cổng COM do máy tính đã truyền xuống và hiển thị lên LCD

- Vi điều khiển có thể gửi dữ liệu đã nhận được trở lại máy tính

3.3.1 Giới thiệu hệ thống

Các máy tính, vi điều khiển đều hỗ trợ các modul truyền thông qua cổngcổng com Các modul này đã được nâng cấp cải tiến đi rất nhiều nhằm đáp ứngnhu cầu của người sử dụng Việc kết nối, tùy biến chúng là công việc của các

kỹ sư thiết kế Để có thể thiết kế được các sản phẩm có chất lượng tốt yêu cầucác kỹ sư phải hiểu tường tận hệ thống mình đang xây dựng và các tính năng đãđược hỗ trợ, xây dựng sẵn của các modul, linh kiện trong hệ thống

Hệ thống chúng em đang trình bày gồm các thành phần sau : máy tính, phầnmềm gửi dữ liệu từ máy tính viết bằng ngôn ngữ lập trình C#, vi điều khiển,màn hình LCD, chuẩn truyền thông giữa máy tính và vi điều khiển là RS232

1.1 Lựa chọn vi điều khiển

Vi điều khiển được sử dụng trong hệ thống là PIC18F452 Đây là vi điềukhiển chúng em đã được nghiên cứu trong môn học hệ thống nhúng Việc sửdụng PIC18F452 cũng là để vận dụng các kiến thức đã học trong môn hệ thốngnhúng

Các tính năng của PIC18F452 hỗ trợ cho các yêu cầu của đề tài :

o Hỗ trợ chuẩn RS232 và RS485

Trang 6

Hình 1 : Vi điều khiển PIC18F452 1.2 Khối hiển thị LCD

LCD sử dụng trong hệ thống là LCD 40x2 chuẩn HD44780U LCD có 16chân, gồm : 14 chân điều khiển, 2 chân nguồn LCD là một trong các thiết bịhiển thị phổ biến nhất trong các hệ thống nhúng Chúng em đã chọn LCD 40x2với mục đích có thể thể hiện tốt nhất thông tin đã nhận được từ máy tính, kiểmchứng lại lý thuyết đã học

Hình 2 : Màn hình LCD 40x2 chuẩn HD44780U

Trang 7

1.3 Phần mềm truyền nhận dữ liệu với vi điều khiển trên PC

Phần mềm truyền nhận dữ liệu được viết trên visual studio 2010 và C# 4.0.một trong những môi trường tích hợp tốt nhất cho việc phát triển các ứng dụngtrên nền windows

1.4 Chuẩn giao tiếp RS232

Ghép nối qua cổng nối tiếp là một trong những kỹ thuật được sử dụng nhiềunhất để ghép nối các thiết bị ngoại vi với máy tính Số lượng và chủng loại thiết

bị ngoại vi ghép nối qua cổng nối tiếp đứng hàng đầu trong các khả năng ghépnối với máy tính Cách truyền thông theo kiểu nối tiếp, nghĩa là tại 1 thời điểmchỉ có 1 bit được gửi đi dọc theo đường truyền

Chuẩn giao tiếp RS232 ban đầu chỉ là một chuẩn giao tiếp không chính thứcđược nhiều công ty máy tính và thiết bị đo lường chấp nhận Năm 1962, nóđược xây dựng thành một chuẩn chính thức bởi EIA (Electronics IndustryAsociations)

Ghép nối qua chuẩn RS232 là một trong những kỹ thuật được sử dụng rộngrãi nhất để ghép nối các thiết bị ngoại vi với máy tính Qua cổng nối tiếp có thểghép nối chuột, modem, máy in (APPLE), các thiết bị đo lường…

Ưu điểm : ghép nối dễ dàng với các thiết bị ngoại vi, như vi điều khiển,PLC, Modem

Nhược điểm : tốc độ truyền thấp, khoảng cách truyền tối đa là 20m

Trang 8

So sánh một số chuẩn giao tiếp USART :

điểm

Liên kết điểm

Liên kết bus

không

Điện áp đối xứng

Điện áp đối xứng Chống

nhiễu

Số bộ đệm cực đại

Số bộ nhận cực đại

Độ dài đường

Tốc độ truyền cực

Điện áp bộ đệm(không

±15/±5 V

V Điện trở

nối ra bộ

Điện trở nối vào bộ

Độ nhạy

bộ nhận

Trang 9

CHƯƠNG 2 : GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C#

2.1 Giới thiệu

C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởiMicrosoft, là phần khởi đầu cho kế hoạch NET của họ Tên của ngôn ngữ baogồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu sốthường Microsoft phát triển C# dựa trên C++ và Java C# được miêu tả là ngônngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java.C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nổi tiếngvới các sản phẩm Turbo Pascal, Delphi, J++, WFC

C# là một trong rất nhiều ngôn ngữ lập trình được hỗ trợ bởi .NETFramework (như C++, Java,VB…) Có thể hiểu đơn giản đây là một trung tâmbiên dịch trong đó tất cả các ngôn ngữ được hỗ trợ bởi NET Framework sẽđược chuyển đổi ra MSIL (một dạng mã trung gian) rồi từ đấy mới được biêndịch tức thời (Just in time Compiler – JIT Compiler) thành các file thực thi nhưexe Một thành tố quan trong nữa trong kiến trúc NET Framework chính làCLR (.NET Common Language Runtime), khối chức năng cung cấp tất cả cácdịch vụ mà chương trình cần giao tiếp với phần cứng, với hệ điều hành

2.2 Đặc điểm của ngôn ngữ lập trình C#

C#, theo một hướng nào đó, là ngôn ngữ lập trình phản ánh trực tiếp nhấtđến NET Framework mà tất cả các chương trình NET chạy, và nó phụ thuộcmạnh mẽ vào Framework này Mọi dữ liệu cơ sở đều là đối tượng, được cấpphát và hủy bỏ bởi trình dọn rác Garbage-Collector (GC), và nhiều kiểu trừutượng khác chẳng hạn như class, delegate, interface, exception, v.v, phản ánh rõràng những đặc trưng của NET runtime

2.2.1 Ưu điểm

C# được kế thừa những ưu điểm của C/C++, bỏ đi những dư thừa không cầnthiết gây khó khăn cho người sử dụng

- Câu lệnh C# đơn giản, ít từ khóa

- Tính năng debug rất thuận tiện

- Ngôn ngữ lập trình C# được đánh giá là dễ học và kết hợp được nhiều ưuđiểm của các ngôn ngữ lập trình hướng đối tượng Java và C++ Do đóngôn ngữ C# đang đựơc ưu chuộng nhất

Trang 10

- Ngôn ngữ C# là cơ sở để phát triển các ứng dụng windows Form,ASP.NET, Web service…

- Hổ trợ nhiều thư viện hàm có sẵn giúp cho người lập trình lấy hàm dễdàng và thuận tiện

2.2.2 Nhược điểm

C# chỉ có thể chạy được trên nền Windows và NET Famework Vì vậy nóhạn chế phạm các ứng dụng của C# Đó là nhược điểm lớn nhất của C# với cácngông ngữ lập trình khác

2.2.3 So sánh C# và C++

- Các con trỏ chỉ có thể được sử dụng trong chế độ không an toàn Hầu hếtcác đối tượng được tham chiếu an toàn, và các phép tính đều được kiểmtra tràn bộ đệm Các con trỏ chỉ được sử dụng để gọi các loại kiểu giá trị;còn những đối tượng thuộc bộ thu rác (garbage-collector) thì chỉ được gọibằng cách tham chiếu

- Các đối tượng không thể được giải phóng tường minh

- Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều interface trừu tượng(abstract interfaces) Chức năng này làm đơn giản hóa sự thực thi của thờigian thực thi

- C# thì an-toàn-kiểu (typesafe) hơn C++

- Cú pháp khai báo mảng khác nhau("int[] a = new int[5]" thay vì "inta[5]")

- Kiểu thứ tự được thay thế bằng tên miền không gian (namespace)

- C# không có tiêu bản

- Có thêm Properties, các phương pháp có thể gọi các Properties để truycập dữ liệu

- Có reflection

Trang 11

CHƯƠNG 3 : THIẾT KẾ HỆ THỐNG

3.1 Sơ đồ khối hệ thống

Hình 3 : Sơ đồ hệ thống 3.2 Lưu đồ thuật toán chương trình của vi xử lý

Hình 4 : Sơ đồ thuật toán xử lý dữ liệu trên vi xử lý

Khối LCD

RS232

Trang 12

3.3 Thiết kế hệ thống

3.3.1 Mạch mô phỏng trên proteus

Hình 5: Sơ đồ mô phỏng trên proteus 3.3.1 Giao diện chương trình truyền nhận dữ liệu trên máy tính

Trang 13

Hình 7 : Giao diện chương trình truyền dữ liệu trên máy tính

3.4 Một số hình ảnh mô phỏng của hệ thống

Hình 8 : Hoạt động của chương trình khi chưa gửi dữ liệu

Trang 14

Hình 9 : Hoạt động của chương trình khi nhận được dữ liệu

Trang 15

Hình 10 : Hoạt động truyền nhận trên phần mềm

Trang 16

3.5 Thư viện và mã nguồn lập trình

3.5.1 Thư viện hỗ trợ lập trình giao tiếp qua cổng nối tiếp

.Net Famework 4 đã xây dựng sẵn cho người dùng lớp Serialport để xâydựng các chương trình giao tiếp với các thiết bị ngoại vi qua cổng nối tiếp.Người dùng có thể thay đổi, tùy biến các thành phần của lớp Ở đây, chúng emxin đưa ra cú pháp, thuộc tính, các phương thức được sử dụng trong chươngtrình

BaudRate Bausrate mà đối tượng Serialport đã tạo sử dụng

Databits databits mà đối tượng Serialport đã tạo sử dụng

IsOpen Trả về true nếu cổng đã tạo được mở

Parity Parity mà đối tượng Serialport đã tạo sử dụng

PortName Tên mà đối tượng Serialport đã tạo sử dụng

Stopbits Stopbits mà đối tượng Serialport đã tạo sử dụng

 Phương thức

Close Đóng đối tượng Serialport đang chọn

GetPortNames Lấy tên của các port đang sử dụng

Open Mở đối tượng Serialport đang sử dụng

ReadExisting Đọc dữ liệu từ bộ đệm cổng

Write((String) Ghi một chuỗi ra cổng được chọn

Trang 17

3.5.2 Xây dựng lớp đối tượng NewCOM

Do các thuộc tính của lớp Serialport là các kiểu dữ liệu được xây dựngsẵn, như : PortName là kiểu string, Baudrate là kiểu int, parity là kiểu Enum,Databits là kiểu int, Stopbits là kiểu Enum Trong khi các sữ liệu đầu vào củachúng ta là string vì vậy ta cần xây dựng lại một lớp đối tượng mới từ lớpSerialport

class NewCom : SerialPort

//tạo lớp NewCom dẫ xuất từ lớp Serialport

public void _SetParity(string text)

{

Parity = (Parity)Enum.Parse(typeof(Parity), text);

//thiết lập patity }

public void _SetDataBits(string text)

{

int n=int.Parse(text);

DataBits = n;

//thiết lập databits }

public void _SetStopBits(string text)

{

StopBits = (StopBits)Enum.Parse(typeof(StopBits), text);

//thiết lập stopbits }

}

Trang 18

static NewCom _NewCom = new NewCom();

static string _sglobal;

//hàm khởi tạo các thông số khi bắt đầu chạy chương trình

public void _defaulseting()

{

//kiểm tra và liệt kê các port

foreach (var item in SerialPort.GetPortNames())

//liệt kê hiển thị baurate

int[] _baudrate = new int[] { 75, 110, 134, 300, 600, 1200, 1800,

Trang 19

comboBox3.Items.Add(item);

}

//chọn parity mặc định

comboBox3.SelectedIndex = 2;

//liệt kê databit

uint[] _databit = new uint[] { 4, 5, 6, 7, 8, 9};

foreach (var item in _databit)

//liệt kê stopbit

string[] _topbit = new string[] { "1", "1.5", "2" };

foreach (var item in _topbit)

//dòng thông báo thông điệp đã gửi

richTextBox1.AppendText("Chưa có thông điệp nào được gửi đi"); //chọn mày chữ

richTextBox1.ForeColor = Color.DarkGray;

//dòng thông báo nơi gõ thông diệp

textBox1.Text = "Nhập thông điệp cần gửi tại đây";

Trang 20

//Thoát khỏi chương trình

private void menuItem10_Click(object sender, EventArgs e)

Trang 21

richTextBox1.AppendText("\n" + _s + " : " + textBox1.Text); textBox1.Clear();

_Save.Filter = "Text file(*.txt)|*.txt|All file(*.*)|*.*";

Trang 22

//even when click to textbox1

private void textBox1_MouseClick(object sender, MouseEventArgs e) {

//xóa nội dung đã gửi

private void menuItem18_Click(object sender, EventArgs e)

Trang 23

_Open.Filter = "Text files(*.txt)|*.txt" + "|All files(*.*)|*.*";

Trang 24

StreamReader _StreamReader = new

Trang 25

CHƯƠNG 4 : KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

4.1 Những kết quả đã đạt được

Với các phương án thiết kế về phần cứng và phần mềm đã trình bày Chúng

em đã hoàn thành được những kết quả sau :

Về phần mềm : xây dựng xong các chương trình

- Chương trình truyền, nhận dữ liệu dữ liệu qua cổng COM trên máy tính

sử dụng ngôn ngữ lập trình C#

- Chương trình truyền, nhận dữ liệu với máy tính theo chuẩn RS232

- Hiển thị thông điệp nhận được từ máy tính lên LCD

Về phần cứng :

Xây dựng xong mạch mô phỏng chương trình trên proteus Hệ thống chạy tốt trên phần mềm mô phỏng

4.2 Hướng phát triển của đề tài

Đề tài của chúng em chỉ gói gọn trong việc truyền và nhận dữ liệu giữa máy tính và vi điều khiển Nhưng với các chức năng trên, chúng ta hoàn toàn có thể phát triển đề tài để giải quyết các bài toán thực tế có yêu cầu truyền thông với máy tính :

- Các ứng dụng khảo sát, thông kê dữ liệu thực tế

- Các ứng dụng đo lường điều khiển bằng máy tính

- Truyền thông dữ liệu giữa máy tính với máy tính, máy tính với các thiết

bị ngoại vi

Trang 26

TÀI LIỆU THAM KHẢO

Giáo trình :

1 Bài giảng lập trình windows – GV Nguyễn Tuấn Linh

2 Bài giảng ghép nối và điều khiển thiết bị ngoại vi – GV Nguyễn Văn Minh Trí

Ngày đăng: 05/05/2014, 07:28

HÌNH ẢNH LIÊN QUAN

Hình  1 : Vi điều khiển PIC18F452 1.2. Khối hiển thị LCD - chương trình giao tiếp pic18f452 và máy tính qua cổng com sử dụng ngôn ngữ lập trình c#
nh 1 : Vi điều khiển PIC18F452 1.2. Khối hiển thị LCD (Trang 6)
Hình  2 : Màn hình LCD 40x2 chuẩn HD44780U - chương trình giao tiếp pic18f452 và máy tính qua cổng com sử dụng ngôn ngữ lập trình c#
nh 2 : Màn hình LCD 40x2 chuẩn HD44780U (Trang 6)
Hình  3 : Sơ đồ hệ thống 3.2. Lưu đồ thuật toán chương trình của vi xử lý - chương trình giao tiếp pic18f452 và máy tính qua cổng com sử dụng ngôn ngữ lập trình c#
nh 3 : Sơ đồ hệ thống 3.2. Lưu đồ thuật toán chương trình của vi xử lý (Trang 11)
3.1. Sơ đồ khối hệ thống - chương trình giao tiếp pic18f452 và máy tính qua cổng com sử dụng ngôn ngữ lập trình c#
3.1. Sơ đồ khối hệ thống (Trang 11)
Hình  5: Sơ đồ mô phỏng trên proteus 3.3.1. Giao diện chương trình truyền nhận dữ liệu trên máy tính - chương trình giao tiếp pic18f452 và máy tính qua cổng com sử dụng ngôn ngữ lập trình c#
nh 5: Sơ đồ mô phỏng trên proteus 3.3.1. Giao diện chương trình truyền nhận dữ liệu trên máy tính (Trang 12)
Hình  7 : Giao diện chương trình truyền dữ liệu trên máy tính - chương trình giao tiếp pic18f452 và máy tính qua cổng com sử dụng ngôn ngữ lập trình c#
nh 7 : Giao diện chương trình truyền dữ liệu trên máy tính (Trang 13)
Hình  8 : Hoạt động của chương trình khi chưa gửi dữ liệu - chương trình giao tiếp pic18f452 và máy tính qua cổng com sử dụng ngôn ngữ lập trình c#
nh 8 : Hoạt động của chương trình khi chưa gửi dữ liệu (Trang 13)
Hình  9 : Hoạt động của chương trình khi nhận được dữ liệu - chương trình giao tiếp pic18f452 và máy tính qua cổng com sử dụng ngôn ngữ lập trình c#
nh 9 : Hoạt động của chương trình khi nhận được dữ liệu (Trang 14)
Hình  10 : Hoạt động truyền nhận trên phần mềm - chương trình giao tiếp pic18f452 và máy tính qua cổng com sử dụng ngôn ngữ lập trình c#
nh 10 : Hoạt động truyền nhận trên phần mềm (Trang 15)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w