• 大小: 118KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: 其他
  • 标签: 方波  频率计  lcd  

资源简介

用80C51单片机产生频率为1000hz的方波信号,并在lcd液晶屏显示频率和周期,然后用另一片51单片机测试频率周期和脉宽并在lcd液晶屏显示测试结果

资源截图

代码片段和文件信息

#include
 
#define uint unsigned int 
#ifndef LCD_CHAR_1602_2005_4_9
#define LCD_CHAR_1602_2005_4_9
#include 


sbit pwm=P1^0;

sbit LcdRs = P2^0;
sbit LcdRw = P2^1;
sbit LcdEn   = P2^2;
sfr  DBPort  = 0x80; //P0=0x80P1=0x90P2=0xA0P3=0xB0.数据端口

//内部等待函数**************************************************************************
unsigned char LCD_Wait(void)
{
LcdRs=0;
LcdRw=1; _nop_();
LcdEn=1; _nop_();
//while(DBPort&0x80);//在用Proteus仿真时,注意用屏蔽此语句,在调用GotoXY()时,会进入死循环,
 //可能在写该控制字时,该模块没有返回写入完备命令,即DBPort&0x80==0x80
 //实际硬件时打开此语句
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    //显示关   

#define LCD_CURSOR 0x02  //显示光标
#define LCD_NO_CURSOR 0x00    //无光标      

#define LCD_FLASH 0x01    //光标闪动
#define LCD_NO_FLASH 0x00    //光标不闪动

void LCD_SetDisplay(unsigned char DisplayMode)
{
LCD_Write(LCD_COMMAND 0x08|DisplayMode);
}

//设置输入模式************************************************************
#define LCD_AC_UP 0x02
#define LCD_AC_DOWN 0x00      // default

#define LCD_MOVE 0x01      // 画面可平移
#define LCD_NO_MOVE 0x00      //default

void LCD_SetInput(unsigned char InputMode)
{
LCD_Write(LCD_COMMAND 0x04|InputMode);
}

//移动光标或屏幕************************************************************
/*
#define LCD_CURSOR 0x02      
#define LCD_SCREEN 0x08
#define LCD_LEFT 0x00
#define LCD_RIGHT 0x04
void LCD_Move(unsigned char object unsigned char direction)
{
if(object==LCD_CURSOR)
LCD_Write(LCD_COMMAND0x10|direction);
if(object==LCD_SCREEN)
LCD_Write(LCD_COMMAND0x18|direction);
}
*/
//初始化LCD************************************************************
void LCD_Initial()
{
LcdEn=0;
LCD_Write(LCD_COMMAND0x38);           //8位数据端口2行显示5*7点阵
LCD_Write(LCD_COMMAND0x38);
LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);    //开启显示 无光标
LCD_Write(LCD_COMMANDLCD_CLEAR_SCREEN);   //清屏
LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);       //AC递增 画面不动
}

//************************************************************************
void GotoXY(unsigned char x unsigned char y)
{
if(y==0)
LCD_Write(LCD_COMMAND0x80|x);
if(y==1)
LCD_Write(LCD_COMMAND0x80|(x-0x40));
}
void Print(unsigned char *str)
{
while(*str!=‘\0‘)
{
LCD_Write(LCD_DATA*str);
str++;
}
}
/*
void LCD_LoadChar(unsigned char user[8] unsigned char place)
{
unsigned char i;
LCD_Write(LCD_COMMAND0x40|(place*8

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-05-15 21:26  B09010407 - 频率计\
     文件      113280  2012-05-15 21:26  B09010407 - 频率计\B09010407.DSN
     文件        1126  2012-05-15 21:26  B09010407 - 频率计\B09010407.PWI
     目录           0  2012-05-15 21:06  B09010407 - 频率计\FangBo\
     文件        6376  2008-09-23 09:16  B09010407 - 频率计\FangBo\STARTUP.A51
     文件       14048  2012-05-15 21:06  B09010407 - 频率计\FangBo\STARTUP.LST
     文件         758  2012-05-15 21:06  B09010407 - 频率计\FangBo\STARTUP.OBJ
     文件        9325  2012-05-15 21:06  B09010407 - 频率计\FangBo\fangbo
     文件       10171  2012-05-15 21:06  B09010407 - 频率计\FangBo\fangbo.LST
     文件       13274  2012-05-15 21:06  B09010407 - 频率计\FangBo\fangbo.M51
     文件       10339  2012-05-15 21:06  B09010407 - 频率计\FangBo\fangbo.OBJ
     文件         905  2012-05-15 21:06  B09010407 - 频率计\FangBo\fangbo.Opt
     文件        2185  2012-05-13 23:16  B09010407 - 频率计\FangBo\fangbo.Uv2
     文件        5055  2012-05-15 20:51  B09010407 - 频率计\FangBo\fangbo.c
     文件        1999  2012-05-15 21:06  B09010407 - 频率计\FangBo\fangbo.hex
     文件          45  2012-05-15 21:06  B09010407 - 频率计\FangBo\fangbo.lnp
     文件        1419  2012-05-15 21:06  B09010407 - 频率计\FangBo\fangbo.plg
     文件         905  2012-05-15 20:52  B09010407 - 频率计\FangBo\fangbo_Opt.Bak
     文件        2181  2012-05-11 21:28  B09010407 - 频率计\FangBo\fangbo_Uv2.Bak
     文件      113378  2012-05-15 21:25  B09010407 - 频率计\Last Loaded B09010407.DBK
     目录           0  2012-05-15 21:25  B09010407 - 频率计\pinlvji\
     文件        6376  2008-09-23 09:16  B09010407 - 频率计\pinlvji\STARTUP.A51
     文件       14048  2012-05-15 21:23  B09010407 - 频率计\pinlvji\STARTUP.LST
     文件         758  2012-05-15 21:23  B09010407 - 频率计\pinlvji\STARTUP.OBJ
     文件       22740  2012-05-15 21:23  B09010407 - 频率计\pinlvji\pinglvji.LST
     文件       24547  2012-05-15 21:23  B09010407 - 频率计\pinlvji\pinglvji.OBJ
     文件       10967  2012-05-15 21:23  B09010407 - 频率计\pinlvji\pinglvji.c
     文件       23555  2012-05-15 21:23  B09010407 - 频率计\pinlvji\pinlvji
     文件       26915  2012-05-15 21:23  B09010407 - 频率计\pinlvji\pinlvji.M51
     文件        1040  2012-05-15 21:25  B09010407 - 频率计\pinlvji\pinlvji.Opt
     文件        2190  2012-05-11 21:40  B09010407 - 频率计\pinlvji\pinlvji.Uv2
............此处省略5个文件信息

评论

共有 条评论