2个按键修改DAC输出
c#include <reg52.h>
#include <I2C.H>
sbit LS138A = P2 ^ 2;
sbit LS138B = P2 ^ 3;
sbit LS138C = P2 ^ 4;
const unsigned char Disp_Tab[10] ={ 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f };
unsigned char AD_CHANNEL;
unsigned char LedOut[8];
sbit key_01 = P3 ^ 0;
sbit key_02 = P3 ^ 1;
sbit key_03 = P3 ^ 2;
sbit key_04 = P3 ^ 3;
/* 延时函数 */
void delay_ms_key( unsigned char t ) /* 延时xms */
{
unsigned char ttt;
while ( t-- )
{
for ( ttt = 0; ttt < 125; ttt++ )
;
}
}
/*
* 四个按键的检测函数
* 按键则返回1 2 3 4
* 无按键则返回0xff
*/
unsigned char KeySscan( void )
{
unsigned char keyvaluee = 0xff;
if ( key_01 == 0 )
{
delay_ms_key( 10 );
if ( key_01 == 0 )
{
while ( key_01 == 0 )
;
return(1);
}
}
if ( key_02 == 0 )
{
delay_ms_key( 10 );
if ( key_02 == 0 )
{
while ( key_02 == 0 )
;
return(2);
}
}
if ( key_03 == 0 )
{
delay_ms_key( 10 );
if ( key_03 == 0 )
{
while ( key_03 == 0 )
;
return(3);
}
}
if ( key_04 == 0 )
{
delay_ms_key( 10 );
if ( key_04 == 0 )
{
while ( key_04 == 0 )
;
return(4);
}
}
return(0xff);
}
/* ****************************************************************** / */
void main()
{
int adadadad = 0; /* 电压值 占位数 */
unsigned char ad_value = 32; /* 电压值 扩大十倍 按键修改 */
unsigned char anjianzhi = 0xff;
TMOD = 0x11;
EA = 1;
TH0 = (65536 - 3000) / 256;
TL0 = (65536 - 3000) % 256;
ET0 = 1;
TR0 = 1;
LedOut[1] = Disp_Tab[ad_value % 100 / 10] | 0x80;
LedOut[0] = Disp_Tab[ad_value % 10];
adadadad = (int) (ad_value * 5.1); /* 用于发给DA数据 */
DACconversion( PCF8591, 0x40, adadadad ); /* DAC 数模转换 */
while ( 1 )
{
anjianzhi = KeySscan();
if ( anjianzhi != 0xff )
{
if ( anjianzhi == 1 )
{
ad_value++;
adadadad = (int) (ad_value * 5.1); /* 用于发给DA数据 */
DACconversion( PCF8591, 0x40, adadadad ); /* DAC 数模转换 */
} else if ( anjianzhi == 2 )
{
ad_value--;
adadadad = (int) (ad_value * 5.1); /* 用于发给DA数据 */
DACconversion( PCF8591, 0x40, adadadad ); /* DAC 数模转换 */
}
LedOut[1] = Disp_Tab[ad_value % 100 / 10] | 0x80;
LedOut[0] = Disp_Tab[ad_value % 10];
}
}
}
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!