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

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

QQ登錄

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

搜索
查看: 3438|回復(fù): 39
打印 上一主題 下一主題
收起左側(cè)

不懂就問(wèn)之:C語(yǔ)言小白的發(fā)問(wèn)?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
在學(xué)習(xí)C語(yǔ)言過(guò)程中軟件的使用,為什么課本上或者自學(xué)視頻上的C語(yǔ)言用visual C++6.0或者visual studio系列軟件來(lái)編寫,編譯?而我們實(shí)際上的一些應(yīng)用,例如,LED流水燈,呼吸燈的程序,這些程序的編寫編譯用keilx系列軟件?進(jìn)而引出另外一個(gè)問(wèn)題:我在某論壇上看到一些計(jì)算機(jī)專業(yè)的學(xué)生的一些提問(wèn):畢業(yè)后,在學(xué)校學(xué)習(xí)的這些C語(yǔ)言,如何運(yùn)用到實(shí)際的應(yīng)用中?怎么樣去結(jié)合實(shí)際生產(chǎn)?畢竟生活中不只有打印個(gè)“Hello,the Word”。請(qǐng)各位大神們,暢所欲言!

12212.jpg (184.35 KB, 下載次數(shù): 50)

書本例,僅作陳述用

書本例,僅作陳述用

111.JPG (103.42 KB, 下載次數(shù): 46)

本論壇程序,僅作陳述用

本論壇程序,僅作陳述用
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:883242 發(fā)表于 2022-7-9 15:18 | 只看該作者
單片機(jī)c語(yǔ)言如果涉及到復(fù)雜的算法我也會(huì)在MinGW上面模擬運(yùn)行,比單片機(jī)方便多了,調(diào)試通過(guò)直接移植到單片機(jī)c語(yǔ)言上面。
回復(fù)

使用道具 舉報(bào)

板凳
ID:401564 發(fā)表于 2022-7-9 18:42 | 只看該作者
一個(gè)是標(biāo)準(zhǔn)C語(yǔ)言,visual studio"Hello,the Word"是標(biāo)準(zhǔn)V語(yǔ)言的,實(shí)在不理解,你就當(dāng)這是電腦C語(yǔ)言
一個(gè)是單片機(jī)C語(yǔ)言,keil是單片機(jī)C語(yǔ)言,專門為單片機(jī)準(zhǔn)備的,C語(yǔ)言一開(kāi)始就不是為單片機(jī)準(zhǔn)備的
C語(yǔ)言我只用在單片機(jī),其它地方?jīng)]用過(guò),也不會(huì)用
回復(fù)

使用道具 舉報(bào)

地板
ID:883242 發(fā)表于 2022-7-9 19:40 | 只看該作者
Y_G_G 發(fā)表于 2022-7-9 18:42
一個(gè)是標(biāo)準(zhǔn)C語(yǔ)言,visual studio"Hello,the Word"是標(biāo)準(zhǔn)V語(yǔ)言的,實(shí)在不理解,你就當(dāng)這是電腦C語(yǔ)言
一個(gè)是單 ...

c語(yǔ)言是為了更方便的操作硬件,從而實(shí)現(xiàn)Unix內(nèi)核而設(shè)計(jì)的,這樣的結(jié)構(gòu)天生就適應(yīng)單片機(jī)。
回復(fù)

使用道具 舉報(bào)

5#
ID:706724 發(fā)表于 2022-7-9 21:23 | 只看該作者
Y_G_G 發(fā)表于 2022-7-9 18:42
一個(gè)是標(biāo)準(zhǔn)C語(yǔ)言,visual studio"Hello,the Word"是標(biāo)準(zhǔn)V語(yǔ)言的,實(shí)在不理解,你就當(dāng)這是電腦C語(yǔ)言
一個(gè)是單 ...

這樣理解起來(lái)的話,其實(shí)除了學(xué)C語(yǔ)言之外,如果真的要在電子工業(yè)中應(yīng)用的話,還是需要再去學(xué)單片機(jī)C語(yǔ)言?
回復(fù)

使用道具 舉報(bào)

6#
ID:970221 發(fā)表于 2022-7-9 22:45 來(lái)自觸屏版 | 只看該作者
不是學(xué)會(huì)C語(yǔ)言就能開(kāi)發(fā)實(shí)際產(chǎn)品的。
回復(fù)

使用道具 舉報(bào)

7#
ID:891041 發(fā)表于 2022-7-9 23:09 | 只看該作者
主要看你在什么芯片上運(yùn)行程序, 決定了用什么編譯工具。  Vs編譯時(shí)候根本沒(méi)得選芯片 默認(rèn)在PC芯片上。 keil里面可以選各種單片機(jī)。 因?yàn)檫@些芯片內(nèi)核指令集不一樣 所以不能用同一個(gè)軟件去編譯。
回復(fù)

使用道具 舉報(bào)

8#
ID:401564 發(fā)表于 2022-7-9 23:44 | 只看該作者
木示 發(fā)表于 2022-7-9 21:23
這樣理解起來(lái)的話,其實(shí)除了學(xué)C語(yǔ)言之外,如果真的要在電子工業(yè)中應(yīng)用的話,還是需要再去學(xué)單片機(jī)C語(yǔ)言?

C和單片機(jī)C語(yǔ)言(比如C51)之間并沒(méi)有很大的區(qū)別,如果你是工業(yè)應(yīng)用,直接學(xué)單片機(jī)C語(yǔ)言,就可以了
這兩者之間并不是說(shuō)就是兩種語(yǔ)言,無(wú)非就是增加了一些或者減少一些關(guān)鍵詞之類
也就是說(shuō),隨便學(xué)哪個(gè)C語(yǔ)言,只要是C語(yǔ)言就可以了,不同領(lǐng)域之間的C語(yǔ)言,你只要幾天,或者幾個(gè)小時(shí)就能上手了,不用怕"我學(xué)了標(biāo)準(zhǔn),到時(shí)候再學(xué)單片機(jī)的話,又得學(xué)一單片機(jī)C語(yǔ)言?"
回復(fù)

使用道具 舉報(bào)

9#
ID:970221 發(fā)表于 2022-7-10 10:49 來(lái)自觸屏版 | 只看該作者
都曾有過(guò)類似問(wèn)題,試著回答一下,不知是否切題。   
1.首先得了解“編譯器,集成開(kāi)發(fā)環(huán)境(IDE)”相互聯(lián)系,但不是一個(gè)東西。   
2.C語(yǔ)言是一種高級(jí)語(yǔ)言,要被編譯器軟件編譯為某一特定cpu的機(jī)器碼才能運(yùn)行。  
VC,VS都是在pc上的集成開(kāi)發(fā)環(huán)境,其內(nèi)嵌編譯器可編譯X86處理器的win32、console等類型的應(yīng)用程序。  
Keil等集成開(kāi)發(fā)環(huán)境在PC上運(yùn)行,但使用不同的內(nèi)嵌編譯器,用于編譯C51、ARM_M0等cpu的程序。  
3.大學(xué)學(xué)的C語(yǔ)言,只是通用開(kāi)發(fā)能力的基礎(chǔ),距離實(shí)際開(kāi)發(fā)還有太多的內(nèi)容要學(xué),慢慢來(lái)。   
4.我理解,沒(méi)有“單片機(jī)的C語(yǔ)言”,只是用C開(kāi)發(fā)產(chǎn)品級(jí)的單片機(jī)程序,需要對(duì)編譯后的內(nèi)存狀態(tài)等內(nèi)容了解的多一些,而且與win程序開(kāi)發(fā)的常用語(yǔ)句有較大區(qū)別。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

10#
ID:706724 發(fā)表于 2022-7-10 18:47 | 只看該作者
各位的高見(jiàn)十分受益,感謝!
現(xiàn)在市面上大部分的教材,或者視頻都是從標(biāo)準(zhǔn)的C語(yǔ)言著手,距離實(shí)際應(yīng)用還是有相當(dāng)?shù)闹R(shí)要學(xué)習(xí).
回復(fù)

使用道具 舉報(bào)

11#
ID:401564 發(fā)表于 2022-7-10 23:07 | 只看該作者
木示 發(fā)表于 2022-7-10 18:47
各位的高見(jiàn)十分受益,感謝!
現(xiàn)在市面上大部分的教材,或者視頻都是從標(biāo)準(zhǔn)的C語(yǔ)言著手,距離實(shí)際應(yīng)用還是 ...

標(biāo)準(zhǔn)C就標(biāo)準(zhǔn)C,沒(méi)有關(guān)系的
但如果你是要用在單片機(jī)方面,你要學(xué)的就是單片機(jī)原理了
回復(fù)

使用道具 舉報(bào)

12#
ID:1039153 發(fā)表于 2022-7-11 16:40 | 只看該作者
c語(yǔ)言只是一個(gè)軟件語(yǔ)言
回復(fù)

使用道具 舉報(bào)

13#
ID:1037510 發(fā)表于 2022-7-12 10:46 | 只看該作者
51單片機(jī)使用的C語(yǔ)言叫C51,擁有C語(yǔ)言大部分的特征,并針對(duì)51單片機(jī)進(jìn)行了一部分改進(jìn),以適應(yīng)51單片機(jī)的硬件開(kāi)發(fā),所以叫做C51。
C51編寫的源程序,是一個(gè)后綴為.c的C語(yǔ)言文件,編譯以后的運(yùn)行文件是后綴為.hex的文件。
標(biāo)準(zhǔn)C語(yǔ)言跟單片機(jī)的C51還是有細(xì)微差別的。
回復(fù)

使用道具 舉報(bào)

14#
ID:706724 發(fā)表于 2022-7-14 17:13 | 只看該作者
不一定會(huì) 發(fā)表于 2022-7-12 10:46
51單片機(jī)使用的C語(yǔ)言叫C51,擁有C語(yǔ)言大部分的特征,并針對(duì)51單片機(jī)進(jìn)行了一部分改進(jìn),以適應(yīng)51單片機(jī)的硬 ...

是的,差別還是大,比如說(shuō)外部中斷,定時(shí)器,這些在標(biāo)準(zhǔn)C語(yǔ)言里沒(méi)有提及,但在實(shí)際應(yīng)用中是十分廣發(fā)的,
回復(fù)

使用道具 舉報(bào)

15#
ID:706724 發(fā)表于 2022-7-14 17:21 | 只看該作者
即便學(xué)了C51單片機(jī),也只是知道(或者稱之為理解)單個(gè)的程序思維。例如簡(jiǎn)單的,點(diǎn)亮LED燈,跑馬燈這些,單個(gè)來(lái)說(shuō)不難。但是如果我要把它們弄到一個(gè)程序上面來(lái)跑,比如:先亮燈,然后按下開(kāi)關(guān)關(guān)閉5S內(nèi)重新打開(kāi),接著跑跑馬燈程序,若超過(guò)5S后開(kāi)則停留在亮燈程序上來(lái)。很多新手就懵逼了,不知道怎么運(yùn)用外部中斷,定時(shí)器去上面跑。怎么把一些單個(gè)的程序,變成一個(gè)整體程序去跑?
回復(fù)

使用道具 舉報(bào)

16#
ID:1039516 發(fā)表于 2022-7-14 17:27 | 只看該作者
嵌入式開(kāi)發(fā)中在實(shí)際應(yīng)用中,處處都會(huì)用到C語(yǔ)言,打印Hello Word,只是為了,看到實(shí)驗(yàn)現(xiàn)象
回復(fù)

使用道具 舉報(bào)

17#
ID:883242 發(fā)表于 2022-7-14 19:49 | 只看該作者
木示 發(fā)表于 2022-7-14 17:21
即便學(xué)了C51單片機(jī),也只是知道(或者稱之為理解)單個(gè)的程序思維。例如簡(jiǎn)單的,點(diǎn)亮LED燈,跑馬燈這些,單 ...

你這個(gè)問(wèn)題就跟c語(yǔ)言無(wú)關(guān)了,要先學(xué)會(huì)畫流程圖。
回復(fù)

使用道具 舉報(bào)

18#
ID:401564 發(fā)表于 2022-7-15 13:58 | 只看該作者
木示 發(fā)表于 2022-7-14 17:21
即便學(xué)了C51單片機(jī),也只是知道(或者稱之為理解)單個(gè)的程序思維。例如簡(jiǎn)單的,點(diǎn)亮LED燈,跑馬燈這些,單 ...

C語(yǔ)言只是一門語(yǔ)言而已
就是C51也只是一門語(yǔ)言而已
這中斷,定時(shí)器是單片機(jī)方面的知識(shí),不是語(yǔ)言方面的知識(shí),所以說(shuō)你要知道單片機(jī)的原理呀
手頭上要有兩本書,一本是單片機(jī)原理的,一本是C語(yǔ)言的

C語(yǔ)言程序設(shè)計(jì):現(xiàn)代方法這本C語(yǔ)言的書感覺(jué)還可以,比譚老那本好多了
而8051的單片機(jī)書就多了,隨便找一本就是了,沒(méi)有誰(shuí)比誰(shuí)好多少
回復(fù)

使用道具 舉報(bào)

19#
ID:706724 發(fā)表于 2022-7-19 17:06 | 只看該作者
用單片機(jī)為PIC16F676,RA5上的腳作為交流檢測(cè)腳。RC2,RC3作為負(fù)載輸出控制端。程序如下:

#include<pic.h>
__CONFIG(0X1B4);
#define uchar unsigned char//宏定義,相當(dāng)于uchar=unsigned char
#define uint unsigned int//宏定義,相當(dāng)于uint=unsigned  int




uint key2_time_cnt;//按鍵去抖計(jì)數(shù)器
uchar key2_lock;//按鍵有效標(biāo)志
uchar key2_num_s;//功能散轉(zhuǎn)變量
uchar key2_touch_s_flag;//交流斷電信號(hào)有效標(biāo)志
uint shuzi;//時(shí)標(biāo)計(jì)數(shù)變量
uchar SYS1MS;//時(shí)標(biāo)開(kāi)關(guān)標(biāo)志

void PORT_init()
{
ANSEL=0X00;//普通端口設(shè)置
CMCON=0X07;//比較器關(guān)閉
TRISA=0b00110100;
TRISC=0b00110000;
PORTC=0X00;
PORTA=0X00;
T0CS=0;//定時(shí)器內(nèi)部時(shí)鐘選擇
;
T0IF=0;//定時(shí)器中斷標(biāo)志清零
T0IE=1;//定時(shí)器中斷使能
GIE=1;//全局中斷使能
TMR0=9;//定時(shí)器初值為零
}

void key_scan2()
{
if(RA5==1)//如果RA5上按鍵沒(méi)有按下
{
  key2_lock=0;//2號(hào)鍵標(biāo)志清零
  key2_time_cnt=0;//去抖計(jì)數(shù)器清零
  if(key2_touch_s_flag==1)//如果交流斷電信號(hào)有效
  {
     
      key2_touch_s_flag=0;//清交流信號(hào)標(biāo)志
      key2_num_s++;//功能號(hào)開(kāi)始自加
      if(key2_num_s>3)key2_num_s=0;//一共4種功能
  }

}
else if(key2_lock==0)//如果有鍵第一次按下
{
   key2_time_cnt++;//去抖計(jì)數(shù)器開(kāi)始計(jì)數(shù)
   if(key2_time_cnt>149)//當(dāng)計(jì)數(shù)器值大于149,說(shuō)明低電平持續(xù)的時(shí)間大于10MS,而交流電高低電平的持續(xù)時(shí)間是8——10MS,這就表示交流電被斷電了。
  {
     key2_touch_s_flag=1;//交流斷電有效,標(biāo)志置一。
     key2_time_cnt=0;//清去抖動(dòng)計(jì)數(shù)器
     key2_lock=1;//自鎖標(biāo)志置1,避免一直觸發(fā)
     
  }
}
}

void key_service2()
{

switch(key2_num_s)
{
  case 0:
        RC2=1;
  RC3=0;
  RA0=0;
  RA1=0;
        //key2_num_s=0;
        break;
   case 1:
      RC2=0;
  RC3=1;
  RA0=0;
  RA1=0;
        //key2_num_s=0;
        break;
   case 2:
        RC2=1;
  RC3=1;
  RA0=0;
  RA1=0;
       // key2_num_s=0;
        break;
  case 3:
      RC2=0;
  RC3=0;
  RA0=0;
  RA1=0;
        //key2_num_s=0;
        break;
  }
  
}

void main()
{
PORT_init();
while(1)
{
if(SYS1MS==1)
{
SYS1MS=0;
key_scan2();
}
key_service2();
}
}
void interrupt isr()//定時(shí)器0中斷函數(shù)
{
      if((T0IE&T0IF)==1)//判斷定時(shí)器中斷
  {   
      T0IF=0;//清定時(shí)器中斷標(biāo)志
            T0IE=0;//關(guān)定時(shí)器中斷
            TMR0=9;//從9加到256所用時(shí)間是250US
            shuzi++;
            if(shuzi==4)
            {
               shuzi=0;
               SYS1MS=1;
            }
           
            
            T0IE=1;//開(kāi)定時(shí)器中斷
  }
}



本程序?qū)τ跀嚯姍z測(cè)使用了
if()
{
第一區(qū)
}
else if()
{
第二區(qū)
}

        一開(kāi)始,信號(hào)高電平階段,在第一區(qū),要把各種標(biāo)志清零,同時(shí),要判斷斷電標(biāo)志是否有效,這樣做的目的是為了消除,交流電斷電瞬間單片機(jī)會(huì)出現(xiàn)誤動(dòng)作(閃燈) ,如果作為一般按鍵檢測(cè)的話,這里做判斷,并且做出相應(yīng)的按鍵有效處理,實(shí)際上是,等待按鍵松手后才做有效的處理。當(dāng)有低電平到來(lái)時(shí),實(shí)際上 else if(key2_lock==0)這語(yǔ)句等同于else if((!RA5)&&(!key2_lock)),RA5為低,同時(shí)按鍵標(biāo)志沒(méi)有被置1,確定上面2個(gè)條件同時(shí)成立,說(shuō)明RA5端口起碼是低電平了,但不一定是斷電了。在第二區(qū),然后讓去抖動(dòng)計(jì)數(shù)器key2_time_cnt自加,當(dāng)計(jì)數(shù)器大于149時(shí)候,認(rèn)為斷電了(因?yàn)樵谝粋(gè)周期內(nèi)交流電低電平持續(xù)時(shí)間大概是100,所以要適當(dāng)加寬低電平判斷范圍,)此時(shí)要馬上把斷電有效標(biāo)志key2_touch_s_flag置1。
      對(duì)于交流電斷電檢測(cè)功能函數(shù)key2_scan()在整個(gè)程序的位置,第一,可以直接放到定時(shí)器中斷里面,每250US執(zhí)行一次。第二,可以利用定時(shí)器設(shè)定一個(gè)時(shí)標(biāo)比如1MS的時(shí)標(biāo),主程序中,根據(jù)時(shí)標(biāo)來(lái)執(zhí)行key2_scan()函數(shù)。最好不要直接放在主循環(huán)中,這樣會(huì)漏掉按鍵檢測(cè)的某個(gè)檔位。
        以上就是數(shù)碼分段器的基本控制程序。單片機(jī)交流檢測(cè)是本程序的難點(diǎn)。
以上是版主的代碼
回復(fù)

使用道具 舉報(bào)

20#
ID:706724 發(fā)表于 2022-7-19 17:11 | 只看該作者
本帖最后由 木示 于 2022-7-19 17:13 編輯

這是PIC16f676的資料

基礎(chǔ)PIC學(xué)習(xí)工具!!


PIC16F630和PIC16F676引腳圖如下:

PIC16F630/676中文手冊(cè)預(yù)覽:

1111.png (49.62 KB, 下載次數(shù): 30)

1111.png

1112.png (194.89 KB, 下載次數(shù): 39)

1112.png
回復(fù)

使用道具 舉報(bào)

21#
ID:706724 發(fā)表于 2022-7-19 17:17 | 只看該作者
本帖最后由 木示 于 2022-7-19 18:16 編輯

因?yàn)槲沂稚嫌幸粋(gè)號(hào)稱最小系統(tǒng)的STC15F104W的單片機(jī),所以想講版主的程序移植到104W上。在編譯過(guò)程中出現(xiàn)了錯(cuò)誤,不知道原因出在哪?請(qǐng)大神們賜教!

111.png (70.14 KB, 下載次數(shù): 31)

錯(cuò)誤提示

錯(cuò)誤提示

stc15f104w.png (133.56 KB, 下載次數(shù): 40)

STC15F104W

STC15F104W
回復(fù)

使用道具 舉報(bào)

22#
ID:401564 發(fā)表于 2022-7-19 17:46 | 只看該作者
木示 發(fā)表于 2022-7-19 17:17
因?yàn)槲沂稚嫌幸粋(gè)號(hào)稱最小系統(tǒng)的STC15F104W的單片機(jī),所以想講版主的程序移植到104W上。在編譯過(guò)程中出現(xiàn)了 ...

怎么可能嘛兄弟
單片機(jī)和C語(yǔ)言是兩個(gè)知識(shí)點(diǎn),兩個(gè)都要學(xué)的
學(xué)習(xí)單片機(jī)最忌諱的就是把別人的一堆代碼下載下來(lái),想看一下效果,都驗(yàn)證點(diǎn)什么
單片機(jī)不是這樣學(xué)的,要一步一個(gè)腳印,一點(diǎn)一點(diǎn)來(lái)的至于你想"移植",那是受了C語(yǔ)言簡(jiǎn)介中的"C語(yǔ)言可移植性好"影響

8051和PIC是兩個(gè)不同指令的單片機(jī)的,端口名稱都中不一樣的
8051叫P0,P1...........
PIC叫PA,PB............

兩者中斷機(jī)制也是不一樣的
8051有各個(gè)中斷對(duì)應(yīng)的中斷入口的,中斷程序只要觸發(fā)了就會(huì)直接執(zhí)行對(duì)應(yīng)的中斷
而PIC只有一個(gè)中斷入口,中斷觸發(fā)之后要先查詢中斷標(biāo)志位,用來(lái)判斷是哪個(gè)中斷,然后才執(zhí)行對(duì)應(yīng)的中斷

8051的端口是雙向的,只要釋放了端口,直接就是可以讀取電平也可以輸出電平
而PIC在讀取的時(shí)候要先把端口設(shè)定成數(shù)據(jù)輸入模式才能讀取到端口的電平狀態(tài)
如果要輸出高低電平,那就要把端口設(shè)定成數(shù)字輸出模式,才能輸出電平

8051只要安裝了KEIL和STC下載器就可以開(kāi)始學(xué)習(xí)了,可以用232下載
PIC就不一樣了,你要先安裝JAVA運(yùn)行環(huán)境,安裝MPLAB,還得安裝編譯器,而PIC的又有好幾個(gè)編譯器,每個(gè)編譯器的函數(shù)都是不一樣的,完還得用專用的PICKIT下載器才能下載程序

是不是對(duì)我上面的話一臉的蒙,這就對(duì)了,在你還沒(méi)有真正入門之前,不要學(xué)PIC,除非有人帶,或者是學(xué)校教材是這樣的,又或者是工作需要
給你看一下我的第一個(gè)8051C程序,別想著一下子就能飛,你得先學(xué)會(huì)爬,然后再學(xué)會(huì)走路,走得快了,你自然就能飛了

#include<reg52.h>        //包含頭文件,頭文件中有8051單片機(jī)的特殊寄存器地址的定義
sbit LED=P0^0;        //用sbit關(guān)鍵字來(lái)定義LED這個(gè)端口的地址,LED方便記憶,P0這個(gè)已經(jīng)在reg52.h中聲明過(guò)了,可以直接P0這個(gè)名稱
void main ()       
{
        P0=0x00;        //P0端口先低電平,因?yàn)槟J(rèn)上電為高電平
        LED=1;                //LED為高電平,LED亮或者滅要看硬件電路
        while(1)        //while循環(huán)為真,一直循環(huán)
        {
        }
}

回復(fù)

使用道具 舉報(bào)

23#
ID:99525 發(fā)表于 2022-7-19 18:00 | 只看該作者
木示 發(fā)表于 2022-7-19 17:17
因?yàn)槲沂稚嫌幸粋(gè)號(hào)稱最小系統(tǒng)的STC15F104W的單片機(jī),所以想講版主的程序移植到104W上。在編譯過(guò)程中出現(xiàn)了 ...

看錯(cuò)誤提示!
回復(fù)

使用道具 舉報(bào)

24#
ID:706724 發(fā)表于 2022-7-19 18:13 | 只看該作者
錯(cuò)誤的提示如下:
回復(fù)

使用道具 舉報(bào)

25#
ID:706724 發(fā)表于 2022-7-19 18:21 | 只看該作者
我的改動(dòng)代碼如下:(以上的代碼皆是本論壇的壇友的,只作學(xué)習(xí)使用!)
#include<reg52.h>

#define uchar unsigned char//
#define uint unsigned int//




uint key2_time_cnt;//
uchar key2_lock;//°
uchar key2_num_s;//
uchar key2_touch_s_flag;//
uint shuzi;//
uchar SYS1MS;//

void PORT_init()                //
{

PCON=0X00;
TCON=0;//

IE0=0;//
TF0=1;//
EA=1;//
TH0=9;//
}

void key_scan2()
{
if(3.2==1)//
{
  key2_lock=0;//
  key2_time_cnt=0;//
  if(key2_touch_s_flag==1)//
  {
     
      key2_touch_s_flag=0;//
      key2_num_s++;//
      if(key2_num_s>3)key2_num_s=0;//
  }

}
else if(key2_lock==0)//
{
   key2_time_cnt++;//
   if(key2_time_cnt>149)//
  {
     key2_touch_s_flag=1;//
     key2_time_cnt=0;//Ç
     key2_lock=1;//
     
  }
}
}

void key_service2()
{

switch(key2_num_s)
{
  case 0:
                                T1=1;
T0=0;

        //key2_num_s=0;
        break;
   case 1:
      T1=0;
T0=1;

        //key2_num_s=0;
        break;
   case 2:
      T1=1;
T0=1;

       // key2_num_s=0;
        break;
  case 3:
     T1=0;
T0=0;

        //key2_num_s=0;
        break;
  }
  
}

void main()
{
PORT_init();
while(1)
{
if(SYS1MS==1)
{
SYS1MS=0;
key_scan2();
}
key_service2();
}
}
void exint0()        interrupt        0 //¶¨ê±Æ÷0ÖD¶Ïoˉêy
{
      if((IE0&TF0)==1)//
  {   
                        IE0=0;//
                        TF0=0;//

                        TH0=9;//
            shuzi++;
            if(shuzi==4)
            {
               shuzi=0;
               SYS1MS=1;
            }
           
            
            TF0=1;//
  }
}
回復(fù)

使用道具 舉報(bào)

26#
ID:121859 發(fā)表于 2022-7-19 20:12 | 只看該作者
C51雖然也是C語(yǔ)言,但與標(biāo)準(zhǔn)的C(基于X86)還是有很大區(qū)別的。庫(kù)函數(shù)里面很多是同名而意不同的,比如printf函數(shù),C51是將數(shù)據(jù)通過(guò)串口發(fā)送出去,標(biāo)準(zhǔn)C是顯示在屏幕上。還有很多函數(shù)也是如此。
回復(fù)

使用道具 舉報(bào)

27#
ID:405850 發(fā)表于 2022-7-19 21:01 | 只看該作者
這么說(shuō)吧,你學(xué)了C語(yǔ)言,一般的單片機(jī)  比如STM32之類的程序你能看懂功能邏輯,但是不知道為什么這么做,而如果你剛好也學(xué)習(xí)了STM32,那你就能用你的C語(yǔ)言結(jié)合這款硬件平臺(tái),去實(shí)現(xiàn)他能夠?qū)崿F(xiàn)的功能
回復(fù)

使用道具 舉報(bào)

28#
ID:706724 發(fā)表于 2022-7-20 08:53 | 只看該作者
感謝各位大神的指導(dǎo)。現(xiàn)在編譯沒(méi)有問(wèn)題了,不知道實(shí)際應(yīng)用怎么樣。這里弄錯(cuò)了是想使用3.2這個(gè)腳位的,void key_scan2()
{
if(3.2==1)
改成INT0就沒(méi)有再報(bào)錯(cuò)了。
回復(fù)

使用道具 舉報(bào)

29#
ID:195496 發(fā)表于 2022-7-20 08:57 | 只看該作者
移植程序,要看DATASHEET,看有哪些可用的端口,頭文件要改一下,
回復(fù)

使用道具 舉報(bào)

30#
ID:514901 發(fā)表于 2022-7-20 09:24 | 只看該作者
也有人用visual C++6.0或者visual studio來(lái)寫單片機(jī)程序,當(dāng)比較麻煩就是了
回復(fù)

使用道具 舉報(bào)

31#
ID:130230 發(fā)表于 2022-7-20 10:50 | 只看該作者
C語(yǔ)言是工具。你學(xué)會(huì)了用斧子,你是用來(lái)砍樹(shù)還是用來(lái)釘釘子都可以。
回復(fù)

使用道具 舉報(bào)

32#
ID:401564 發(fā)表于 2022-7-20 11:48 | 只看該作者
木示 發(fā)表于 2022-7-20 08:53
感謝各位大神的指導(dǎo)。現(xiàn)在編譯沒(méi)有問(wèn)題了,不知道實(shí)際應(yīng)用怎么樣。這里弄錯(cuò)了是想使用3.2這個(gè)腳位的,void  ...

3.2==1
這應(yīng)該是P3^2,不是3.2,你的修改只是修改了錯(cuò)誤提示而已,不代表你的代碼是符合你的邏輯要求的
還有,有中斷中的這個(gè)TF0=1;是什么意思?
回復(fù)

使用道具 舉報(bào)

33#
ID:706724 發(fā)表于 2022-7-20 19:36 | 只看該作者
Y_G_G 發(fā)表于 2022-7-20 11:48
3.2==1
這應(yīng)該是P3^2,不是3.2,你的修改只是修改了錯(cuò)誤提示而已,不代表你的代碼是符合你的邏輯要求的
還 ...

寄存器清零
回復(fù)

使用道具 舉報(bào)

34#
ID:401564 發(fā)表于 2022-7-20 20:33 | 只看該作者

TF0為什么要清零?
回復(fù)

使用道具 舉報(bào)

35#
ID:1040441 發(fā)表于 2022-7-25 10:51 | 只看該作者
C語(yǔ)言是只是工具,選一個(gè)項(xiàng)目,深入了解就知道一系列東西了。
回復(fù)

使用道具 舉報(bào)

36#
ID:337374 發(fā)表于 2022-7-30 10:59 | 只看該作者
玩單片機(jī) 得有這個(gè)單片機(jī)的規(guī)格書(原理),學(xué)習(xí)標(biāo)準(zhǔn)C的目的 是讓你初步了解語(yǔ)法(邏輯能力),以及C語(yǔ)句執(zhí)行后的狀態(tài),比如循環(huán),分支,賦值;便于調(diào)試的話,需要理解一點(diǎn)點(diǎn)匯編的知識(shí)。通過(guò)看LIST文件 觀看你的C語(yǔ)句是否被編譯。有些時(shí)候你的C語(yǔ)句被編譯后 可能不是你需要的狀態(tài)
回復(fù)

使用道具 舉報(bào)

37#
ID:1039954 發(fā)表于 2022-8-1 08:42 | 只看該作者
可以這樣說(shuō)嗎,c是語(yǔ)言,keil是環(huán)境?
回復(fù)

使用道具 舉報(bào)

38#
ID:1110944 發(fā)表于 2025-4-11 01:33 | 只看該作者
說(shuō)的都有啟發(fā)啊
回復(fù)

使用道具 舉報(bào)

39#
ID:1110944 發(fā)表于 2025-7-7 09:16 來(lái)自觸屏版 | 只看該作者
說(shuō)的挺好,不過(guò)細(xì)節(jié)挺多的
回復(fù)

使用道具 舉報(bào)

40#
ID:744809 發(fā)表于 2025-7-7 16:04 | 只看該作者
zhxiufan 發(fā)表于 2022-7-19 20:12
C51雖然也是C語(yǔ)言,但與標(biāo)準(zhǔn)的C(基于X86)還是有很大區(qū)別的。庫(kù)函數(shù)里面很多是同名而意不同的,比如printf ...

你這個(gè)例子舉得不好,單片機(jī)的printf可以通過(guò)重定向讓數(shù)據(jù)顯示在屏幕上、通過(guò)串口發(fā)送、通過(guò)spi發(fā)送等等都能實(shí)現(xiàn),而pc上面,printf也可以通過(guò)修改printf的實(shí)現(xiàn),將數(shù)據(jù)通過(guò)串口、usb等發(fā)送出去
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 羞羞网站在线观看 | 四虎影视av | 九九九视频 | 欧美日韩精品一区二区 | 欧美黄视频 | 国产黄色免费 | 在线观看小视频 | av高清在线观看 | 黄色大片视频 | 欧美激情小视频 | 日韩中文字幕第一页 | 一级黄色片免费看 | 黑森林av | 成人深夜福利 | www.成人网 | 中文字幕在线免费 | 国产精自产拍久久久久久蜜 | 国产在线视频91 | 久久99热这里只频精品6学生 | 精品国产伦一区二区三区 | 国产欧美精品一区 | av超碰在线| 国产福利在线 | 视频在线一区 | 官场少妇尤物雪白高耸 | 国产999久久久 | 欧美日韩久久久 | 国产视频成人 | 久久精品欧美一区二区三区不卡 | 青青久久久 | 亚洲成人a v | 欧美黄色片在线观看 | 日韩国产在线播放 | 国产成人+综合亚洲+天堂 | 青青艹在线视频 | 在线观看视频一区二区 | 成人激情视频在线观看 | 狠狠做深爱婷婷久久综合一区 | 国产在线视频一区二区 | 成人做受黄大片 | 一级毛片黄色 |