久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 794|回復(fù): 2
收起左側(cè)

大佬們,怎么用atc89c51寫程序用串口助手顯示詩

[復(fù)制鏈接]
ID:1125585 發(fā)表于 2024-12-7 18:13 來自手機 | 顯示全部樓層 |閱讀模式
要求是用矩陣鍵盤控制,按一個按鍵顯示一行詩,16個按鍵顯示16個詩
回復(fù)

使用道具 舉報

ID:860926 發(fā)表于 2024-12-9 10:42 | 顯示全部樓層
串口發(fā)送程序,按鍵你寫好,檢測到了就發(fā)送就行了
void Uart_SendByte(unsigned char byte)
{
          SBUF =  byte;
          while(!UartSendFlag);
          UartSendFlag = 0;                                   
}
void Uart_SendString(unsigned char *str,unsigned char strlen)
{
    unsigned char i;
          for(i=0;i<strlen;i++)
    {
      Uart_SendByte(*str++);
    }
}
回復(fù)

使用道具 舉報

ID:404160 發(fā)表于 2024-12-9 10:52 | 顯示全部樓層
#include <reg52.h>  // 包含STC89C51寄存器定義  
#include <string.h>  

#define LCD_PORT P2   // LCD使用的端口  
#define ROWS 4        // 矩陣鍵盤行數(shù)  
#define COLS 4        // 矩陣鍵盤列數(shù)  

// 矩陣鍵盤行列定義  
unsigned char key_map[ROWS][COLS] = {  
    {'1', '2', '3', 'A'},  
    {'4', '5', '6', 'B'},  
    {'7', '8', '9', 'C'},  
    {'*', '0', '#', 'D'}  
};  

// 詩句數(shù)組  
const char *poems[16] = {  
    "床前明月光",  
    "疑是地上霜",  
    "舉頭望明月",  
    "低頭思故鄉(xiāng)",  
    "無邊落木蕭蕭下",  
    "不盡長江滾滾來",  
    "浮天水送",  
    "白云愁思隨意飛",  
    "月落烏啼霜滿天",  
    "江楓漁火對愁眠",  
    "姑蘇煙雨朦朧夜",  
    "白墻紅瓦映長空",  
    "子規(guī)夜半猶啼血",  
    "聽取蛙聲一片",  
    "霞光萬道舞翩躚",  
    "幾番風(fēng)雨幾度秋"  
};  

// 函數(shù)聲明  
void delay(unsigned int ms);  
void lcd_command(unsigned char cmd);  
void lcd_data(unsigned char data);  
void lcd_init();  
void lcd_print(const char *str);  
unsigned char scan_key();  

void main() {  
    lcd_init();  // 初始化LCD  

    while (1) {  
        unsigned char key = scan_key();  // 掃描按鍵  
        if (key != 0xFF) { // 檢測到按鍵  
            if (key >= 0 && key < 16) {  
                lcd_print(poems[key]); // 顯示對應(yīng)的詩句  
            }  
            delay(200); // 防抖  
        }  
    }  
}  

// 延時函數(shù)  
void delay(unsigned int ms) {  
    unsigned int i, j;  
    for (i = 0; i < ms; i++)  
        for (j = 0; j < 120; j++);  
}  

// LCD命令  
void lcd_command(unsigned char cmd) {  
    LCD_PORT = cmd;  
    P0 &= ~0x04; // 選擇指令寄存器  
    P0 |= 0x04;  // 發(fā)送命令  
    delay(1);  
}  

// LCD數(shù)據(jù)  
void lcd_data(unsigned char data) {  
    LCD_PORT = data;  
    P0 |= 0x04; // 選擇數(shù)據(jù)寄存器  
    P0 |= 0x04; // 發(fā)送數(shù)據(jù)  
    delay(1);  
}  

// LCD初始化  
void lcd_init() {  
    lcd_command(0x38); // 8位數(shù)據(jù),2行,5x7點陣  
    lcd_command(0x0C); // 顯示開,光標關(guān)  
    lcd_command(0x06); // 輸入模式設(shè)置  
    lcd_command(0x01); // 清屏  
    delay(2);  
}  

// 輸出字符串到LCD  
void lcd_print(const char *str) {  
    while (*str) {  
        lcd_data(*str++);  
    }  
}  

// 矩陣鍵盤掃描  
unsigned char scan_key() {  
    unsigned char row, col;  
    for (row = 0; row < ROWS; row++) {  
        P1 = ~(0x01 << row); // 設(shè)置一行為低電平  
        for (col = 0; col < COLS; col++) {  
            if (!(P1 & (0x01 << (col + 4)))) { // 檢查列  
                return row * COLS + col; // 返回按鍵索引  
            }  
        }  
    }  
    return 0xFF; // 沒有按鍵被按下  
}

代碼說明
LCD配置:該代碼使用 P2 口控制LCD1602顯示。相應(yīng)的LCD初始化、命令發(fā)送和數(shù)據(jù)發(fā)送函數(shù)均已實現(xiàn)。
矩陣鍵盤:通過 scan_key 函數(shù)掃描4x4矩陣鍵盤,返回相應(yīng)按鍵的索引。
詩句數(shù)組:定義了16個詩句,按鍵所對應(yīng)的索引與詩句數(shù)組一致。
按鍵處理:當(dāng)檢測到按鍵按下時,顯示對應(yīng)的詩句。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品三级在线观看 | 九色av | 日韩在线欧美 | 在线观看中文字幕 | 日韩一区二区三区在线观看 | 中国av在线免费观看 | 国产精品99 | 色伊人网| 欧美性受xxxx白人性爽 | 视频一区二区国产 | 国产做a爱免费视频 | 日韩免费看视频 | 一区二区三区视频播放 | 激情国产在线 | 日本精品视频 | 日本在线视频一区二区 | 亚洲精品久久久一区二区三区 | 日韩中文在线观看 | 91在线视频免费观看 | 日韩av第一页| 99精品久久久 | 国产精品福利久久久 | 丁香久久 | 91免费在线看 | 国产成年人视频 | a级毛片免费高清视频 | 久久久久国产一区二区三区四区 | 网站黄色在线 | 亚洲综合视频 | 久久免费观看视频 | 欧美视频在线观看 | 久久男人 | 久久精品国产亚洲一区二区三区 | 久久久久久国产精品 | 北条麻妃av一区二区三区 | 在线观看视频你懂得 | 亚洲一区二区av在线 | 精品91久久久 | 精品免费国产一区二区三区四区 | 欧产日产国产精品99 | 国产男女猛烈无遮掩视频免费网站 |