欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機控制3開關(guān),沒開關(guān)控制3led,分別按下循環(huán)點亮

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:28752 發(fā)表于 2021-10-12 15:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
新手,先做個功能,3個按鍵,每個按鍵分別控制3個燈循環(huán)點亮,使用STC15F204EA,在網(wǎng)上找的程序片段拼的,但是編譯不過,好多錯誤,麻煩大神幫我看看,我到底錯在哪了,謝謝...
#include <STC15X.h>
sbit key1 = P3^7;//定義按鍵端口
sbit key2 = P3^6;//定義按鍵端口
sbit key3 = P3^5;//定義按鍵端口
sbit led1 = P1^7;//定義LED1端口
sbit led2 = P1^6;//定義LED1端口
sbit led3 = P1^5;//定義LED1端口
sbit led4 = P1^4;//定義LED1端口
sbit led5 = P1^3;//定義LED1端口
sbit led6 = P1^2;//定義LED1端口
sbit led7 = P1^1;//定義LED1端口
sbit led8 = P1^0;//定義LED1端口
sbit led9 = P2^7;//定義LED1端口
/******************delay**********************/
void delay()
{
unsigned int i, j;
for(i = 0; i < 100; i++) for(j = 0; j < 500; j++);
}

/******************按鍵識別***********************/
void readkey(void)
{
unsigned char i, j;
if(!key1) {
for(i = 0; i < 10; i++)
for(j = 0; j < 120; j++); //????
while(!key1); //??????
aa++;
aa %= 3; //n1 = 0~2
}
        if(!key2) {
for(i = 0; i < 10; i++)
for(j = 0; j < 120; j++); //????
while(!key2); //??????
bb++;
bb %= 3; //n2 = 0~2
}
if(!key3) {
for(i = 0; i < 10; i++)
for(j = 0; j < 120; j++); //????
while(!key3); //??????
cc++;
cc %= 3; //n3 = 0~2
}
}
}
/******************主函數(shù)***********************/
void main()
{
while(1)
{
switch(aa) {
case 0: led1 = 1;led2 = 0;led3 = 0; readkey();  //??
case 1: led1 = 0;led2 = 1;led3 = 0; readkey();  //??
case 2: led1 = 0;led2 = 0;led3 = 1; readkey();  //??
}
switch(bb) {
case 0: led4 = 1;led5 = 0;led6 = 0; readkey(); //??
case 1: led4 = 0;led5 = 1;led6 = 0; readkey(); //??
case 2: led4 = 0;led5 = 0;led6 = 1; readkey(); //??
}
switch(cc) {
case 0: led7 = 1;led8 = 0;led9 = 0; readkey(); //??
case 1: led7 = 0;led8 = 1;led9 = 0; readkey(); //??
case 2: led7 = 0;led8 = 0;led9 = 1; readkey(); //??
}
}
}


000.jpg (399.48 KB, 下載次數(shù): 64)

000.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:831736 發(fā)表于 2021-10-12 17:58 | 只看該作者
47行多了一個括號,然后你的aa,bb,cc,沒有聲明,還有你的頭文件(#include<STC15X.h>)也有問題,我沒有用過這個單片機,不知道改加什么頭文件好。
回復(fù)

使用道具 舉報

板凳
ID:624769 發(fā)表于 2021-10-12 18:53 | 只看該作者
找不到頭文件,用不了P3, 所以錯誤一大堆。
STC15F204E 的頭文件, 和 STC15F104E 是通用的,和其他STC15系列略有不同,你要是找不到可以用這個。
STC15F104E.rar (1.87 KB, 下載次數(shù): 5)

回復(fù)

使用道具 舉報

地板
ID:959346 發(fā)表于 2021-10-12 22:45 | 只看該作者
找不到你包含的頭文件,所以預(yù)定義的寄存器名稱也都會報錯。
回復(fù)

使用道具 舉報

5#
ID:161164 發(fā)表于 2021-10-13 00:15 | 只看該作者
switch內(nèi)要加break;分開每個case
不加就會后面那幾個case都走一遍
回復(fù)

使用道具 舉報

6#
ID:28752 發(fā)表于 2021-10-13 09:45 | 只看該作者
謝謝各位大佬回復(fù),反反復(fù)復(fù)的查...總算是能編譯過了...,以前一直在弄硬件...,看來...學(xué)習(xí)的路還很長...
回復(fù)

使用道具 舉報

7#
ID:28752 發(fā)表于 2021-10-13 09:46 | 只看該作者
188610329 發(fā)表于 2021-10-12 18:53
找不到頭文件,用不了P3, 所以錯誤一大堆。
STC15F204E 的頭文件, 和 STC15F104E 是通用的,和其他STC15 ...

是找不到頭文件,我換成c51的就好了
回復(fù)

使用道具 舉報

8#
ID:28752 發(fā)表于 2021-10-13 09:51 | 只看該作者
以下代碼能編譯過,各位大佬幫看看能不能實現(xiàn)功能,開發(fā)板在路上,3按鍵分別,控制3組12個led,按下開關(guān),對應(yīng)的LED順序點亮,再按下,關(guān)閉...
  1. #include "reg51.h"
  2. sbit key1 = P3^7;  //定義按鍵端口
  3. sbit key2 = P3^6;  //定義按鍵端口
  4. sbit key3 = P3^5;  //定義按鍵端口
  5. sbit led1 = P1^7;  //定義LED端口
  6. sbit led2 = P1^6;  //定義LED端口
  7. sbit led3 = P1^5;  //定義LED端口
  8. sbit led4 = P1^4;  //定義LED端口
  9. sbit led5 = P1^3;  //定義LED端口
  10. sbit led6 = P1^2;  //定義LED端口
  11. sbit led7 = P1^1;  //定義LED端口
  12. sbit led8 = P1^0;  //定義LED端口
  13. sbit led9 = P2^7;  //定義LED端口
  14. sbit led10 = P2^6; //定義LED端口
  15. sbit led11 = P2^5; //定義LED端口
  16. sbit led12 = P2^4; //定義LED端口
  17. unsigned char a, b, c;
  18. /******************delay**********************/
  19. void delay(unsigned char i)

  20. {
  21.    
  22. unsigned char m, n;
  23.    
  24. for (m = i; m>0; m--)
  25.    
  26. for (n = 125; n>0; n--);

  27. }
  28. /******************按鍵識別***********************/
  29. void readkey(void)
  30. {
  31. if(!key1) {
  32. delay(10);
  33. if(!key1) {
  34. while(!key1); //??????
  35. a++;
  36. a %= 2; //n = 0~1
  37. }
  38. }
  39. if(!key2) {
  40. delay(10);
  41. if(!key2) {
  42. while(!key2); //??????
  43. b++;
  44. b %= 2; //n = 0~3
  45. }
  46. }
  47. if(!key3) {
  48. delay(10);
  49. if(!key3) {
  50. while(!key3); //??????
  51. c++;
  52. c %= 2; //n = 0~3
  53. }
  54. }
  55. }
  56. /******************主函數(shù)***********************/
  57. void main()
  58. {
  59. while(1)
  60. {
  61. readkey();
  62. switch(a) {
  63. case 0: led1 = 1;delay(200);led2 = 1;delay(200);led3 = 1;delay(200);led4 = 1; break;
  64. case 1: led1 = 0;led2 = 1;led3 = 0;led4 = 0 ; break;   
  65. }
  66. switch(b) {
  67. case 0: led5 = 1;delay(200);led6 = 1;delay(200);led7 = 1;delay(200);led8 = 1;break;  
  68. case 1: led5 = 0;led6 = 0;led7 = 0;led8 = 0 ; break;   
  69. }
  70. switch(c) {
  71. case 0: led9 = 1;delay(200);led10 = 1;delay(200);led11 = 1;delay(200);led12 = 1;break;  
  72. case 1: led9 = 0;led10 = 1;led11 = 0;led12 = 0 ; break;   
  73. }
  74. }
  75. }
復(fù)制代碼


回復(fù)

使用道具 舉報

9#
ID:624769 發(fā)表于 2021-10-13 10:47 | 只看該作者
grb7906 發(fā)表于 2021-10-13 09:46
是找不到頭文件,我換成c51的就好了

STC15F204E最好不要用 C51頭文件,寄存器變化還是比較大的。很可能會出現(xiàn),編譯通過,燒錄后確莫名其妙的功能不正常。
回復(fù)

使用道具 舉報

10#
ID:28752 發(fā)表于 2021-10-13 14:30 | 只看該作者
188610329 發(fā)表于 2021-10-13 10:47
STC15F204E最好不要用 C51頭文件,寄存器變化還是比較大的。很可能會出現(xiàn),編譯通過,燒錄后確莫名其妙的 ...

明白,謝謝提醒...
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表