数字电压表,数字电压表设计毕业论文( 四 )


bit result;
rs = 0;
rw = 1;
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
result = (bit)(P0 & 0x80);
ep = 0;
return result;
}

lcd_wcmd(unsigned char cmd)
{// 写入指令数据到LCD
while(lcd_bz());
rs = 0;
rw = 0;
ep = 0;
_nop_();
_nop_();
P0 = cmd;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 0;
}

lcd_pos(unsigned char pos)
{//设定显示位置
lcd_wcmd(pos | 0x80);
}

lcd_wdat(unsigned char dat)
{//写入字符显示数据到LCD
while(lcd_bz());
rs = 1;
rw = 0;
ep = 0;
P0 = dat;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 0;
}

lcd_init()
{//LCD初始化设定
lcd_wcmd(0x38);//
delay(1);
lcd_wcmd(0x0c);//
delay(1);
lcd_wcmd(0x06);//
delay(1);
lcd_wcmd(0x01);//清除LCD的显示内容
delay(1);
}

void display_str(char *p)
{
int k;
signed char i;
k=strlen(p);
for(i=0;i<k;i++)
lcd_wdat(*(p+i));
}
/********************************************************************
函 数 名:maketime(float pwm_time)
功能: 将时间调制成脉宽
说明:
入口参数:float pwm_time 每个周期内高电平时间
返 回 值:无
设计:陈磊日期:2009年9月26日
修改:日期:
***********************************************************************/
void maketime(float pwm_time)
{
tt=pwm_time*922;
ftt=18432-tt;
tt=-tt;
ftt=-ftt;
}

void display_temp(void)
{
unsigned char x[5];
maketime(temp);
if(bains<10)
{
x[0]=' ';
x[1]='0';
x[2]='.';
x[3]='0'+bains;
x[4]='\0';
}
else
if(bains<100)
{
x[0]=' ';
x[1]='0'+bains/10;
x[2]='.';
x[3]='0'+bains%10;
x[4]='\0';
}
else
{
x[0]='0'+bains/100;
x[1]='0'+bains/10%10;
x[2]='.';
x[3]='0'+bains%10;
x[4]='\0';
}

lcd_pos(0x04);
display_str(x);
bains*=25;
if(bains<1000)
{
x[0]='0';
x[1]='.';
x[2]=bains/100+'0';
x[3]=bains/10%10+'0';
x[4]='\0';
}
else
{
x[0]=bains/1000+'0';
x[1]='.';
x[2]=bains/100%10+'0';
x[3]=bains/10%10+'0';
x[4]='\0';
}

lcd_pos(0x44);
display_str(x);
}

void main(void)
{
kg=0;
lcd_init();
lcd_pos(0x00);
display_str("PWM:");
lcd_pos(0x08);
display_str("ms");
lcd_pos(0x40);
display_str("VOL:");
lcd_pos(0x48);
display_str("V");
EA=1;
ET0=1;//开启定时器1中断,产生pwm波
ES=1;//开启串行中断
IT1=1;//外部中断1下降沿触发
EX1=1;//开启外部中断1
IT0=1;
EX0=1;
TMOD=0x21;///* T0方式1计时0.01秒 */
TH0=0xB9;
TL0=0xB0;
TR0=1;
pwm0=0;
flag=0;
temp=19;
bains=(unsigned char)(temp*10);
display_temp();
while(1)
{
if(key1==0)
{
key1=1;
while(key1==0)
{
delay(30);
}
temp+=1;
if(temp>19)
temp=19;
bains=(unsigned char)(temp*10);
display_temp();
}
else
if(key2==0)
{
key2=1;
while(key2==0)
{
delay(30);
}
temp-=1;
if(temp<1)
temp=1;
bains=(unsigned char)(temp*10);
display_temp();
}
}
/* 开中断,启动定时器 */
}

/* 定时计数器0的中断服务子程序 */
void intserv1(void)interrupt 1 using 1
{
if(flag==0)
{
TH0=tt/256;// 20ms
TL0=tt%256;
pwm0=1;
flag=1;
}
else
{
TH0=ftt/256;// 20ms
TL0=ftt%256;
pwm0=0;
flag=0;
}

}

void init1() interrupt 2 using 1
{
ET0=0;
kg=1;

}

void init0() interrupt 0 using 1
{
ET0=1;
kg=0;

}二:数字电压表设计毕业论文对高中生来说,有哪些比较好的学习 *** ?笔者作为一个高中15年任教、12年做班主任工作经验的一线教师,对这个问题有以下几点个人看法,希望可以帮助到大家!



课前预习已经是大家共识的学习好 ***。课前预习不是盲目的随意翻看一下,而是有计划、有目的的认真准备 。例如列出知识清单,标明哪里是自己已经完全掌握的,哪里是自己认识模糊的,哪里是自己完全搞不懂的 。这样,在听课的时候就可以做到有的放矢、抓住重点、突破难点,轻松掌握课堂知识 。

推荐阅读