本文目录一览

1,用一个ATMEGA8能够实现接收脉冲并计数把数字显示到数码管 当脉冲

除了接受脉冲的那个引脚,使用外部中断或者是外部计数之外,继电器、数码管的引脚可以随意分配,任何IO口都是可以的。为了编程方便,同一个数码管的引脚分配在单片机的同一类引脚上,比如都分配在PC口上

用一个ATMEGA8能够实现接收脉冲并计数把数字显示到数码管 当脉冲

2,8位单片机stm8s和ATmega8有什么区别

stm8s是ST公司根据6502 CPU扩展指令集创造的CPU,并且集成了常用外设的单片机。ATMega8是Atmel公司根据自有的 AVR CPU 集成了常用外设的单片机。两种单片机都是8位的,但CPU内核不同,编程软件也不同,而就外设来说,都是各家厂商自己设计的外设,基本没有共同点。

8位单片机stm8s和ATmega8有什么区别

3,集成电路ATMEGA8L8PU的作用是什么

ATMEGA8L-8PU是Atmel 的8位单片机,可以做小型控制芯片用。 程序存储器类型: Flash 程序存储器大小: 8 KB 数据 RAM 大小: 1 KB 工作电源电压: 2.7 V to 5.5 V 最大工作温度: + 85 C 封装: PDIP-28 最小工作温度: - 40 C

集成电路ATMEGA8L8PU的作用是什么

4,ATMEGA848是什么有什么功能各个管脚的作用是什么

ATMEGA8/48都是AVR单片机,atmega8有8K字节flash,atmega48有4K字节flash,其他功能差不多,可以在百度中搜索关键词(不要忘了空格):“atmega8 中文 pdf”下载看看。在protues仿真的Microprocessor ICs库中;在protel DXP中的Atmel Microcontroller 8-Bit AVR.IntLib库中。
atmega8引脚图

5,用Atmega8做一个程序要求用电位器控制10Khz的脉冲波占空比

楼上的还没给啊,我给你吧。电位器3脚接地,1脚接正,2脚接ad0 unsigned int ad0;//定义个变量,用于存储ad值//下面是pwm的初始化 需要什么频率或特殊效果,自己修改下寄存器,我乱设了个频率。void pwm_init(void) TCCR1B = 0x00;//停止定时器 TIMSK |= 0x00;//中断允许 TCNT1H = 0x00; TCNT1L = 0x00;//初始值 OCR1AH = 0x00; OCR1AL = 0x00;//匹配A值 OCR1BH = 0x00; OCR1BL = 0x00;//匹配B值 ICR1H = 0xFF; ICR1L = 0xFF;//输入捕捉匹配值 TCCR1A = 0xA1; TCCR1B = 0x03;//启动定时器}//下面是ad部分 #pragma interrupt_handler adc_isr:iv_ADC //连续ad中断定义void adc_init(void) //连续ad初始化 ADCSRA = 0x00; ADMUX=0x40; ACSR =(1<<ACD);//关闭模拟比较器 ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0) ;//128分频 ADCSRA&=~(1<<ADSC); } //ADC完成中断 void adc_isr(void) //连续ad中断程序ad0=ADC;OCR1A=AD0<<2;//pwm输出等于10位ad值除以4 至于要压缩到10%~90%之间,自己套个公式吧,方法给你了。结果还是要靠自己,才能有进步ADMUX=0X40;//设定下次转换的ad口ADCSRA|=(1<<ADSC);//启动AD转换}
给我一天时间,我让我的学生将程序调试好后给你。 问题略作修改,如下:Atmega8程序设计。要求:用电位器控制10Khz的脉冲波占空比(10%—90%)。先用AD模数转换读取电位器的数据,将读取的数据转化为占空比数据,用占空比数据控制Timero产生波形输出。程序已经过学生的调试通过。#include <avr/io.h>#include <util/delay.h> unsigned int read_adc(unsigned char input); // input为ADC输入引脚号。unsigned int value=0; // value为ADC转换值。void main()//快速PWM的输出端设置为PB1; TCCR1A=_BV(WGM11)|_BV(COM1A1)|_BV(COM1A0); TCCR1B=_BV(WGM13)|_BV(WGM12)|_BV(CS11) ; //8分频 ICR1=100; DDRB=0XFF; while(1) value=read_adc(0); OCR1AL=(100*(value/1024)); }}unsigned int read_adc(unsigned char input) DDRC=0X00;PORTC=0;//转换时PORTC使用输入模式,关闭上拉电阻 ADMUX=(0X40|input);//基准电源AVCC _delay_ms(1);//等待差分增益稳定 >125ns ADCSRA|=0X80;//使能adc ADCSRA|=0X06; //64分频 ADCSRA|=0X40;//开始转换 while((ADCSRA&0X10)==0);//等待转换完成 ADCSRA|=0X10;//放弃第一次转换结果 return ADC;//(int)ADC_FIX;}

6,Atmega8的主要特性

1602不能显示汉字 。。这是我以前写的mega128的哦#include<iom128v.h>#define uchar unsigned char #define uint unsigned int #define rs 0#define rw 1#define en 2uchar wz[]=uchar gd[]=void s_ms(uint ms) for(;ms>1;ms--);} void busy(void) uchar temp; s_ms(500); portc&=~(1<<rs); //rs=0 s_ms(500); portc|=(1<<rw); //rw=1 s_ms(500); while(temp) portc|=(1<<en); //en=1 s_ms(500); ddra=0x00; //a口变输入 porta=0xff; //上拉使能 s_ms(500); temp = pina&0x80; //读取a口 s_ms(500); ddra=0xff; porta=0xff; //a口变输出 s_ms(500); portc&=~(1<<en); //en=0 s_ms(500); }}void writecom(uchar com) busy(); s_ms(500); portc&=~(1<<rs); //rs=0 s_ms(500); portc&=~(1<<rw); //rw=0 s_ms(500); portc|=(1<<en); //en=1 s_ms(500); porta = com; //输出指令 s_ms(500); portc&=~(1<<en); //en=0 s_ms(500);}void writechar(uchar row,uchar col,uint num,uchar *pbuffer) uchar i,j,t; if (row == 1) row = 0x80 + col; else row = 0xc0 + col; writecom(row); portc|=(1<<rs); s_ms(500); portc&=~(1<<rw); s_ms(500); for(i=num;i!=0;i--) t=*pbuffer; s_ms(500); writedata(t); s_ms(500); pbuffer++; } }void lcdinit(void) writecom(0x38); s_ms(1000); writecom(0x01); s_ms(10000); writecom(0x02); s_ms(1000); writecom(0x06); s_ms(1000); writecom(0x0c); s_ms(1000); writecom(0x38); s_ms(1000);} void writedata(uchar data) busy(); s_ms(500); portc|=(1<<rs); //rs=1 s_ms(500); portc&=~(1<<rw); //rw=0 s_ms(500); portc|=(1<<en); //en=1 s_ms(500); porta = data; //输出数据 s_ms(500); portc&=~(1<<en); //en=0 s_ms(500);}main()ddra=0xff;porta=0xff;ddrc=0xff;portc=0xff;lcdinit();writechar(1,1,13,wz);writechar(2,3,10,gd);}
内部特点:·高性能、低功耗的8位AVR微处理器。·先进的RISC 结构。·130 条指令—— 大多数指令执行时间为单个时钟周期。·32个8 位通用工作寄存器。·全静态工作。·工作于16 MHz 时性能高达16 MIPS。·只需两个时钟周期的硬件乘法器。·非易失性程序和数据存储器。·8K 字节的系统内可编程Flash。·擦写寿命:10,000 次。·具有独立锁定位的可选Boot代码区。·通过片上Boot 程序实现系统内编程。·真正的同时读写操作。·512字节的EEPROM。·1K字节的片内SRAM。·可以对锁定位进行编程以实现用户程序的加密 。外设特点:·2个具有比较模式的带预分频器( Separate Prescale)的 8位定时/计数器。·1个带预分频器(SeParat Prescale),具有比较和捕获模式的 16位定时/计数器。·1个具有独立振荡器的异步实时时钟(RTC)。·3个PWM通道,可实现任意<16位、相位和频率可调的PWM脉宽调制输出。·8通道 A/D转换(TQFP、MLF封装),6路10位 A/D+2路8位A/D。·6通道 A/D转换(PDIP封装),4路10位A/D+2路8位A/D。·1个I2C的串行接口,支持主/从、收/发四种工作方式,支持自动总线仲裁。·1个可编程的串行USART接口,支持同步、异步以及多机通信自动地址识别。·1个支持主/从(Master/Slave)、收/发的SPI同步串行接口。·带片内RC振荡器的可编程看门狗定时器。·片内模拟比较器。特殊的处理器特点 ·上电复位以及可编程的欠电压检测电路。·内部集成了可选择频率(l/2/4/8MHZ)、可校准的RC振荡器。·外部和内部的中断源18个。·5种睡眠模式: 五种睡眠模式:空闲模式(Idle)、ADC噪声抑制模式(ADC Noise Reduction)、 省电模式(Power-save)、掉电模式(Power-down)、待命模式(Standby)。I/O 和封装·最多23个可编程I/O口,可任意定义I/O的输入/输出方向;输出时为推挽输出,驱动能力强,可直接驱动LED等大电流负载:输入口可定义为三态输入,可以设定带内部上拉电阻,省去外接上拉电阻。·28脚PDIP封装,32脚TQFP封装和 32脚MLF封装。· 工作电压 – 2.7 - 5.5V (ATmega8L)– 4.5 - 5.5V (ATmega8)· 速度等级 – 0 - 8 MHz (ATmega8L)– 0 - 16 MHz (ATmega8)· 4 Mhz 时功耗, 3V, 25°C – 工作模式: 3.6 mA– 空闲模式: 1.0 mA– 掉电模式: 0.5 μA特别注意:ATMEGA8是不带任何的仿真接口的,所以要对mega8仿真是需要接入仿真头,或者采用mega88来做前期的开发,批量生产时可将程序移植到mega8,程序中的寄存器名称需做修改。

文章TAG:一个  能够  实现  接收  atmega8  当脉冲  
下一篇