在单片机实现i显示姓名和学号代码
时间: 2024-03-24 17:40:30 浏览: 18
以下是一个使用51单片机和16x2字符液晶显示屏的示例代码:
```
#include <reg51.h>
// 定义液晶屏接口
#define LCD_DATA_PORT P0
sbit RS = P2^0;
sbit RW = P2^1;
sbit EN = P2^2;
// 定义姓名和学号
char name[] = "Tom";
char number[] = "123456";
// 延时函数
void delay(unsigned int x) {
unsigned int i, j;
for(i = x; i > 0; i--)
for(j = 110; j > 0; j--);
}
// 写命令到液晶屏
void write_cmd(unsigned char cmd) {
RW = 0;
RS = 0;
EN = 1;
LCD_DATA_PORT = cmd;
delay(5);
EN = 0;
}
// 写数据到液晶屏
void write_data(unsigned char dat) {
RW = 0;
RS = 1;
EN = 1;
LCD_DATA_PORT = dat;
delay(5);
EN = 0;
}
// 显示字符串
void display_string(char *str) {
while(*str) {
write_data(*str++);
}
}
void main() {
// 初始化液晶屏
write_cmd(0x38); // 设置16×2显示,5×7点阵,8位数据接口
write_cmd(0x0c); // 开显示,无光标
write_cmd(0x06); // 设定字符输入模式,光标右移,文字不动
// 显示姓名
write_cmd(0x80); // 显示位置设定为第一行第一列
display_string("Name: ");
display_string(name);
// 显示学号
write_cmd(0xc0); // 显示位置设定为第二行第一列
display_string("Number: ");
display_string(number);
while(1);
}
```
在上面的代码中,我们首先定义了液晶显示屏的接口,然后定义了姓名和学号的字符串。在 `main()` 函数中,我们初始化了液晶显示屏,并分别在第一行和第二行分别显示了姓名和学号。注意在每次写数据到液晶屏时需要延时一段时间,以确保信号能被正确传送。