Em đang làm đồ án vi xử lý msp430 ạ. Em đang cần biến đổi ADC10 cùng lúc cho nhiệt độ và độ ẩm hiển thị lên LCD. Mà thầy bận quá nên chỉ kịp dạy biến đổi 1 kênh thôi(1 kênh cũng dễ) . Tuy trong sách có viết nhưng đọc ko hiệu ạ. Nhờ các cao nhân trợ giúp với, em cảm ơn. Dưới là đoạn code của em. Viết nó vẫn chạy nhưng độ ẩm mà thay đổi là nhiệt độ cũng đôi theo luôn. em đã mò suốt 3 ngày rồi mà ko ra
Thông báo
Collapse
No announcement yet.
Biến đổi ADC 2 kênh dùng MSP430
Collapse
X
-
#include "msp430g2553.h"
#include "LCDP1.h"
void adcnhiet(void) ///bien doi adc kenh 6 luu vao bien 'nhiet' hien thi lcd
{ float nhiet1;int nhiet;
ADC10CTL0 &=~ ENC;
while(ADC10CTL1 & BUSY);
ADC10CTL1 = INCH_6 + CONSEQ_2;//kenh A6
ADC10AE0 |= 0x40;//P1.6
ADC10CTL0 |= ENC + ADC10SC;//bat dau chuyen doi adc
__bis_SR_register(CPUOFF + GIE);
nhiet1 = (float)((ADC10MEM*3.3*100)/1023);
nhiet = (int)nhiet1/1;
if(nhiet<30)
P2OUT |= BIT0;
else
P2OUT &=~ BIT0;
lcd_gotoxy(10,0);
lcd_3n(nhiet);
}
void adcam(void) ///bien doi adc kenh 7 luu vao bien 'doam' hien thi lcd
{ float doam1; int doam;
ADC10CTL0 &=~ ENC;
while(ADC10CTL1 & BUSY);
ADC10CTL1 = INCH_7 + CONSEQ_2;//kenh A7
ADC10AE0 |= 0x80;//P1.7
ADC10CTL0 |= ENC + ADC10SC;//bat dau chuyen doi adc
__bis_SR_register(CPUOFF + GIE);
lcd_gotoxy(7,1);
doam1 = (float)(100-(ADC10MEM-400)/6);
doam = (int)doam1/1;
if(doam>100) doam=100;
lcd_3n(doam);
}
//////////////////////////////////////
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
P1DIR |= BIT2 + BIT3 + BIT4 + BIT5 + BIT0 + BIT1 ;//port 1 ngo ra
P2DIR |= BIT0;
lcd_init();//khoi tao lcd
lcd_clear();//xoa man hinh lcd
lcd_gotoxy(0,0); lcd_puts("Nhiet do: ");
lcd_gotoxy(13,0); lcd_puts("'C");
lcd_gotoxy(0,1); lcd_puts("Do am: ");
lcd_gotoxy(10,1); lcd_puts("%");
//khoi tao adc10 voi thoi gian lay mau va giu mau la 16*ADC10clock, chon dien the tham chieu noi avcc=3.3V, bat ADC10, cho phep ngat ADC10
ADC10CTL0 = ADC10SHT_2 + REFON + ADC10ON + ADC10IE;
__delay_cycles(30);
while(1)
{
adcnhiet();
adcam();
__delay_cycles(1000000);
}
}
//chuong trinh con phuc vu ngat
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{__bic_SR_register_on_exit(CPUOFF);}
Bài viết mới nhất
Collapse
-
Trả lời cho Mạch tự động bật nguồnbởi nhathung1101Lão hôm nay uốn mấy lọ? Làm tôi đọc bài của lão toát cả mồ hôi, mãi khi nhìn sơ đồ mới hiểu....
Aiza... Lão lại đi về thời 0.4 rồi! Giờ cảm biến và trợ lý và thiết bị có đầy...
Tôi về đến Pháp Vân, gọi...-
Channel: Điện tử gia dụng
Hôm qua, 23:30 -
-
bởi nguyendinhvanĐa số các đồ điện là cứ có điện là sẽ hoạt động.
Nhưng ngày nay, nhiều thiết bị điện có điều khiển không tự hoạt động khi có điện nguồn. Máy chỉ ở chế độ stanby, tới khi người sử dụng nhấn phím power.
Ví dụ...-
Channel: Điện tử gia dụng
Hôm qua, 21:02 -
-
bởi nhathung1101Muốn đặt gì thì cũng phải có thông tin cơ bản. Việc nhỏ thế này mà phải dấu giếm thì người lớn không thèm làm đâu.
Cho bạn 3 ngày, không là sẽ xóa.-
Channel: Đặt hàng
22-12-2024, 22:02 -
-
Trả lời cho Hỏi cách điều chế xungbởi nhathung1101Schmit Trigger là chuẩn với điều kiện rise > 0,8V.
Bí thì dùng vi với tích gì đó, miễn đừng nói phân kẻo chó ở đây lại sủa nhặng.-
Channel: Kỹ thuật điện tử tương tự
22-12-2024, 21:57 -
-
bởi trungautMình cần đặt hàng thiết kế chế tạo mạch nghịch lưu 3 pha để cài đặt các thuật toán điều khiển động cơ FOC, DTC, ... Xin liên hệ trungaut@gmail.com để bàn chi tiết. Xin cảm ơn diễn dàn đăng tin!
-
Channel: Đặt hàng
22-12-2024, 14:27 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi tuyennhanCách ly dây điện vào , bộ nguồn và đèn khỏi khung xe thì có rò thật cũng không lo bị giật .
-
Channel: Điện tử dành cho người mới bắt đầu
21-12-2024, 08:56 -
-
Trả lời cho Hỏi cách điều chế xungbởi thetungBạn cho qua cái Tờ ri gơ Sờ mít ấy ......
-
Channel: Kỹ thuật điện tử tương tự
16-12-2024, 11:26 -
Comment