Kết quả 1 đến 4 của 4
-
12-11-2015, 04:32 AM #1
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
nhờ các sư huynh giúp về chống dội nút nhấn
em đang làm bài tập lớn về VĐK đã được trên mô phỏng protus nhưng đến khi nap và chay trên ic thi nút nhấn bị dội rất mạnh khí nhấn nút đèn sáng không đúng mà bị nhảy dưới đây là code và mạch mô phỏng
""
#include<AT89x51.h>
#include <delay.h>
sbit out=P1^6;//Khai bao chan OUT
void PWM(void);
unsigned char dem=0,ptram_xung,a=0;
unsigned int j;
void ngatngoai_0(void) interrupt 0
{
TR0=0; //dung timer0
if(a<9) a=a+1;
else a=9;
TR0=1;
}
void int_timer() interrupt 1
{
TF0=0;
dem++;
if(dem<ptram_xung)
{
out=1;//out muc 1 theo % xung
}else
{
out=0;
}
if(dem==100) dem=0;
}
void ngatngoai_1(void) interrupt 2
{
TR0=0;
if(a>0) a=a-1;
else {a=0;out=0;}
TR0=1;
}
void PWM(void)
{
if(a==0) {
out=0;
ptram_xung=0;
P2=0x00;
P0=0x3f;
P1_0=0;
}
else {
if(a==1) { ptram_xung=10;P2=0x00;P1_0=1; } //break;
if(a==2) { ptram_xung=20;P2=0x01; } //break;
if(a==3) { ptram_xung=30;P2=0x03; }// break;
if(a==4) {ptram_xung=40;P2=0x07; } //break;
if(a==5) {ptram_xung=50;P2=0x0F; } //break;
if(a==6) {ptram_xung=60;P2=0x1F; } //break;
if(a==7) {ptram_xung=70;P2=0x3F;} // break;
if(a==8) {ptram_xung=80;P2=0x7F;} //break;
if(a==9) {ptram_xung=90;P2=0xFF; } //break;
/////////////////////////////////////
if(a==1) { ptram_xung=10;P0=0x06; } //break;
if(a==2) { ptram_xung=20;P0=0x5b; } //break;
if(a==3) { ptram_xung=30;P0=0x4f; }// break;
if(a==4) {ptram_xung=40;P0=0x66; } //break;
if(a==5) {ptram_xung=50;P0=0x6d; } //break;
if(a==6) {ptram_xung=60;P0=0x7d; } //break;
if(a==7) {ptram_xung=70;P0=0x07;} // break;
if(a==8) {ptram_xung=80;P0=0x7f;} //break;
if(a==9) {ptram_xung=90;P0=0x6f; }
}
}
void main(){
//SCON=0X52;
TMOD=0x22;//Chon timer0, che do 8bit tu nap lai, timer 1 che do 2
TH0=TL0=0x9b;//Nap gia tri de chon tan so ra
//TH1=0xFD;
ET0=1;//Ngat timer0
//ES=1;
TR0=1;//Khoi dong timer0
//TR1=1;
EX0=1;// cho phe?p ng??t ngoa?i 0
IT0=1; // ng??t theo s???n xung
EX1=1;// cho phe?p ng??t ngoa?i 0
IT1=1; // ng??t theo s???n xung
EA=1;//Cho phep ngat
//out_nguoc=0;
P2=0x00;
//thuan=1; nguoc=0;
while(1){
PWM();
}
}View more random threads:
- Cần giúp: Cho em hỏi về mạch sạc acquy 12v 100ah, sạc theo dạng 3 giai đoạn.
- Mạch nguồn 5v 3a
- Các phương pháp học tại nhà hiệu quả cho học sinh trong mùa dịch
- Những vấn đề cần xem xét lúc mua bán Nhà Đất Bến Tre
- Cách Khởi động động cơ KĐB 3 pha bằng dung dịch muối loãng Na2CO3
- đặc điểm trần căng xuyên sáng barrisol
- Xin phần mềm giả lập kit
- Ra mắt cổng game bài đa nền tảng VIPGAME
- Cơ hội việc làm cho sinh viên ra trường
- Kho hàng tự động
-
12-11-2015, 10:26 AM #2
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Bỏ code vào tag code nhé bạn. Debounce dùng code thì chỉ việc delay một khoảng thời gian sau khi detect nút nhấn thôi. Điều chỉnh khoảng này dài ngắn tuỳ theo yêu cầu.
-
12-11-2015, 01:11 PM #3
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi phucnguyen0
Bạn cũng nên kết hợp chống dội phím bằng phần cứng, có rất nhiều cách, tham khảo ở đây nhé Input Interfacing Circuits Connect to the Real World
-
12-11-2015, 03:11 PM #4
Junior Member
- Ngày tham gia
- Jun 2016
- Bài viết
- 0
cám ơn các sư huynh nhiều em sẽ áp dụng ngay
Nên dùng chất bôi trơn vùng kín tự...
Hôm nay, 04:29 PM in Rao vặt tổng hợp