标题:
控制数控电位器x9313改变电位,调整液晶对比度 源程序
[打印本页]
作者:
51hei学习技术中
时间:
2016-10-11 19:19
标题:
控制数控电位器x9313改变电位,调整液晶对比度 源程序
0.png
(62.33 KB, 下载次数: 82)
下载附件
2016-10-11 19:17 上传
一个用51单片机控制数控电位器x9313改变电位,来调整12864液晶对比度的例子:
控制数控电位器x9313改变电位.rar
(26.14 KB, 下载次数: 17)
2016-10-11 19:18 上传
点击文件名下载附件
下载积分: 黑币 -5
下面是部分源码预览:
/*******************************************************************
*【文 件 名】:x9313.h *
*【建立日期】:7月2日 *
*【修改日期】:7月4日 *
*【文件作用】:液晶对比度设置,共分32级 *
*【说 明】:控制数控电位器x9313改变电位,调整对比度 *
*------------------------------------------------------------------*
*【作 者】:郭鑫(ben) *
*【版 权】:国家创新性实验项目,编号GCS07001 *
*******************************************************************/
#ifndef _X9313_08_07_04_
#define _X9313_08_07_04_
/***************************头文件部分*****************************/
#include <reg52.h>
#include "intrins.h"
//-------------------------管脚定义--------------------------------
sbit inc = P1^5;
sbit ud = P1^6;
sbit cs = P1^7;
/***************************函数声明*******************************/
void short_delay();
void down_edge(void);
void un_latch(void);
void x9313(void);
void short_delay()
{
_nop_();
_nop_();
}
void down_edge(void)
{
inc = 1;
short_delay();
inc = 0;
short_delay();
}
/*******************************************************************
*【函 数 名】:un_latch *
*【修改日期】:2008年7月3日 *
*【文件作用】:不保存设置 *
*------------------------------------------------------------------*
*【备 注】:本意是想保存的 ,有问题 *
*******************************************************************/
void un_latch(void)
{
cs = 0;
short_delay();
short_delay();
cs = 1;
short_delay();
short_delay();
}
/*******************************************************************
*【函 数 名】:x9313 *
*【修改日期】:2008年7月3日 *
*【文件作用】:控制x9313设置液晶对比度 *
*------------------------------------------------------------------*
*【备 注】: *
*******************************************************************/
void x9313(void)
{
cs = 0;
inc = 1;
lcd_cmd_w(0x01);
lcd_setposition(1,0);
lcd_str_w("显示器对比度设置");
while(1)
{
if(key_check(3) == 1)
{
lcd_setposition(3,0);
lcd_str_w("KEY3: 对比度增强");
ud = 1;
short_delay();
down_edge();
delay(50);
lcd_setposition(3,0);
lcd_str_w(" ");
}
if(key_check(2) == 1)
{
lcd_setposition(3,0);
lcd_str_w("KEY2: 对比度减弱");
ud = 0;
short_delay();
down_edge();
delay(50);
lcd_setposition(3,0);
lcd_str_w(" ");
}
if(key_check(0) == 1)
{
un_latch();
lcd_setposition(3,0);
lcd_str_w("KEY0: 未保存");
delay(50);
return;
}
if(key_check(1) == 1)
{
cs = 0;
lcd_setposition(3,0);
lcd_str_w("KEY1: 已保存");
delay(50);
return;
}
}
}
#endif
复制代码
/*******************************************************************
*【文 件 名】:keys.h *
*【建立日期】7月3日 *
*【修改日期】7月4日 *
*【文件作用】:液晶12864驱动程序,包括所有关于液晶得函数 *
*【说 明】:操作按键提供直接调用函数,内部包括按键去抖 *
*------------------------------------------------------------------*
*【作 者】:郭鑫(ben) *
*【版 权】:国家创新性实验项目,编号GCS07001 *
*******************************************************************/
#ifndef _KEYS_08_07_04_
#define _KEYS_08_07_04_
/***************************头文件部分*****************************/
#include <reg52.h>
sbit key5 = P0^5;
sbit key4 = P0^4;
sbit key3 = P0^3;
sbit key2 = P0^2;
sbit key1 = P0^1;
sbit key0 = P0^0;
/***************************函数声明*******************************/
uchar key_check(uchar num);
/*******************************************************************
*【函 数 名】:key_check *
*【修改日期】:2008年7月3日 *
*【函数作用】:检测按键情况, 1:有相应按键按下 0:反之 *
*------------------------------------------------------------------*
*【备 注】: *
*******************************************************************/
uchar key_check(uchar num)
{
uchar sta;
switch(num)
{
case 0:
if(~key0)
{
delay(10);
if(~key0)
{
while(~key0);
sta = 1;
}
}
else
sta = 0;
break;
case 1:
if(~key1)
{
delay(10);
if(~key1)
{
while(~key1);
sta = 1;
}
}
else
sta = 0;
break;
case 2:
if(~key2)
{
delay(10);
if(~key2)
{
while(~key2);
sta = 1;
}
}
else
sta = 0;
break;
case 3:
if(~key3)
{
delay(10);
if(~key3)
{
while(~key3);
sta = 1;
}
}
else
sta = 0;
break;
case 4:
if(~key4)
{
delay(10);
if(~key4)
{
while(~key4);
sta = 1;
}
}
else
sta = 0;
break;
case 5:
if(~key5)
{
delay(10);
if(~key5)
{
while(~key5);
sta = 1;
}
}
else
sta = 0;
break;
}
return sta;
}
#endif
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1