stc8单片机+8针oled驱动显示ADC值源程序

2019-10-15来源: eefocus关键字:stc8单片机  8针oled  驱动显示  ADC

#include

#include


sbit lcd_sclk=P5^0;  /*接口定义:lcd_sclk就是CLK*/

sbit lcd_sid=P5^1;   /*接口定义:lcd_sid就是MOSI*/

sbit lcd_rs=P5^2;    /*接口定义:lcd_rs就是DC*/

sbit lcd_cs1=P5^3;   /*接口定义:lcd_cs1就是OLED的片选CS1*/

sbit Rom_OUT=P5^4;   /*字库IC接口定义:Rom_OUT就是FSO*/

sbit Rom_CS=P5^5;    /*字库IC接口定义Rom_CS就是字库IC的CS2*/

unsigned char code ASCII[] =    {'0','1','2','3','4','5','6','7','8','9'};




#define uchar unsigned char 

#define uint unsigned int

#define ulong unsigned long


uchar code bmp1[];




/*写指令到LCD模块*/

void transfer_command_lcd(int data1)   

{

        char i;

        lcd_rs=0;

        lcd_sclk=0;

        for(i=0;i<8;i++)

   {

                

                if(data1&0x80) lcd_sid=1;

                else lcd_sid=0;

                lcd_sclk=1;

                _nop_();

                lcd_sclk=0;

                 data1<<=1;

   }

}


/*写数据到LCD模块*/

void transfer_data_lcd(int data1)

{

        char i;

        lcd_rs=1;

        lcd_sclk=0;

        for(i=0;i<8;i++)

   {

                

                if(data1&0x80) lcd_sid=1;

                else lcd_sid=0;

                lcd_sclk=1;

                _nop_();

                lcd_sclk=0;

                 data1<<=1;

   }

}


/*延时*/

void delay(int n_ms)               

{

int j,k;

for(j=0;j

for(k=0;k<110;k++);

}



/*等待一个按键,我的主板是用P2.0与GND之间接一个按键*/

//void waitkey()

//{

// repeat:

//          if (P2&0x01) goto repeat;

//        else delay(6);

//        if (P2&0x01) goto repeat;

//        else

//        delay(40);;

//}



/*LCD模块初始化*/

void initial_lcd()

{

        lcd_cs1=0;

        Rom_CS = 1;

//        lcd_reset=0;        /*低电平复位*/

        delay(20);

        //lcd_reset=1;                    /*复位完毕*/

        delay(20);        

        transfer_command_lcd(0xAE);   //display off

        transfer_command_lcd(0x20);        //Set Memory Addressing Mode        

        transfer_command_lcd(0x10);        //00,Horizontal Addressing Mode;01,Vertical Addressing Mode;10,Page Addressing Mode (RESET);11,Invalid

        transfer_command_lcd(0xb0);        //Set Page Start Address for Page Addressing Mode,0-7

        transfer_command_lcd(0xc8);        //Set COM Output Scan Direction

        transfer_command_lcd(0x00);//---set low column address

        transfer_command_lcd(0x10);//---set high column address

        transfer_command_lcd(0x40);//--set start line address

        transfer_command_lcd(0x81);//--set contrast control register

        transfer_command_lcd(0x7f);

        transfer_command_lcd(0xa1);//--set segment re-map 0 to 127

        transfer_command_lcd(0xa6);//--set normal display

        transfer_command_lcd(0xa8);//--set multiplex ratio(1 to 64)

        transfer_command_lcd(0x3F);//

        transfer_command_lcd(0xa4);//0xa4,Output follows RAM content;0xa5,Output ignores RAM content

        transfer_command_lcd(0xd3);//-set display offset

        transfer_command_lcd(0x00);//-not offset

        transfer_command_lcd(0xd5);//--set display clock divide ratio/oscillator frequency

        transfer_command_lcd(0xf0);//--set divide ratio

        transfer_command_lcd(0xd9);//--set pre-charge period

        transfer_command_lcd(0x22); //

        transfer_command_lcd(0xda);//--set com pins hardware configuration

        transfer_command_lcd(0x12);

        transfer_command_lcd(0xdb);//--set vcomh

        transfer_command_lcd(0x20);//0x20,0.77xVcc

        transfer_command_lcd(0x8d);//--set DC-DC enable

        transfer_command_lcd(0x14);//

        transfer_command_lcd(0xaf);//--turn on oled panel 

        lcd_cs1=1;

}


void lcd_address(uchar page,uchar column)

{


        transfer_command_lcd(0xb0 + column);   /*设置页地址*/

        transfer_command_lcd(((page & 0xf0) >> 4) | 0x10);        /*设置列地址的高4位*/

        transfer_command_lcd((page & 0x0f) | 0x00);        /*设置列地址的低4位*/        

}


/*全屏清屏*/

void clear_screen()

{

        unsigned char i,j;

        lcd_cs1=0;

        Rom_CS = 1;        

        for(i=0;i<8;i++)

        {

                transfer_command_lcd(0xb0+i);

                transfer_command_lcd(0x00);

                transfer_command_lcd(0x10);

                for(j=0;j<128;j++)

                {

                          transfer_data_lcd(0x00);

                }

        }

         lcd_cs1=1;

}


/*显示128x64点阵图像*/

//void display_128x64(uchar *dp)

//{

//        uint i,j;

//        lcd_cs1=0;

//        for(j=0;j<8;j++)

//        {

//                lcd_address(0,j);

//                for (i=0;i<128;i++)

//                {        

//                        transfer_data_lcd(*dp);                                        /*写数据到LCD,每写完一个8位的数据后列地址自动加1*/

//                        dp++;

//                }

//        }

//        lcd_cs1=1;

//}



/*显示16x16点阵图像、汉字、生僻字或16x16点阵的其他图标*/

void display_graphic_16x16(uint page,uint column,uchar *dp)

{

        uint i,j;

         lcd_cs1=0;

        Rom_CS = 1;         

        for(j=2;j>0;j--)

        {

                lcd_address(column,page);

                for (i=0;i<16;i++)

                {        

                        transfer_data_lcd(*dp);                                        /*写数据到LCD,每写完一个8位的数据后列地址自动加1*/

                        dp++;

                }

                page++;

        }

        lcd_cs1=1;

}



/*显示8x16点阵图像、ASCII, 或8x16点阵的自造字符、其他图标*/

void display_graphic_8x16(uint page,uchar column,uchar *dp)

{

        uint i,j;

        lcd_cs1=0;        

        for(j=2;j>0;j--)

        {

                lcd_address(column,page);

                for (i=0;i<8;i++)

                {        

transfer_data_lcd(*dp); /*写数据到LCD,每写完一个8

[1] [2] [3]
关键字:stc8单片机  8针oled  驱动显示  ADC 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic477176.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:stm8s003k3加数码管做的定时小板,继电器以及MOS管输出
下一篇:单片机C语言 串口传输 结构体

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

新手必看(STC89C52)单片机寻迹避障蓝牙四轮小车的简单实现
一、关于材料的选择           1.L289驱动电机x22.1.5V电池(可以买充电电池,我用了几十个电池了!!!)我是用8节1.5v构成12v电池单独给4个电机供电,另外3节1.5v给单片机供电,4.5v与           5v差不多。3.底板加4马达(电机)。4.有条件可以用电钻(我是在各个店单独购买的,所以底板孔与器件孔不搭配,自己钻的)5.若干杜邦线,公对公 母对母 公对母都买X3应该足够了,最短就好了不需要那么长,但是有钱可以买X16.淘宝上的板子STC89C52,有各种现成的接口,适合新手学习,学习
发表于 2019-12-03
基于STC15w104单片机的人体红外报警
没什么复杂的功能,分享给大家哈,注意 用的是STC的15w104(8脚的) 用了它的IO高阻和推挽功能偶是初学者  功能正常的,已经调试成功了单片机源程序如下:#include <stc15f2k60s2.h>#include <intrins.h>sbit bfcf=P3^4;                 sbit gbbj=P3^5;                 sbit beep=P3^3;  
发表于 2019-12-02
基于单片机的自动打铃系统的设计
的STC89C51单片机最小系统如图2-3所示。图2-3单片机最小系统STC89C51单片机本设计采用STC89C51单片机,如图2-4所示。STC89C51是一款高性能、低功耗的8位CMOS微处理芯片其具备4K的FLASH程序存储器,256字节的内部RAM、6个不同的中断源、4和中断优先级、4个8位I/O口、2个16位的定时计数器、全双工的串口通信。图2-4 STC89C51单片机引脚图各引脚的用途如下所示:VCC(40):接电源+5V,用于电路供电。GND(20):接地,用于保护电路。XTAL1(19)和XTAL2(18):当时钟脉冲式输入状态时,用外部振荡电路,如果有1个外接电容,就用时钟电路。当外部时钟脉冲来临时,用来接输入的脉冲信号
发表于 2019-11-30
基于单片机的自动打铃系统的设计
做一个最简单的蓝牙小车
需要模块:1.STC89C52RC单片机+最小系统2.HC06蓝牙从机模块3.L298电机驱动模块4.电源(7v)5.电机+车轮以上都可以在淘宝上购买的到。不过建议DIY的同志还是自己买单个原件焊接,比较有学习意义。第一步 ——车体小车车体建议自己制作,一是简单,而是可以节省成本,找一块塑料板,买一瓶502胶水,把在网上买的电机直接粘上去就可以了,很稳固。淘宝也有成品的车体,我就是直接买成品的。自己动手太浪费时间也不好看,但是就没有成就感了。第二步——控制系统动手制作一个单片机最小系统,安上芯片,非常的简单51单片机最小系统的电路图大家应该都知道——第三部——电机驱动底盘和最小系统搞好了,小车还是跑不起来——缺少电机驱动
发表于 2019-11-22
基于STC15W408AS单片机内部EEPROM读写接口函数
#include "reg51.h"#include "intrins.h"#define uint unsigned int#define uchar unsigned char#define ulong unsigned longtypedef uchar BYTE;typedef uint WORD;sfr P1M1 = 0x91;    //PxM1.n,PxM0.n     =00--->Standard,    01--->push-pullsfr P1M0 = 0x92;    // &n
发表于 2019-11-16
STC12C60S2单片机双485通讯开发双485通讯控制程序
*********************************************************************/#include "STC12C5A60S2.h"  //库文件#define uchar unsigned char//宏定义无符号字符型#define uint unsigned int  //宏定义无符号整型/********************************************************************                            初始
发表于 2019-11-13
STC12C60S2单片机双485通讯开发双485通讯控制程序
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved