标题:
基于51的_称重_lcd12864显示
[打印本页]
作者:
bios6666
时间:
2020-5-1 17:42
标题:
基于51的_称重_lcd12864显示
本程序是参加机器人大赛所写,发出来供大家参考
//****************************************************
#include "main.h"
#include "LCD12864.h"
#include "iic.h"
//定义变量
unsigned long hardval;
sbit ADDO = P1^5;
sbit ADSK = P1^0;
//****************************************************
//主函数
//****************************************************
void main()
{
LCD12864_Reset(); //初始化液晶
LCD12864_HAIZI_SET(); //设置为普通模式
delay_ms(100);
LCD12864_COM_Write(0x80); //设置指针
LCD12864_write_word("别人笑我太疯癫,"); //显示内容
LCD12864_COM_Write(0x90); //设置指针
LCD12864_write_word("我笑他人看不穿。"); //显示内容
LCD12864_COM_Write(0x88); //设置指针
LCD12864_write_word("不见五陵豪杰墓,"); //显示内容
LCD12864_COM_Write(0x98); //设置指针
LCD12864_write_word("无花无酒锄作田。"); //显示内容
delay_ms(3000);
LCD12864_COM_Write(0x01); /*显示清屏*/
delay_ms(30);
while(1)
{
hardval=ReadCount();hardval=hardval-8210000;
if(hardval<=4000)hardval=0;
else hardval=hardval-4000;
LCD12864_COM_Write(0x90); //设置指针
LCD12864_write_word("weight:"); //显示内容
LCD12864_COM_Write(0x88); //设置指针
LCD12864_Data_Write(hardval/10000000%10+48);
LCD12864_COM_Write(0x89); //设置指针
LCD12864_Data_Write(hardval/1000000%10+48);
LCD12864_COM_Write(0x8a); //设置指针
LCD12864_Data_Write(hardval/100000%10+48);
LCD12864_COM_Write(0x8b); //设置指针
LCD12864_Data_Write(hardval/10000%10+48);
LCD12864_COM_Write(0x8c); //设置指针
LCD12864_Data_Write(hardval/1000%10+48);
LCD12864_COM_Write(0x8d); //设置指针
LCD12864_Data_Write(hardval/100%10+48);
LCD12864_COM_Write(0x8e); //设置指针
LCD12864_Data_Write(hardval/10%10+48);
LCD12864_COM_Write(0x8f); //设置指针
LCD12864_Data_Write(hardval%10+48);
delay_ms(500);
LCD12864_COM_Write(0x01); /*显示清屏*/
delay_ms(30);
}
}
//****************************************************
//MS延时函数(12M晶振下测试)
//****************************************************
void delay_ms(unsigned int n)
{
unsigned int i,j;
for(i=0;i<n;i++)
for(j=0;j<1230;j++);
}
//****************************************************
//AD读取函数
//****************************************************
void ADC_Init(unsigned char chanel)
{
IIC_Start();
IIC_SendByte(0x90);
IIC_WaitAck();
IIC_SendByte(chanel);
IIC_WaitAck();
IIC_Stop();
delay_ms(20);
}
unsigned char ADC_Read()
{
unsigned char temp;
IIC_Start();
IIC_SendByte(0x91);
IIC_WaitAck();
temp=IIC_RecByte();
IIC_Ack(0);
IIC_Stop();
return temp;
}
//****************************************************
//重量读取函数
//****************************************************
unsigned long ReadCount(void)
{
unsigned long Count;
unsigned char i;
ADSK=0; //使能AD(PD_SCK 置低)
Count=0;
while(ADDO); //AD转换未结束则等待,否则开始读取
for (i=0;i<24;i++)
{
ADSK=1; //PD_SCK 置高(发送脉冲)
Count=Count<<1; //下降沿来时变量Count左移一位,右侧补零
ADSK=0; //PD_SCK 置低
if(ADDO) Count++;
}
ADSK=1;
Count=Count^0x800000;//第25个脉冲下降沿来时,转换数据
ADSK=0;
return(Count);
}
复制代码
作者:
bios6666
时间:
2020-5-1 17:43
二楼程序
炜煌杯_称重_lcd12864.zip
2020-5-1 17:43 上传
点击文件名下载附件
下载积分: 黑币 -5
63.35 KB, 下载次数: 22, 下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1