mình đang muốn làm về LCD graphic màu nhưng không hiểu cách khởi tạo cho nó, không biết nó có khác so với GLCD nền xanh chữ đen ko, mình dùng PÍC6F887 để điều khiển. a e nào có làm rồi xin hướng dẫn mình bước cơ bản. àh với ở tphcm a e nào biết chổ bán con IC ADS7843 dùng cho màn hình cảm ứng. cảm ơn các bạn giúp đỡ.
Thông báo
Collapse
No announcement yet.
LCD graphic và touch screen
Collapse
X
-
Màn hình cảm ứng
Cuối cùng mình cũng xử lý xong cái glcd giờ tới con ADS7843 của màn hình cảm ứng. mình dùng PIC18f4620 để dk nhưng trong proteus ko mô phỏng dc nên dùng tạm 18f452 chương trình mình xem rất kỹ ko biết lỗi gì mà ko chạy. bạn nào nghiên cứu qua thì giúp mình.
đây là code:
#include <18f452.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //Reset when brownout detected
#FUSES NOPUT //No Power Up Timer
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#use delay(clock=20000000)
#define SPI_MODE_0 (SPI_L_TO_H | SPI_XMIT_L_TO_H)
////////////////////////////////////////////////////////////////////////////////
//////////////dinh nghia PIN/////////////////////
#define ADS7843_CS PIN_C1
#define ADS7843_BUSY PIN_C2
#define ADS7843_PENIRQ PIN_B0
////////////////////////////////////////////////////////////////////////////////
//////////////Cchuong trinh con/////////////////////
int16 ads7843_read(mode)
{
int8 lsb, msb;
int16 retval;
output_low(ADS7843_CS); //cho phep chon chip
spi_write(mode);
while (input (ADS7843_BUSY)== 1){;}
msb = spi_read(0);
lsb = spi_read(0);
output_high(ADS7843_CS); //khong phep chon chip
retval = make16(msb, lsb); // tra ve gia tri 16bit ket hop tu 2 bien (msb va lsb) msb la byte cao
retval >>= 4;
return(retval); //tra ve gia tri la: [x][x][x][x][x][x][x][x][x][x][x][x][] [] [] []
}
///////////////////////////////////////////////////////////////////////////////
void main()
{
output_high(ADS7843_CS); // Inactive state (disenable)
setup_spi(SPI_MASTER | SPI_MODE_0 | SPI_CLK_DIV_4); //khoi tao chuan SPI
int16 x,y;
output_low(ADS7843_CS); // Inactive state (enable)
delay_ms(5);
while (TRUE)
{
while( input(ADS7843_PENIRQ) ==0 ) // is screen touch
{
x = ads7843_read (0x94);
delay_us (2);
y = ads7843_read (0xD4);
delay_ms (1);
if ((x<50)&& (y <50)) //neu vung duoc bam co gtri x,y <50 thi bat den chi thi RB7
{
output_bit( PIN_B7, 1);
delay_ms (100);
output_bit( PIN_B7, 0);
delay_ms (50);
}
}
}
}Attached Files
Comment
-
GLCD tôi đã giải quyết mượt mà phần hiển thị bitmap đa năng(Y chang led matrix) dùng phần mềm build bitmap của a Bvhoang. Phần hiển thị kí tự với font 5x7 cũng đã ok, nhưng hiện tại đang gặp rắc rối nhỏ là giờ mình muốn hiển thị cả 1 chuỗi kí tự dài vd"DTVN" thì chưa thực hiện đc, rắc rối nằm ở chỗ lấy mã ascii của từng phần tử trong chuỗi đó, giờ tôi chỉ cần cắt đc từng kí tự ra khỏi chuỗi đó là ok. CCS ko hỗ trợ hàm cắt kí tự như VB
. Pro nào có cao kiến xin chỉ giáo.
Add: 97 Quán Nam - Lê Chân - Hải Phòng.
Tel: 031 518648 Phone: 0904 283 505
Comment
-
Mình không dùng CCS nên không biết nhiều về nó. Theo mình nghĩ bạn tạo một mảng "char string[]" rồi cho các kí tự vào đó sau đó khi nào cần lấy ra theo kiểu "string[i]" với i là biến chạy tăng dần. Hy vọng giúp đc bạn!Nguyên văn bởi hoangdai Xem bài viếtGLCD tôi đã giải quyết mượt mà phần hiển thị bitmap đa năng(Y chang led matrix) dùng phần mềm build bitmap của a Bvhoang. Phần hiển thị kí tự với font 5x7 cũng đã ok, nhưng hiện tại đang gặp rắc rối nhỏ là giờ mình muốn hiển thị cả 1 chuỗi kí tự dài vd"DTVN" thì chưa thực hiện đc, rắc rối nằm ở chỗ lấy mã ascii của từng phần tử trong chuỗi đó, giờ tôi chỉ cần cắt đc từng kí tự ra khỏi chuỗi đó là ok. CCS ko hỗ trợ hàm cắt kí tự như VB
. Pro nào có cao kiến xin chỉ giáo.
Ngô Đông Y
********
Mobile : 0984053088
Yahoo :
Email :
Comment
-
Nguyên văn bởi leson87 Xem bài viếtMàn hình cảm ứng
Cuối cùng mình cũng xử lý xong cái glcd giờ tới con ADS7843 của màn hình cảm ứng. mình dùng PIC18f4620 để dk nhưng trong proteus ko mô phỏng dc nên dùng tạm 18f452 chương trình mình xem rất kỹ ko biết lỗi gì mà ko chạy. bạn nào nghiên cứu qua thì giúp mình.
đây là code:
#include <18f452.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //Reset when brownout detected
#FUSES NOPUT //No Power Up Timer
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#use delay(clock=20000000)
#define SPI_MODE_0 (SPI_L_TO_H | SPI_XMIT_L_TO_H)
////////////////////////////////////////////////////////////////////////////////
//////////////dinh nghia PIN/////////////////////
#define ADS7843_CS PIN_C1
#define ADS7843_BUSY PIN_C2
#define ADS7843_PENIRQ PIN_B0
////////////////////////////////////////////////////////////////////////////////
//////////////Cchuong trinh con/////////////////////
int16 ads7843_read(mode)
{
int8 lsb, msb;
int16 retval;
output_low(ADS7843_CS); //cho phep chon chip
spi_write(mode);
while (input (ADS7843_BUSY)== 1){;}
msb = spi_read(0);
lsb = spi_read(0);
output_high(ADS7843_CS); //khong phep chon chip
retval = make16(msb, lsb); // tra ve gia tri 16bit ket hop tu 2 bien (msb va lsb) msb la byte cao
retval >>= 4;
return(retval); //tra ve gia tri la: [x][x][x][x][x][x][x][x][x][x][x][x][] [] [] []
}
///////////////////////////////////////////////////////////////////////////////
void main()
{
output_high(ADS7843_CS); // Inactive state (disenable)
setup_spi(SPI_MASTER | SPI_MODE_0 | SPI_CLK_DIV_4); //khoi tao chuan SPI
int16 x,y;
output_low(ADS7843_CS); // Inactive state (enable)
delay_ms(5);
while (TRUE)
{
while( input(ADS7843_PENIRQ) ==0 ) // is screen touch
{
x = ads7843_read (0x94);
delay_us (2);
y = ads7843_read (0xD4);
delay_ms (1);
if ((x<50)&& (y <50)) //neu vung duoc bam co gtri x,y <50 thi bat den chi thi RB7
{
output_bit( PIN_B7, 1);
delay_ms (100);
output_bit( PIN_B7, 0);
delay_ms (50);
}
}
}
}
Địa chỉ toạ độ X ( 0x90), toạ độ Y( 0xD0);
Comment
Bài viết mới nhất
Collapse
-
bởi lvhnHãng nào tùy thích thôi bác! bây giờ các hãng đều hỗ trợ xem qua máy tính hay điện thoại đều được. Gắn Trước tiên mua về cắm nguồn set ip hết xong hãy lắp lên, cam poe chỉ cần 4 lõi là hoạt động bình thường nên 1 dây kéo cho 2 cam vẫn ok
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 15:49 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnNhớ không nhầm thì lúc còn đi học có gặp chú 1 lần cf bãi xe Nguyễn Kim, giờ quán cf đó nghỉ bán rồi
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 15:44 -
-
Trả lời cho Thắc mắc pin 21v ?bởi lvhnCon số đấy biểu thị gần đúng thôi, cái đồng hồ đó có đảm bảo chính xác hay không? pin có cục lên 4v4 vẫn bình thường. Cái gì cũng có sai số trong phạm vi không quá lớn thì không ảnh hưởng gì đâu, bàn ngay ngón ngắn ngón dài mà
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 15:32 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnThay mấy con transisto nhỏ đầu vào, thường vi sai lỗi hay bị. Khám tổng quát chân các linh kiện xem có bị rỉ sét nhiều không?
-
Channel: Điện thanh
hôm nay, 15:24 -
-
bởi dinhthuong92Mạch này hiệu suất ra led đạt khoảng 90.7% tại 12V in, 40W out.
-
Channel: Nguồn!
27-07-2026, 10:15 -
-
bởi dinhthuong92Có lẽ nguồn viết bài này chỉ mang tính định tính để nói rằng cần thay đổi tổng trở tải để có Pmax chứ trình bày chưa chi tiết và thấu đáo một cách định lượng. Công thức tổng quát phải có mặt L mới được, và nói là "tổng...
-
Channel: Nguồn!
27-07-2026, 10:09 -
-
Trả lời cho [Chia sẻ] Tổng hợp các công ty AI Việt Nam đang làm gì thật sự — Từ voicebot, computer vision đến AI agentsbởi nguyendinhvanCàng ngày, CNTT càng trở nên lôi thôi , rách việc.
Cái AI và Ge... trên trình duyệt chỉ tổ làm vướng mắt, mất thì gian.
Tôi toàm phải mất cộng tắt nó đi.-
Channel: Xu hướng, nhu cầu và thị trường
25-07-2026, 14:59 -
-
bởi trung30000Em có con amply 12 sò D 718 và e688 , biến áp 15A, 30v 0 30 v, một kênh thì hoạt động bình thường, kênh còn lại nổ bụp bụp, sột sột, đèn tín hiệu nhảy lên vạch max, khoảng 4 đến 5 giây, sau đó đèn tín hiệu trả về mức không, Em thấy như...
-
Channel: Điện thanh
24-07-2026, 13:50 -
-
Trả lời cho Tìm hiểu máy hàn lăn (Rolling Welding)bởi hoang_3ibác cần thì liên hệ Em: mayhanhaivuong.com (0903238399)...
-
Channel: Điện tử công nghiệp
24-07-2026, 10:58 -
-
Trả lời cho Công thức tính định luật kirchhoffbởi abcnewmemberGiải bằng hệ phương trình bật nhất 3 ẩn.
...
-
Channel: Hỗ trợ học tập
23-07-2026, 14:52 -

Comment