单片机源程序如下:

//---库函数声明及相关定义---//

#include

#include

#define unint unsigned int

#define unchar unsigned char

#define Databus P1 /*液晶数据总线*/

sbit RS=P3^3;      /*数据指令 选择*/

sbit RW=P3^4;      /*读写 选择*/

sbit EN=P3^2;      /*读写使能*/

sbit cs1=P3^6;     /*片选1*/

sbit cs2=P3^7;     /*片选2*/



sbit clock=P0^4;//时钟线

sbit dout=P0^2;//数据输出端

sbit cs=P0^3;//片选(低电平有效)



sbit        DQ=P0^2;//ds18b20与单片机连接口

float f_temp;//浮点型温度值   

unsigned int tvalue;//温度值

unsigned char tflag;      

unsigned int temp=0;

unsigned char SegBuf[4]={0};


/********************************/

/* 定义中文字库    */

/********************************/

unchar code Hzk[]={

        0x40,0x20,0x10,0x0C,0xE3,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0x02,0x00,0x00, //年//0

        0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00,

        0x00,0x00,0x00,0x00,0x00,0xFF,0x11,0x11,0x11,0x11,0x11,0xFF,0x00,0x00,0x00,0x00,//月//1

        0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x01,0x01,0x21,0x41,0x3F,0x00,0x00,0x00,0x00,

        0x00,0x00,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00,0x00,0x00,//日//2

        0x00,0x00,0x00,0x3F,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x00,

        0x00,0x00,0x00,0xBE,0x2A,0x2A,0x2A,0xEA,0x2A,0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x00,//星//3

        0x00,0x48,0x46,0x41,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x49,0x49,0x41,0x40,0x00,

        0x00,0x04,0xFF,0x54,0x54,0x54,0xFF,0x04,0x00,0xFE,0x22,0x22,0x22,0xFE,0x00,0x00,//期//4

        0x42,0x22,0x1B,0x02,0x02,0x0A,0x33,0x62,0x18,0x07,0x02,0x22,0x42,0x3F,0x00,0x00,

        0x00,0xFC,0x44,0x44,0x44,0xFC,0x10,0x90,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x00,//时//5

        0x00,0x07,0x04,0x04,0x04,0x07,0x00,0x00,0x03,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,

        0x80,0x40,0x20,0x98,0x87,0x82,0x80,0x80,0x83,0x84,0x98,0x30,0x60,0xC0,0x40,0x00,//分//6

        0x00,0x80,0x40,0x20,0x10,0x0F,0x00,0x00,0x20,0x40,0x3F,0x00,0x00,0x00,0x00,0x00,

        0x12,0x12,0xD2,0xFE,0x91,0x11,0xC0,0x38,0x10,0x00,0xFF,0x00,0x08,0x10,0x60,0x00,//秒//7

        0x04,0x03,0x00,0xFF,0x00,0x83,0x80,0x40,0x40,0x20,0x23,0x10,0x08,0x04,0x03,0x00,


0x00,0x40,0x42,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x40,0x00,//天//8

0x00,0x80,0x40,0x20,0x10,0x08,0x06,0x01,0x02,0x04,0x08,0x10,0x30,0x60,0x20,0x00,

0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,//一//9

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x00,//二//10

0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x10,0x00,

0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,//三//11

0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,

0x00,0xFE,0x02,0x02,0x02,0xFE,0x02,0x02,0xFE,0x02,0x02,0x02,0x02,0xFE,0x00,0x00,//四//12

0x00,0x7F,0x28,0x24,0x23,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x22,0x7F,0x00,0x00,

0x00,0x02,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0xC2,0x82,0x02,0x00,0x00,0x00,//五//13

0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x30,0x20,0x00,

0x10,0x10,0x10,0x10,0x10,0x91,0x12,0x1E,0x94,0x10,0x10,0x10,0x10,0x10,0x10,0x00,//六//14

0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x00,0x00,0x01,0x02,0x0C,0x78,0x30,0x00,0x00,


0x00,0x40,0x42,0x44,0x4C,0x40,0x40,0x7F,

      0x40,0x40,0x48,0x44,0xE6,0x40,0x00,0x00,

      0x00,0x40,0x44,0x44,0x44,0x44,0x44,0x44,

      0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00,//当//15


0x08,0x08,0xE8,0x29,0x2A,0x2E,0xE8,0x08,

      0x08,0xCC,0x0A,0x0B,0xE8,0x0C,0x08,0x00,

      0x00,0x00,0xFF,0x09,0x49,0x89,0x7F,0x00,

      0x00,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00,//前//16


0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,//电//17

      0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,

      0x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,

      0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00,


0x00,0x00,0xFE,0x02,0x82,0x82,0x82,0x82,

      0xFE,0x82,0x82,0x82,0xC3,0x82,0x00,0x00,

      0x40,0x30,0x0F,0x40,0x40,0x40,0x40,0x40,

      0x7F,0x40,0x42,0x44,0x4C,0x60,0x40,0x00,//压//18



0x00,0x00,0x00,0x00,0x7F,0x49,0x49,0x49,

      0x49,0x49,0x7F,0x00,0x00,0x80,0x00,0x00,

      0x01,0x81,0x41,0x21,0x1D,0x21,0x41,0x7F,

      0x89,0x89,0x8D,0x89,0x81,0xC1,0x41,0x00,//是//19


0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0x80,

      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

      0x00,0x00,0x00,0x00,0x31,0x7B,0x7B,0x31,

      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//://20


0x80,0x40,0x20,0xF8,0x27,0x20,0x20,0x20,//伏//21

      0x20,0xFF,0x20,0x24,0x28,0x38,0x20,0x00,

      0x00,0x00,0x00,0xFF,0x80,0x40,0x20,0x18,

      0x06,0x01,0x06,0x18,0x60,0xC0,0x40,0x00



                         };

/****************************************/

/* 定义ASCII字库8列*16行    */

/****************************************/

unchar code Ezk[]={

/*此字体下对应的点阵为:宽x高=8x16   --*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16   --*/

        0x00,0x00,0xF0,0xF8,0x08,0x68,0xF8,0xF0,0x00,0x00,0x07,0x0F,0x0B,0x08,0x0F,0x07, //0

        0x00,0x20,0x20,0x30,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,  //1

        0x00,0x30,0x38,0x08,0x88,0xF8,0x70,0x00,0x00,0x0C,0x0E,0x0B,0x09,0x08,0x08,0x00, //        2

        0x00,0x30,0x38,0x88,0x88,0xF8,0x70,0x00,0x00,0x06,0x0E,0x08,0x08,0x0F,0x07,0x00, //3

        0x00,0x00,0xF8,0xF8,0x00,0xE0,0xE0,0x00,0x00,0x03,0x03,0x02,0x02,0x0F,0x0F,0x02,//4

        0x00,0xF8,0xF8,0x88,0x88,0x88,0x08,0x00,0x00,0x08,0x08,0x08,0x0C,0x07,0x03,0x00,//5

        0x00,0xC0,0xE0,0x78,0x58,0xC8,0x80,0x00,0x00,0x07,0x0F,0x08,0x08,0x0F,0x07,0x00,//6

        0x00,0x08,0x08,0x88,0xE8,0x78,0x18,0x00,0x00,0x00,0x0E,0x0F,0x01,0x00,0x00,0x00,//7

        0x00,0x70,0xF8,0xC8,0x88,0xF8,0x70,0x00,0x00,0x07,0x0F,0x08,0x09,0x0F,0x07,0x00,//8

        0x00,0xF0,0xF8,0x08,0x08,0xF8,0xF0,0x00,0x00,0x00,0x09,0x0D,0x0F,0x03,0x01,0x00,//9



                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // - -//10

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

        0x00,0x80,0x80,0xE0,0xE0,0x80,0x80,0x00,  // -+-//11

        0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,


        0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,  // ---//12

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // -.-//13

        0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00

};




/*状态检查,LCD是否忙*/

void CheckState()   

{

   unchar dat;       /*状态信息,判断是否忙*/

   RS=0;             /*数据指令选择,D/I(RS)=“L” ,表示 DB7∽DB0 为显示指令数据*/

   RW=1;             /*R/W=“H” ,E=“H”数据被读到DB7∽DB0*/

   do{

      Databus=0x00;

      EN=1;          /*EN下降源*/

      _nop_();       /*一个时钟延时*/

      dat=Databus;

      EN=0;

      dat=0x80 & dat;/*仅当第7位为0时才可操作(判别busy信号)*/

      }while(!(dat==0x00));

}

/*写命令到LCD中*/

SendCommandToLCD(unchar com)

{

   CheckState();/*状态检查,LCD是否忙*/

   RS=0;        /*向LCD发送命令。RS=0写指令,RS=1写数据*/

   RW=0;        /*R/W=“L” ,E=“H→L”数据被写到 IR 或 DR */

   Databus=com; /*com :命令*/

   EN=1;        /*EN下降沿*/

   _nop_();

   _nop_();

   EN=0;

}

/*设置页 0xb8是页的首地址*/

void SetLine(unchar page)   

{

        page=0xb8|page; /*1011 1xxx 0<=page<=7 设定页地址--X 0-7,8行为一页64/8=8,共8页*/

        SendCommandToLCD(page);

}

/*设定显示开始行,0xc0是行的首地址*/

void SetStartLine(unchar startline)        

{

        startline=0xc0|startline;    /*1100 0000*/

        SendCommandToLCD(startline); /*设置从哪行开始:0--63,一般从0 行开始显示*/

}

/*设定列地址--Y 0-63 ,0x40是列的首地址*/

void SetColumn(unchar column)   

{

        column=column &0x3f; /*column最大值为64,越出 0=        column= 0x40|column; /*01xx xxxx*/

        SendCommandToLCD(column);

}

/*开关显示,0x3f是开显示,0x3e是关显示*/

void SetOnOff(unchar onoff)   

{

    onoff=0x3e|onoff; /*0011 111x,onoff只能为0或者1*/

    SendCommandToLCD(onoff);

}



/*写显示数据 */

void WriteByte(unchar dat)

{

   CheckState();/*状态检查,LCD是否忙*/

   RS=1;        /*RS=0写指令,RS=1写数据*/

   RW=0;        /*R/W=“L” ,E=“H→L”数据被写到 IR 或 DR */

   Databus=dat;    /*dat:显示数据*/

   EN=1;        /*EN下降沿*/

   _nop_();

   _nop_();

   EN=0;

}

/*选择屏幕screen: 0-全屏,1-左屏,2-右屏*/

void SelectScreen(unchar screen)      

{               

   switch(screen)

   {

     case 0: cs1=0;/*全屏*/

[1] [2]
关键字:单片机  LCD12864  数字电压表 引用地址:单片机+LCD12864数字电压表设计

上一篇:51单片机控制模拟交通信号灯
下一篇:基于51单片机控温程序及电路原理图

推荐阅读

       半导体类股上周五受到科技股全面溃败的打击,但仍有望实现两年多来表现最好的一周。一些市场观察人士表示,如果投资者对投入新资金持谨慎态度,有一些特定股票可能值得购买。战略财富伙伴公司总裁兼首席执行官马克·泰珀(Mark Tepper)周四在CNBC的《贸易国》(Trading Nation)节目中表示:“我们不希望这些芯片股有太大敞口,实际上我们对其...
中国储能网讯:10月24日下午,中共中央政治局就区块链技术发展现状和趋势进行第十八次集体学习。 习近平总书记在主持学习时强调,区块链技术的集成应用在新技术革新和产业变革中起着重要作用,要把区块链作为核心技术自主创新的重要突破口。 从2008年区块链技术以数字货币应用形式问世至今,区块链产业已经过11年耕耘。2016年起,区块链技术应用频繁...
在渡过AI最初的喧嚣之后,落地成为衡量AI芯片实际商业价值和生命力的关键准则。在这一比拼真刀实枪的“战场”上,众多AI芯片企业无不在各施神通,以期在这一大考中获取驶向未来的“通行证”。以可重构计算来行走江湖的北京清微智能科技有限公司,交出了自己独特的答卷。 新品的“进击”尽管是行业的新军,但清微智能的速度可谓唯快不破。继去年语音芯片量...
为了从外部时钟源驱动芯片, XTAL1 必须如 Figure 21 所示的进行连接。同时,熔丝位 CKSEL必须编程为“0000”。若熔丝位CKOPT也被编程,用户就可以使用内部的XTAL1和 GND 之间的36 pF 电容。选择了这个振荡器之后,启动时间由熔丝位SUT 确定,如Table 16 所示。为了保证MCU 能够稳定工作,不能突然改变外部时钟源的振荡频率。工作频率突变超...

史海拾趣

问答坊 | AI 解惑

wince5.0安装问题

wince5.0安装到Registering DLLs是出现unable to initialize the catalog是为什么呢…

查看全部问答∨

飞龙教程------51单片机=====数码管

飞龙教程------51单片机=====数码管 电子工程师之家 单片机学习网   http://www.eehome.cn/ 新势力电子单片机              http://www.xinshili.net/ BY: 飞龙  QQ: 90 ...…

查看全部问答∨

求船载自动识别系统AIS报文的解析

!AIVDM,1,1,,B,14b9fN501m8Tho`BLaBe5Alb0@<A,0*3E 如何解析?…

查看全部问答∨

看看我的LCD 屏的触摸驱动的问题 请指教啊

有谁做过触摸屏的驱动啊,进来聊聊撒 呵呵 描述下: 原来买的开发板是8寸的屏,现在我替换了个 3。5寸的,触摸驱动有点问题 1     |     2       | —————————— &n ...…

查看全部问答∨

ADC的采样问题

用STM32F101VBT6芯片的ADC来做交流采样。我用示波器观察PC0口上的采样信号是一个很好的50HZ正弦波行,通过串口将ADC的转换数据显示出来的波形参见附件(当采样信号幅值超过2V的时候,波形是锯齿状),请ST及高手不吝赐教。 相关链接:http://bb ...…

查看全部问答∨

launchPad 串行显示图片的问题

最近玩12864串行程序,在做图片时,将并行口程序的图片数组复制过来,出现了如图的错误,认为串口和并口不一样的传输方式,在显示图片是有什么不同...求大神发一个串行图片的程序。。…

查看全部问答∨

EE Logic DAC硬件原理图错误修正及更新

最近两天在调试EE Logic上的DAC。 根据数据手册写了测试代码(参考代码链接https://bbs.eeworld.com.cn/thread-422116-1-1.html)发现电路设计中有错误。 原理图中DAC的SYNC脚被我直接接地了(原以为可以直接接到低的,木有仔细看数据手册)。写代 ...…

查看全部问答∨

毕业设计,无厘头。

我的毕业设计是基于CC2530的无线网络节点设计,没有一点思路,不知如何下手。求各路高手指点迷津,尔等你不胜感激。帮帮忙啊各位,帮我理个思路,从哪开始。…

查看全部问答∨

《运算放大器噪声优化手册》读书笔记之噪声基础知识

书中开篇从统计学的角度噪声的时域,频域和计算rms噪声。说实在的工作这么多年,除了高数的书没丢,其他的全丢了 不过忽略掉看不懂的大部分内容,那一小部分内容也还是很有价值的。比如利用示波器测得的噪声是时域中的表示。说到这里又不得不说我 ...…

查看全部问答∨

Tiva c GPIO中断问题

#include <stdbool.h> #include <stdint.h> #include "Key_Board.h" #include "Nokia5110.h" #include "SystemInit.h" #include "driverlib/gpio.h" #include "driverlib/sysctl.h" #include "driverlib/inte ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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