1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉
標題:
STC15W408單片機BCD碼控制15臺電機的程序問題
[打印本頁]
作者:
XU6238
時間:
2018-7-10 08:27
標題:
STC15W408單片機BCD碼控制15臺電機的程序問題
求高手幫我看看,有什么問題。由P1口低4位送入BCD碼,P2、P3輸出控制15臺電機。采用STC15W408。單片機程序如下
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar temp,key;
/*uchar code table[]={
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,0xff}; */
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
P3=0xff;
P2=0xff;
// P1=0xff;
while(1)
{
P3=0xff;
P2=0xff;
// P1=0xff;
temp=P1;
if(temp!=0xff)
{
delayms(20);
temp=P1;
if(temp!=0xff)
{
temp=P1;
switch(temp)
{
case 0x01:
P3=0xfe;
break;
case 0x02:
P3=0xfd;
break;
case 0x03:
P3=0xfb;
break;
case 0x04:
P3=0xf7;
break;
case 0x05:
P3=0xef;
break;
case 0x06:
P3=0xdf;
break;
case 0x07:
P3=0xbf;
break;
case 0x08:
P3=0x7f;
break;
case 0x09:
P2=0xfe;
break;
case 0x0a:
P2=0xfd;
break;
case 0x0b:
P2=0xfb;
break;
case 0x0c:
P2=0xf7;
break;
case 0x0d:
P2=0xef;
break;
case 0x0e:
P2=0xdf;
break;
case 0x0f:
P2=0xbf;
break;
}
while(temp!=0xff)
{
temp=P1;
}
P2=0xff;
P3=0xff;
}
}
}
}
復制代碼
作者:
ahshmj
時間:
2018-7-10 09:52
你的BCD編碼器是什么類型的?怎么接的(低電位有效與否)?
“ P1=0xff;”為什么要注釋掉?讀端口狀態之前,要先向端口鎖存器寫“1”(置高電平)。
作者:
ahshmj
時間:
2018-7-10 09:54
本帖最后由 ahshmj 于 2018-7-10 10:03 編輯
其他的地方沒有看完,你應該把重點說出來,這么長的程序一點點的分析一點點的看,還真沒那么多的功夫。
作者:
XU6238
時間:
2018-7-10 10:15
BCD來自紅外接收,高電平有效,經反向后為送P1口低4位
作者:
XU6238
時間:
2018-7-10 10:18
注釋掉P1=0xff,只是要看看什么結果,應該恢復
作者:
單片機小小小
時間:
2018-7-10 10:25
可以找個模擬軟件試一下
作者:
liaomi_520
時間:
2018-7-10 11:04
感覺沒有什么問題,你的現象出現在哪里?
作者:
11111cj
時間:
2018-7-10 11:49
說重點,沒時間一點點分析
作者:
XU6238
時間:
2018-7-10 15:04
讀不出數據
作者:
XU6238
時間:
2018-7-10 15:07
調試時總是在1,2,3循環
P3=0xff;
P2=0xff;
// P1=0xff;
while(1)
{
1 P3=0xff;
2 P2=0xff;
3 P1=0xff;
temp=P1;
if(temp!=0xff)
作者:
XU6238
時間:
2018-7-11 07:47
還是用不了,拜托高手指點
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1