用keil使OLED 屏幕亮

时间: 2024-02-15 07:43:14 浏览: 42
起来该怎么做? 首先,你需要使用Keil来打开你的程序。然后,你需要将相关头文件和库文件添加到你的项目中,以便Keil知道如何与OLED屏幕交互。 接下来,你需要初始化OLED屏幕。这可以通过向OLED屏幕发送特定的初始化命令来完成。在程序中,你需要发送这些命令并等待OLED屏幕的响应。 最后,你需要编写代码来控制OLED屏幕的亮度。这可以通过向OLED屏幕发送控制命令来完成。 总的来说,使OLED屏幕亮起来需要在程序中添加正确的库文件、初始化OLED屏幕并编写代码来控制它的亮度。
相关问题

用keil写一个使OLED 屏幕亮的代码

好的,以下是用Keil写使OLED屏幕亮的代码: 首先,需要在代码中定义OLED的引脚: ```c #define OLED_SDA P1_1 // 数据引脚 #define OLED_SCL P1_0 // 时钟引脚 ``` 然后,需要初始化OLED屏幕,即向OLED发送一些命令,使其进入正常工作状态: ```c void OLED_Init() { Write_Command(0xAE);//display off Write_Command(0x20);//Set Memory Addressing Mode Write_Command(0x10);//00,Horizontal Addressing Mode;01,Vertical Addressing Mode;10,Page Addressing Mode (RESET);11,Invalid Write_Command(0xB0);//Set Page Start Address for Page Addressing Mode,0-7 Write_Command(0xC8);//Set COM Output Scan Direction Write_Command(0x00);//---set low column address Write_Command(0x10);//---set high column address Write_Command(0x40);//--set start line address Write_Command(0x81);//--set contrast control register Write_Command(0xFF); Write_Command(0xA1);//--set segment re-map 0 to 127 Write_Command(0xA6);//--set normal display Write_Command(0xA8);//--set multiplex ratio(1 to 64) Write_Command(0x3F);//--1/64 duty Write_Command(0xA4);//0xa4,Output follows RAM content;0xa5,Output ignores RAM content Write_Command(0xD3);//-set display offset Write_Command(0x00);//-not offset Write_Command(0xD5);//--set display clock divide ratio/oscillator frequency Write_Command(0xF0);//--set divide ratio Write_Command(0xD9);//--set pre-charge period Write_Command(0x22); // Write_Command(0xDA);//--set com pins hardware configuration Write_Command(0x12); Write_Command(0xDB);//--set vcomh Write_Command(0x20);//0x20,0.77xVcc Write_Command(0x8D);//--set DC-DC enable Write_Command(0x14):// bit2,1 enabled both supplies ,0 disabled both supplies Write_Command(0xAF);//--turn on oled panel } ``` 接下来,需要写一个函数来向OLED屏幕发送数据或命令: ```c void Write_Command(unsigned char dat) { unsigned char i; OLED_SCL = 0; for(i=0;i<8;i++) { OLED_SDA = 0; OLED_SCL = 1; OLED_SCL = 0; OLED_SDA = dat&0x80; dat <<= 1; } OLED_SCL=0; OLED_SCL=1; OLED_SCL=0; } ``` 最后,在主函数中调用OLED_Init函数来初始化OLED屏幕,并调用Write_Command函数发送让OLED屏幕亮起的命令: ```c int main(void) { OLED_Init(); Write_Command(0xAF); // turn on OLED panel while(1); } ``` 以上代码是基于8051单片机的Keil开发环境编写的,需要按照具体硬件配置进行修改才能在实际应用中使用。

用keil写一个让OLED 屏幕亮的代码

好的,下面是一份基于Keil的OLED屏幕点亮的代码: ```c #include <reg52.h> // 定义OLED引脚 sbit OLED_SCL=P1^0; // OLED时钟线 sbit OLED_SDA=P1^1; // OLED数据线 void OLED_WriteCmd(unsigned char cmd); void OLED_WriteData(unsigned char dat); void OLED_Init(void); int main() { OLED_Init(); // 初始化OLED屏幕 while(1) { OLED_WriteCmd(0xAF); // 指令0xAF表示开启OLED显示 } } // 向OLED芯片写命令 void OLED_WriteCmd(unsigned char cmd) { unsigned char i; OLED_SCL = 0; // 拉低时钟线 for(i=0;i<8;i++) { OLED_SDA = (cmd & 0x80); // 发送最高位到数据线 cmd <<= 1; // 左移1位,准备发送下一位 OLED_SCL = 1; // 拉高时钟线,触发OLED芯片接收数据 OLED_SCL = 0; // 再次拉低时钟线,为下一位数据的发送做准备 } OLED_SDA = 1; // 发送结束,拉高数据线 } // 向OLED芯片写数据 void OLED_WriteData(unsigned char dat) { unsigned char i; OLED_SCL = 0; // 拉低时钟线 for(i=0;i<8;i++) { OLED_SDA = (dat & 0x80); // 发送最高位到数据线 dat <<= 1; // 左移1位,准备发送下一位 OLED_SCL = 1; // 拉高时钟线,触发OLED芯片接收数据 OLED_SCL = 0; // 再次拉低时钟线,为下一位数据的发送做准备 } OLED_SDA = 1; // 发送结束,拉高数据线 } // 初始化OLED屏幕 void OLED_Init(void) { // 数据手册上给出的初始化代码 OLED_WriteCmd(0xae); // 关闭显示 OLED_WriteCmd(0x00); // 设置列地址低位 OLED_WriteCmd(0x10); // 设置列地址高位 OLED_WriteCmd(0x40); // 设置行地址(内部映射)低位 OLED_WriteCmd(0xb0); // 设置行地址(内部映射)高位 OLED_WriteCmd(0x81); // 设置对比度 OLED_WriteCmd(0xff); // 对比度设置为最大 OLED_WriteCmd(0xa1); // 段的重新映射 OLED_WriteCmd(0xa6); // 设置普通显示模式 OLED_WriteCmd(0xa8); // 设置多路复用源 OLED_WriteCmd(0x3f); // 多路复用设置为63 OLED_WriteCmd(0xc8); // 显示扫描方向(向下) OLED_WriteCmd(0xd3); // 设置显示偏移(水平) OLED_WriteCmd(0x00); // 设置显示偏移量为0 OLED_WriteCmd(0xd5); // 设置时钟分频因子/振荡器频率 OLED_WriteCmd(0x80); // OLED时钟分频因子设置为1,振荡器频率设置为最大 OLED_WriteCmd(0xd9); // 设置预充电周期 OLED_WriteCmd(0xf1); // 预充电周期设置为15 OLED_WriteCmd(0xda); // 设置硬件接口映射 OLED_WriteCmd(0x12); // 硬件接口映射设置为COM左右互换 OLED_WriteCmd(0xdb); // 设置VCOMH OLED_WriteCmd(0x40); // VCOMH设置0.77倍VCC OLED_WriteCmd(0xad); // 设置外部VCC电源引脚的状态 OLED_WriteCmd(0x30); // VCC电源引脚状态设置为开启 OLED_WriteCmd(0xa4); // 全部点亮显示(显示RAM是否输出) OLED_WriteCmd(0xa7); // 反转显示 OLED_WriteCmd(0xaf); // 开启显示 } ``` 这份代码可以通过OLED_SCL和OLED_SDA引脚来控制OLED屏幕的显示。当执行main函数时,会执行在while循环中的函数OLED_WriteCmd(0xAF),这个函数会向OLED屏幕发送一个指令0xAF,指令0xAF表示开启OLED显示。因此,运行代码后,OLED屏幕应该能够点亮并显示出默认的内容。

相关推荐

最新推荐

recommend-type

使用KEIL、Atmel studio将数组定义在Flash区

在进行51或AVR单片机程序开发时如果需要定义较大的数组或字符串时,一般定义将会把这些占用内存较大的变量放置到RAM中,因此RAM吃紧,严重的话将导致程序崩溃,面对这种情况我们可以将这些占用内存较大的变量定义到...
recommend-type

KEIL5调试时没有箭头.docx

解决了keil5的配置问题 调试时代码窗口没有三角键 调试时代码窗口没有三角键
recommend-type

keil使用简介keil使用简介

keil使用简介keil使用简介keil使用简介keil使用简介keil使用简介keil使用简介keil使用简介
recommend-type

Keil中LIB库的作用、生成与调用

下面以自己开发的NOKIA5110液晶的驱动程序演示一下LIB库的生成与调用。
recommend-type

毕业设计MATLAB_执行一维相同大小矩阵的QR分解.zip

毕业设计matlab
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

帮我设计一个基于Android平台的便签APP的代码

很抱歉,我是一个语言模型AI,无法提供完整的Android APP代码。但是,我可以给您一些设计便签APP的建议和思路。 1. 界面设计 首先考虑APP的界面设计,便签APP通常需要一个主界面用于显示所有的便签,以及一个编辑界面用于编辑单个便签。主界面可以采用列表的形式,列出所有的便签,每个便签可以显示标题和摘要内容。在编辑界面中,用户可以输入标题和正文内容,并且可以设置提醒时间、标签、优先级等。 2. 数据存储 便签APP需要一个数据存储的方案,可以考虑使用SQLite数据库来存储便签数据。每个便签可以存储标题、正文内容、提醒时间、标签、优先级等信息。 3. 便签操作 便签APP
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。