PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > MPASM

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

MPASM Lập trình bằng hợp ngữ là một việc làm vô cùng vất vả, tuy nhiên, để hiểu và làm việc với vi điều khiển, hợp ngữ trở thành một công cụ khá đắc lực ...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 01-10-2010, 08:32 PM   #1
phamtrongvn
Nhập môn đệ tử
 
Tham gia ngày: Jan 2010
Bài gửi: 8
:
Em có đoạn code này, không biết nó sai ở đâu?

Em viết xong, và thử mô phỏng nó thì nó chạy lung tung hết, mọi người xem hộ nó sai ở đâu cái. em muốn sử dụng phương pháp quét led đẻ đỡ tốn chân

// viet chuong trinh cho led 7 doan hien thi tu 00 - 99 dieu khien bang RC0 va RC1 noi PORTB.
#include <16F877A.h>
#include <def_16f877a.h>
#bit RC0 = 0x07.0
#bit RC1 = 0x07.1
#use delay(clock=20000000)
const char ma7seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};
char giaima (char x)
{
char y;
y = ma7seg[x];
return (y);
}
void hienthi(char chuc,dv)
{
PORTB=chuc; //hien thi hang chuc
RC1=1; //chon led hang chuc
delay_ms(10); //thoi gian tre
PORTB=dv; //hien thi hang don vi
RC0=1;
delay_ms(10);
}
void main()
{
char i=0; //khai bao bien dem
char chuc=0;
char dv=0;
char chuc7s;
char dv7s;
int j=0;
// khai bao PORTB va RC0 va RC1 la dau ra
TRISB=0;
TRISC0=0;
TRISC1=0;
while (true)
{
while (i<=99)
{
for (j=0;j<=99;j++)
{
chuc = i/10;
dv = i%10;
chuc7s = giaima(chuc);
dv7s = giaima(dv);
hienthi(chuc7s,dv7s );
}
j=0;
i++;
}
}
}


Các bác sửa giúp em với . nếu được thì mô phỏng luôn giúp em
Thanks!
phamtrongvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-10-2010, 05:05 PM   #2
theanh826
Nhập môn đệ tử
 
Tham gia ngày: Sep 2010
Bài gửi: 3
:
led 7 thanh

#include <16F877a.h>
//#device ADC=10
//#include <math.h>
//#include <string.h>
//#include <stdlib.h>
#define LED1 PIN_B4 //HANG NGHIN
#define LED2 PIN_B5 //HANG TRAM
#define LED3 PIN_B6 //HANG CHUC
#define LED4 PIN_B7 //HANG DON VI
#fuses hs, nowdt, put, nolvp, brownout
#use delay(clock=20000000)
int16 a,b,i,j,dv,chuc,tram,nghin,n;
void led7()
{
nghin=a/1000;
a=a%1000;
tram=a/100;
a=a%100;
chuc=a/10;
dv=a%10;
output_b(dv|0b10000000); //hien hang don vi
delay_us(1000);
output_b(chuc|0b01000000);//hien hang chuc
delay_us(500);
output_b(tram|0b00100000);//hien hang tram
delay_us(500);
output_b(nghin|0b00010000);//hien hang nghin
delay_us(500);
}
void main()
{
set_tris_b(0x00);//chon port b lam port dau ra
set_tris_d(0x00);//chon port b lam port dau ra
while(1)
{
n++;
a=n;
led7();
}
}
///mach da tes chay ok
theanh826 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-10-2010, 05:13 PM   #3
theanh826
Nhập môn đệ tử
 
Tham gia ngày: Sep 2010
Bài gửi: 3
:
led 7 thanh

chuong trinh
File Kèm Theo
File Type: rar led 7 doan 0000-9999.rar (35.2 KB, 465 lần tải)
theanh826 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-01-2011, 09:46 PM   #4
heomoi0780
Nhập môn đệ tử
 
Tham gia ngày: Dec 2010
Bài gửi: 10
:
Trích:
Nguyên văn bởi theanh826 View Post
#include <16F877a.h>
//#device ADC=10
//#include <math.h>
//#include <string.h>
//#include <stdlib.h>
#define LED1 PIN_B4 //HANG NGHIN
#define LED2 PIN_B5 //HANG TRAM
#define LED3 PIN_B6 //HANG CHUC
#define LED4 PIN_B7 //HANG DON VI
#fuses hs, nowdt, put, nolvp, brownout
#use delay(clock=20000000)
int16 a,b,i,j,dv,chuc,tram,nghin,n;
void led7()
{
nghin=a/1000;
a=a%1000;
tram=a/100;
a=a%100;
chuc=a/10;
dv=a%10;
output_b(dv|0b10000000); //hien hang don vi
delay_us(1000);
output_b(chuc|0b01000000);//hien hang chuc
delay_us(500);
output_b(tram|0b00100000);//hien hang tram
delay_us(500);
output_b(nghin|0b00010000);//hien hang nghin
delay_us(500);
}
void main()
{
set_tris_b(0x00);//chon port b lam port dau ra
set_tris_d(0x00);//chon port b lam port dau ra
while(1)
{
n++;
a=n;
led7();
}
}
///mach da tes chay ok
với đoạn code trên cuả theanh826 thì nều muốn đếm chậm lại thì phải sửa lại chổ nào, xin các pác chỉ giúp?
heomoi0780 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 12:57 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam