void write_dat(u8 dat) { EN = 0; RS = 1; RW=0; LCD1602_DATAPORT = dat; delay_ms(1); EN = 1; delay_ms(1); EN = 0;
时间: 2023-09-13 09:13:04 浏览: 80
这段代码是在向LCD1602液晶显示屏写入数据。其中EN、RS、RW分别为LCD1602液晶显示屏的控制引脚,dat为要写入的数据。具体的步骤如下:
1. 将EN引脚设置为低电平,表示数据传输开始前先将这些引脚清零。
2. 将RS引脚设置为高电平,表示要写入的是数据,而不是命令。
3. 将RW引脚设置为低电平,表示要进行写操作。
4. 将要写入的数据dat写入LCD1602_DATAPORT寄存器,即将数据写入液晶显示屏的数据端口。
5. 延时1ms,等待数据稳定。
6. 将EN引脚设置为高电平,表示数据传输开始。
7. 延时1ms,等待数据稳定。
8. 将EN引脚再次设置为低电平,表示数据传输结束。
这样就完成了向液晶显示屏写入数据的操作。如果要写入多个数据,则需要重复执行上述步骤。
相关问题
EN = 0; RS = 0; RW=0; LCD1602_DATAPORT = com; delay_ms(1); EN = 1; delay_ms(1); EN = 0;
这段代码是在控制LCD1602液晶显示屏进行数据传输。其中EN、RS、RW分别为LCD1602液晶显示屏的控制引脚,com为要传输的数据。具体的步骤如下:
1. 将EN、RS、RW引脚都设置为低电平,表示数据传输开始前先将这些引脚清零。
2. 将要传输的数据com写入LCD1602_DATAPORT寄存器,即将数据写入液晶显示屏的数据端口。
3. 延时1ms,等待数据稳定。
4. 将EN引脚设置为高电平,表示数据传输开始。
5. 延时1ms,等待数据稳定。
6. 将EN引脚再次设置为低电平,表示数据传输结束。
这样就完成了一次数据传输操作,如果要传输多个数据,则需要重复执行上述步骤。
将本段C语言代码转换为流程图#include<reg52.h> #define DataPort P0 sbit SM_COM=P2^0; sbit SM_SEG=P2^1; sbit LCD1602=P1^2; unsigned char code SEG_DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; unsigned char code SEG_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void Delay(unsigned int t); main() { unsigned char i=0; LCD1602=0; while(1) { DataPort=0; SM_SEG=1; SM_SEG=0; DataPort=SEG_WeiMa[i]; SM_COM=1; SM_COM=0; DataPort=SEG_DuanMa[i]; SM_SEG=1; SM_SEG=0; Delay(200); i++; if(8==i) i=0; } } void Delay(unsigned int t) { while(--t); }
以下为该C语言代码的流程图:
![flowchart](https://img-blog.csdn.net/20180529142050108?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xhbmR5X3Npbmdo/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80)
阅读全文