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

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

QQ登錄

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

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

請(qǐng)大家給小弟指點(diǎn)一下迷津。由于剛剛上手單片機(jī)程序

  [復(fù)制鏈接]
ID:607312 發(fā)表于 2021-1-22 16:03 | 顯示全部樓層 |閱讀模式
有一臺(tái)風(fēng)扇,上電時(shí)蜂鳴器長(zhǎng)響一聲(200ms)
有1個(gè)觸摸開(kāi)關(guān)按鈕和一個(gè)風(fēng)速觸摸按鈕。
按一下開(kāi)關(guān),風(fēng)扇打開(kāi),默認(rèn)1擋,再按一下開(kāi)關(guān),風(fēng)扇關(guān)閉。
當(dāng)風(fēng)扇關(guān)閉時(shí),按風(fēng)速按鈕,無(wú)反應(yīng)
當(dāng)風(fēng)扇打開(kāi)時(shí),按一下風(fēng)速按鈕,風(fēng)速變2擋,再按一下風(fēng)速按鈕,風(fēng)速變3擋,再按一下風(fēng)速按鈕,
風(fēng)速又變回1擋,無(wú)限循環(huán)
無(wú)論風(fēng)速在哪個(gè)擋,只要按下開(kāi)關(guān)鍵,都關(guān)閉
沒(méi)按一次按鈕,蜂鳴器嘀一聲(100ms)


以上功能說(shuō)明我想通過(guò)流程圖的方式表達(dá)出來(lái),但是內(nèi)功不夠。麻煩大家?guī)蛶兔χ附桃幌隆Vx謝大家


回復(fù)

使用道具 舉報(bào)

ID:390416 發(fā)表于 2021-1-22 17:28 | 顯示全部樓層
視頻百度下載:https://pan.baidu.com/s/1qY6X3eG  
資料下載地址:https://pan.baidu.com/s/1bp4HLl9
給你發(fā)兩個(gè)百度盤(pán)網(wǎng)址 希望對(duì)你的問(wèn)題有幫助
回復(fù)

使用道具 舉報(bào)

ID:235200 發(fā)表于 2021-1-22 22:49 | 顯示全部樓層
當(dāng)內(nèi)功不夠時(shí),先從一個(gè)一個(gè)的IO口控制開(kāi)始,不要搞太復(fù)雜的控制
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-1-23 08:40 | 顯示全部樓層
有畫(huà)流程圖的時(shí)間都可以寫(xiě)完代碼了。
  1. //程序適合STC15W104,時(shí)鐘11.0592MHz
  2. #include <reg51.H>                                         //單片機(jī)頭文件
  3. sfr AUXR=0x8E;                                                   //輔助寄存器
  4. #define uint unsigned int                         //宏定義數(shù)據(jù)類型uint
  5. #define uchar unsigned char                 //宏定義數(shù)據(jù)類型uchar
  6. //輸入輸出端口定義
  7. sbit key1=P3^0;                                                //開(kāi)關(guān)
  8. sbit key2=P3^1;                                                //調(diào)速
  9. sbit OUT1=P3^2;                                                //風(fēng)速1擋
  10. sbit OUT2=P3^3;                                                //風(fēng)速2擋
  11. sbit OUT3=P3^4;                                                //風(fēng)速3擋
  12. sbit Buzzer=P3^5;                                                //蜂鳴器
  13. //全局變量聲明
  14. bit   Switch=0;                                                //開(kāi)關(guān)機(jī)標(biāo)志位
  15. uchar Speed=0;                                                //速度控制變量
  16. uint  num;
  17. /*------------------------
  18.     初始化定時(shí)器
  19. ------------------------*/
  20. void Timer0Init()                //250微秒@11.0592MHz
  21. {
  22.         AUXR &= 0x7F;                //定時(shí)器時(shí)鐘12T模式
  23.         TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
  24.         TMOD |= 0x02;                //設(shè)置定時(shí)器模式
  25.         TL0 = 0x1A;                   //設(shè)置定時(shí)初值
  26.         TH0 = 0x1A;                        //設(shè)置定時(shí)重載值
  27.         TR0 = 1;                                //定時(shí)器0開(kāi)始計(jì)時(shí)
  28.         ET0 = 1;                                //開(kāi)T0中斷
  29.         EA  = 1;                                //開(kāi)總中斷
  30. }
  31. /*------------------------
  32.     按鍵掃描函數(shù)
  33. ------------------------*/
  34. void keyscan()       
  35. {
  36.         static bit key_sign=0;                        //按鍵狀態(tài)標(biāo)志
  37.         static uint count=0;                        //計(jì)數(shù)變量                       
  38.         if(!key1||!key2)                                //檢測(cè)有按鍵操作
  39.         {
  40.                 if(++count>=1400 && key_sign==0)//消抖延時(shí)
  41.                 {
  42.                         key_sign=1;                                //按鍵狀態(tài)標(biāo)志置1
  43.                         num = 400;                                //蜂鳴器響100ms
  44.                         TR0 = 1;                                        //定時(shí)器0開(kāi)始計(jì)時(shí)
  45.                         if(!key1)                                //檢測(cè)開(kāi)關(guān)鍵按下
  46.                         {
  47.                                 Switch=~Switch;                //開(kāi)關(guān)機(jī)標(biāo)志位取反
  48.                                 if(Switch)
  49.                                         Speed=1;                        //默認(rèn)1擋
  50.                                 else Speed=0;                        //停
  51.                         }
  52.                         if(!key2 && Switch==1)        //檢測(cè)調(diào)速鍵按下并且開(kāi)機(jī)有效
  53.                         {
  54.                                 Speed++;
  55.                                 if(Speed>=4)                        //循環(huán)調(diào)速
  56.                                         Speed=1;
  57.                         }
  58.                 }
  59.         }       
  60.         else
  61.         {
  62.                 key_sign=0;                                        //按鍵狀態(tài)標(biāo)志清0
  63.                 count=0;                                        //消抖計(jì)數(shù)清0
  64.         }
  65. }
  66. /*------------------------
  67.     主函數(shù)
  68. ------------------------*/
  69. void main()                                                       
  70. {
  71.         num=800;//蜂鳴器響200ms
  72.         Timer0Init();
  73.         while(1)
  74.         {
  75.                 keyscan();
  76.                 switch(Speed)
  77.                 {
  78.                         case 0: OUT1=1;OUT2=1;OUT3=1;break;//停止
  79.                         case 1: OUT1=0;OUT2=1;OUT3=1;break;//1擋
  80.                         case 2: OUT1=1;OUT2=0;OUT3=1;break;//2擋
  81.                         case 3: OUT1=1;OUT2=1;OUT3=0;break;//3擋
  82.                 }
  83.         }
  84. }
  85. /*----------------------------
  86. 中斷服務(wù)函數(shù)(驅(qū)動(dòng)無(wú)源蜂鳴器)
  87. -----------------------------*/
  88. void Timer0Interrupt(void) interrupt 1
  89. {
  90.         static uint count=0;                        //計(jì)數(shù)變量
  91.         count++;
  92.         Buzzer=~Buzzer;                                //驅(qū)動(dòng)無(wú)源蜂鳴器
  93.         if(count>=num)
  94.         {
  95.                 TR0 = 0;                                                //關(guān)閉定時(shí)器
  96.                 count=0;                                                //清0
  97.                 Buzzer=1;                                        //復(fù)位
  98.         }
  99. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:752974 發(fā)表于 2021-1-23 09:05 | 顯示全部樓層
單片機(jī)應(yīng)用編程,必須先有正確的硬件平臺(tái),控制軟件隨著硬件平臺(tái)而變。就樓主的問(wèn)題,如果是弱電控制,可以用計(jì)數(shù)的方法實(shí)現(xiàn),電源開(kāi)關(guān)計(jì)數(shù)在0和1之間循環(huán),0關(guān)風(fēng)扇,1啟動(dòng)風(fēng)扇并作為調(diào)速的必要條件。調(diào)速開(kāi)關(guān)在0,1,2(或1,2,3)之間循環(huán),0對(duì)應(yīng)1檔,1對(duì)應(yīng)2檔,2對(duì)應(yīng)3檔。
回復(fù)

使用道具 舉報(bào)

ID:826754 發(fā)表于 2021-1-23 10:47 | 顯示全部樓層
wulin 發(fā)表于 2021-1-23 08:40
有畫(huà)流程圖的時(shí)間都可以寫(xiě)完代碼了。

大神,這個(gè)代碼可以用STC8G的單片機(jī)嗎?
回復(fù)

使用道具 舉報(bào)

ID:826754 發(fā)表于 2021-1-23 11:16 | 顯示全部樓層
wulin 發(fā)表于 2021-1-23 08:40
有畫(huà)流程圖的時(shí)間都可以寫(xiě)完代碼了。

程序中這句的主要起什么作用呢?每一種芯片是不一樣的嗎?
sfr AUXR=0x8E;                                                   //輔助寄存器
回復(fù)

使用道具 舉報(bào)

ID:716656 發(fā)表于 2021-1-23 12:25 | 顯示全部樓層
川蜀浪子 發(fā)表于 2021-1-23 11:16
程序中這句的主要起什么作用呢?每一種芯片是不一樣的嗎?
sfr AUXR=0x8E;                             ...

把程序復(fù)制到keil,編譯,沒(méi)問(wèn)題。注釋掉你不懂的這一行。看看提示哪有錯(cuò)誤
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-1-23 13:59 | 顯示全部樓層
川蜀浪子 發(fā)表于 2021-1-23 11:16
程序中這句的主要起什么作用呢?每一種芯片是不一樣的嗎?
sfr AUXR=0x8E;                             ...

你沒(méi)有仔細(xì)看最前面的注釋:程序適合STC15W104。考慮樓主用8腳芯片,所以推薦此型號(hào)。51頭文件沒(méi)有AUXR寄存器。所以要定義此特殊功能寄存器。
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-1-23 14:02 | 顯示全部樓層
川蜀浪子 發(fā)表于 2021-1-23 10:47
大神,這個(gè)代碼可以用STC8G的單片機(jī)嗎?

同一公司產(chǎn)品,沒(méi)用什么特殊功能,原則上沒(méi)有問(wèn)題。
回復(fù)

使用道具 舉報(bào)

ID:826754 發(fā)表于 2021-1-23 16:04 | 顯示全部樓層
壓著我頭發(fā)啦 發(fā)表于 2021-1-23 12:25
把程序復(fù)制到keil,編譯,沒(méi)問(wèn)題。注釋掉你不懂的這一行。看看提示哪有錯(cuò)誤

請(qǐng)問(wèn)一下使用STC8F的芯片,編譯后出現(xiàn)重新定義是怎么回事?注譯掉這行代碼又可以。

51hei截圖_20210123160121.png
回復(fù)

使用道具 舉報(bào)

ID:826754 發(fā)表于 2021-1-23 16:05 | 顯示全部樓層
wulin 發(fā)表于 2021-1-23 14:02
同一公司產(chǎn)品,沒(méi)用什么特殊功能,原則上沒(méi)有問(wèn)題。

剛試了一下8F的芯片可以用。
回復(fù)

使用道具 舉報(bào)

ID:517951 發(fā)表于 2021-1-23 16:44 | 顯示全部樓層
代碼發(fā)出來(lái),看下又沒(méi)問(wèn)題
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-1-23 20:14 | 顯示全部樓層
川蜀浪子 發(fā)表于 2021-1-23 16:04
請(qǐng)問(wèn)一下使用STC8F的芯片,編譯后出現(xiàn)重新定義是怎么回事?注譯掉這行代碼又可以。

STC8F.H頭文件里已包含sfr AUXR=0x8E;當(dāng)然會(huì)提示重復(fù)定義。注釋掉即可。
回復(fù)

使用道具 舉報(bào)

ID:878420 發(fā)表于 2021-1-23 20:49 | 顯示全部樓層
學(xué)習(xí)C51半個(gè)月,一個(gè)計(jì)時(shí)小程序?qū)懖怀鰜?lái)。書(shū)能看懂,自己寫(xiě)就是寫(xiě)不出來(lái),被PLC編程邏輯固化了,用C語(yǔ)言寫(xiě),總是不對(duì),郁悶啊
回復(fù)

使用道具 舉報(bào)

ID:607312 發(fā)表于 2021-1-23 21:13 | 顯示全部樓層
munuc_w 發(fā)表于 2021-1-23 09:05
單片機(jī)應(yīng)用編程,必須先有正確的硬件平臺(tái),控制軟件隨著硬件平臺(tái)而變。就樓主的問(wèn)題,如果是弱電控制,可 ...

能不能幫忙畫(huà)一下流程圖呢,方便理解。我現(xiàn)在想不到怎么畫(huà)流程圖。萬(wàn)分感謝
回復(fù)

使用道具 舉報(bào)

ID:607312 發(fā)表于 2021-1-23 21:17 | 顯示全部樓層
wulin 發(fā)表于 2021-1-23 08:40
有畫(huà)流程圖的時(shí)間都可以寫(xiě)完代碼了。

感謝大師的指教,小弟我剛剛接觸單片機(jī)不久,我想通過(guò)流程圖的方式來(lái)增強(qiáng)理解算法的問(wèn)題。能不能幫幫忙畫(huà)一下呢
回復(fù)

使用道具 舉報(bào)

ID:420836 發(fā)表于 2021-1-24 09:49 | 顯示全部樓層
這里有很多優(yōu)秀的單片機(jī)專家提供建議。 很有幫助。
回復(fù)

使用道具 舉報(bào)

ID:880098 發(fā)表于 2021-1-24 14:01 | 顯示全部樓層
wulin 發(fā)表于 2021-1-23 08:40
有畫(huà)流程圖的時(shí)間都可以寫(xiě)完代碼了。

AUXR=0X8E先把16進(jìn)制換成2進(jìn)制,10001110,這個(gè)是規(guī)定寄存器的功能。

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:592807 發(fā)表于 2021-1-25 08:42 | 顯示全部樓層
cdiyy 發(fā)表于 2021-1-23 21:17
感謝大師的指教,小弟我剛剛接觸單片機(jī)不久,我想通過(guò)流程圖的方式來(lái)增強(qiáng)理解算法的問(wèn)題。能不能幫幫忙畫(huà) ...

流程圖就這樣。
51hei截圖20210125084124.png
回復(fù)

使用道具 舉報(bào)

ID:847443 發(fā)表于 2021-1-25 16:38 | 顯示全部樓層
你可以先用仿真的方法,這樣就不用搭建硬件,由易到難,仿真能實(shí)現(xiàn),硬件上基本就問(wèn)題不大。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 能看的av| 成人欧美一区二区三区黑人孕妇 | 国产视频h| 欧美伊人影院 | 91看片网| 99在线免费视频 | 激情伊人网| 成人在线视频免费观看 | 久久久免费观看视频 | 成人av免费| 视频一区二区国产 | 日本久久黄色 | 久久精品国产精品青草 | 九九热在线免费观看 | 成人在线中文字幕 | 99精品一区二区三区 | 波多野结衣在线观看一区二区三区 | 亚洲人免费视频 | 福利视频网 | 亚洲欧美一区二区三区1000 | 精品免费国产 | 欧美大片久久久 | 亚洲国产成人av好男人在线观看 | 亚洲一区二区三区在线 | 午夜电影日韩 | 欧美大片在线观看 | 精品入口麻豆88视频 | 国产一区二区视频在线观看 | 亚洲精品黑人 | 午夜视频在线免费观看 | 久久久精品一区二区三区 | 精品一二三区 | 亚洲欧美综合精品久久成人 | 国产亚洲成av人片在线观看桃 | 一本一道久久a久久精品蜜桃 | 国产日韩欧美 | 欧美 日韩 中文 | 亚洲在线一区 | 国产高清无av久久 | 在线观看亚洲 | 毛色毛片免费看 |