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
Biến đổi ADC 2 kênh dùng MSP430
Collapse
X
-
Tags: None
-
#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
-
bởi domar123Giải pháp toàn diện cho người dùng đa nhiệm
Nếu bạn đang cần một bộ máy vừa phục vụ công việc chuyên môn nặng vừa đáp ứng nhu cầu giải trí cao cấp, sự kết hợp giữa Ryzen 9 9950X TRAY và Radeon RX 9070 XT 16GB là lựa chọn...-
Channel: Đánh giá sản phẩm DTVN
Hôm qua, 17:12 -
-
bởi lvhnKhác nhau là đi lái thuê hoặc chạy dịch vụ được
...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 15:50 -
-
bởi ittcHic, sao nhiều anh em khuyên là đàn ông đã học thì học luôn số sàn chứ đừng học số tự động anh....-
Channel: Tâm tình dân kỹ thuật
16-08-2026, 17:46 -
-
bởi mèomướp1. Tìm hiểu đc thì càng tốt, bận thì thôi. Ko cần quá quan trọng
2. Số tự động cho đơn giản, kiểu như đi xe ga ấy ạ
3. Học lý thuyết tử tế ok
4.ok
5.có. đủ số km, tgian cầm lái là đc
6.đi ăn tập thể,...-
Channel: Tâm tình dân kỹ thuật
14-08-2026, 16:34 -

Comment