1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

Bai VD ATmega8 cua thay Cuong

Thảo luận trong 'Trao đổi kiến thức' bắt đầu bởi tammttg, 16 Tháng ba 2009.

  1. tammttg Member

    Số bài viết: 181
    Đã được thích: 0
    Điểm thành tích: 16
    Minh lam duoc rui day [IMG] [IMG]

    [IMG]

    [IMG]

    Code tham khao day:
    ...
    #include <mega8.h>

    // Standard Input/Output functions
    #include <stdio.h>
    #include <delay.h>
    #include <stdlib.h>

    // Declare your global variables here
    #define ADC_VREF_TYPE 0xE0
    // Read the 8 most significant bits
    // of the AD conversion result
    unsigned char read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input|ADC_VREF_TYPE;
    // Start the AD conversion
    ADCSRA|=0x40;
    // Wait for the AD conversion to complete
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCH;
    }
    void main(void)
    {
    // Declare your local variables here
    int i;
    unsigned char n;
    float Vin;
    char str[5];
    // Input/Output Ports initialization
    // Port B initialization
    ...
    ACSR=0x80;
    SFIOR=0x00;

    // ADC initialization
    // ADC Clock frequency: 115.200 kHz
    // ADC Voltage Reference: Int., cap. on AREF
    // Only the 8 most significant bits of
    // the AD conversion result are used
    ADMUX=ADC_VREF_TYPE;
    ADCSRA=0x86;

    while (1)
    {
    // Place your code here
    n=read_adc(0);
    Vin=++n*2.56/256;
    ftoa(Vin,2,str);
    printf("ADC0 = %d\n\r",n);
    printf("Vin0 = %sV\n\r",str);
    ...
    for(i=1;i<=5;i++)
    {
    n=read_adc(i);
    ...
    printf("Vin%u = %sV\n\r",i,str);
    }
    printf("\n\r");
    delay_ms(2000);
    };
    }
  2. whitebank Member

    Số bài viết: 71
    Đã được thích: 3
    Điểm thành tích: 8
    <span style="font-size:12pt;line-height:100%">Congratulaion !!!
    I haven't done that yet ! So poor am i.

    Chúc mừng !!!
    Tớ chưa làm được nữa! Thật tội quá đi thôi .</span> [IMG]
  3. minhhungspk Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
  4. tammttg Member

    Số bài viết: 181
    Đã được thích: 0
    Điểm thành tích: 16
    <div class='quotetop'>QUOTE(Chú Thích)(whitebank @ Mar 16 2009, 09:46 PM) <{POST_SNAPBACK}></div><div class='quotemain'><span style="font-size:12pt;line-height:100%">Congratulaion !!!
    I haven't done that yet ! So poor am i.

    Chúc mừng !!!
    Tớ chưa làm được nữa! Thật tội quá đi thôi .</span> [IMG][/b][/quote]

    Mr Phuc lam minh ngai qua [IMG]

    Tranh thu lam som di, rui post len cho anh em hoc hoi voi

    [IMG]
  5. minhhungspk Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
  6. tammttg Member

    Số bài viết: 181
    Đã được thích: 0
    Điểm thành tích: 16
    <div class='quotetop'>QUOTE(Chú Thích)(minhhungspk @ Mar 17 2009, 04:43 PM) <{POST_SNAPBACK}></div><div class='quotemain'>MR Phuc bao code cua Tam no lam k chay!!
    Proteus cua Phuc bi loi roi.cai lai la ok thui [IMG][/b][/quote]
    Doan code da trich la hoan toan chinh xac [IMG]
    Ngoai ra con phai chinh lai tang so xung clock (7.3728MHz) trong CodeVision va trong ATMEGA8 cua Proteus cho dong bo
    Trong tab USART chon Transmitter toc do 9600 v.v...
    Thu lai xem [IMG]
  7. letanbaospkt06 Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
  8. hoangleanh87 New Member

    Số bài viết: 244
    Đã được thích: 5
    Điểm thành tích: 0
  9. kitprocdt Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
    wow!!!! mấy bạn lớp minh pro wa. mình làm mấy bữa nay mà hok bit bắt đầu từ đâu? phải học hỏi anh em mà cố gắng mới được.kekekeke [IMG]
  10. whitebank Member

    Số bài viết: 71
    Đã được thích: 3
    Điểm thành tích: 8
    <span style="font-size:14pt;line-height:100%">Ố là la, cuối cùng ta cũng làm xong ! [IMG]
    Nguyễn Hữu Phúc
    06111077
    061111B</span>

    [IMG]
  11. volongsi Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
  12. japanwin299 Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
    Nguyễn Lê Nhật Thắng
    06111096
    lớp : 06111096
    nhatthang299@gmail.com
    [IMG]
    code:
    while (1)
    {
    printf(" KET QUA CHUYEN DOI :\n\r");
    printf("\n\r");
    for(i=0;i<=5;i++)
    {
    n=read_adc(i);
    if(n!=0)
    {
    n=n+1;
    }
    Vin=n*(2.56/256);
    printf(" *Kenh %d",i+1);
    printf(":\n\r");
    printf(" ADC%d",i);
    printf("=%d\n\r",n);
    ftoa(Vin,2,mystr);
    printf(" Vin%d",i);
    printf("=%sV\n\r",mystr);
    if(i==0)
    { printf(" ==> Kenh 1 co :");
    if(Vin>2)
    {
    printf("Vin>2v\n\r");
    }
    if((Vin>1)&(Vin<2))
    {
    printf("1<Vin<2\n\r");
    }
    if(Vin<1)
    {
    printf("Vin<1\n\r");
    }
    }

    }
    printf("\n\r");
    printf("\n\r");
    // Place your code here
    delay_ms(5000);
  13. japanwin299 Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
  14. whitebank Member

    Số bài viết: 71
    Đã được thích: 3
    Điểm thành tích: 8
  15. minhtan_cdt06 Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
  16. jackauk New Member

    Số bài viết: 4
    Đã được thích: 0
    Điểm thành tích: 0
    Nguyễn Mạnh Hiển 06111031

    Cái này thay vì dùng điên áp tham chiếu 2.56 ( nguồn nội hoặc pin ngoài ) mình dùng luôn nguồn 5V để phù hợp với cái điện áp vào
    [IMG]
  17. thanhtraute New Member

    Số bài viết: 2
    Đã được thích: 0
    Điểm thành tích: 0
  18. hongphilong0511 New Member

    Số bài viết: 26
    Đã được thích: 0
    Điểm thành tích: 0
  19. minhtaispkt Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
  20. letanbaospkt06 Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
  21. letanbaospkt06 Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
  22. thuong_han New Member

    Số bài viết: 12
    Đã được thích: 0
    Điểm thành tích: 1
  23. kitprocdt Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
    4 minh hỏi chút nha minh dang xài protus 7.4 sp3 sau mình cung ghi code jong dzậy mà no hok chạy????? như dzậy là seo hok lẽ protus of mình xài hok dượ hả. bạn nào bít thì cho ý kiến dzùm nha. 10k
  24. tuanteocdt New Member

    Số bài viết: 13
    Đã được thích: 0
    Điểm thành tích: 0
  25. huytin New Member

    Số bài viết: 7
    Đã được thích: 0
    Điểm thành tích: 0
    Phan Huy Tin
    06111103
    lớp : 061112B
    fanhuytin@yahoo.com
    [IMG]
    <code>
    /*****************************************************
    This program was produced by the
    CodeWizardAVR V1.25.9 Evaluation
    Automatic Program Generator
    © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com

    Project :
    Version :
    Date : 3/16/2009
    Author : Freeware, for evaluation and non-commercial use only
    Company :
    Comments:


    Chip type : ATmega8
    Program type : Application
    Clock frequency : 7.372800 MHz
    Memory model : Small
    External SRAM size : 0
    Data Stack size : 256
    *****************************************************/

    #include <mega8.h>

    // Standard Input/Output functions
    #include <stdio.h>

    #include <delay.h>
    #include <stdlib.h>

    #define ADC_VREF_TYPE 0xE0
    #define led PORTB.0

    // Read the 8 most significant bits
    // of the AD conversion result
    unsigned char read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
    // Delay needed for the stabilization of the ADC input voltage
    delay_us(10);
    // Start the AD conversion
    ADCSRA|=0x40;
    // Wait for the AD conversion to complete
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCH;
    }

    // Declare your global variables here
    const char alarm1[28] = ">>>Kenh 0: Vin0 > 2V.....";
    const char alarm2[28] = ">>>Kenh 0: Vin0 < 1V.....";


    void main(void)
    {
    // Declare your local variables here
    unsigned char i,j;
    unsigned char n;
    float Vin;
    char out[11];

    // Input/Output Ports initialization
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTB=0x00;
    DDRB=0xff;

    // Port C initialization
    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTC=0x00;
    DDRC=0x00;

    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTD=0x00;
    DDRD=0x00;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    TCCR0=0x00;
    TCNT0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer 1 Stopped
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer 1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer 2 Stopped
    // Mode: Normal top=FFh
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    MCUCR=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;

    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: Off
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud Rate: 9600
    UCSRA=0x00;
    UCSRB=0x08;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x2F;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;

    // ADC initialization
    // ADC Clock frequency: 921.600 kHz
    // ADC Voltage Reference: Int., cap. on AREF
    // Only the 8 most significant bits of
    // the AD conversion result are used
    ADMUX=ADC_VREF_TYPE & 0xff;
    ADCSRA=0x83;

    while (1)
    {
    // Place your code here
    printf(" ====== =========== \n\r");
    for ( i = 0;i <=5;i ++)
    {
    delay_ms(200);
    n = read_adc(i);
    Vin = (float)++n*(2.56/256);
    ftoa(Vin,2,out);
    printf("ADC%d = %d ",i,n);
    printf("Vin%d = %s\n\r",i,out);
    //kiem tra kenh 1 co Vin < 1V hoac Vin > 2V
    if ( i ==0)
    {
    if (n == 0)
    {
    led =1;
    printf(">>>Kenh 0: Vin0 > Vref....\n\r");delay_ms(600);
    }
    else
    if (Vin > 2.00)
    {
    led =1; //bat led kiem tra sang
    for (j = 0;j < 26;j++)
    {
    putchar(alarm1[j]);//xuat chuoi thong bao Kenh 1...
    delay_ms(30);
    }
    printf("\n\r");
    }
    else
    if (Vin < 0.999997)
    {
    led = 1;
    for (j = 0;j < 26;j++)
    {
    putchar(alarm2[j]);
    delay_ms(30);
    }
    printf("\n\r");
    }
    led =0; //off led
    }
    }

    };
    }
  26. hongduycdt Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
  27. whitebank Member

    Số bài viết: 71
    Đã được thích: 3
    Điểm thành tích: 8
    <div class='quotetop'>QUOTE(Chú Thích)(kitprocdt @ Mar 21 2009, 09:41 AM) <{POST_SNAPBACK}></div><div class='quotemain'>4 minh hỏi chút nha minh dang xài protus 7.4 sp3 sau mình cung ghi code jong dzậy mà no hok chạy????? như dzậy là seo hok lẽ protus of mình xài hok dượ hả. bạn nào bít thì cho ý kiến dzùm nha. 10k[/b][/quote]

    Bạn xem lại : 1. Con Atmega8 của bạn đã load file Hex chưa
    2. Chỉnh xung clock thạch anh có đúng với đoạn code chưa (thử cho xung là 7.3728MHz, hoặc 8MHz).
    Chào.
  28. minhhungspk Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
    [IMG]
    Chao ban Kitprocdt!
    Proteus 7.4 vi tri chan cua ATEMEGA 8 khac 7.1.Ban nen xem ki lai.
    Neu ban noi chan dung ma con k chay.Ban thu doi Virtual ternimal khac xem.xoa cai cu di.Nho la khi bam play de chay ban k nen nhap chuot vao vung thiet ke,ban proteus cua minh cung hay bi loi cho do lam.chi khi nao bam stop roi mun lam j tuy thich.
    Mot so dieu trao doi cung ban.chao ban.chuc thanh cong

    [IMG][IMG][IMG][IMG][IMG][IMG][IMG][IMG][IMG][IMG][IMG]
  29. thienbinh_spkt New Member

    Số bài viết: 16
    Đã được thích: 0
    Điểm thành tích: 1
  30. Già làng Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
  31. tranphongduong New Member

    Số bài viết: 8
    Đã được thích: 0
    Điểm thành tích: 0
  32. kitprocdt Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
  33. kitprocdt Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
    Sau bao nhiêu ngày lang thang cuối cùng cũng có thành quả. chân thành cảm ơn sự giúp đỡ nhiệt tình của Nhật Thắng_bến tre nha.kekeke
  34. nguyenngoctuan_a1 New Member

    Số bài viết: 6
    Đã được thích: 0
    Điểm thành tích: 0
  35. nguyenngoctuan_a1 New Member

    Số bài viết: 6
    Đã được thích: 0
    Điểm thành tích: 0
  36. thanh_tb New Member

    Số bài viết: 28
    Đã được thích: 0
    Điểm thành tích: 0

Chia sẻ trang này