Giao Tiếp MSP430 Và LCD16x2 - Thuanbk55

Trang

  • Trang chủ
  • Thiết bị đo điện tử
  • MSP430 Tutorial
  • MSP430 Library
  • All Project
  • Algorithm

Saturday, May 24, 2014

Giao tiếp MSP430 và LCD16x2

LCD16x2 là một công cụ hiển thị hết sức cơ bản và quen thuộc với tất cả các bạn đã và đang học điện tử.Vì vậy trong bài này mình không đi sâu giải thích nguyên lý hoạt động của nó nữa.Ở đây mình chỉ hướng dẫn cơ bản cách sử dụng thư viện LCD16x2.h ,các hàm và cách viết chương trình.Bộ thư viện này chỉ là giao tiếp I/O nên dùng được cho mọi dùng MSP430. 1.Sơ đồ mạch Có LCD có 2 chế độ điều khiển đó là có phản hồi và không có phản hồi(cờ bận RW),việc dùng chân RW sẽ tốn thêm 1 chân VĐK tuy nhiêu tốc độ giao tiếp sẽ rất cao,ít xảy ra lỗi(khuyến khích sử dụng).Ngoài ra còn có kiểu truyền dữliệu 4 bit hoặc 8 bit,nhưng hầu hết mọi người đều sử dụng mode 4 bit để giảm số chân điều khiển của VĐK. Sơ đồ nối dây trong mô phỏng(dùng với MSP430F2272) Bộ thư viện chúng ta sử dụng yêu cầu dùng mode truyền dữ liệu 4 bit,4 chân truyền dữ liệu bắt buộc phải liền nhau trong 1 Port ,theo đúng thứ tự từ thấp đến cao ,tuy nhiên không nhất thiết phải là 4 bit cao của port có mà có thêm lựa chọndịch xuống(tức là như hình các bạn nối(D4-P1.4 D5-P1.5 D6-P1.6 D7-P1.7 nhưng cũng có thể nối D4-P1.1 D5-P1.2 D6-P1.3 D7-P1.4).Cấu hình như vậy nhằm giảm số dòng code và tăng tốc độ hoạt động.Khi sử dụng nhất thiết phải cấu hình lại chân trong thư viện cho đúng với mạch. 2.Chương trình Một số chú ý : -Khi chạy trên mô phỏng các bạn có thể gặp warning hoặc có thể không chạy nếu dùng bit RW,tuy nhiên trên mạch thật sẽ không gặp vấn đề gì cả. -Nếu không dùng bit RW thì phải xóa khai báo #define USE_WAIT còn dùng thì để khai báo này. -Nếu không sử dụng bit RW thì phải cài đặt lcd_delay cho phù hợp với tốc độ hoạt động của chip sao cho thời gian thực của số lcd_delay chu kỳ máy ít nhất là 40micros -4 bit data ở vị trí mặc định là 4 bit cao của 1 port,nếu các bạn muốn dùng 4 bit thấp hơn của port đấy thì phải sửa lại define SHIFT_DATA bằng đúng số bit dịch(ví dụ nếu D7-P1.5 thì SHIFT_DATA=2 - Khi mô phỏng thì các bạn cần tạo file hex,có thể vào Properties > Build > Step > Apply predefined Step chọn hex Các hàm cần biết: -LCD_Init(); Hàm khởi tạo các chân điều khiển,gọi ra khi muốn sử dụng LCD. -LCD_Clear();Xóa trắng dữ liệu trên màn hình -LCD_Home();Đưa con trỏ về vị trí đầu tiên hàng trên cùng -LCD_Goto(x,y);Đưa con trỏ đến vị trí hàng x cột y (Các bạn có thể sử dụng thư viện này cho LCD20x4,tuy nhiên phải sửa lại hàm này để nhảy được đến cả 4 dòng). -LCD_Wait();Hàm chờ LCD rảnh -LCD_Display(‘ ’);In ra ký tự trong dấu ‘ ’ -LCD_PrintString(“ “);In ra chuỗi trong dấu “ “ -LCD_PrintDecimal(n,length);In ra số nguyên có dấu n với độ dành length -LCD_PrintFloat(x,length,coma)In ra số thực x với độ dành length(tính cả dấu chấm) và làm trong coma chữ số sau dấu phẩy. Ví dụ tham khảo:
//////////////////////////////////////////////////////////////////// // CHUONG TRINH TEST LCD16x2 // VIET BOI : PHAM VAN THUANDTVT07-K55 // Email:terran991992@gmail.com // Blog :http://thuanbk55.blogspot.com/ // ................................................................. // AP DUNG CHO MACH UNG DUNG MSP430 //******************************************************************/ #include"msp430f2272.h" #include"stdio.h" #include"LCD_16x2.h" void main() { unsignedint x=100; float y=1.2347; WDTCTL = WDTPW | WDTHOLD;//Stop Watchdog DCOCTL = CALDCO_1MHZ;// Clock=1Mhz BCSCTL1 = CALBC1_1MHZ; LCD_Init(); while(1) { LCD_Clear(); LCD_Home(); LCD_PrintString("Test LCD_16x2"); LCD_Goto(2,0); LCD_PrintDecimal(x,4); LCD_Goto(2,8); LCD_PrintFloat(y,5,3); _delay_cycles(1000000); } }
Kết quả chương trình: Thư viện LCD các bạn có thể download tại đây

13 comments:

  1. UnknownJanuary 25, 2015 at 9:03 AM

    bạn ơi con LCD16x2 này chạy 5v mà con msp430 này chạy 3.3v mà bạn nối dây này thì có làm sao không?

    ReplyDeleteReplies
    1. Pham ThuanJanuary 25, 2015 at 1:05 PM

      Có loại LCD 3.3V đấy bạn ạ.Còn nếu bạn vẫn dùng LCD 5V thì bạn cấp nguồn 5V cho LCD cũng được,các chân tín hiệu vẫn dùng được 3.3V bình thường,nối trực tiếp với MSP430

      DeleteReplies
        Reply
    2. UnknownJanuary 26, 2015 at 12:30 AM

      ok, cảm ơn bạn nhé!

      DeleteReplies
        Reply
    3. UnknownJanuary 26, 2015 at 1:03 AM

      cho mình hỏi câu nữa : sao m add thư viên LCD_16x2 của bạn vào mà nó lỗi tùm lum ấy nhỉ, m dùng ccs 6.0.1

      DeleteReplies
        Reply
    4. Pham ThuanJanuary 26, 2015 at 1:18 AM

      bạn để ý là thư viện này viết đặc thù cho MSP430G2553,khi dùng với chip khác kể cả cùng dòng chip cũng phải để ý vì có thể cấu hình chân IO vẫn không đúng.Khác dòng nhưng thuộc họ MSP thì vẫn dùng bình thường nhưng phải cấu hình lại chân.Một chú ý khác là một số chip cũ ko có thanh ghi PxSEL2 ,nên thường báo lỗi chỗ này

      DeleteReplies
        Reply
    5. UnknownJanuary 27, 2015 at 11:58 PM

      ok, cảm ơn bạn đã reply lại nhé! m cũng dùng MSP430G2553 trên kit launchpad mà, m xem nó k phải lỗi I/O đâu, nó lỗi gì gì ấy .....VD: PSELLCD &=~(0xF0>>SHIFT_DATA); //Chon chuc nang I/O //PSEL2LCD &=~(0xF0>>SHIFT_DATA); DDRLCD|=0xF0>>SHIFT_DATA; //Chon xuat du lieu cho 4 chan data PRENLCD &=~(0xF0>>SHIFT_DATA); //Khong co dien tro noi keo len PORTLCD &=~(0xF0>>SHIFT_DATA); //Dau ra muc thap

      DeleteReplies
        Reply
    6. Pham ThuanJanuary 30, 2015 at 10:11 AM

      Có thể bạn xóa mất mấy cái define rồi,còn thư viện này mình chạy bình thường không thấy có vấn đề gì,bạn có thể trỏ chuột vào biểu tượng error của từng dòng,nó sẽ hiện lỗi cụ thể,chứ bạn nói chung chung thế mình cũng chịu thôi

      DeleteReplies
        Reply
    7. Reply
  2. UnknownApril 4, 2019 at 10:37 AM

    bài của anh hay quá anh học bk đúng ko a

    ReplyDeleteReplies
      Reply
  3. nguyenNovember 28, 2019 at 3:55 PM

    Gán quảng cáo ức chế vcl, có tải được đâu.

    ReplyDeleteReplies
      Reply
  4. trungJuly 8, 2021 at 1:43 PM

    bài này của anh hay mà thư viện LCD_16x2.h ko tải đc mong a giúp đỡ

    ReplyDeleteReplies
      Reply
  5. AnonymousDecember 21, 2021 at 8:10 PM

    Em không đọc được giá trị nhiệt độ dht11 lên lcd 16x2 anh có thể giúp em được không ?Em cảm ơn.

    ReplyDeleteReplies
      Reply
  6. AnonymousMay 29, 2023 at 12:47 PM

    xuống hàng thì sài lệnh gì vậy anh,với lại lệnh LCD_goto(x,y); sử dụng như thế nào vậy

    ReplyDeleteReplies
      Reply
  7. AnonymousAugust 23, 2024 at 6:21 PM

    nếu em gắn thêm i2c thì code thư viện như nào ạ

    ReplyDeleteReplies
      Reply
Add commentLoad more... Newer Post Older Post Home Subscribe to: Post Comments (Atom)

Danh sách chuyên mục

  • Home
  • Algorithm
    • Exhaustive
    • Data Structure
    • Sort
    • Searching
    • Dynamic
    • Graph
  • Electronics Tutorials
    • Op Amp
    • Cơ sở toán học
    • Điện tử công suất
  • Điện tử ứng dụng
  • MSP430
    • Msp430 Tutorial
    • MSP430 Application
    • MSP430 Product
    • MSP430 Library
  • AVR
    • AVR Tutorial
    • AVR Library
  • Thiết kế mạch
    • Altium
  • Phần mềm hỗ trợ
  • Sách điện tử
  • About me
  • Contact
  • Policy

HitechLab.vn

Hitechlab.vn

Dự án đã hoàn thành

  • Thiết kế đồng hồ số dùng MSP430

Dự án đang hoàn thiện

  • Algorithm
  • Tutorial MSP430

Popular Posts

  • Bài 8.(MSP430_Basic) I2C USCI
  • Phần mềm hỗ trợ giao tiếp UART
  • Giao tiếp MSP430 và LCD16x2
  • Bài 7.(MSP430_Basic) ADC 10bit
  • Bài 1.(MSP430_Basic)Cài đặt phần mềm,tool hỗ trợ,giới thiệu công cụ phát triển
  • Bài 1.(Học MSP430 qua ví dụ)Đồng hồ số - Yêu cầu chức năng,thiết kế

Blog Archive

  • ▼  2014 (24)
    • ▼  May (3)
      • Bài 8.(MSP430_Basic) I2C USCI
      • Giao tiếp MSP430 và LCD16x2
      • DIY máy rửa mạch

Labels

MSP430 (20) MSP430_Tutorial (8) MSP430_Application (7) Dien_tu_ung_dung (4) MSP430_Library (4) Algorithm (3) Design_PCB (2) Electronics_Tutorials (2) Altium (1) Co_so_toan_hoc (1) Dien_tu_cong_suat (1) Dynamic (1) MSP430_Product (1) Pham_mem_ho_tro (1) Stack (1)

Categories

  • Algorithm
  • Altium
  • Co_so_toan_hoc
  • Design_PCB
  • Dien_tu_cong_suat
  • Dien_tu_ung_dung
  • Dynamic
  • Electronics_Tutorials
  • MSP430
  • MSP430_Application
  • MSP430_Library
  • MSP430_Product
  • MSP430_Tutorial
  • Pham_mem_ho_tro
  • Stack

Popular Posts

  • Bài 8.(MSP430_Basic) I2C USCI             I2C là một chuẩn truyền thông đa chip chủ được sử dụng khá phổ biến trong rất nhiều thiết bị như bộ nhớ,bộ chuyển đổi ADC,...
  • Phần mềm hỗ trợ giao tiếp UART           Hercules là một trong những phần mềm được thiết kế rất gọn nhẹ và trực quan cho phép quản lý các kết nối đến máy tính.Các bạn có t...
  • Giao tiếp MSP430 và LCD16x2           LCD16x2 là một công cụ hiển thị hết sức cơ bản và quen thuộc với tất cả các bạn đã và đang học điện tử.Vì vậy trong bài này mình ...
  • Bài 7.(MSP430_Basic) ADC 10bit Trước hết trước khi bắt đầu các bạn nếu chưa có datasheet của dùng MSP430 thì có thể download tại đây : http://www.ti.com/general/docs/lit/...
  • Bài 1.(MSP430_Basic)Cài đặt phần mềm,tool hỗ trợ,giới thiệu công cụ phát triển Chào các bạn!        Trước khi bắt đầu,mình giới thiệu qua về loạt bài hướng dẫn lập trình MSP430 này.Đây là loạt bài hướng dẫn chi tiết c...
END COMMENT FACEBOOK-->

Từ khóa » Msp430 Với Lcd