资源简介
用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个文件信息
- 上一篇:酒店管理系统毕业设计源码
- 下一篇:QtDesigner快速入门.pdf
相关资源
- 直流无刷电机方波驱动 stm32 例程代码
- LCD显示温度+串口接收温度.rar
- Img2Lcd(将图片转换为数组的工具)
- 基于c8051f020的AD转换程序及LCD显示程序
- [免费]msp430f149控制PS2键盘并用1602显示
- arm触摸屏与LCD校准程序三点校准法
- vhdl与lcd1602实现的多控制电子钟
- pctolcd2002完美版460701
- ADC0809数字电压表 LCD1602显示 汇编程序
- atmega16硬件产生方波的程序
- lcd12684显示程序
- lcd12864的VHDL程序
- 51单片机频率计(很简单)
- LCD12864滚动显示
- VHDL带分频功能的函数发生器实现六种
- 一个适用的虚拟声卡频率计
- STM32 电子密码锁设计,LCD12864显示
- STM32 LCD12864并口驱动实验
- 基于STM32F4x9的LCD显示
- 基于Blackfin 处理器的TFT LCD 驱动设计
- 基于ARM7的LCD显示电压示波系统的设计
- 铝合金方波交流TIG焊熔池图像处理
- TFT-LCD系统时序控制模块
- TFT-LCD玻璃基板制造方法
- mini2440全套裸机程序MDK 运行
- MSP430控制AD9850产生频率可调的方波及
- ad9850.c(能够输出正弦波和方波,2个
- LCD1602显示程序
- Lcd12864大时钟万年历 农历生肖温度
- LCD12864驱动程序 带字库版本ST7920内含
评论
共有 条评论