baidu_34427722 2016-04-01 14:45 采纳率: 0%
浏览 1276

请求帮我详细解释下这个程序,谢谢了

#include
#include
#define uchar unsigned char
#define uint unsigned int

#define WCOMM XBYTE[0x0000]
#define RCOMM XBYTE[0x0001]
#define WDATA XBYTE[0x0002]
#define RDATA XBYTE[0x0003]
void BusyWait()
{
while((RCOMM & 0x80) != 0x00);
}
void Write_Command(uchar cmd)
{
BusyWait();
WCOMM=cmd;
}
void Write_Data(uchar dat)
{
BusyWait();WDATA=dat;
}
void Initialse()
{
Write_Command(0x30);
Write_Command(0x01);
Write_Command(0x06);
Write_Command(0x0c);
}
void ShowString(uchar *str)
{
uchar i=0;
Write_Command(0x80);
while(str[i]!='\0'&&! Write_Data(str[i++]);
for(;i }
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar code Prompt[]="Please press K1 and wait for a while,Current Frequency will
show on the LCD...";
uchar LCD_Disp_Buffer[]="Frequency------HZ";
uchar Count=0;
sbit K1=P1^0;
void Initialse();
void ShowString(uchar str[]);
void Delay(uchar ms)
{
uchar i;
while (ms--) for (i=0;i<120;i++);
}
void main()
{
uchar i=0;
Initialise();
while (Prompt[i]!='\0')
{
ShowString(Prompt+i);
i++;
Delay(15);
}
IE=0x8A;
TMOD=0x51;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
while(1)
{
if(K1==0)
{
Delay(10);
if(K1==0)
{
TR1=TR0=1;
}
}
ShowString(LCD_Disp_Buffer);
}
}
void INT_T0() interrupt 1
{
uint Tmp,i;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(++Count==20)
{
TR1=TR0=0;
Count=0;
Tmp=TH1*256+TL1;
LCD_Disp_Buffer[9]=Tmp/10000+'0';
LCD_Disp_Buffer[10]=Tmp/1000%10+'0';
LCD_Disp_Buffer[11]=Tmp/100%10+'0';
LCD_Disp_Buffer[12]=Tmp%100/10+'0';
LCD_Disp_Buffer[13]=Tmp%10+'0';
if(LCD_Disp_Buffer[9]=='0') LCD_Disp_Buffer[9]=' ';
i=10;
while(LCD_Disp_Buffer[i]=='0' &&
LCD_Disp_Buffer[i-1]==' ' &&
i != 13)
{
LCD_Disp_Buffer[i++]=' ';
}
TH1=TL1=0;
}
}

  • 写回答

2条回答 默认 最新

  • threenewbee 2016-04-01 14:58
    关注

    这是单片机的C吧,用来在LCD显示器输出文字
    LCD_Disp_Buffer放的是每个字符的ascii码,TH0 TL0放的是读取出来的频率数据。
    这代码具体要看你的硬件手册。

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料