单片机频率计设计方案(LCD显示)[].docVIP

  • 6
  • 0
  • 约9.2千字
  • 约 16页
  • 2017-11-14 发布于江苏
  • 举报
单片机频率计设计方案(LCD显示)[]

//单片机89C51的数字频率计C程序: #include AT89x51.h #include stdio.h #include math.h #include intrins.h float f; //频率 float p; //周期 float sj; float mk; //脉宽 char idata buff[20]; char xs=0; //设置闸门时间结束后是否显示结果的标志位 unsigned char m=0,n=0,yichu=0,fenpin; //m定时中断次数 n计数中断次数 yichu判断是定时器还是 sbit B153=P2^4; sbit A153=P2^3; sbit P35=P3^5; unsigned char LCD_Wait(void); void LCD_Write(bit style, unsigned char input); void LCD_SetDisplay(unsigned char DisplayMode); void LCD_SetInput(unsigned char InputMode); void LCD_Initial(); void GotoXY(unsigned char x, unsigned char y); void Print(unsigned char *str); void C51_Initial(); void Delay(unsigned int t); void display(float f); void cepin(); void panduan(); void Mkdisplay(float mk); void ccpin(); /**************************************** * 模块名称: LCD1602显示程序 * ****************************************/ /***********************端口定义 ***********************************/ sbit LcdRs= P2^0; sbit LcdRw= P2^1; sbit LcdEn= P2^2; sfr DBPort= 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口 /************************内部等待函数********************************/ unsigned char LCD_Wait(void) { LcdRs=0; //寄存器选择输入端 1:数据 0:指令 LcdRw=1; _nop_(); //RW:为0:写状态;为1:读状态; LcdEn=1; _nop_(); //使能输入端,读状态,高电平有效;写状态,下降沿有效 LcdEn=0; return DBPort; } /***********************向LCD写入命令或数据*********************************/ #define LCD_COMMAND 0 // Command #define LCD_DATA 1 // Data #define LCD_CLEAR_SCREEN 0x01 // 清屏 #define LCD_HOMING 0x02 // 光标返回原点 void LCD_Write(bit style, unsigned char input) { LcdEn=0; LcdRs=style; LcdRw=0; _nop_(); DBPort=input; _nop_();//注意顺序 LcdEn=1; _nop_();//注意顺序 LcdEn=0; _nop_(); LCD_Wait(); } /********************设置显示模式****************************************/ #define LCD_SHOW 0x04 //显示开 #define LCD_HIDE 0x00 //显示

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档