• HOME
  • DỰ ÁN & MẠCH ĐIỆN
    • Lập trình
      • ARDUINO PROJECT
      • ESP8266 PROJECT
      • ESP32 PROJECT
      • RASPBERRY PI PROJECT
      • Vi điều khiển
    • Điện tử ứng dụng
      • Audio / Amplifiers
      • Nguồn điện
      • Pin sạc/Acquy và mạch sạc
      • Biến đổi AC và DC
      • Robotic
      • Cảm biến
      • LED
      • LCD
      • Động cơ bước
      • Mạch linh tinh
      • Test & Measurement
      • RF – FM
    • Nixie Clock
    • HOME AUTOMATION
    • Dân dụng
    • Công nghiệp
  • KIẾN THỨC CĂN BẢN
    • Điện tử cơ bản
    • Điện tử số
    • PCB
    • Nixie Tube
    • Raspberry Pi
    • Vi điều khiển
    • Arduino
    • IN 3D
  • DOWNLOAD
    • Phần mềm điện tử
    • Giáo trình
      • Giáo trình Điện – Điện tử
      • Giáo trình Tự Động Hóa
      • Giáo trình Viễn thông
    • Đề tài
      • Đề tài – Điện – Điện Tử
      • Đề tài – Tự Động Hóa
      • Đề tài – Viễn thông
    • Điện tử ứng dụng
    • Tài liệu nước ngoài
    • Hướng dẫn, sửa chữa
    • Sơ đồ, nguyên lý thiết bị
    • Tiêu chuẩn – Đo lường – Thử nghiệm
    • Datasheet
  • LIÊN HỆ
  • SẢN PHẨM
Mạch Điện Lý Thú

Mạch Điện Lý Thú

Sơ đồ nguyên lý, PCB, đồ án, tài liệu, DIY

Trang chủ » Kiến thức căn bản » Vi điều khiển » Giao tiếp LCD16x2 chỉ với 3 chân của vi điều khiển

Giao tiếp LCD16x2 chỉ với 3 chân của vi điều khiển

07/05/2026 by admin 3 Bình luận

Đã được đăng vào 05/05/2017 @ 09:28

Giao tiếp LCD16x2 chỉ với 3 chân của vi điều khiển

Mục lục hiện
Giao tiếp LCD16x2 chỉ với 3 chân của vi điều khiển
Sơ đồ mạch
Viết trên phần mềm CCS
Viết trên MPLAB

Xem thêm:

  • Tổng quan LCD 16×2 và giao tiếp I2C LCD sử dụng Arduino
  • Hiển thị thời gian thực (RTC DS1307) lên LCD16x2 bằng giao tiếp I2C trong môi trường Arduino

Sơ đồ mạch

Mạch bao gồm 1 vi điều khiển PIC16F684 và thêm 2 IC 74595 để mở rộng

Còn về chương trình sau đây sẽ là đoạn chương trình giao tiếp với lcd16x2

Viết trên phần mềm CCS

#define clk PIN_C0
#define data PIN_C1
#define lat PIN_C2
int8 M[32];

void cmd(char a);
void truyen( char d)
{
int8 i;
char tg;
for(i=0;i<8;i++)
{
tg=d;
tg=tg&0x80;
if(tg==0x80)
output_high(data);
else
output_low(data);
output_high(clk);
output_low(clk);
d<<=1;
}
}

void init(void)
{
cmd(0x03);
cmd(0x38);
cmd(0x0c);
cmd(0x06);
cmd(0x01);
cmd(0x02);
}

void cmd(char a)
{
truyen(a);
truyen(0b00000100);
output_high(lat);
output_low(lat);
truyen(a);
truyen(0b00000000);
output_high(lat);
output_low(lat);
delay_ms ( 1 );
}

void data1(char a)
{
truyen(a);
truyen(0b00000101);
output_high(lat);
output_low(lat);
truyen(a);
truyen(0b00000001);
output_high(lat);
output_low(lat);
delay_ms ( 1 );
}

void str(char *str)
{
while(*str)
{
data1(*str);
str++;
}
}

Và đây là code Mplab dành cho những bạn quen viết Mplab

Viết trên MPLAB

#define data PORTDbits.RD0
#define clk PORTDbits.RD1
#define lat PORTDbits.RD2
void cmd(char a);
unsigned char M[32];

void truyen( char d)
{
unsigned char i;
unsigned char tg;
for(i=0;i<8;i++)
{
tg=d;
tg=tg&0x80;
if(tg==0x80)
data=1;
else
data=0;
d=d<<1;
clk=0;
clk=1;
}
}

void init(void)
{
cmd(0x03);
cmd(0x38);
cmd(0x0c);
cmd(0x06);
cmd(0x01);
cmd(0x02);
}

void cmd(char a)
{
truyen(a);
truyen(0b00000100);
lat=0;
lat=1;
lat=0;
truyen(a);
truyen(0b00000000);
lat=0;
lat=1;
lat=0;
Delay100TCYx(5);
}

void w_data(char a)
{
truyen(a);
truyen(0b00000101);
lat=0;
lat=1;
lat=0;
truyen(a);
truyen(0b00000001);
lat=0;
lat=1;
lat=0;
Delay100TCYx(5);
}

void str(char *str)
{
while(*str)
{
w_data(*str);
str++;
}
}
Đang tải đánh giá...
  • Facebook
  • Twitter (X)
  • LinkedIn
  • Pinterest
  • Tumblr
  • Zalo

Bài viết liên quan

Hệ thống khóa cửa thông minh sử dụng RFID RC-522 và Arduino
Hệ thống khóa cửa thông minh sử dụng RFID RC-522 và Arduino
Tổng hợp code và hướng dẫn lập trình CCS cho PIC16F877A
Tổng hợp code và hướng dẫn lập trình CCS cho PIC16F877A
Đếm số người ra – vào phòng hiển thị LCD 128×64
Đếm số người ra – vào phòng hiển thị LCD 128×64

Thuộc chủ đề:Vi điều khiển Tag với:lcd, LCD1602, pic, Vi điều khiển, vidieukhien

Bài viết trước « Mạch nguồn 0-30V 20A dùng LM338
Bài viết sau Đồng hồ số hiển thị trên LED 7 đoạn dùng 89S52 và DS1307 »

Reader Interactions

Bình luận

    Để lại một bình luận Hủy

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

  1. Sang viết

    19/08/2020 lúc 13:44

    Xin chào ad,mình đang là công nhân và rất thích điện tử nhưng ko có điều kiện đi học.Hôm trước mình có tìm trên mạng được sơ đồ nguyên lý của mạch tăng hạ áp đầu ra từ 0-40v (ko có tăng hạ dòng),nên ko ưng ý.Mình đã làm 1 mạch tăng hạ áp và dòng đầu ra,sử dụng LM317,IRF3205,Ic555,1 biến áp 220-40v,1 cầu chỉnh lưu,1 zener ổn áp 12v,2 biến trở 50k,vài con tụ phân cực và 1 vôn áp kế bán trên shopee để vọc và tự học.Nhưng khi cấp nguồn thì chẳng hoạt động.Mình tình cờ biết web này có chỉ cặn kẽ nguyên lý nên mình muốn xin ad vẽ giúp mình 1 sơ đồ nguyên lý mạch điều chỉnh dòng và áp đầu ra.Xin cảm ơn ad.

    Bình luận
    • admin viết

      19/08/2020 lúc 13:50

      Bạn hãy nêu rõ yêu cầu về điện áp – dòng điện bạn cần điều chỉnh. Mình sẽ tìm mạch thích hợp gửi cho bạn. Nếu muốn nhanh hơn, đừng ngại nhắn tin Zalo nhé!

      Bình luận
    • admin viết

      19/08/2020 lúc 15:38

      Nếu yêu thích DIY, bạn có thể tham khảo bài viết hướng dẫn làm bộ nguồn có điều chỉnh sau đây:
      https://machdienlythu.vn/tu-lam-bo-cap-nguon-ky-thuat-so-digital-don-gian-de-thu-mach/

      Bình luận

Sidebar chính

Zalo hỏi đáp 24/7

Theo dõi qua mạng xã hội

  • Facebook

Bạn đang tìm gì?

Bài viết mới nhất

Xuất file Gerber từ phần mềm thiết kế mạch in Eagle

Xuất file Gerber từ phần mềm thiết kế mạch in Eagle

30/05/2026

Tài liệu 8051 - Đồ án vi điều khiển 8051

Tài liệu 8051 – Đồ án vi điều khiển 8051

30/05/2026

Mạch đuổi chuột, mạch đuổi gián, đuổi muỗi

Mạch đuổi chuột, mạch đuổi gián, đuổi muỗi

29/05/2026

Truyền điện không dây V1

Truyền điện không dây V2

29/05/2026

Truyền điện không dây V1

Truyền điện không dây V1

29/05/2026

Danh mục

  • DỰ ÁN & MẠCH ĐIỆN (241)
    • Công nghiệp (16)
    • Dân dụng (29)
    • Điện tử ứng dụng (178)
      • Audio / Amplifiers (34)
      • Biến đổi AC và DC (24)
      • Cảm biến (40)
      • Động cơ bước (5)
      • Kiểm thử và đo đạc (23)
      • LCD (15)
      • LED (20)
      • Mạch linh tinh (27)
      • Nguồn điện (42)
      • Pin sạc/Acquy và mạch sạc (24)
      • RF – FM (5)
      • Robotic (2)
    • HOME AUTOMATION (23)
    • Lập trình (82)
      • ARDUINO PROJECT (39)
      • ESP32 PROJECT (6)
      • ESP8266 PROJECT (17)
      • RASPBERRY PI PROJECT (9)
      • Vi điều khiển (24)
    • Nixie Clock (3)
  • Kiến thức căn bản (168)
    • Arduino (36)
    • Điện tử cơ bản (77)
    • Điện tử số (9)
    • IN 3D (9)
    • Nixie Tube (13)
    • PCB (16)
    • Raspberry Pi (10)
    • Vi điều khiển (16)

Footer

Bài viết mới nhất

  • Xuất file Gerber từ phần mềm thiết kế mạch in Eagle
  • Tài liệu 8051 – Đồ án vi điều khiển 8051
  • Mạch đuổi chuột, mạch đuổi gián, đuổi muỗi
  • Truyền điện không dây V2
  • Truyền điện không dây V1
  • Chống trộm bằng tia Laser

Bình luận mới nhất

  • sodium trong Thư viện Altium – Altium Library.
  • admin trong Kỹ thuật truyền sóng RF 433Mhz và 315Mhz
  • Minh Hoàng trong Kỹ thuật truyền sóng RF 433Mhz và 315Mhz
  • Hè trong IC 4017 và ứng dụng 555 với 4017

Tìm kiếm

Tất cả nội dung trên website chỉ dùng để tham khảo. Chúng tôi không chịu trách nhiệm về thông tin thành viên đăng tải lên website và xóa bài viết khi có vi phạm bản quyền tác giả.