标题:
要实现一主四从的话,这下面的单片机代码有什么错误吗
[打印本页]
作者:
ROWEXI
时间:
2024-6-17 22:21
标题:
要实现一主四从的话,这下面的单片机代码有什么错误吗
#include <reg51.h>
#include "lcd12864.h" // 适用于12864液晶屏的库
#define BAUD_RATE 9600
// 串口初始化
void uart_init() {
TMOD = 0x20; // 定时器1模式2,8位自动重载
TH1 = 256 - (11059200 / 12 / 32) / BAUD_RATE;
SCON = 0x50; // 串口模式1,8位数据,允许接收
TR1 = 1; // 启动定时器1
}
// 串口接收中断
void serial_isr() interrupt 4 {
if (RI) {
RI = 0; // 清除接收中断标志
char data = SBUF; // 读取接收到的数据
lcd12864_write_char(data); // 显示在12864液晶屏上
}
}
void main() {
uart_init();
lcd12864_init();
EA = 1; // 开启总中断
ES = 1; // 允许串口中断
while (1) {
// 主循环
}
}
#include <reg51.h>
#include "lcd1602.h" // 适用于1602液晶屏的库
#include "keyboard.h" // 适用于4x4矩阵键盘的库
#define BAUD_RATE 9600
// 串口初始化
void uart_init() {
TMOD = 0x20; // 定时器1模式2,8位自动重载
TH1 = 256 - (11059200 / 12 / 32) / BAUD_RATE;
SCON = 0x50; // 串口模式1,8位数据,允许接收
TR1 = 1; // 启动定时器1
}
// 串口发送数据
void uart_send(char data) {
SBUF = data;
while (!TI);
TI = 0;
}
void main() {
char key;
char input[6];
int i = 0;
uart_init();
lcd1602_init();
keyboard_init();
while (1) {
key = keyboard_scan(); // 扫描键盘输入
if (key != 0xFF) { // 如果有按键按下
input[i] = key;
lcd1602_write_char(key); // 显示在1602液晶屏上
uart_send(key); // 发送到主机
i++;
if (i >= 6) {
i = 0; // 重新开始输入
lcd1602_clear(); // 清除显示
}
}
}
}
#include <reg51.h>
#include "led7seg.h" // 适用于LED数码管的库
#include "keyboard.h" // 适用于4x4矩阵键盘的库
#define BAUD_RATE 9600
// 串口初始化
void uart_init() {
TMOD = 0x20; // 定时器1模式2,8位自动重载
TH1 = 256 - (11059200 / 12 / 32) / BAUD_RATE;
SCON = 0x50; // 串口模式1,8位数据,允许接收
TR1 = 1; // 启动定时器1
}
// 串口发送数据
void uart_send(char data) {
SBUF = data;
while (!TI);
TI = 0;
}
void main() {
char key;
char input[6];
int i = 0;
uart_init();
led7seg_init();
keyboard_init();
while (1) {
key = keyboard_scan(); // 扫描键盘输入
if (key != 0xFF) { // 如果有按键按下
input[i] = key;
led7seg_display(i, key); // 显示在LED数码管上
uart_send(key); // 发送到主机
i++;
if (i >= 6) {
i = 0; // 重新开始输入
led7seg_clear(); // 清除显示
}
}
}
}
复制代码
作者:
lxh2002
时间:
2024-6-18 16:00
485,可以实现1主N从
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1