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

📄 iar9-6.c

📁 手把手教你学AVR单片机C程序设计实验程序
💻 C
字号:
#include <iom16.h>
#include<intrinsics.h>
#include "lcd1602_8bit.c"
uchar __flash title[]={"0-5 V Regulator"};
#define uchar unsigned char
#define uint unsigned int
#define xtal 8
#define GET_BIT(x,y) (x&(1<<y))
uint wide;
void port_init(void)		
{	
 DDRA=0xff;
 PORTA=0x00;
 DDRB=0xff;
 PORTB=0x00;
 PORTD = 0x0f; 
 DDRD  = 0xff;
 __no_operation();
 DDRD  = 0xf0;
}				
//TIMER1 initialize - prescale:8
// WGM: 0) Normal, TOP=0xFFFF
// desired value: 1000Hz
// actual value: 1000.000Hz (0.0%)
void timer1_init(void)		
{
 TCCR1A = 0x83;			
 TCCR1B = 0x02; 		
}			
/*********************************************/
void init_devices(void)	
{							
 port_init();		
 timer1_init();			
}							

void scan_INT1(void)
{
if(GET_BIT(PIND,3)==0)
 {
  Delay_nms(10);
  if(GET_BIT(PIND,3)==0)
  {if(wide<1023)wide++;
  Delay_nms(200);}
 }
}

void scan_INT0(void)
{
if(GET_BIT(PIND,2)==0)
 {
  Delay_nms(10);
  if(GET_BIT(PIND,2)==0)
  {if(wide>0)wide--;
  Delay_nms(200);}
 }
}

/******************主函数******************/
void main(void)
{	
long x;
uint voltage,Disval;
init_devices();
Delay_nms(400);
InitLcd();
ePutstr(1,0,title);
DisplayOneChar(0,1,'O'); 
DisplayOneChar(1,1,'C');
DisplayOneChar(2,1,'R');
DisplayOneChar(3,1,'1');
DisplayOneChar(4,1,':');
DisplayOneChar(11,1,'.'); 
DisplayOneChar(15,1,'V');	
    while(1)			
    {	
    voltage=wide;	
    Disval=wide;
    OCR1AH=(uchar)(wide>>8);
    OCR1AL=(uchar)(wide&0x00ff); 
    scan_INT1();
    scan_INT0(); 
    DisplayOneChar(5,1,(Disval/1000)+0x30); 
    DisplayOneChar(6,1,(Disval%1000)/100+0x30); 
    DisplayOneChar(7,1,(Disval%100)/10+0x30); 
    DisplayOneChar(8,1,(Disval%10)+0x30); 
    x=(long)voltage;
    x=(x*5000)/1023;
    voltage=(uint)x;
    DisplayOneChar(10,1,(voltage/1000)+0x30); 
    DisplayOneChar(12,1,(voltage%1000)/100+0x30); 
    DisplayOneChar(13,1,(voltage%100)/10+0x30); 
    DisplayOneChar(14,1,(voltage%10)+0x30); 
    }
}

⌨️ 快捷键说明

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