Đề tài Hiển thị nhiệt độ trên điện thoại Androi sử dụng kit MSP430 và giao tiếp Uart
Biên dịch và mô phỏng dự án
Sau khi soạn thảo xong chương trình ngồn .Bạn tiến hành dịch chương trình.Để biên dịch chương trình dự án chúng ta chọn Project/Make.Có một cửa sổ bắt buộc chúng ta phải lưu Workspace.
Hình 3-9 Lưu lại Workspace trước khi biên dịch
Sau khi lưu lại Workspace chúng ta sẽ thấy thông báo hiện ra báo chương trình có lỗi hay không .
Hình 3-10 Cửa sổ biên dịch thành công
Sau khi biên dịch thành công,chúng ta mô phỏng dự án .Công việc này khá qua trọng ,nó cho phép chúng ta kiểm tra và phát hiệ ra những vấn đề về giải thuật của chương trình mà trình biên dịch không làm được .Để tiến hành mô phỏng ta chọn Project/Download and Debug(clt+D) để debug – mô phỏng dự án.
37 trang |
Chia sẻ: hachi492 | Ngày: 07/01/2022 | Lượt xem: 523 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Hiển thị nhiệt độ trên điện thoại Androi sử dụng kit MSP430 và giao tiếp Uart, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA : ĐIỆN TỬ -VIỄN THÔNG
BÁO CÁO PROJECT 2
LẬP TRÌNH ỨNG DỤNG TRÊN KIT MSP430 CỦA TI
Đề Tài : HIỂN THỊ NHIỆT ĐỘ TRÊN ĐIỆN THOẠI ANDROI SỬ DỤNG KIT MSP430 VÀ GIAO TIẾP UART
GVHD : TS Phạm Hải Đăng
SVTH : Đinh Thanh Liêm
: Phạm Việt Huy
: Nguyễn Văn Hưng
: Dương Anh Tuấn
Hà Nội 02/01/2014
Mở đầu
Chương 1 : Giới thiệu họ VĐK MSP4301
1. GIỚI THIỆU
1.1 Giới thiệu
MSP430 là một sự kết hợp chặt chẽ của một CPU RISC 16 bit, những khối ngọa vo ,và hệ thống xung linh hoat.MSP430 đã đưa ra những giải pháp tốt nhất cho những nhu cầu ứng dụng trên nhiều phien bản khác nhau .MSP430 có một số phiên bản như :MSP430x1xx,MSP430x2xx,MSP430x3xx,MSP430x4xx,MSP430x5xx.
Một số phiên bản của MSP 430
Một số đặc điểm cơ bản của họ vi điều khiển MSP430
+ Kiến trúc nguồn điện cực thaaos để mở rộng tưởi thọ của Pin
-1 µA duy trì RAM
- 0.8µA chế độ xung thời gian thực
- 250µA/MIPS tích cực.
+ Xử lí tín hiệu tương tự với hiệu xuất cao:
+16 bit RISC CPU cho phép được nhiều ứng dụng ,thể hiện một phần ở kích thước code lập trình .- thanh ghi lớn ,nên loại trừ được trường hợp tắt nghẽn tập tin khi đang làm việc.
-thiết kế nhỏ gọn làm giảm lượng tiêu thụ điện và giảm giá thành .
- tối ưu hóa cho những chương trính ngôn ngữ bậc cao như C,C++.
-có 7 chế độ địa chỉ.
-khả năng ngắt theo vector lớn.
+Trong lập trình cho bộ nhớ flash cho phép thay đổi code một cách linh hoạt,phạm vi rộng ,bộ nhớ flash còn có thẻ lưu lại nhật kí dữ liệu .
Cấu trúc vi điều khiển MSP430
1.2 Không gian địa chỉ
Cấu trúc vi điều khiển MSP430 có môt địa chỉ không gian nhớ được chia sẻ với các thanh ghi chức năng dặc biệt (SFRs),các bộ ngoại vi ,RAM,và bộ nhớ flash/ROM được biểu diễn trên hình vẽ.Việc truy nhập mã chương trinh luôn luôn được thực hiện trên một địa chỉ chẵn.Dữ liệu có thể truy cập là những byte hay từng từ
Không gian địa chỉ có thể mở rộng hơn nữa cho những kế hoạch khác.
Sơ đồ bộ nhớ
1.2.1 flash/ROM
Địa chỉ bắt đầu flash/ROM phụ thuộc vào số lượng flash/Rom hiện có và thay đổi theo loại chip.Địa chỉ kết thúc cho flash/ROM là 0FFFh.Flash có thể được sử dụng cho cả mã chương trình .Những bảng từ hay byte có thể cất và sử dụng trong Flash/ROM mà không cần bảng sao chép tới RAM truowcjskhi sử dụng chúng .
1.2.2 RAM
RAM có địa chỉ đầu tại 0200h .Địa chỉ kết thúc RAM phụ thuộc vào số lượng RAM có và thay đổi tùy thuộc vào những dòng vi điều khiển RAM có thể được sử dụng cho cả mã và dữ liệu .
1.2.3 Những hối ngoại vi
Những module giao tiếp ngoại vi được xắp xếp vào không gian địa chỉ .Không gian địa chỉ từ 0100h tới 01FFh được dành riêng cho module ngoại vi 16 bit.Những module này có thể được truy cập với những từ chỉ dẫn (lệnh).
Không gian địa chỉ 010h đến 0ffh được dành riêng cho module ngọa vi 8 bit.
1.2.4 Những thanh ghi chức năng đặc biệt(SFR)
Một vài chức năng ngoại vi được cấu hình trong thanh ghi chức năng đặc biệt .Những thanh ghi chức năng đặc biệt này nằm trong 16 byte thấp của không gian địa chỉ .Những SFR phải được truy cấp bằng vệc sử dụng câu lệnh byte .
1.2.5 Truy cập bộ nhớ
Những byte nằm trong địa chỉ chẵn hay lẻ.Những từ địa chỉ nằm tại địa chỉ chẵn được biểu diễn như hình 1-2.Khi sử dụng từ địa chỉ chẵn,chỉ những địa chỉ chẵn có thể sử dụng .Những byte thấp của một từ luôn là địa chỉ chẵn.Byte ở địa chỉ lẻ tiếp theo .Ví dụ ,nếu một từ dữ liệu nằm tại địa chỉ xxx4h,kết thúc byte thấp của từ dữ liệu nằm tại địa chỉ xx4h ,và byte cao từ đó nằm tại địa chỉ xx5h.
Hình 2-4 Những bit,byte và trật tự từ nằm trong một cùng nhớ
2. TẬP LỆNH CỦA VĐK
2.1 Các cách định địa chỉ
2.1.1 Định đạ chỉ trực tiếp ( immediate mode)
MOV @30H,R0; đưa giá trị 30h vào thanh ghi R0
2.1.2 Định địa chỉ gián tiếp thanh ghi (indirect register mode)
MOV @R10,0(R0);đưa địa chỉ giá trị nội dung của thanh ghi R10 vào địa chỉ có chứa nội dung thanh ghi R0.Nhưng giá trị thanh ghi không thay đổi .
2.1.3 Định địa chỉ gián tiếp tự tăng(indirect autoincrement mode)
MOV@R10+ ,0(R0);lấy nột dung của thanh ghi R10 vào thanh ghi R0 và đồng thời tăng địa chỉ thanh ghi R10 lên 2.
Ví dụ lúc đầu thanh ghi R10 có chứa địa chỉ của ô nhớ(123h_ có giá trị là 10h,thanh ghi R0 có chứa địa chỉ là 0AFH thì sau khi thực hiên lệnh đó ta có kết quả như sau:địa chỉ con trỏ của R10 tăng lên 125h ,còn địa chỉ con trỏ R0 không đổi là 0AFH ,nhưng nó có giá trị là 10h.
2.1.4 Định địa chỉ trực tiếp thanh ghi (immediate mode)
MOV R0,R1 ;đưa giá trị thanh ghi R0 vào thanh ghi R1
2.1.5 Định địa chỉ tuyệt đối(Absoluto mode)
MOV &EDE,&TONI ;đưa giá trị của địa chỉ có chứa nhãn EDE vào địa chỉ có nhãn TONI.
Vi dụ EDE có địa chỉ là 0FF0h chứa giá trị là 1234h,TONI có địa chỉ là 1FFh có giá trị bất kì .Sau khi thực hiện lệnh TONI có giá trị là 1234h.
2.1.6 Định địa chỉ giữ các biến (symbolic mode)
MOV EDE,TONI ;đưa giá trị của biến có địa chỉ biến EDE vào biến TONI
Ví dụ EDE có giá trị là 10h ,TONI có giá trị bất kì ,sau khi thực hiện lệnh TONI có giá trị là 10h.
2.1.7 Định địa chỉ con trỏ(Indexed mode)
MOV 2(R5),3(R6);đưa giá trị tại địa chỉ của R5+2 vào địa chỉ R6+3
Tóm lại ,các cách định địa chỉ rất quan trọng và cần thiết trong quá trình tìm hiểu vi điều khiển và tập lệnh của nó .Để nhớ chúng ta có thể xem bảng tóm tắt các chế độ địa chỉ sau.
Bảng 2.1 Tóm tắt các chế độ địa chỉ.
2.2 Các lệnh thông dụng
Một số trình biên dich phổ biến cho MSP430
Chương 2 : Trình biên dịch IAR EMBEDDED WORKBENCH
2.1 Sơ lược
IAR EMBEDDED WORKBENCH là chương trình biên dịch được cung cấp IAR SYSTEMS.Có 3 phiên bản : kickstar verson –free,baseline verson -$769 và full verson-$2694.
+Kickstart verson –free
Giới hạn 4kb trong code C
Không giới hạn code ám
Hỗ trợ của hàng TI.
+baseline –verson $795
Giới hạn 12kb trong code C
Không giới hạn asm
Hỗ trợ bởi IAR.
+Full verson : không giới hạn code ,được hỗ trợ bởi IAR.
2.2 Cách tạo dự án
Sau khi cài đặt ,chúng ta có thể khởi động IAR embedded bằng cách vào start/aal program/IAR systems/IAR embeded workbench kickstart for MSP430 4.21/IAR embedded .Giao diện chương trình chính sẽ hiện nên như sau:
Hình 3-1 : Giao diện làm việc
Hình 3-2 Tạo một dự án
Từ Menu chon Project/create new project,một cửa sổ hiện ra các bước sau:
Chọn ngôn ngữ dùng cho việc lập trình trong dự án ( ví dụ C,C++ ..),xong nhấn OK để tiếp tục .
Hình 3-3 Chon ngôn ngứ lập trình cho dự án
Sau khi chon ngôn ngữ đẻ biên dịch ,một cửa sổ Save As hiện ra để ta đặt tên cho dự án và đường dẫn lưu trữ.Sau khi thực hiện xong ta Save dự án lại.
Hình 3-4 Đặt tên và lưu trữ dự án
Khi ta lưu lại dự án xong ,chương trình sẽ hiện ra như hình 3-5 khi đó có một fiel mấu là : main.c trong dự án vừa tạo ra .
Hình 3-5 Thiết lập dự án đã hoàn thành
Tiếp theo,ta chon loại vi điều khiển để biên dịch.Nhấp chuột phải vào My project –Debug rồi options..Ta chon General Options vhonj thẻ Target chọn Device để chọn loại vi điều khiển cần biên dịch.
Hình 3-6 Chọn loại vi điều khiển cho trình biên dịch
Chọn file /new/file để tạo một tập tin mới,rồi tiếp tục chọn file/save as để lưu tập tin ( có phần mở rộng là *.asm HOẶC *.c) vào thư mục chứa dự án.Nhấp chuột phải vào My project –debug rồi chọn Add/Ađ files để them tập tin vào dự án.
Hình 2.7 Cửa sổ quản lí dự án
Sau khi hoàn thành ,chúng ta có thể soạn thảo chương trình vào tập tin vừa tạo .
Một sự án hoàn thành như sau:
Hình 2.8 Ví dụ một dự án đã hoàn thành
2.3 Biên dịch và mô phỏng dự án
Sau khi soạn thảo xong chương trình ngồn .Bạn tiến hành dịch chương trình.Để biên dịch chương trình dự án chúng ta chọn Project/Make.Có một cửa sổ bắt buộc chúng ta phải lưu Workspace.
Hình 3-9 Lưu lại Workspace trước khi biên dịch
Sau khi lưu lại Workspace chúng ta sẽ thấy thông báo hiện ra báo chương trình có lỗi hay không .
Hình 3-10 Cửa sổ biên dịch thành công
Sau khi biên dịch thành công,chúng ta mô phỏng dự án .Công việc này khá qua trọng ,nó cho phép chúng ta kiểm tra và phát hiệ ra những vấn đề về giải thuật của chương trình mà trình biên dịch không làm được .Để tiến hành mô phỏng ta chọn Project/Download and Debug(clt+D) để debug – mô phỏng dự án.
Hình 3-11 Cửa sổ Debug chương trình
Ta thấy công cụ debug thể hiện như sau :
Stop debug : Thoát khỏi chế độ debug
Khi hoàn thành xong tất cá ta khôn \g thấy file hex tạo ra như các công cụ biên dịch khác.Nếu chúng ta để ý thì tại thư mục dự án ,sẽ có file My project.d42.Chúng ta biên dich thành công và chọn debug dự án thì phải có file thực thi tạo ra cs đuôi *.hẽ chẳng hạn.
Hình 3-12 Một file thực thi được tạo ra .
Nhấp chuột phải vào My project –debug rồi chọn options Ta chọn linker chọn thẻ output ta chú ý đến output file và format.Ta thấy tại output file có dạng fileMy project.d143,vậy ta phải làm thế nào?
Hình 3-13 Cửa sổ options
Bây giờ chọn ok và biên dịch file *hex đã có sẵn.
Hình 3-14 Cửa sổ options .
Hình 3-15 Tạo xong một file *.hex.
Tóm lại ,các nghiên cứu trên đây chỉ là mức rất cơ bản .ở phần mềm biên dịch này có rất nhiều công cụ khác có thể nghiên cứu.Ngoài ra còn rất nhiều phần mềm khác có thể biên dich cho MSP430 như : code composer esentals, rowley asocial crossworks for MSP430
Chương 3 :Trình biên dịch code composer essentials
4.1 Sơ lược
Code composer esential có 3 phiên bản : kickstart version –free và profession version -$250. Bản miến phí bị giới hạn 8KB code C,được hỗ trợ bởi TI.
4.2 Tạo dự án và biên dịch mô phỏng
1. Open code composer essentials .Under the File menu,choosen New-> manager make c/ám project.
2. Sau khi khởi động chương trình,tạo một project mới ,với tên tùy chọn,sau đó ,nhấn next
2. Chọn loại MSP cần dùng cho biên dịch và mô phỏng dự án
Chương 4: THIẾT KẾ VÀ MÔ PHỎNG GIAO TIẾP UART TRÊN KIT MSP 430
4.1 Phân tích yêu cầu thiết kế
4.1.1 Phân tích yêu cầu chức năng
- Lập trình cho vi điều khiển có khả năng giao tiếp và truyền text với máy tính
- Text truyền có thể hiển thị trên LCD và PC desktop
4.1.2 phân tích yêu cầu phi chức năng
- Code lập trình đơn giản,thỏa mãn giải thuật ,tối ưu về kích thước
- Có giao diện giao tiếp trên C# ,tạo khả năng trực quan cho người dùng
- Lập thành một modul riêng ,dễ dàng ghép nối với các ứng dụng phức tạp khác trên MSP như truyền tín hiệu hoặc đo lường .
4.2 Công cụ mô phỏng và lập trình cần sử dụng
.Phần mềm chuyên dụng cho lập trình MSP430 CCS4.4 ,sử dụng ngôn ngữ lập trình C.
Phần mềm lập trình visual studio,giúp khởi tạo giao diện người sử dụng một cách trực quan .
Phần mềm test kết nối helsquin.
4.3 Thiết kế và mô phỏng .
4.2.1 Thiết kế giao diện kết nối trên c#
+ Giao diện chính của chương trình :
+ Code lập trình cho giao diện .
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace UART
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int inlent = 0;// tong so cong com
private void timer1_Tick(object sender, EventArgs e)
{
string[] ports = SerialPort.GetPortNames();// cho phep load tat ca cac cong com
if (inlent != ports.Length)
{
inlent = ports.Length;
cbb_selectcom.Items.Clear();
for (int i = 0; i < inlent; i++)
{
cbb_selectcom.Items.Add(ports[i]);
}
}
}
private void bt_connect_Click(object sender, EventArgs e)
{
if (lb_status.Text == "Disconect")
{
com.PortName = cbb_selectcom.Text;
com.Open();
lb_status.Text = "conect";
bt_connect.Text = "Disconect";
}
else
{
com.Close();
lb_status.Text = "Disconect";
bt_connect.Text = "conect";
}
}
private void bt_senddata_Click(object sender, EventArgs e)
{
string s;
if (lb_status.Text == "conect")
{
s = txt_recieveddata.Text;
com.WriteLine(s);
}
}
private void oncom(object sender, SerialDataReceivedEventArgs e)
{
// doc 1 byte tien hanh ngat
string s;
s = com.ReadExisting();
Display(s);
}
private delegate void DIdisplay(string s);
private void Display(string s)
{
if (txt_recieveddata.InvokeRequired)
{
DIdisplay sd = new DIdisplay(Display);
txt_recieveddata.Invoke(sd, new object[] { s });
}
else
{
txt_recieveddata.Text = s;
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
4.2.2 Thiết kế và mô phỏng trên kit MSP430.
+ Cấu trúc mạch
+ Code biên dich cho chương trình;
+ Kết quả mô phỏng .
Chương 5 : ĐÁNH GIÁ
Tổng quan ,kết quả thiết kế và mô phỏng MSP430 cho giao tiếp UART đảm bảo các yêu cầu chức năng đặt ra
Khả năng modul hóa của chương trình cao,có thể phục vụ cho việc ghép nối với các modul lớn hơn
Chương 6 : LỜI CẢM ƠN
.
Các file đính kèm theo tài liệu này:
- de_tai_hien_thi_nhiet_do_tren_dien_thoai_androi_su_dung_kit.docx