| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 636 人关注过本帖
标题:大家帮忙看看吧,主程序要怎么改啊。。谢谢了~
只看楼主 加入收藏
勒挂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-6-26
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:8 
大家帮忙看看吧,主程序要怎么改啊。。谢谢了~
1.当按下按钮时,LCD显示为"time=0",再按一下时"time=1",依次递加到"time=24"当按24次时
2.当确认某个时间时,按住按钮保持2秒以上,便可确认设置成功
3.LCD是8x2的,第一排可以显示"Set Time",第二排显示时间"time=0"
4.用的是单片机8051f226

#include <reg52.h>
//nclude <c8051f200.h>   
#define uchar unsigned char
#define uint unsigned int

#define LCD_DATA P3               //data port for LCD interface


sbit LCD_RS=P2^6;                 //LCD control pins
sbit LCD_RW=P0^5;
sbit LCD_EN=P2^0;
sbit key1 = P1^0;
sbit LCD=P1^7;


void delay(uint);
void lcd_com(uchar com);          //LCD command code
void lcd_data(uchar da);
                                //ASCII character to be display on LCD
void init();


void lcd_msg1(char*msg)
{
   char*pstr;
   pstr=msg;
   while(*pstr)
   {
      lcd_data(*pstr++);
    }
}


void delay(uint z)               //delay for z ms
{
    uint x,y;
   
    for(x=z;x>0;x--)
    for(y=100;y>0;y--);
}

void lcd_com(uchar com)          //8 bits interface,to LCD command
{
    LCD_DATA=com;
    LCD_RW=0;
    LCD_RS=0;
    LCD_EN=1;
    delay(5);
    LCD_EN=0;

}

void lcd_data(uchar da)            //send a byte to LCD data port
{
    LCD_DATA=da;
    LCD_RW=0;                  //data byte sent to the data bus
    LCD_RS=1;
    LCD_EN=1;
    delay(5);
    LCD_EN=0;
   
}

void init()
{
   

    lcd_com(0x38);            //LCD initialized 8-bit interface
    lcd_com(0x0c);         //display on, cursor off
    lcd_com(0x06);          //cursor moving direction
        lcd_com(0x01);         //clear display            
    lcd_com(0x02);            //cursor home         
}
void main()
{
    int n,a=0;
    init();

   
    while(1)
        {
        
        if(key1==0)         
        {
           n++;
               if(n==1)
        {
           LCD=1;
           lcd_com(0x80);                                                
           lcd_msg1("Set Time");
           lcd_com(0xc0);
           lcd_msg1("Time=0");
         
         }
}   }}
搜索更多相关主题的帖子: 成功 control include 单片机 
2012-06-26 22:18
勒挂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-6-26
收藏
得分:0 
真的没有人会吗?应该不会很难吧
2012-06-27 16:17
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:0 
这玩意是单片机的代码吗?

Edsger Dijkstra:算法+数据结构=程序
2012-06-27 17:12
勒挂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-6-26
收藏
得分:0 
回复 3楼 雪狼MJ
对啊~单片机加LCD加按钮,现在按下按钮就只有一种显示~都不会变化的
2012-06-28 14:26
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:10 
你是什么专业的?你们在学单片机吗?我是软件工程专业的,这学期刚学了C语言,学的还不错,我们老师给我们说起过C语言在单片机方面的应用,我下去后查了很多的资料,发现自己对这块挺感兴趣的,想向这方面发展,但到现在为止都还对单片机只是浅浅的了解而已,还不会单片机的编程!所以,虽然不会,但顶一下!

Edsger Dijkstra:算法+数据结构=程序
2012-06-28 16:56
jindeyuan
Rank: 2
等 级:论坛游民
帖 子:4
专家分:21
注 册:2012-2-2
收藏
得分:10 
while(1)
 {
   if(key1==0)
  {
     while(!key1)cout++;//假如定时两秒的时间为200;
     n++;
     if(200==count)lcd_msg1(ptr);//ptr=“设置成功”
     else
      {
           LCD=1;
           lcd_com(0x80);                                                
           lcd_msg1("Set Time");
           lcd_com(0xc0);
           lcd_msg1("Time=");
           lcd_data(xx);//xx为n的那个叫做啊四科码值,我不会拼写,打得谐音。
       }
   }
}//我只是提供一个思路,肯定不对,lcd我还没用过,是个初学者,见谅!



2012-06-28 17:54
勒挂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-6-26
收藏
得分:0 
回复 6楼 jindeyuan
还是很谢谢你哈
2012-06-29 11:04
勒挂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-6-26
收藏
得分:0 
回复 5楼 雪狼MJ
我学的是机械工程的。。谢谢支持哦
2012-06-29 11:14
勒挂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-6-26
收藏
得分:0 
void main()
{
    LCD_RS=0;
    LCD_EN=0;
    init();
    PORT_Init();

   
         while(1)
    {
         
          if(key!=0)            //button pressed
        {
            a++;            //count the times of button pressed
            //while(key!=0);    //wait for button to be released
        }
        if(a==1)
        {
            lcd_com(0x80);                                                
            lcd_msg1("Time=0");
        }
        if(a==2)
        {
            lcd_com(0x80);                                                
            lcd_msg1("Time=1");
        }
         
    }
    }


   

void PORT_Init (void)
{
  PRT1CF |= 0x08;
  
 }
主程序这样改为什么还是不行啊
2012-07-03 08:56
快速回复:大家帮忙看看吧,主程序要怎么改啊。。谢谢了~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033758 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved