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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2508|回復: 1
打印 上一主題 下一主題
收起左側

C語言if(p=='\0') //字符串判斷結束標志的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:639140 發表于 2020-2-21 23:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
if(p=='\0') //字符串判斷結束標志  其中這個p是從哪里來的  倒數第二行

程序如下 1602LCD 顯示函數中的一段  注釋我自己加的 錯啦請大家指教

*void xianshi(uchar x,uchar y,uchar *str) //*str是指針字符串的指針,xy可能是數據指針函數
{

uint i=0; //聲明函數i并且賦值0

if(y==0) //當函數y=0時 為真  可能是寫在第一行的意思

write_cmd(0x80|x); //執行命令x和0x80(1000 0000)相與 全1是1得出命令 執行

if(y==1)  //當函數y=1時 為真  可能是寫在第二行的意思

write_cmd(0xc0|x); //執行命令x和0xc0(1100 0000|x)相與 全1是1得出命令 執行 0xc0=0x80+0x40

for(i=0;i<16;i++) //i值循環增加

{


write_data(str[ i]); //*str是指針字符串的指針,
                    //str[ i]的意思可能是把i變成字符串 當數據執行


if(p=='\0') //字符串判斷結束標志  


break;

}
} */
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:639140 發表于 2020-2-21 23:49 | 只看該作者
完全代碼
百度文庫搜集  控制端子已經匹配普中6800開發板
每隔一分鐘,蜂鳴器響一次,按鍵按一下,計數器清0
#include<reg51.h>

#include<intrins.h>  //intrins.h,函數,應用于程序設計,一般出現在C51單片機編程中,一般程序中需要使用到空指令_nop_();字符循環移位指令_crol_等時使用。
                     //crol_ 字符循環左移

                       //_cror_ 字符循環右移

    //_irol_ 整數循環左移

    //_iror_ 整數循環右移

    //_lrol_ 長整數循環左移

    //_lror_ 長整數循環右移

    //_nop_ 空操作 (相當于8051 NOP 指令)

    //_testbit_ 測試并清零位 (相當于8051 JBC 指令)




#define uchar unsigned char

#define uint unsigned int

sbit RS=P2^6;

sbit RW=P2^5;

sbit EN=P2^7;  

uchar code dis2[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};  //1-9

uchar code p[]="-";//code


  

uchar j,k,kk,miao,miao1,fen,fen1,shi,shi1;

void delay_ms(int x)//延時程序,延時1ms

{



uint i;



while(x--)



for(i=0;i<120;i++);

}  

uchar busy()//對LCD1602         判斷是否忙



{



uchar status; //聲明函數status



RS=0; //讀內部寄存器狀態算是讀指令選擇  RS=0指令選擇



RW=1; //讀操作



EN=1;//使能信號也就是開始工作的意思 ,讀操作一直高電平,寫操作只是高脈沖


delay_ms(1);



status=P0;  //函數定義為P0,就是說p0是數據口 00-07 8個端子要是07是高電位就是1602忙碌 07是低電平就是閑


EN=0; //讀操作完成 拉低使能信號,為下次工作做準備



return status; //return 返回函數 讀取完P0口數據返回主函數

}  

void write_cmd(uchar cmd)//寫命令程序,首先對其進行判忙



{



while((busy()&0x80)==0x80);//對返回進行或運算判斷全1則1,如果為忙就進行等待





RS=0; //命令選擇



RW=0; //寫操作



EN=0;// 片選信號拉低準備工作



P0=cmd; //函數cmd的數據放到P0上



EN=1; //片選信號開始工作



delay_ms(1);



EN=0;//拉低片選為下次做準備

}  

void write_data(uchar dat) //寫數據函數函數dat

{
while((busy()&0x80)==0x80); //忙判斷 或-全1則1



RS=1; //數據選擇



RW=0; //寫操作



EN=0; //片選信號



P0=dat; //P0讀取dat



EN=1; //開始傳送



delay_ms(1);



EN=0; //拉低片選信號

}  

void canshu() //初始化函數

{



write_cmd(0x38);



delay_ms(1);



write_cmd(0x01);



delay_ms(1);



write_cmd(0x06);



delay_ms(1);



write_cmd(0x0c);



delay_ms(1);

}  

*****************************************************************************




********************************************************************************

/*void xianshi(uchar x,uchar y,uchar *str) //*str是指針字符串的指針,xy可能是數據指針函數

{



uint i=0; //聲明函數i并且賦值0



if(y==0) //當函數y=0時 為真  可能是寫在第一行的意思



write_cmd(0x80|x); //執行命令x和0x80(1000 0000)相與 全1是1得出命令 執行



if(y==1)  //當函數y=1時 為真  可能是寫在第二行的意思




write_cmd(0xc0|x); //執行命令x和0xc0(1100 0000|x)相與 全1是1得出命令 執行 0xc0=0x80+0x40



for(i=0;i<16;i++) //i值循環增加



{





write_data(str[i]); //*str是指針字符串的指針,
                    //str[i]的意思可能是把i變成字符串 當數據執行




if(p=='\0') //字符串判斷結束標志  如果p的ascii碼為0  好像是把一個字符串賦值給數組:u8 str1[]={"cxjr.21ic.org"};
              //實際上數組str1在內存中的實際存放情況為:
            //  c x j r . 2 1 i c . o r g '\0'

               //這后面的'\0'是由C編譯系統自動加上的。所以在用字符串賦初值時一般無須指定數組的長度, 而由系統自行處理。






break;



}

} */

  

void aaa() interrupt 1 //定時器aaa函數中斷入口1
{



TH0=(65535-50000)/256; //50ms一中斷



TL0=(65535-50000)%256;



if(++kk==40) //k先+在判斷是否=18 kk可能是中斷函數 先++在計算是為了從0開始計數 后++可能從1 開始
{
miao++; //kk中斷18次時間秒自加1
if(miao==10) //當個位=10
{

    if(miao1++==5) //miao1 自加一次 直到5次以后秒數達到59 后條件導通程序往下一步走

      {

       if(fen++==10)
        {

         if(fen1++==5)

           {
            if(shi++==10)

             {
              
              if(shi1++==1)
                {
                  shi1=0;
                   shi=0;
                 }
   
                 shi=0;
             }
              fen1=0;
            }
          fen=0;
          }
       miao1=0;
       }
      miao=0;
      }
      kk=0;
     }
    }

void main()  
{
P1=0x00;
P2=0X06;   
canshu();
//xianshi(0,0,p);
//xianshi(0,1,p+16);
EA=1;
  ET0=1;
TMOD=0x01;
TH0=(65535-50000)/256;//如果不準可對其進行修改,比如4000可能更準確  TL0=(65535-50000)%256;
TL0=(65535-50000)%256;  TR0=1;
  while(1)
   {
     write_cmd(0x80|1); //1000 0001  相與有1則一 這個是時的位置
   
     write_data(dis2[shi]); //dis2[]1-9數組名字 這個是時的顯示
     
     write_cmd(0x80|2);//10000010 也就是十六進制0x82代表時的個位顯示位置
     
     write_data(dis2[shi1]);//1-9數組選擇小時的個位
     
     write_cmd(0x80|3);//地址0x83 在這個地址上寫
   
     write_data(p[0]);//數據為第二個數組的0位 這個數組就一個-符號

     write_cmd(0x80|4); //地址0x84  也就是分的十位
     
     write_data(dis2[fen1]); //寫數據函數 寫數組制定數據到分的十位
     
     write_cmd(0x80|5);
   
     write_data(dis2[fen]);
     
     write_cmd(0x80|6);
   
     write_data(p[0]);

     write_cmd(0x80|7);
     
     write_data(dis2[miao1]);
       
     write_cmd(0x80|8);
     write_data(dis2[miao]);
    }
}

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线中文字幕视频 | 午夜一区二区三区 | av网站在线播放 | 91久久精品一区二区二区 | 欧美日韩久久 | 日批av| 国际精品鲁一鲁一区二区小说 | 国产成人免费 | 久久久久久久久综合 | 久久33| 特黄一级| 精品在线播放 | 久久久久久久电影 | 国产精品一区视频 | 久久国内精品 | 2019中文字幕视频 | 中文在线视频观看 | 欧美在线综合 | 日本久久综合 | 久久国产一区二区三区 | 玖玖综合在线 | 国产福利视频网站 | 日韩在线中文字幕 | 欧美日韩国产一区二区三区 | 欧美一区二区三区视频在线 | 婷婷国产一区二区三区 | 亚洲一区视频 | 国产在线一区二区三区 | 91精品国产麻豆 | 美女久久久久久久久 | jvid精品资源在线观看 | 国产欧美一级 | 99re视频在线| 精品久久国产 | 亚洲国产区 | 欧美成人手机视频 | 人人干人人玩 | 国产精品123区 | 精品av | 日本一区二区三区四区 | 亚洲精品成人在线 |