久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2515|回復(fù): 5
收起左側(cè)

求大佬給看看怎么修改,程序仿真的話,主程序總是只運(yùn)行到while(1)

[復(fù)制鏈接]
ID:567356 發(fā)表于 2019-6-21 18:07 | 顯示全部樓層 |閱讀模式
200黑幣
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define Enable();EA=1;
#define Disable();EA=0;
#define ZhengZhuan();PIN_Motor_A=0;PIN_Motor_B=1;
#define Stop();PIN_Motor_A=1;PIN_Motor_B=1;
#define FanZhuan();PIN_Motor_A=1;PIN_Motor_B=0;
sbit E=P2^7;                //1602使能引腳
sbit RW=P2^6;                //1602讀寫(xiě)引腳        
sbit RS=P2^5;//1602數(shù)據(jù)/命令選擇引腳
sbit RELAY=P3^0;
int n;
n=100;

char *p1;
uchar flag;
uchar code tab1[]="Zhuangtai *p1";  //要顯示什么就在這兒改
uchar code tab2[]="n=100cm";  //[size=15.5555562973022px]要顯示什么就在這兒改
void delay(uint del)   //延時(shí)1ms
{
     uint i,j;
   for(i=0;i<del;i++)
   for(j=0;j<=168;j++);
}
void writecmd(uchar com)  //寫(xiě)指令
{
   E=0;
   RS=0;
   RW=0;
   P0=com;
   delay(2);
   E=1;  
   delay(2);
   E=0;
}
void writedata(uchar dat)//寫(xiě)數(shù)據(jù)
{  
  E=0;
  RS=1;
  RW=0;
  P0=dat;
  delay(2);
  E=1;  
  delay(2);
  E=0;
}
void init(void)               //初始化
{
delay(15);
writecmd(0x38);
delay(5);
writecmd(0x38);
delay(5);
writecmd(0x38);
writecmd(0x38);
writecmd(0x08);
writecmd(0x01);
writecmd(0x06);
writecmd(0x0c);
}
void Display()
{  
  
  uchar j;
  init();
  writecmd(0x80);    //告訴液晶在哪個(gè)地方顯示 (設(shè)置地址指針)//80H+00
  for(j=0;j<16;j++)  //有16個(gè)字符,要循環(huán)16次
  {
   writedata(tab1[j]);
        delay(2);
  }
  writecmd(0x80+0x40); //再設(shè)置第二行的起始位置80H+40H
  for(j=0;j<16;j++)   //有16個(gè)字符,要循環(huán)16次
  { writedata(tab2[j]);
         delay(2);
  }
         while(1);  
}   
sbit s1 = P1^0;
sbit s2 = P1^1;
sbit s3 = P1^2;//按鍵定義,s1啟動(dòng),s2加1,s3減1
sbit a = P2^0;sbit b = P2^1;sbit c = P2^2;sbit d = P2^3;//脈沖信號(hào)輸入端定義
#define Coil_a {a=1;b=0;c=0;d=0;}//A相通電,其他相斷電
#define Coil_b {a=0;b=1;c=0;d=0;}//B相通電,其他相斷電
#define Coil_c {a=0;b=0;c=1;d=0;}//C相通電,其他相斷電
#define Coil_d {a=0;b=0;c=0;d=1;}//D相通電,其他相斷電
//================================定時(shí)器0/1初始化函數(shù)================================
void T0_T1_init()
{
TMOD = 0x11;//定時(shí)器0/1均工作于方式1,16位計(jì)時(shí)方式
TR1 = 0;
ET1= 1;//開(kāi)定時(shí)器中斷
EA = 1;//開(kāi)總中斷
}
//================================ms級(jí)延時(shí)函數(shù)=======================================
void delay1m(uint x)
{
    uint i,j;
    for(i=0;i<x;i++)      //連數(shù)x次,約 x ms
      for(j=0;j<120;j++);   //數(shù)120 次,約1 ms
}
//=================按鍵函數(shù)=================================
void keyscan()
{
     if(s1==0)
  {
      delay(5);
   if(s1==0)
   {
       while(!s1);
    flag=!flag;
   
   }
   else
   {
       while(!s1);
    flag=0;
   }
  }
     if(flag==0)
  {
         if(s2==0)
   {
     delay(5);
     if(s2==0)
     {
           while(!s2);
     n++;
     if(n>199)n=199;
               
     }
   }
    if(s3==0)
   {
     delay(5);
     if(s3==0)
     {
           while(!s3);
     n--;
     if(n<=0)
     n=0;
            
     }
   }
  }
}
//================================主函數(shù)=============================================
void main()
{
   
uchar j;
Display();
while(1)
{
   
  if(s1==0)
  {
   delay1m(3);
   if(flag==1&&n>0)
   {
    for(j=0;j<n;j++)
    {
      
       a=1;
      
                  
    }
       a=0;
       delay(3);
                   RELAY=0;
                delay(500);
                RELAY=1;
   }
   
  }
}

  
}


最佳答案

查看完整內(nèi)容

樓主的顯示程序里多了個(gè)死循環(huán)while(1),程序怎么運(yùn)行下去?main程序的主循環(huán)沒(méi)有調(diào)用按鍵程序和顯示程序,你怎么操作和顯示?
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2019-6-21 18:07 | 顯示全部樓層
樓主的顯示程序里多了個(gè)死循環(huán)while(1),程序怎么運(yùn)行下去?main程序的主循環(huán)沒(méi)有調(diào)用按鍵程序和顯示程序,你怎么操作和顯示?
回復(fù)

使用道具 舉報(bào)

ID:568698 發(fā)表于 2019-6-22 08:21 來(lái)自觸屏版 | 顯示全部樓層
去搜索看一下while的用法,要知道程序是不可能無(wú)線次數(shù)運(yùn)行下去的
回復(fù)

使用道具 舉報(bào)

ID:207421 發(fā)表于 2019-6-22 11:35 | 顯示全部樓層
先把 void Display() 函數(shù)里面的 while(1); 刪除,然后修改  main() 里面的代碼:
void main()
{
        uchar j;
        //Display();  
        while(1)
        {
                if(s1==0)
                {
                        delay1m(3);
                        if(flag==1&&n>0)
                        {
                                for(j=0;j<n;j++)
                                {
                                        a=1;
                                }
                                a=0;
                                delay(3);
                                RELAY=0;
                                delay(500);
                                RELAY=1;
                        }
                }
                Display();  //顯示函數(shù)放在這里
        }
}
回復(fù)

使用道具 舉報(bào)

ID:567356 發(fā)表于 2019-6-23 14:22 | 顯示全部樓層
wulin 發(fā)表于 2019-6-21 18:07
樓主的顯示程序里多了個(gè)死循環(huán)while(1),程序怎么運(yùn)行下去?main程序的主循環(huán)沒(méi)有調(diào)用按鍵程序和顯示程序 ...

大佬,關(guān)于步進(jìn)電機(jī)運(yùn)轉(zhuǎn)和LCD1602能夠根據(jù)按鍵改變某些顯示,需要用到哪些指令啊??
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2019-6-24 11:12 | 顯示全部樓層
仿真小白 發(fā)表于 2019-6-23 14:22
大佬,關(guān)于步進(jìn)電機(jī)運(yùn)轉(zhuǎn)和LCD1602能夠根據(jù)按鍵改變某些顯示,需要用到哪些指令啊??

無(wú)標(biāo)題.jpg

示例程序+仿真.zip (60.12 KB, 下載次數(shù): 5)

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品99久久久久久人 | 欧美成年人视频在线观看 | 亚洲成人免费观看 | 亚洲精品一区二区网址 | 精品欧美二区 | 欧美日韩国产精品一区二区 | 午夜a v电影 | 福利影院在线看 | 一区二区日本 | 中文字幕 国产精品 | 三级黄色片在线播放 | 亚洲一区中文字幕 | 中文字幕国产视频 | 国产做a爱片久久毛片 | 91色啪| 欧美视频一级 | 亚洲欧美综合精品久久成人 | 亚洲国产精品一区二区久久 | 亚洲精品久久久9婷婷中文字幕 | 一区二区三区四区电影视频在线观看 | 国产精品福利视频 | 久久国产高清视频 | 国产成人网 | 久久精品视频在线观看 | 免费看啪啪网站 | 日日夜夜免费精品视频 | 成人做爰69片免费观看 | 在线亚洲电影 | 欧美日韩a| 毛片在线免费 | 性色视频 | 成人3d动漫一区二区三区91 | 国产一区二区三区四区五区加勒比 | 亚洲福利 | 国产精品视频免费看 | 欧美日韩高清 | 操久久 | 久久精品免费 | 日韩高清一区 | 久久99精品国产自在现线小黄鸭 | 成人福利网站 |