dabor                   

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  131 随笔 :: 0 文章 :: 97 评论 :: 0 Trackbacks
//+++ LCD1602 在 ISIS 中仿真不显示的错误函数 +++

void LCD_CheckBusy (void)
{
	LCD_EN	= 0;
	P0	= 0xff;
	LCD_RW	= 1;
	LCD_RS	= 0;
	LCD_EN	= 1;

	//+++++++++++++++++++++++++++++++++++
	// 在 ISIS 中死等,傻等,不会有结果的!
	// 但在实际中 LCD 却能显示
	//+++++++++++++++++++++++++++++++++++
	while (P0_7 == 1)
	{
		_nop_ ();
		_nop_ ();
		_nop_ ();
	}
}

//+++ 以下是正确的函数 +++

/*-----------------------------------
  LCD1602 控制器忙检测 函数

  控制器空闲则返回
  读数据时:RS=L, RW=H, E=H, 输出:D0-D7= 数据
  D7=1: 忙;D7=0: 闲
------------------------------------*/
void LCD_CheckBusy (void)
{
	LCD_EN	= 0;
	LCD_RW	= 1;
	LCD_RS	= 0;

	while (TRUE)
	{
		P0	= 0xff;
		LCD_EN	= 1;		// +++ 要不停地检测 +++

		_nop_ ();
		_nop_ ();
		_nop_ ();
		
		if (P0_7 == 0)		// LCD 空闲则退出
		{
			LCD_EN	= 0;
			break;
		}

		LCD_EN	= 0;
	}
}


posted on 2008-07-22 11:13 dabor 阅读(284) 评论(0)  编辑 收藏 引用 所属分类: 11 C51

每天10分钟,轻松学英语
专题:iPad  jQuery  Chrome OS
博客园首页  IT新闻  程序员微博  招聘频道  学英语
标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)
 
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
Windows 7专题

相关链接: