历史上的今天
返回首页

历史上的今天

今天是:2024年11月04日(星期一)

正在发生

2020年11月04日 | 单片机+LCD12864数字电压表设计

2020-11-04 来源:51hei

单片机源程序如下:

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

#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;/*全屏*/

推荐阅读

史海拾趣

骅讯(Cmedia)公司的发展小趣事

进入21世纪后,随着USB技术的普及,骅讯公司迅速抓住市场机遇,进军USB音频业务。凭借其在音频技术领域的深厚积累,骅讯成功开发出多款USB音频产品,并在市场上取得了良好的反响。这一举措不仅拓展了骅讯的业务范围,也为其在音频领域的持续发展奠定了坚实的基础。

芯联(CHIPLINK)公司的发展小趣事

在芯片短缺的大背景下,一家名为芯联集成的公司凭借其敏锐的市场洞察力和快速响应能力,迅速调整战略,专注于车规级IGBT芯片和模组的代工生产。公司凭借高效的生产能力和严格的质量控制,迅速获得了多家头部新能源车企的认可,成为他们的合作伙伴。这一举措不仅帮助芯联集成度过了行业低谷,还使其在短时间内实现了跨越式发展。

Hpc Technology Inc公司的发展小趣事

在芯片短缺的大背景下,一家名为芯联集成的公司凭借其敏锐的市场洞察力和快速响应能力,迅速调整战略,专注于车规级IGBT芯片和模组的代工生产。公司凭借高效的生产能力和严格的质量控制,迅速获得了多家头部新能源车企的认可,成为他们的合作伙伴。这一举措不仅帮助芯联集成度过了行业低谷,还使其在短时间内实现了跨越式发展。

ARRA Inc公司的发展小趣事

在芯片短缺的大背景下,一家名为芯联集成的公司凭借其敏锐的市场洞察力和快速响应能力,迅速调整战略,专注于车规级IGBT芯片和模组的代工生产。公司凭借高效的生产能力和严格的质量控制,迅速获得了多家头部新能源车企的认可,成为他们的合作伙伴。这一举措不仅帮助芯联集成度过了行业低谷,还使其在短时间内实现了跨越式发展。

AMI [American Megatrends Inc]公司的发展小趣事

在稳固了车规级IGBT芯片和模组代工市场地位的基础上,芯联集成开始积极拓展新的市场领域。公司凭借其在半导体制造领域的丰富经验和技术优势,成功进军碳化硅芯片和模块市场,并为多家头部新能源车企提供代工服务。此外,公司还计划向AI领域延伸,加强在AI领域的技术布局和市场拓展。这一举措将进一步拓宽芯联集成的业务范围,实现多元化发展。

DEVCON公司的发展小趣事

在1950年代,电子工业正处于蓬勃发展的初期。阿尔·克瑞顿,一位富有创新精神的化学家,在美国马萨诸塞州丹佛斯市的一个实验室里,经过无数次的试验,终于研发出了一种名为Devcon可塑钢修补剂的新型材料。这种材料经济实惠、不易燃,且能够作为焊接的替代品,迅速在电子制造和维修领域引起了广泛关注。这就是DEVCON公司的起点,一个由创新精神和市场需求共同点燃的火花。

问答坊 | AI 解惑

现在把所有的活都交给手下干,不知道是好事还是坏事

现在coding不再做了,连架构都不做了,专职于做管理还有一些客户交流以及跟公司老总的交流问题,慢慢的,很多技术上的问题就疏远了,都在担心以后技术会不会慢慢就退化了!要跳槽如果没有manager该怎么办呢…

查看全部问答>

老电子工程师十年职场感悟

当电子工程师也是十余年了,不算有出息,环顾四周,也没有看见几个有出息的!回顾工程师生涯,感慨万千,愿意讲几句掏心窝子的话,也算给咱们师弟师妹们提个醒,希望他们比咱们强! [1]职业规划很重要,好好规划自己的路,不要跟着感觉走!根据 ...…

查看全部问答>

WinCE系统中,应用层怎么获取USB设备加载事件呢?

在WinCE系统中,应用软件必须等待一个USB设备成功被加载,这个成功被加载的信息怎么才能回去到呢? 谢谢…

查看全部问答>

wince设备 MASS STORAGE问题

我们的设备上采用的是2G的NAND FLASH外加一个SD卡,三星提供的BSP和相关文档上说设备作为MASS STORAGE时,同时只能将其中一个作为MASS STORAGE连接到PC上,我们想连接PC的时候同时显示这两个存储空间,目前的候选方案是在应用程序上进行一些设置, ...…

查看全部问答>

目目目上下班

1+1=?????…

查看全部问答>

大虾帮帮忙啊,搞了好久了,还是不行...

本帖最后由 dontium 于 2015-1-23 13:26 编辑 正在做一个DSP--PCI的驱动,应用程序调试时出现如下: -----  damned.pjt - Debug  ----------------------------- [async_pci.cdb] \\"E:\\\\CCStudio_v3.1\\\\plugins\ ...…

查看全部问答>

程序问题

大家帮忙看下这个程序有些什么问题啊? 我想用这个程序测量占空比为百分之五十的方波 问什么液晶总是显示65535,而且frequency=1000000/period;这一句不管我把1000000换成多少他都显示的65535 不知道什么原因,请高手指点先谢了。   &nbs ...…

查看全部问答>

北京知名公司招聘DSP软件工程师、数据通信

DSP软件工程师 北京岗位职责:1、负责宽带无线接入系统无线系统产品物理层算法的验证及实现;2、负责无线侧基站产品物理层软件的开发及维护。任职要求:1、硕士及以上学历,电子、通信等相关专业;2、熟悉数字信号处理算法,具有良好的通信理论知识 ...…

查看全部问答>

Hanker_M4学习笔记(一)

      可能看到我帖子的人,会有些失望,这么久了才提交个led循闪烁的程序,是不太应该,其实这几天都是在看M4的驱动编程,一直在归纳总结自己在M4学习中Keil软件方面的问题,大家也许看看我的文档,就能不这么责怪我了呵 ...…

查看全部问答>

学模拟+《运算放大器噪声优化手册》读书笔记 之二

本帖最后由 dontium 于 2015-1-23 11:23 编辑 在光电二极管探测电路中,常用上述的电路,将电流转换为电压,通过学习,发现其噪声来源还真不少: 1、反馈电阻的热噪声,电阻热噪声的带宽极限为放大器的信号带宽与砖墙滤波器的矫正系数; 2、电 ...…

查看全部问答>