Em đang làm bài hiện chữ quảng cáo dùng led ma trận : 8x32, có kết nối bàn phím 4x4. Bàn phím thì định làm là mỗi nút hiện 1 kí tự. Dành một nút thứ 16 để làm nút chạy chữ quảng cáo đã nhập. Em dùng Keil C lập trình C cho AT89C52
Hiện xâu kí tự thì em có tham khảo và đã làm được.
ví dụ muốn hiện một xâu thì em chỉ cần xuất lệnh :
send-str("quang cao",0,1) // trong đó thì 0 là vị trí hiện chữ và 1 để làm dấu hiệu muốn chữ chuyển động từ phải qua trái
Bây giờ vấn đề của em là : em đã tạo một xâu
unsigned char q[]; // xâu này để chứa dãy kí tự nhập từ bàn phím, chỉ cần xâu này đúng là được
em đã viết lệnh bắt được các phím của bàn phím (đã thử thấy được),nhưng không thể đưa nó vào xâu q kia.
khi chạy chương trình thì em thấy nó không hề lưu được vào trong chuỗi q kia.
em không biết viết thế có sai ở đâu không?
em hỏi thêm chút : lúc đầu em định viết
unsigned char *q; // xâu này lưu dãy kí tự nhập
dùng lệnh strcat(q,'A'); để nối 2 xâu , chương trình không báo lỗi nhưng chạy mô phỏng thì chả có kết quả gì.
Ai đã từng làm rồi chỉ giúp em với. Chỉ cho em làm sao để mỗi khi mình ấn một nút thì làm cách nào để cộng thêm một kí tự vào xâu kia, và xâu đó được lưu lại dùng để hiện quảng cáo.
Xin cảm ơn! Các anh giúp nhanh hộ em hơi vội, tưởng dễ xơi ai dè!
Hiện xâu kí tự thì em có tham khảo và đã làm được.
ví dụ muốn hiện một xâu thì em chỉ cần xuất lệnh :
send-str("quang cao",0,1) // trong đó thì 0 là vị trí hiện chữ và 1 để làm dấu hiệu muốn chữ chuyển động từ phải qua trái
Bây giờ vấn đề của em là : em đã tạo một xâu
unsigned char q[]; // xâu này để chứa dãy kí tự nhập từ bàn phím, chỉ cần xâu này đúng là được
em đã viết lệnh bắt được các phím của bàn phím (đã thử thấy được),nhưng không thể đưa nó vào xâu q kia.
Code:
i=quetbanphim(); // quét bàn phím và trả về số thứ tự của phím đã bấm phim_duoc_an(i); // lệnh thực hiện chức năng của phím đã bấm
Code:
void phim_duoc_an(unsigned char phim) { switch(phim)// Tuy vao so lan { case 0: { so0(); break; } case 1: { so1(); break; } ........
Code:
void so0(void) { q[index]='A'; index++; // index em khai báo ở ngoài để nó có thể lưu giá trị cũ // các số khác tương tự
Code:
index thì em khai báo ở ngoài thế này : unsigned char index=0;
em hỏi thêm chút : lúc đầu em định viết
unsigned char *q; // xâu này lưu dãy kí tự nhập
dùng lệnh strcat(q,'A'); để nối 2 xâu , chương trình không báo lỗi nhưng chạy mô phỏng thì chả có kết quả gì.
Ai đã từng làm rồi chỉ giúp em với. Chỉ cho em làm sao để mỗi khi mình ấn một nút thì làm cách nào để cộng thêm một kí tự vào xâu kia, và xâu đó được lưu lại dùng để hiện quảng cáo.
Xin cảm ơn! Các anh giúp nhanh hộ em hơi vội, tưởng dễ xơi ai dè!