找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2941|回复: 4
收起左侧

求助,初学单片机写了个程序,运行一段就不动了。

[复制链接]
ID:64011 发表于 2014-7-21 08:44 | 显示全部楼层 |阅读模式
#include<reg51.h>
#define BYTE unsigned char
BYTE str1[4]={"8051"};
BYTE str2[8]={"20140721"};
sbit rs=P2^0;
sbit rw=P2^1;
sbit e=P2^2;
void delay()
{
  unsigned char i,j;
  for(j=0;j<0xff;j++)
{
    for(i=0;i<0xff;i++)
     {
  }
}
}
void busy_check()
{
  BYTE k;
  do
    {rs=0;
  rw=1;
  e=1;
  delay();
  k=P0;
  e=0;}
   while((k%0x80)&0x80==0x80);
}
void lcd_wrins(BYTE cmd)
{
  busy_check();
  rs=0;
  rw=0;
  e=0;
  P0=cmd;
  e=1;
  delay();
  e=0;
}
void lcd_wrdata(BYTE dat)
{
  busy_check();
  rs=1;
  rw=0;
  e=0;
  P0=dat;
  e=1;
  delay();
  e=0;
}
void lcd_init()
{
  lcd_wrins(0x38);
  delay();
  lcd_wrins(0x01);
  delay();
  lcd_wrins(0x06);
  delay();
  lcd_wrins(0x0C);
  delay();
}
void main()
{
  unsigned char i;
  lcd_init();
  lcd_wrins(0x80);
  for(i=0;i<4;i++)
   {
   lcd_wrdata(str1[i]);
}
  lcd_wrins(0xC0);
  for(i=0;i<8;i++);
      {
     lcd_wrdata(str2[i]);
}
while(1);
}

无标题.png
无标题2.png
回复

使用道具 举报

ID:37685 发表于 2014-7-21 22:07 来自触屏版 | 显示全部楼层
把仿真文件发上来,我在我这边调试下看看什么结果?
回复

使用道具 举报

ID:64011 发表于 2014-7-23 18:38 | 显示全部楼层
仿真原理

lcd.rar

13.92 KB, 下载次数: 4

回复

使用道具 举报

ID:64011 发表于 2014-7-23 18:38 | 显示全部楼层
a119 发表于 2014-7-21 22:07
把仿真文件发上来,我在我这边调试下看看什么结果?

已经发了,谢谢了
回复

使用道具 举报

ID:58502 发表于 2014-8-14 00:34 | 显示全部楼层
本帖最后由 liaolinhui 于 2014-8-14 00:35 编辑

你应该多定义几个变量,全是用 i 跟 j 程序会乱的,后边的 i 换个变量名看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表