⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 AVR基本外设测试程序
💻 C
字号:
 #include"main.h"
 extern void keysy(void);
  
 
/*===============主函数部分===================*/ 
void main(void)
{  
//   unsigned int i;
   unsigned char x ;
   /*===============初始化函数============*/
  // init_1622();
  /*
  ======================================
  采用定时器管理
  定时器0预分频系数为1024,定时时间为1.25MS
  初值为=256-1.25*14.7456*1000000/1024/1000=238
  首先要开启定时器0,
  =========================================
  */
  for(x=0;x<23;x++)  LCD[x]=0XFF;
    
  TCCR0=0X05;   //预分频系数为1024   0000 0101
  TCNT0=0XEE;   //238              
  TIMSK|=0X01;  //使能T/C0中断,允许中断

  DDRD&=0XF3;   //PIND2 PIND3设为输入
  MCUCR=0X08;	//00001000下降沿触发中断、GICR
                //ISC11,ISC10 INT1下降沿          
  
  /*========PB2输出PWM信号WGM[3;0]=1011
    ========加一计数中比较匹配时清零OC1B
	========减一计数中比较匹配时置位
	========CS12,CS11,CS10=010,表示8预分频计时器
  */
  DDRB|=0X3e;//PB2为输出端,(pb3,pb4,pb5为液晶驱动脚设为输出)
  TCCR1A=0X63;  //0110 0011
  TCCR1B=0X12;  //0001 0010
  OCR1A=0x61A7;    //设置TOP值为1249
  OCR1B=2500;      //比较匹配值
  
  SREG =0X80;      //使能总中断 
  MBZ=0;               
  while(1)          
  { 
    keysy();  
  	DDRD|=BIT(PD7); //PD7设为输出
	DDRD|=BIT(PD6);
	if(MBZ==0)                                     
	 {
       LED_LIANG;   //PD7为1,点亮LED指示灯
	 }
	if(MBZ==1)                                                 
	 {
	   LED_MIE;
	   BIT_80|=0x80;//a.BEEP1=1;
	 }
  } 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -