ATmega88简单引脚设置
// 熔丝位 F7 DC F9 FF
// pb0 或 pd7 低 为故障 -》》 PD5输出低 PC0 PC1 PC2输出高电平
//PD3为高电平 应急 -》》 PD6 30%
//PD2为低电平 正常 -》》 PD6 拨码开关
//pb6高 -->> PB2低#include <iom88v.h>
#include <macros.h>unsigned char yingji_sign;
unsigned char normal_sign;
unsigned char pwm_1;
unsigned char pwm_2;
unsigned char pwm_3;
unsigned char pwm_4;
unsigned int count1=0;
unsigned char PWM_T=0;
void timer0_init(void)
{TCCR0A = 0x00; //TCCR0B = 0x03; //预分频/64 启动TIME0 普通模式TCCR0B|=BIT(1); TCNT0 = 249; //晶振12MHz, 频率为1KHz 256 - 1200000*1ms / 8 / 1000 TIMSK0 = 0x01; //使能时钟中断SREG |= 0x80; //使能全局中断
}void port_init(void)
{// 0110 0000 PD3 PD4 PD7 in PD2 PD5 PD6out DDRD = 0x64;PORTD = 0x00;// 0000 0111 PC0 PC1 PC2 PC5out PC3 PC4in(switch) DDRC = 0x27; PORTC = 0x00;// 0000 0000 PB0 PB2 in PB7测试 DDRB = 0x80;PORTB = 0x00;
}/*按键检测*/
void check(void)
{ switch(PINC&0x18) //PC3,PC4组合有四种状态(11,10,01,00)对应不同占空比,低四位屏蔽{case 0x18: PWM_T=99;break;case 0x10: PWM_T=90;break;case 0x08: PWM_T=80;break;default: PWM_T=70;break;}
}void main(void)
{port_init();timer0_init();//拉高PD5PORTD |= 0x20; //单片机运行指示灯 PD2 1111 1011PORTD &= 0xFB; SEI(); while(1){//PB0 or PD7 == 0 ,wrong ;判断故障if((PINB & 0x01) != 0x01 || (PIND & 0x80) != 0x80){PORTD &= 0xDF; //PD5为低PORTC |= 0x07; }else{PORTD |= BIT(PD5); if((PIND&0x08)==0x08)//PD3为高电平是应急{PWM_T = 30;}else{check();}}}
}
/*向量号在 53到54页 ATmega88的手册中*/
#pragma interrupt_handler timer0_ovf:17
void timer0_ovf(void) //0.01ms到来
{static unsigned char count=0;count++;TCNT0=249;if(PWM_T==count && PWM_T!=100){ PORTD |= BIT(PD6); //灯亮 if(PINB&(1<<PB2)!=0) //检查调光口是否故障{PORTC|= BIT(PC5); }else{PORTC&=~BIT(PC5);}}if(count>=100) {count=0;count1++;if(PWM_T!=0){ PORTD&=~BIT(PD6); //灯灭if(PINB&(1<<PB2)!=1)//检查调光口是否故障{PORTC|= BIT(PC5); }else{PORTC&=~BIT(PC5);}}}
}
ATmega88简单引脚设置相关推荐
- ATmega88的简单引脚设置
/*******************************************************************************/ //ATmega88简单输出: // ...
- stm32 Boot0,Boot1引脚设置
Boot0,Boot1引脚设置? (1) Boot0设置为0后,代码将从主Flash当中启动,就我们目前所编程的地方启动,只要程序正常,上电之后都是可以正常工作.这一般作为ISP 程序下载仿真烧写.一 ...
- MCU低功耗引脚设置
汇总一下MCU低功耗时需要将引脚设置为: 1. 外围有电路的,外围上拉的MCU设为输出高,外围下拉的设为输出低: 2. 悬空的引脚,设为输出0,无需上下拉; 3. 设为输入的引脚,外部电路应将其拉高或 ...
- 用谷歌按钮登录_使用非常简单的设置即可登录Google的按钮
用谷歌按钮登录 vue-google-login (vue-google-login) Button to login with google with really simple setup. 使用 ...
- Unreal Engin_Maya插件ArtV1_001初认Artv1创建一个带绑定的人物对其进行简单的设置
ArtV1 该插件是应用与虚幻引擎中对动画动作的快捷插件,在我现在的认知范围内是一个可以直接到处到虚幻中动作的一个很方便的插件. 如何下载: 首先可以在虚幻商城中收缩ARTV1 ...
- 如何设置计算机的网络参数,如何为计算机新手简单地设置路由器的基本参数
最近,一个朋友买了一个路由器,说他不擅长设置它.问我如何简单地设置和使用它.我想把这写成文章与大家分享.知道如何玩路由器的人会发现它很简单,但是不知道如何做的人仍然有点复杂.我在这里与您谈谈如何简单地 ...
- Dotween简单安装设置
DoTween简单的设置 下载与文档 文档 http://dotween.demigiant.com/documentation.php 下载 http://dotween.demigiant.com ...
- 苹果基带坏了怎么办_苹果手机信号不好?简单的设置一下这4个开关,改善网速你会吗?...
身边有很多人都在使用苹果手机,但是会听到一些吐槽声,最多的就是手机信号差,有时候会出现消息延迟的情况. 虽然这些年苹果一直在想办法解决信号差的原因,和高通和解后期有望重新合作.但是目前想要彻底解决信号 ...
- 黑苹果Yosemite 10.10.1懒人版完美安装及简单驱动设置
原文地址为: 黑苹果Yosemite 10.10.1懒人版完美安装及简单驱动设置 1.硬件概要 CPU: 英特尔 Xeon E3-1230 V2 (四核) 主板: 技嘉 H77-DS3H (Intel ...
最新文章
- 微信团队放大招!他们为了小程序居然...
- 一个不错的机器视觉库 SimpleCV: a kinder, gentler machine vision library
- 我的Go+语言初体验——go【Format】goplus
- java语音开源_号外!号外!百度语音开源库更新了
- Android事件处理之处理键盘事件
- 7个开源的TTS(文本转语音)系统
- RPM的原理及rpm命令常用参数
- su灯光插件_su各种插件合集
- git bash批量dos2unix
- SCHNOKA施努卡:锂电池密封性焊接质量视觉检测
- 计算机网络八大性能指标
- 力扣-患某种疾病的患者
- 投递问题--图论--ACM算法
- 技术博客那些事儿-如何写好博客
- 使用Libxml2操作XML文档
- 创新之路 纪录片观后感
- 怎么用visio绘制出一半实线,一半虚线的椭圆,并填充颜色
- parallels desktop 18 虚拟机下载和Win11下载
- # Itext Pdf 5 教程
- AutoSAR技术手册