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放的是读取出来的频率数据。
    这代码具体要看你的硬件手册。

    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序