Showing posts with label LCD. Show all posts
Showing posts with label LCD. Show all posts
Saturday, September 19, 2015
Tuesday, May 26, 2015
Học lập trình vi điều khiển pic qua 21 bài thực hành
Qua 21 bài thực hành lập trình vi điều khiển pic này sẽ giúp bạn nắm bắt được cách viết chương trình trong Mikroc và nhiều thuật toán khác nhau, từ các bài học cơ bản này sẽ giúp bạn nâng cao kỹ năng lập trình trên vi điều khiển từ đó tạo được nền tản cho nhiều project phức tạp hơn.
Bài 1. Flashing an led
|
Trong bài thực hành này bạn sẽ lập trình cho một led nhấp nháy bằng cách đảo trạng tháy logic của port, truy cập trang>> |
Bài 2. Lập trình với Button
|
Ở bài 2 này chúng ta làm quen với nút ấn và cách lập trình để đọc trạng thái của một port và xuất dữ liệu ra một port, truy cập trang>> |
Bài 3. Đếm số nhị phân
| Bài này giúp bạn làm quen với số nhị phận 4 bit, mỗi lần button được ấn thì số đếm tăng 1 đơn vị, hiển thị trạng thái của số nhị phân qua 4 led được kết nối ở portc của vi điều khiển 16f688, truy cập trang>> |
Bài 4. Lập trình hiển thị dòng text ra LCD 16x2
| Trong bài này giúp bạn hiểu được cách hiển thị một dòng text lên Lcd, truy cập trang>> |
Bài 5. Chuyển đổi Analog sang Digital (ADC)
| Qua bài học này bạn sẽ biết cách lập trình chuyển tính hiệu từ Analog sang Digital, truy cập trang>> |
Bài 6. Điều khiển led 7 đoạn
| Khi bạn học xong bài này, bạn sẽ biết cách hiển thị dữ liệu trên led 7 đoạn (7 segments), truy cập trang>> |
Bài 7. Điều khiển led 7 đoạn
| Ở bài này bạn sẽ học ngắt interrupt khi tràn Timer0, truy cập trang>> |
Bài 8. Giao tiếp máy tính qua cổng RS232
| Trong bài này bạn sẽ học được cách lập trình cho vi điều khiển giao tiếp với máy tính thông qua cổng RS232, truy cập trang>> |
Bài 9. Điều chế độ rộng xung (PWM)
| Bài này sẽ hướng dẫn bạn cách sử dụng CCP module để điều chế độ rộng xung PWM, truy cập trang>> |
Bài 10. Điều khiển DC motor
| Bạn sẽ học cách điều khiển cho motor quay thuận, quay ngược và dừng hẳn thông qua 3 button, truy cập trang>> |
Bài 11. Hiển thị số đếm từ 1 đến 9999 trên led 7 đoạn
| Quét led 7 đoạn hiển thị số đếm từ 0 đến 9999, truy cập trang>> |
Bài 13. Write, read internal EEPROOM
| Ghi dữ liệu vào eeproom và đọc dữ liệu đó xuất ra lcd, truy cập trang>> |
Bài 14. Lập trình truyền dữ liệu với giao thức I2C
| Truyền dữ liệu giữa các thiết bị thông qua giao thức I2C, truy cập trang>> |
Bài 15. Chạy dòng text trên nhiều led matrix
| Cũng giống như ở bài 12 nhưng ở đây ta lập trình cho dòng text có thể chạy trên nhiều led matrix được ghép lại với nhau, truy cập trang>> |
Bài 16. Hiểu rõ hơn về ngắt INTERRUPT
| Qua bài thực hành này sẽ giải thích cặn kẽ về ngắt interrupt trong vi điều khiển, truy cập trang>> |
Bài 17. Chế độ Sleep và Wake up trên vi điều khiển
| Hiểu rõ hơn về hai trạng thái sleep và wake up trên vi điều khiển, truy cập trang>> |
Bài 18. Đọc bàn phím và hiển thị kết quả
| Làm việc với keypad, trong bài này ta đọc dữ liệu được nhập từ bàn phiếm và hiển thị kết quả ra lcd, truy cập trang>> |
Bài 19. Sound
| Sử dụng thư viện âm thanh trong mikroc để tạo ra những hiệu ứng âm thanh khi ấn phím, truy cập trang>> |
Bài 20. GLCD
| Lập trình xuất dữ liệu từ text hoặc hình ảnh ra Graphic LCD, truy cập trang>> |
Bài 21. Điều khiển servo motor
| Lập trình điều khiển động cơ servo, truy cập trang>> |
nguồn bài viết từ http://embedded-lab.com/
Monday, May 25, 2015
Khóa cửa điện tử mở cửa bằng password sử dụng vi điều khiển pic 16f887
Thật thú vị với project khóa cửa điện tử, bảo vệ bằng password. Ở project này mình sử dụng một vi điều khiển pic 16f887, một LCD 16x2, một motor bước để thiết kế một hệ thống đóng-mở cửa, hệ thống này được cài đặt password bảo vệ. Sau đây là sơ đồ nguyên lý.
|| Tải project (Protues, code C)
![]() |
| Hệ thống khóa cửa điện tử, bảo vệ bằng password |
- Mô tả hoạt động: Khi hệ thống khởi động, pass mặc định là 12345, sau đó bạn "press *" để đổi pass, bạn nhập pass mới vào (4 ký tự), nhấn # để hoàn tất việc đổi pass mới. Lần tiếp theo bạn muốn mở cửa thì nhập lại pass, nếu nhập sai pass thì hệ thống hiển thị thông báo và bạn phải nhập lại.
- Video sau giúp bạn theo dõi quá trình đổi pass và thao tác đóng, mở cửa:
Friday, May 15, 2015
Hệ thống chiếu sắng bằng pin năng lượng mặt trời
Ánh sáng mặt trời là một nguồn năng lượng sạch quí giá và vô tận. Hiện nay, con người đã phát minh ra các thiết bị để biến đổi năng lượng ấy thành điện năng để chúng ta có thể sử dụng trong sinh hoạt.
Sau đây là một project mang tên solar powered home lighting system, giúp bạn xây dựng một hệ thống ánh sáng gồm: tấm pin năng lượng mặt trời, bình ác qui tích trữ điện, màng hình lcd hiển thị thông tin - xây dựng trên vi điều khiển pic 16f887a. Bạn quan sát sơ đồ nguyên lý sau đây:
Chú thích các linh kiện và chức năng của chúng:
|| Tải code (ngôn ngữ C - biên dịch bằng HI-TECH C)
|| Link tải mediafire
![]() |
| Solar powered panel |
![]() |
| Hệ thống ánh sáng sử dụng pin năng lượng mặt trời - ảnh: electronicsforu.com |
- BaTT1, BaTT2: 2 bình ắc qui loại 12v, 150 Ahm, hoặc 80 Ahm
- CON1: nơi kết nối tấm pin năng lượng mặt trời (ở đây sử dụng 2 tấm pin 80W)
- CON2: kết nối bình ắc qui để nạp cho Batt1, Batt2, khi tấm pin năng lượng không hoạt động
- CON3: kết nối tải để sử dụng
- Relay RL1, RL2: relay điều khiển nạp điện cho Batt1, Batt2 (thông qua sự điều khiển từ vi điều khiển 16f877a)
- Relay RL3: nếu hệ thống solar bị hư vi điều khiển sẽ điều khiển RL3 để Batt1, Batt2 được nạp điện từ ắc qui dự phòng.
- Relay RL4, RL5: vi điều khiển sẽ chọn Batt1 hoặc Batt2 sử dụng cho tải thông qua 2 Relay này.
- LCD1 16x2: Hiển thị thông tin của hệ thống như đang sử dụng Batt nào cho tải, Batt nào đang được sạc, mức năng lượng từng Batt và Solar
- Chú ý trước khi sử dụng: bạn kết nối nguồn 20v vào CON1 và chỉnh VR2 sao cho trên Pin 2 của IC1 là 5v. kết nối 15v vào CON4 và CON5 chỉnh VR3,VR4 sao cho trên Pin 3,5 của IC1 là 5v, sau đó bạn gở bỏ các điện thế này ra kết nối Solar, Batt1, Batt2, ac quy sạc dự phòng vào, vậy là hệ thống sẵn sàng hoạt động.
|| Tải code (ngôn ngữ C - biên dịch bằng HI-TECH C)
|| Link tải mediafire
Wednesday, January 14, 2015
Điều khiển quạt-lò sưởi-giao diện Glcd-Pic16f887
Yêu cầu: ta có 2 thiết bị là quạt gió (motor) và lò sưởi (bóng đèn). Khi nhiệt độ của phòng trên mức nhiệt độ đặt trước ( tem Ref) thì quạt gió hoạt động, lò sưởi tắt. Ngược lại thì quạt tắt và lò sưởi được mở. Giao diện người dùng được hiển thị trên GLCD. Mức nhiệt độ Ref được điều chỉnh qua 2 button được kết nối qua RB0, RB1, LM35 kết nối RA0, quạt kết nối RB6, lò sưởi RB7, GLCD kết nối với PORTD.
Sơ đồ nguyên lý vẽ trên protues:
![]() |
| Điều khiển quạt và lò sưởi |
Saturday, November 22, 2014
LM35 Sensor with pic 16f887 and LCD 16x2
Project đo và hiển thị nhiệt độ lên LCD 16x2, sử dụng cảm biến LM35 và vi điều khiển Pic 16f887.
Cách chuyển đổi giá trị Adc đọc từ cảm biến nhiệt LM35 sang độ C.
- Ở đây ta sử dụng 1.5V làm Vref (ngõ ra cảm biến LM35 tăng 10mv/1 độ C, nhiệt độ max 150 độ = 1500mv=1.5V)
- ADCres = 1.5/1024 = 0.0014648 (do ADC 10bit nên 2^10=1024)
- Tempc = value_adc*ADCres/0.01 = value_adc*0.14648
![]() |
| LM35 with pic 16f887 and LCD 16x2 |
/*Project covert adc from sensor LM35, processing and display value on lcd.
Author: Minh Trung
Site: http://dientudieukhien.net
*/
//CONFIG LCD
sbit LCD_RS at RD4_bit;
sbit LCD_EN at RD5_bit;
sbit LCD_D7 at RD0_bit;
sbit LCD_D6 at RD1_bit;
sbit LCD_D5 at RD2_bit;
sbit LCD_D4 at RD3_bit;
sbit LCD_RS_Direction at TRISD4_bit;
sbit LCD_EN_Direction at TRISD5_bit;
sbit LCD_D7_Direction at TRISD0_bit;
sbit LCD_D6_Direction at TRISD1_bit;
sbit LCD_D5_Direction at TRISD2_bit;
sbit LCD_D4_Direction at TRISD3_bit;
//END CONFIG LCD
unsigned int value_adc=0;
unsigned float tempc;
char tex1[]="TEMPERATURE:";
char *tex2[15];
void main() {
Adc_Init();
Lcd_Init();
ANSEL=0b00001001; //Config porta.b0, porta.b3 as analog
ANSELH=0x00;
ADCON1=0x30; //Config porta.B3 as Vref+
TRISA.b0=1; //porta.b0, porta.b3 as input
TRISA.b3=1;
C1ON_bit=0; //disable compare
C2ON_bit=0;
TRISD=0x00; //Portd as output
Lcd_out(1,1,tex1);
delay_ms(100);
while(1){
value_adc=Adc_read(0); //Get Adc value
delay_ms(100);
tempc=(float)(value_adc*0.14648); //Vref is 1.5V
floattostr(tempc,tex2);
Lcd_cmd(_LCD_CURSOR_OFF);
Lcd_chr(2,9,223); // Display symbol "o" C
Lcd_out(2,10,"C");
Lcd_out(2,1,tex2);
delay_ms(100);
}
}|| Download project in Miklroc and Proteus
Friday, November 21, 2014
use the function "inttosrt" convert numbers to letters displayed on the LCD
Sử dụng hàm "IntToStr' chuyển đổi một biến định dạng số sang ký tự để hiển thị lên LCD
Ví dụ mình có một biến "tempc" kiểu Int, gán cho tempc=115. Ta làm thế nào để hiển thị số 115 lên LCD. Trong Mikroc đã hổ trợ ta một số hàm chyển đổi để sử dụng trong các trường hợp như thế này.
Trước tiên ta sẽ chuyển số 115 từ kiểu Int sang kiểu Char chứa trong biến "tempc_txt" để hiển thị dược trên LCD, hàm chuyển như sau:
IntToStr(tempc,tempc_txt);
Như vậy chỉ cần một câu lệnh xuất LCD nữa là xong: LCD_Out(1,1,tempc_txt);
Sau đây là project ví dụ về dùng hàm "IntToStr" để xuất một số kiểu Int ra LCD.
Sau đây là project ví dụ về dùng hàm "IntToStr" để xuất một số kiểu Int ra LCD.
![]() |
| Display number on LCD use "IntToStr" function |
Tuesday, November 18, 2014
Read and compare 2 channel ADC, display result on LCD 20x4
Đọc và so sánh 2 kênh ADC, hiển thị kết quả trên màn hình LCD 20x4
Trong project này, vi điều khiển 16f887 sẽ đọc hai kênh adc, sau đó hiển thị ra lcd, khi nhấn buttom kết nối vào PortB.f0 sẽ hiển thị kết quả so sánh, xem hình sau:
![]() |
| compare 2 channel adc |
| || Dowload code in mikroc + ISIS || (pass: dientudieukhien.net) | source: libstock.com |
Sunday, November 2, 2014
Programming Menu and submenu on LCD 16x2 for on/off devices
Lập trình Menu và menu con trên màn hình LCD 16x2 để bật / tắt thiết bị.
Hôm nay, mình chia sẽ với các bạn một project mới mang tên như tiêu đề. Ở project này mình sẽ lập trình hiển thị 4 Menu trên trang màng hình đầu tiên của LCD
, khi chọn một menu thì một Submenu xuất hiện
, ở đây sẽ điều khiển các tác vụ khác - ở đây mình dùng điều khiển on/off các thiết bị, sau đây là tổng quang project.
Hình ảnh:
Video:
, khi chọn một menu thì một Submenu xuất hiện
, ở đây sẽ điều khiển các tác vụ khác - ở đây mình dùng điều khiển on/off các thiết bị, sau đây là tổng quang project.Hình ảnh:
![]() |
| Giao diện trang màng hình đầu của project lcd menu for on/off device |
![]() |
| Menu 3 được mở và điều khiển on/off led 2 |
| || Tải code in c và mô phỏng protues tại đây | nguồn: dientudieukhien.net |
Saturday, October 18, 2014
Real Time Clock [DS1307 with Set Functions] & DS18B20
Features:
Diagram:
![]() |
| Real time clock |
Friday, October 17, 2014
WARNING AND AUTOMATIC WATER PUMP
Cảnh báo và tự động bơm nước vào hồ
Hôm nay, mình rãnh nên ngồi viết ôn lại code bằng ngôn ngữ Mikroc, sẵn chia sẽ cùng các bạn.
Mô tả project: tên project như ở tiêu đề, mục đích là khi nước trong hồ cạn thì báo hiệu trên LCD và một led màu đỏ sáng, đồng thời bật máy bơm để bơm nước (trong project này mình chia làm 2 mức nước - Full, Empty), Khi mực nước trong hồ cạn hơn mức empty-có nghĩa sensor3 không còn ngập trong nước (mức logic ngõ ra của sensor3 là 1) thì led Empty sáng đồng thời báo ra lcd "EMPTY", máy bơm bắt đầu bơm, khi mực nước đã nâng cao, sensor3 đã ngập trong nước (mức logic ngõ ra của sensor3 là 0) thì led EMPTY tắt nhưng máy bơm vẫn bơm, LCD vẫn báo Empty. Khi nước đã bơm đầy hồ, sensor1 bị ngập trong nước (mức logic ra của sensor1 là 0) thì máy bơm ngừng bơm, LCD xuất FULL, đèn led FULL sáng, khi nước vơi dần do ta sử dụng thì máy bơm vẫn không bơm và LCD vẫn báo FULL cho đến khi ta sử dụng cạn nước trong hồ đến mức sensor3 thì vòng lập sẽ thực hiện lại. Để làm được việc này mình sử dụng pic 16f887 làm xử lí trung tâm, một LCD 16x2, một relay điều khiển đóng mở máy bơm và các led báo hiệu, sau đây là hình ảnh của ý tưởng.
Bạn nhìn hình trên: PortB0 đến B1 dùng để kết nối 3 sensor, PORTD dùng điều khiển LCD, PORTRD7 dùng điều khiển relay, PORTE0 đến E2 dùng điều khiển 3 led, các buton dùng để mô phỏng các sensor - khi SENSOR3 ở mức logic1 tức là mực nước đang Empty, SENSOR2 ở mức logic 0 tức nước đa được phân nửa bình, khi SENSOR1 ở mức logic0 tức mực nước đã đầy bình "FULL".
Wednesday, October 15, 2014
Display LCD interface with pic 12f683
LCD với pic 12f683
Đối với các dòng pic với số lượng Port nhiều thì việc điều khiển LCD rất dễ dàng, trên trang dientudieukhien.net cũng đã giới thiệu khá nhiều bài hướng dẫn. Xong đối với các dòng pic với số lượng port hạn chế như các dòng pic 12f thì việc điều khiển một LCD hơi phức tạp hơn và cần phải thông qua một IC nữa thì mới điều khiển được, trong project này ta dùng Pic 12f638 (8 pin - Datasheet 12f638) và IC 74HC595 (datasheet 74HC595) để điều khiển LCD.
![]() |
| Pic 12f683 |
![]() |
| IC 74HC595 |
Sau đây là sơ đồ khối kết nối giữa Pic12f638 với LCD 16x2
![]() |
| Sơ đồ khối kết nối |
Sơ đồ nguyên lý:
![]() |
| Các bạn kết nối: Clock, Data, Enable đến các Pin của Pic12f638 như hình trên, sử dụng thạch anh 4 Mhz |
/* 3-wire Serial LCD using 74HC595
Rajendra Bhatt, Sep 6, 2010
*/
sbit Data_Pin at GP5_bit;
sbit Clk_Pin at GP1_bit;
sbit Enable_Pin at GP2_bit;
// Always mention this definition statement
unsigned short Low_Nibble, High_Nibble, p, q, Mask, N,t, RS, Flag, temp;
void Delay_50ms(){
Delay_ms(50);
}
void Write_LCD_Nibble(unsigned short N){
Enable_Pin = 0;
// ****** Write RS *********
Clk_Pin = 0;
Data_Pin = RS;
Clk_Pin = 1;
Clk_Pin = 0;
// ****** End RS Write
// Shift in 4 bits
Mask = 8;
for (t=0; t<4; t++){
Flag = N & Mask;
if(Flag==0) Data_Pin = 0;
else Data_Pin = 1;
Clk_Pin = 1;
Clk_Pin = 0;
Mask = Mask >> 1;
}
// One more clock because SC and ST clks are tied
Clk_Pin = 1;
Clk_Pin = 0;
Data_Pin = 0;
Enable_Pin = 1;
Enable_Pin = 0;
}
// ******* Write Nibble Ends
void Write_LCD_Data(unsigned short D){
RS = 1; // It is Data, not command
Low_Nibble = D & 15;
High_Nibble = D/16;
Write_LCD_Nibble(High_Nibble);
Write_LCD_Nibble(Low_Nibble);
}
void Write_LCD_Cmd(unsigned short C){
RS = 0; // It is command, not data
Low_Nibble = C & 15;
High_Nibble = C/16;
Write_LCD_Nibble(High_Nibble);
Write_LCD_Nibble(Low_Nibble);
}
void Initialize_LCD(){
Delay_50ms();
Write_LCD_Cmd(0x20); // Wake-Up Sequence
Delay_50ms();
Write_LCD_Cmd(0x20);
Delay_50ms();
Write_LCD_Cmd(0x20);
Delay_50ms();
Write_LCD_Cmd(0x28); // 4-bits, 2 lines, 5x7 font
Delay_50ms();
Write_LCD_Cmd(0x0C); // Display ON, No cursors
Delay_50ms();
Write_LCD_Cmd(0x06); // Entry mode- Auto-increment, No Display shifting
Delay_50ms();
Write_LCD_Cmd(0x01);
Delay_50ms();
}
void Position_LCD(unsigned short x, unsigned short y){
temp = 127 + y;
if (x == 2) temp = temp + 64;
Write_LCD_Cmd(temp);
}
void Write_LCD_Text(char *StrData){
q = strlen(StrData);
for (p = 0; p<q; p++){
temp = StrData[p];
Write_LCD_Data(temp);
}
}
char Message1[] = "3-Wire LCD";
char Message2[] = "using 74HC595";
void main() {
CMCON0 = 7; // Disable Comparators
TRISIO = 0b00001000; // All Outputs except GP3
ANSEL = 0x00; // No analog i/p
Initialize_LCD();
do {
Position_LCD(1,4);
Write_LCD_Text(Message1);
Position_LCD(2,2);
Write_LCD_Text(Message2);
Delay_ms(1500);
Write_LCD_Cmd(0x01); // Clear LCD
delay_ms(1000);
} while(1);
}
|| Tải code in mikroc và hex
nguồn tham khảo: http://embedded-lab.com/
Wednesday, August 27, 2014
Lập trình hiển thị LCD 4bit trên vi điều khiển 8051
Lập trình hiển thị LCD 4bit trên vi điều khiển 8051
Đây là một bài học về lập trình hiển thị trên LCD 4-bit, trong project này sử dụng vi điều khiển 8051, ngôn ngữ lập trình là C, trình biên dịch Mikroc Pro for 8051.
Các hàm sử dụng trong project:
- Lcd_Init
- Lcd_Out
- Lcd_Out_Cp
- Lcd_Chr
- Lcd_Chr_Cp
- Lcd_Cmd
Định nghĩa hàm và ví dụ:
Prototype
| void Lcd_Out(char row, char column, char *text); |
Returns
| Nothing. |
Description
| Prints text on Lcd starting from specified position. Both string variables and literals can be passed as a text. Parameters :
|
Requires
| The Lcd module needs to be initialized. See Lcd_Init routine. |
Example
| // Write text "Hello!" on Lcd starting from row 1, column 3: Lcd_Out(1, 3, "Hello!"); |
Lcd_Out_CP
Prototype
| void Lcd_Out_Cp(char *text); |
Returns
| Nothing. |
Description
| Prints text on Lcd at current cursor position. Both string variables and literals can be passed as a text. Parameters :
|
Requires
| The Lcd module needs to be initialized. See Lcd_Init routine. |
Example
| // Write text "Here!" at current cursor position: Lcd_Out_CP("Here!");
|
Lcd_Chr
Prototype
| void Lcd_Chr(char row, char column, char out_char); |
Returns
| Nothing. |
Description
| Prints character on Lcd at specified position. Both variables and literals can be passed as a character. Parameters :
|
Requires
| The Lcd module needs to be initialized. See Lcd_Init routine. |
Example
| // Write character "i" at row 2, column 3: Lcd_Chr(2, 3, 'i'); |
Lcd_Chr_CP
Prototype
| void Lcd_Chr_Cp(char out_char); |
Returns
| Nothing. |
Description
| Prints character on Lcd at current cursor position. Both variables and literals can be passed as a character. Parameters :
|
Requires
| The Lcd module needs to be initialized. See Lcd_Init routine. |
Example
| // Write character "e" at current cursor position: Lcd_Chr_CP('e');
|
Lcd_Cmd
Prototype
| void Lcd_Cmd(char out_char); |
Returns
| Nothing. |
Description
| Sends command to Lcd. Parameters :
|
Requires
| The Lcd module needs to be initialized. See Lcd_Init table. |
Example
| // Clear Lcd display: Lcd_Cmd(_LCD_CLEAR); |
Available Lcd Commands
Lcd Command
|
Purpose
|
_LCD_FIRST_ROW
|
Move cursor to the 1st row
|
_LCD_SECOND_ROW
|
Move cursor to the 2nd row
|
_LCD_THIRD_ROW
|
Move cursor to the 3rd row
|
_LCD_FOURTH_ROW
|
Move cursor to the 4th row
|
_LCD_CLEAR
|
Clear display
|
_LCD_RETURN_HOME
|
Return cursor to home position, returns a shifted display to its original position. Display data RAM is unaffected.
|
_LCD_CURSOR_OFF
|
Turn off cursor
|
_LCD_UNDERLINE_ON
|
Underline cursor on
|
_LCD_BLINK_CURSOR_ON
|
Blink cursor on
|
_LCD_MOVE_CURSOR_LEFT
|
Move cursor left without changing display data RAM
|
_LCD_MOVE_CURSOR_RIGHT
|
Move cursor right without changing display data RAM
|
_LCD_TURN_ON
|
Turn Lcd display on
|
_LCD_TURN_OFF
|
Turn Lcd display off
|
_LCD_SHIFT_LEFT
|
Shift display left without changing display data RAM
|
_LCD_SHIFT_RIGHT
|
Shift display right without changing display data RAM
|
Sơ đồ nguyên lý:
![]() |
| 8051 LCD |
/*Share by dientudieukhien.net
MikroC Pro for Pic*/
// Lcd module connections
sbit LCD_RS at P2_0_bit;
sbit LCD_EN at P2_1_bit;
sbit LCD_D4 at P2_2_bit;
sbit LCD_D5 at P2_3_bit;
sbit LCD_D6 at P2_4_bit;
sbit LCD_D7 at P2_5_bit;
// End Lcd module connections
char txt1[] = "Embedded";
char txt2[] = "Projects";
char txt3[] = "Lcd 4 bit";
char txt4[] = "Tutorial";
char i; // Loop variable
void Move_Delay() { // Function used for text moving
Delay_ms(500); // You can change the moving speed here
}
void main(){
Lcd_Init(); // Initialize Lcd
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1,6,txt3); // Write text in first row
Lcd_Out(2,6,txt4); // Write text in second row
Delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Out(1,1,txt1); // Write text in first row
Lcd_Out(2,5,txt2); // Write text in second row
Delay_ms(2000);
// Moving text
for(i=0; i<4; i++) { // Move text to the right 4 times
Lcd_Cmd(_LCD_SHIFT_RIGHT);
Move_Delay();
}
while(1) { // Endless loop
for(i=0; i<8; i++) { // Move text to the left 7 times
Lcd_Cmd(_LCD_SHIFT_LEFT);
Move_Delay();
}
for(i=0; i<8; i++) { // Move text to the right 7 times
Lcd_Cmd(_LCD_SHIFT_RIGHT);
Move_Delay();
}
}
}
nguồn: http://microcontrollerprojects00.blogspot.com
-
Tạo một ký tự đặc biệt cho LCD bằng Mikroc
-
Phần mềm phổ biến
-
Kiếm tiền online thật đơn giản với Donkeymails
-
Swich symbols
-
Khóa cửa điện tử mở cửa bằng password sử dụng vi điều khiển pic 16f887
-
wire symbols
-
Tìm hiểu về Hub, Switch và cáp mạng
-
Tích hợp Ghost32.7z vào trong Hiren's boot 15.xx
-
Sở tay các thiết bị phần cứng máy tính và các thiết bị điện khác...
-
Điều khiển nhiệt độ phòng với Pic 16f873 - Room temperature controller
Popular Posts
tab
Từ khóa truy cập nhanh
Audio
Blogspot
Charger
Chuyên trang ĐT và PC
Ebook
Font chữ
Games
Icon và Wallpaper
Make money online
Microsoft word
Món ngon dễ làm
Mạch điện tử thú vị
Mạng máy tính
Mạng xã hội
Office excel
Photoshop
Power supply
PowerPoint
Softwaves
Symbol electronic
Theme Blogspot
Thủ thuật máy tính
Thủ thuật office
Tài liệu truyền hình
Tài liệu điện tử
Vector image
Vi điều khiển 8051
Vi điều khiển Pic
Điện tử cơ bản

















Facebook
Twitter
Google+
Rss Feed

