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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5678|回復: 0
收起左側

[求助]

[復制鏈接]
ID:17300 發表于 2009-9-17 14:05 | 顯示全部樓層 |閱讀模式
我的電路接法是兩組BCD開關的COM端接在P1.1和P1.2,BCD的另外四個端口分別接P1.3~P1.5上。P3.1端口接了一個LED燈,P3.2接了一個開關。我的思路是讓開關控制燈的亮滅,具體是用接在P1.1上的那個BCD上的數字控制所按的開關次數(也就是開關上顯示的是數字3,即要求連繼按3次開關......)。LED燈亮滅的時間長短由接在P1.2上的BCD開關上顯示的數字決定。(是5就過5秒鐘改變狀態,是8就過8秒鐘改變.......)我寫了個程序,可是卻達不到要求,請大家幫忙指教。 
問題補充:
程序如下
#include"reg51.h"
#include"intrins.h"
sbit p11=P1^1;
sbit p12=P1^;
sbit led=P3^1;
sbit kg=P3^2;    按鈕開關
void delay()//消除開關抖動
{  .......}
void bcdkg()  //讀入BCD開關數(這個是您寫的,因為是匯編,直接移植編譯不了,所以我把它
                        寫成了C語言,不知道對不對,請您指正)
{ uchar temp,shu,shu1;
p11=1;
p12=0;
temp=P1;
temp=~temp;
temp=_crol_(temp,2);
shu=temp&0xF;
return(shu);
}
void int0_() interrupt 0   //P3.2口的外部中斷功能,用以接受BCD送過來的次數
{  unsigned char shu;
static char counter=0;
bcdkg();                  //調用這個我的目的是想在下面貧下使用它的返回值,也就是   BCD 上顯示的數字,不知道這樣可不可以
delay();
if(INT0==0)
{  counter++;
while(INT0==0);
}
if(counter==這個地方就是BCD上顯示的數字,我用上述shu替代,實際裝上電路中卻達不到要求)
{ counter=0;
led=~led;
}
}
void main()
{ led=0;
EX0=1;
ITO=1;
EA=1;
while(1);
}

請大家幫忙看看問題出在哪,謝謝(只用了一個BCD開關用以控制按鈕開關輸入次數)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品一区二区三区在线观看 | 欧美日韩一区二区在线 | 亚洲午夜视频在线观看 | 午夜在线视频观看 | 日韩精品免费在线观看 | 亚久久| 国产欧美一区二区三区在线看蜜臀 | 最新中文字幕av | 欧美 日韩 国产 在线 | 亚洲一区二区av | 欧美日皮视频 | 日韩在线视频免费观看 | 成人深夜福利视频 | 免费人成 | 国产色一区 | 一区二区视频在线播放 | 久久精品一区二区国产 | 欧美69式性猛交 | 色哟哟一区二区三区 | 538精品视频 | 夜色在线影院 | 日韩成人免费视频 | 色综合小说| 欧美在线观看一区二区 | 久久福利网 | 日韩精品视频网站 | 亚洲久久久 | 97超碰在线播放 | 午夜久久久 | 偷偷操网站 | 在线看黄色片 | 福利视频午夜 | 永久免费看mv网站入口亚洲 | 一区在线播放 | 91av免费 | 免费看黄色一级片 | 中国久久久 | 国产三级午夜理伦三级 | 午夜aaa| 成人高清免费 | 亚欧洲精品在线视频免费观看 |