atmega8,用一个ATMEGA8能够实现接收脉冲并计数把数字显示到数码管 当脉冲
来源:整理 编辑:智能门户 2023-09-02 09:20:59
本文目录一览
1,用一个ATMEGA8能够实现接收脉冲并计数把数字显示到数码管 当脉冲
除了接受脉冲的那个引脚,使用外部中断或者是外部计数之外,继电器、数码管的引脚可以随意分配,任何IO口都是可以的。为了编程方便,同一个数码管的引脚分配在单片机的同一类引脚上,比如都分配在PC口上
2,8位单片机stm8s和ATmega8有什么区别
stm8s是ST公司根据6502 CPU扩展指令集创造的CPU,并且集成了常用外设的单片机。ATMega8是Atmel公司根据自有的 AVR CPU 集成了常用外设的单片机。两种单片机都是8位的,但CPU内核不同,编程软件也不同,而就外设来说,都是各家厂商自己设计的外设,基本没有共同点。
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
4,ATMEGA848是什么有什么功能各个管脚的作用是什么
ATMEGA8/48都是AVR单片机,atmega8有8K字节flash,atmega48有4K字节flash,其他功能差不多,可以在百度中搜索关键词(不要忘了空格):“atmega8 中文 pdf”下载看看。在protues仿真的Microprocessor ICs库中;在protel DXP中的Atmel Microcontroller 8-Bit AVR.IntLib库中。
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 当脉冲
大家都在看
-
苹果自动同步怎么关闭,关闭手机应用如何进行
2022-12-30
-
iphone手机自动触摸,手机屏幕跳动可能是因为系统有问题
2022-12-30
-
酷睿 自动降频,为什么要关闭cpu自动降频?答案揭晓!
2023-01-22
-
怎么设置自动换锁屏壁纸,手机锁屏壁纸怎么设置自动更换?
2023-01-23
-
手机很快自动锁屏,手机自动锁屏怎么回事?看视频就ok了!
2023-01-25
-
Flyme6开启自动开关机,魅族6如何发力关机?
2023-02-07
-
笔记本fn键自动使用,如何使用小米笔记本电脑进行安全配置?
2023-02-09
-
宁波优塑智能科技怎么样,宁波优创是不是做华为的呀谁买过他们的东西啊价格好吗
2023-02-16
-
龙浦智能科技股份怎么样,马丁路德机器人公司怎么样
2023-02-16
-
余额宝自动赚钱是怎么回事,理财有讲究!财富自由
2023-02-19
-
智能科技护腰带怎么用,石墨烯护腰带好用吗
2023-02-22
-
北京建筑智能科技怎么样,建筑智能化工程技术以后容易就业吗月薪怎么样
2023-02-23
-
iphone5如何自动导出图图片片,从电脑手机怎么用?
2023-02-28
-
带着外星科技闯都市,现代都市小说 主角无敌 带外星科技的小说
2023-03-06
-
智能电视频繁自动切换,电视机器停电后自动启动一般原因如下
2023-03-15