I2C_LCD控制头文件:自定义I2C总线接口

版权申诉
0 下载量 4 浏览量 更新于2024-11-11 收藏 854B RAR 举报
资源摘要信息:"I2C_LCD头文件" I2C总线是一种常用的串行通信协议,广泛应用于微控制器和各种外围设备之间的短距离通信。LCD(Liquid Crystal Display)是一种用于显示信息的显示设备。将I2C总线技术应用于LCD显示模块,可以实现微控制器与LCD模块的高效通信。 I2C_LCD头文件是一种预定义的软件库文件,用于通过I2C总线控制LCD显示模块。它包含了实现LCD控制功能所需的函数声明和宏定义,例如初始化LCD模块、发送命令到LCD模块以及显示字符或字符串到LCD等。用户在编写程序控制LCD显示时,可以包含这个头文件,然后直接调用其中定义的函数来实现所需的功能。 I2C总线通信的基础是通过两个线路来传输数据:一个串行数据线(SDA)和一个串行时钟线(SCL)。I2C协议支持多主多从模式,在这种通信模型中,可以有多个主设备和从设备在同一条总线上进行通信。通信过程中,主设备负责发送起始信号、停止信号、时钟信号以及控制数据传输的方向,而从设备则响应主设备的请求,完成数据的发送或接收。 LCD显示模块在I2C通信中通常作为从设备,它通过I2C总线接收来自主设备(如微控制器)的命令和数据,并将数据显示在屏幕上。在某些情况下,LCD显示模块会有一个内置的I2C地址,这样主设备就可以通过发送特定的地址来选定特定的LCD模块进行通信。 在I2C_LCD头文件中,通常会定义一些关键的控制函数,比如: - 初始化函数(如 `LCD_Init`):用于设置LCD模块的工作模式和初始状态。 - 写命令函数(如 `LCD_WriteCommand`):用于向LCD模块发送命令,例如清屏、设置光标位置等。 - 写数据函数(如 `LCD_WriteData`):用于向LCD模块发送要显示的数据,如文本字符串。 - 读状态函数(如 `LCD_ReadStatus`):用于读取LCD模块的当前状态,比如是否忙。 - 设置光标位置函数(如 `LCD_SetCursor`):用于设置接下来要显示字符的位置。 此外,I2C_LCD头文件可能还会包含一些宏定义,用于设定LCD模块的I2C地址、控制信号等参数。 在实际开发中,使用I2C_LCD头文件可以简化开发过程,开发者无需深入了解I2C协议和LCD模块的具体细节,只需通过调用头文件中提供的函数即可实现对LCD模块的控制。这种方式提高了开发效率,也使得程序代码更加清晰易懂。 总结来说,I2C_LCD头文件为开发者提供了一套完整的函数接口,用于操作和控制通过I2C总线连接的LCD显示模块。通过这些函数,可以实现对LCD模块的初始化、命令发送、数据显示等多种控制功能,极大地简化了嵌入式系统中LCD显示的编程工作。

import pandas as pd data = pd.read_csv(C:\Users\Administrator\Desktop\pythonsjwj\weibo_senti_100k.csv') data = data.dropna(); data.shape data.head() import jieba data['data_cut'] = data['review'].apply(lambda x: list(jieba.cut(x))) data.head() with open('stopword.txt','r',encoding = 'utf-8') as f: stop = f.readlines() import re stop = [re.sub(' |\n|\ufeff','',r) for r in stop] data['data_after'] = [[i for i in s if i not in stop] for s in data['data_cut']] data.head() w = [] for i in data['data_after']: w.extend(i) num_data = pd.DataFrame(pd.Series(w).value_counts()) num_data['id'] = list(range(1,len(num_data)+1)) a = lambda x:list(num_data['id'][x]) data['vec'] = data['data_after'].apply(a) data.head() from wordcloud import WordCloud import matplotlib.pyplot as plt num_words = [''.join(i) for i in data['data_after']] num_words = ''.join(num_words) num_words= re.sub(' ','',num_words) num = pd.Series(jieba.lcut(num_words)).value_counts() wc_pic = WordCloud(background_color='white',font_path=r'C:\Windows\Fonts\simhei.ttf').fit_words(num) plt.figure(figsize=(10,10)) plt.imshow(wc_pic) plt.axis('off') plt.show() from sklearn.model_selection import train_test_split from keras.preprocessing import sequence maxlen = 128 vec_data = list(sequence.pad_sequences(data['vec'],maxlen=maxlen)) x,xt,y,yt = train_test_split(vec_data,data['label'],test_size = 0.2,random_state = 123) import numpy as np x = np.array(list(x)) y = np.array(list(y)) xt = np.array(list(xt)) yt = np.array(list(yt)) x=x[:2000,:] y=y[:2000] xt=xt[:500,:] yt=yt[:500] from sklearn.svm import SVC clf = SVC(C=1, kernel = 'linear') clf.fit(x,y) from sklearn.metrics import classification_report test_pre = clf.predict(xt) report = classification_report(yt,test_pre) print(report) from keras.optimizers import SGD, RMSprop, Adagrad from keras.utils import np_utils from keras.models import Sequential from keras.layers.core import Dense, Dropout, Activation from keras.layers.embeddings import Embedding from keras.layers.recurrent import LSTM, GRU model = Sequential() model.add(Embedding(len(num_data['id'])+1,256)) model.add(Dense(32, activation='sigmoid', input_dim=100)) model.add(LSTM(128)) model.add(Dense(1)) model.add(Activation('sigmoid')) model.summary() import matplotlib.pyplot as plt import matplotlib.image as mpimg from keras.utils import plot_model plot_model(model,to_file='Lstm2.png',show_shapes=True) ls = mpimg.imread('Lstm2.png') plt.imshow(ls) plt.axis('off') plt.show() model.compile(loss='binary_crossentropy',optimizer='Adam',metrics=["accuracy"]) model.fit(x,y,validation_data=(x,y),epochs=15)

2023-06-10 上传