历史上的今天
今天是:2024年10月15日(星期二)
2019年10月15日 | 基于Atmega16的电压表制作 程序+原理图
2019-10-15 来源:eefocus
附带proteus设计图 电路图 大图在附件里面
/*****************************************************
Project :
Version :
Date : 2015-10-29
Author :tengzaiba
Chip type : ATmega16
AVR Core Clock frequency: 8.000000 MHz
*****************************************************/
#include #include // Declare your global variables here char LCD_7[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; char dis_buff[4]; unsigned int votage=0; unsigned int vot1; // Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) { // Place your code here // Read the 8 most significant bits // of the AD conversion result PORTC.7=~PORTC.7; delay_us(20); while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; vot1=ADCW; votage=(unsigned long)vot1*5000/1024; } void display(unsigned int vot) { // move vot to dis_buff char i; char j; for (i=0;i<4;i++) { dis_buff[i]=vot % 10; vot/=10; } // dis_buff to LEDs for (j=0;j<=3;j++) { PORTC=LCD_7[dis_buff[j]]; PORTA=~(1< PORTA=0x0f; } } void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out // State7=T State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=0 PORTA=0x00; DDRA=0x0F; // 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=0x00; // Port C initialization // Func7=In Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=T State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTC=0x00; DDRC=0xFF; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x03; TCNT0=0x00; OCR0=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x01; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC Clock frequency: 1000.000 kHz // ADC Voltage Reference: AREF pin // ADC Auto Trigger Source: Timer0 Overflow // Only the 8 most significant bits of // the AD conversion result are used ADMUX=0x47; ADCSRA=0xA3; SFIOR&=0x1F; SFIOR|=0x80; // Global enable interrupts #asm("sei") while (1) { display(votage); }; }
下一篇:AVR单片机I2C总线程序
史海拾趣
|
我的老天,发现我的2440 BSP是4.2转5.0的,而在调的SDIO驱动是5.0的;请帮忙选择方案:是重新选一个完全5.0的BSP,还是改这个5.0的SDIO 先说在4.2转5.0 BSP上已经做好的工作: 1. 我的板子没有网络,以前改过一个bootloader通过USB来下载eboot,NK.BIN,再运行eboot来烧写NK.BIN; 2. 有开发板厂家提供的LCD驱动(我的项目也就是用到LCD、WIFI) 担心与疑惑: 1. 我的板子没有网络 ...… 查看全部问答> |
|
谈谈 common.reg platform.reg project.reg 的关系 谈谈我的理解,大家看看对不对,或者还有什么补充。 common.reg 与平台无关 platform.reg 相应平台 project.reg 相应项目 它们的优先级为: project > platform > common 就是 project 中的设置会覆盖前 ...… 查看全部问答> |
|
Warning: Found duplicate entry \'binfs.dll NK C:\\WINCE420\\PUBLIC\\11\\RelDir\\SAMSUN~1\\binfs.dll 00000007\' ... skipping Error: Could not ...… 查看全部问答> |




