亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 新建 文本文檔.txt

?? AVR基礎試驗程序
?? TXT
字號:
#include <iom16v.h> 
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
char dis_buff[6]; // 顯示緩沖區,存放要顯示的8個字符的段碼值
uchar Data1[4]={10,0,5,0};      //定義初始方波占空比:50%
uchar Data2[4]={10,0,5,0}; 
uchar Key1_Flag,Key2_Flag,q,s=0,u,t=0;
char time_1ms_ok,display_ok=0;
unsigned  int freq_time,time0_old,time0_new,r,p=0;
unsigned long int freq;
///////////////////////////////////////////

void DelayMs(uint i )           //Ms級延時,參數i為延時時間
{uint j;
 for(;i!=0;i--)
  {for(j=1142;j!=0;j--) {;}}     //原來8000,改為1142//
}
/////////////////////////////////////////////////
#define LCD_EN_PORT    PORTA
#define LCD_RW_PORT    PORTA
#define LCD_RS_PORT    PORTA
#define LCD_DATA_PORT  PORTA
#define LCD_DATA_DDR   DDRA
#define LCD_DATA_PIN   PINA
#define LCD_EN         (1<<PA2)   //portc5         out
#define LCD_RW        (1<<PA1)    //portd3         out/in
#define LCD_RS         (1<<PA0)  //portc4         out
#define LCD_DATA        ((1<<PA4)|(1<<PA5)|(1<<PA6)|(1<<PA7))   //portd4/5/6/7   out

void delay_1us()
  {
   asm("nop");
  }
/////////////////////////
void delay_nus(unsigned int n)       //N us延時函數
  {
   unsigned int i=0;
   for (i=0;i<n;i++)
   delay_1us();
  }
 ////////////////////////// 
void delay_1ms(void)                 //1ms延時函數
  {
   unsigned int i;
   for (i=0;i<1140;i++);
  }
 ////////////////////////////////// 
void delay_nms(unsigned int n)       //N ms延時函數
  {
   unsigned int i=0;
   for (i=0;i<n;i++)
   delay_1ms();
  }
////////////////////////////////////////


void LCD_en_write(void)        //EN端產生一個高電平脈沖,寫LCD
  {
    LCD_EN_PORT |= LCD_EN;
    delay_nus(1);
    LCD_EN_PORT &= ~LCD_EN;
  }
/////////////////////////////////////
 void LCD_wait_Ready(void)                  //等待LCD空閑
   {
    LCD_DATA_DDR &= ~0x80;                 //PD7 I/O口方向設置為輸入   	
    LCD_RW_PORT|=LCD_RW;                 //RW=1    	
    LCD_RS_PORT&=~LCD_RS;                //RS=0    	
    LCD_EN_PORT |= LCD_EN;                 //EN=1    	
    while (!( LCD_DATA_PIN&0x80 ) == 0);   //RW=1,讀PD7,為0表示空閑? 	
    LCD_EN_PORT &= ~LCD_EN;                //EN=0    	
    LCD_DATA_DDR |= 0xf0;  	              //設置為輸出porta4/5/6/7	 
  }
////////////////////////////////////
void LCD_write_char(unsigned char command,unsigned char data)
  {    unsigned char command_temp,data_temp;        
       command_temp = command;
      data_temp = data;
       LCD_wait_Ready();
       LCD_RW_PORT &= ~LCD_RW; 	                   //RW=0	   
       if (command == 0)      
	   {LCD_RS_PORT |= LCD_RS;             //RS=1 	
   	 LCD_DATA_PORT &= 0X0F;	 
	 LCD_DATA_PORT |= data_temp&0xf0; 	   //send high 4bit	 
	
      }
  else 
     {
	 LCD_RS_PORT &= ~LCD_RS;            //RS=0
	LCD_DATA_PORT &= 0X0F;
     LCD_DATA_PORT |= command_temp&0xf0;//send high 4bit
     }
    LCD_en_write();
       command_temp=command_temp<< 4;         //send low 4bit
    data_temp=data_temp<<4;
       LCD_DATA_PORT&=0X0F;
    if (command==0)LCD_DATA_PORT|=data_temp&0xf0;
	   
    else
     LCD_DATA_PORT|=command_temp&0xf0;   		
    LCD_en_write();
       LCD_RW_PORT|=LCD_RW;	    
      LCD_RS_PORT^=LCD_RS;    
	  delay_nus(1);
  }
/////////////////////////////////////////////////////
void LCD_set_xy( unsigned char x, unsigned char y )
  {
    unsigned char address;
    if (y == 0) address = 0x80 + x;
    else 
       address = 0xc0 + x;
    LCD_write_char( address, 0 );
  }
//////////////////////////////////////
void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s)
  {
    LCD_set_xy( X, Y );    
    while (*s)      {
        LCD_write_char( 0, *s);
		//delay_nus(70);
	s ++;
     }
}
/////////////////////////////////
void LCD_write_string1(unsigned char X,unsigned char Y,unsigned char dat)
  {
     LCD_set_xy( X, Y );       
        LCD_write_char( 0, dat);	
		 
}
/////////////////////////////////////////
void freq_to_disbuff() // 頻率值轉化為BCD碼送顯示緩沖區
{
char i,j=5;
//freq=freq*10;
for (i=0;i<=5;i++)
{
dis_buff[j-i]=freq%10;
freq=freq/10;
}
dis_buff[0]=0x30|dis_buff[0];
dis_buff[1]=0x30|dis_buff[1];
dis_buff[2]=0x30|dis_buff[2];
dis_buff[3]=0x30|dis_buff[3];
dis_buff[4]=0x30|dis_buff[4];
dis_buff[5]=0x30|dis_buff[5];
}
///////////////////////////////////////////////////
void LCD_init(void)
  {
    delay_nms(15);
    LCD_write_char(0x28,0);      //4bit test
    LCD_write_char(0x0c,0);      //顯示開
    LCD_write_char(0x01,0);      //顯示清屏
    LCD_write_char(0x06,0);      //顯示光標移動設置
  }

////////////////////////////////////
#pragma interrupt_handler Timer2:4
void Timer2(void)
{
time0_new=TCNT0;//
time_1ms_ok=1;
display_ok=~display_ok;
//if(display_ok)

}
////////////////////////////////////////////////////////////


void Add_Process(uchar *p)//
{if(p[1]!=1)
  {p[2]=p[2]+1;
   if(p[2]==10) {p[2]=0;p[1]++;}
  }
}

//////////////////////////////////////////

void Sub_Process(uchar *p)
{uchar temp;
 temp=p[1]*10+p[2];
 if(temp!=0)
  {temp=temp-1;
   p[1]=temp/10;
   p[2]=temp-p[1]*10;
  }
 
}
 void Set_Process(uchar *p)
{uint i,j;
 i=p[1]*10+p[2];
 i=155*i/10;
 j=i;
 OCR1AH=i>>8;
 OCR1AL=i&0x00ff;
 OCR1BH=j>>8;
 OCR1BL=j&0x00ff;
}
void change()
{
Data2[0]=0x30|Data1[0];
Data2[1]=0x30|Data1[1];
Data2[2]=0x30|Data1[2];
Data2[3]=0x30|Data1[3];
}
void Key_Process()
{while((PINC&0x10)==0) {Key1_Flag=1;}  
 while((PINC&0x20)==0) {Key2_Flag=1;}
 while((PINC&0x40)==0)  {q=1;} 
  while((PINC&0x80)==0)  {t=1;} 
 if(Key1_Flag==1)
    { Key1_Flag=0;
	Add_Process(Data1);	     	 
	}
 if(Key2_Flag==1)
     {Sub_Process(Data1);		
	  Key2_Flag=0;}
if(q==1)
{s=1;
q=0;
u=0;
} 	
if(t==1)
{u=1;
t=0; 
s=0; 
}
}	    


void pwm_init(void)
{
 DDRD=(1<<PD4)|(1<<PD5);  
 PORTD=(1<<PD4)|(1<<PD5);
 TIMSK = 0x00;  
 TCCR1A=(1<<COM1A1)|(1<<WGM11)|(1<<COM1B1); 
 TCCR1B=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(1<<CS10);
 ICR1=155;
 OCR1A=77;
  OCR1B=77;
 }
 void for_ward()
 {TCCR1A=(1<<WGM11); 
 PORTD&=~(1<<PD4);
 PORTD&=~(1<<PD5);
  TCCR1A=(1<<COM1A1)|(1<<WGM11); 
 PORTD&=~(1<<PD4);
 PORTD&=~(1<<PD5);
 OCR1A=77;
 
 }
void back_ward()
 { TCCR1A=(1<<WGM11); 
 PORTD&=~(1<<PD4);
 PORTD&=~(1<<PD5);
 TCCR1A=(1<<COM1B1)|(1<<WGM11); 
  PORTD&=~(1<<PD4);
 PORTD&=~(1<<PD5);
 OCR1B=77;
 }
 //////////////////////////////////////////////////////////////////
void main(void)
{
char i;
DDRB=0x00;                   
PORTB=0x01;
DDRD=0xff;                    //設置D口為推挽1輸出
 PORTD=0xff;  
DDRC=0x00;                    //設置C口為三態輸入
PORTC=0x00;
DDRA|=LCD_DATA|LCD_RW;
DDRA|=LCD_RS|LCD_EN;     
LCD_init(); 
LCD_write_char(0x01,0);      //顯示清屏
LCD_write_string(0,0,"Freq:      Hz");
LCD_write_string(0,1,"zkb:   %");
asm("nop");
 LCD_write_string1(5,0,0x30);
asm("nop");
LCD_write_string1( 6,0,0x30);
asm("nop");
LCD_write_string1( 7,0,0x30);
asm("nop");
LCD_write_string1( 8,0,0x30);
LCD_write_string1( 9,0,0x30);
LCD_write_string1( 0x0A,0,0x30);
 LCD_write_string1(4,1,0x30);
LCD_write_string1(5,1,0x35);
 LCD_write_string1(6,1,0x30);
 asm("nop");
// T/C0初始化,外部計數方式
for ( i=0;i<=5;i++)dis_buff[i]= 0;               
pwm_init();                  //熄滅所有的數碼管  
time0_old=0;
TCCR0=0x06; // 外部T0腳下降沿觸發計數,普通模式
TCNT0=0x00;
OCR0=0x00;
TCCR2=0x0C; // 內部時鐘,32分頻(8M/64=125KHz),CTC模式
TCNT2=0x00;
OCR2=0x7C; // OCR2 = 0x7C(124),(124+1)/125=1ms
TIMSK=0x80; // 允許T/C2比較匹配中斷
SEI(); // 開放全局中斷
while (1)
{
 Set_Process(Data1);
 if(++p>=2500)
 { 
Key_Process();
change();         //設置PWM占空比
 LCD_write_string1(4,1,Data2[1]);
 LCD_write_string1(5,1,Data2[2]);
 LCD_write_string1(6,1,Data2[3]);
p=0;
}
 
if(s==1)
 {for_ward();
 }
  if(u==1)
 {back_ward();
} 	  
if (time_1ms_ok)
{ // 累計T/C0的計數值

if (time0_new>=time0_old)freq=freq+(time0_new-time0_old);
else freq=freq+(256-time0_old+time0_new);
time0_old=time0_new;
if(++freq_time>=1000)
{
freq_time=0; // 100ms到,
freq_to_disbuff(); // 將100ms內的脈沖計數值送顯示
freq=0;
LCD_write_string1(5,0,dis_buff[0]);
LCD_write_string1( 6,0,dis_buff[1]);
LCD_write_string1( 7,0,dis_buff[2]);
LCD_write_string1( 8,0,dis_buff[3]);
LCD_write_string1(0x9,0,dis_buff[4]);
LCD_write_string1( 0x0A,0,dis_buff[5]);
}
time_1ms_ok=0;
};
}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91视频在线观看免费| 国产精品免费看片| 久久精品夜色噜噜亚洲aⅴ| 亚洲资源中文字幕| 成人免费视频视频在线观看免费| 欧美日韩一区久久| 亚洲欧美一区二区三区国产精品| 国产精品综合一区二区| 欧美亚洲综合另类| 亚洲男人的天堂在线观看| 激情欧美一区二区三区在线观看| 91视频免费看| 欧美国产日本视频| 国产一区二区三区香蕉| 日韩欧美一区中文| 婷婷综合久久一区二区三区| 日本韩国视频一区二区| 国产精品大尺度| 成人在线一区二区三区| 亚洲精品一区二区三区福利| 青青草国产精品亚洲专区无| 欧美在线观看视频一区二区 | 日本一区二区免费在线观看视频 | 免费成人美女在线观看| 精品视频一区二区三区免费| 亚洲男人的天堂在线aⅴ视频| 成人av资源站| 中文字幕欧美日本乱码一线二线| 国产伦精一区二区三区| 欧美精品一区二区三区高清aⅴ| 久久精品av麻豆的观看方式| 欧美一区欧美二区| 免费观看91视频大全| 欧美一区二区三区在线看| 日韩高清在线观看| 欧美一二三在线| 美女一区二区久久| 久久综合久久综合久久| 国产成人综合在线| 中文字幕亚洲一区二区va在线| 成人app网站| 一区二区三区在线免费| 在线不卡a资源高清| 婷婷国产v国产偷v亚洲高清| 欧美一区二区观看视频| 激情欧美一区二区三区在线观看| 久久久www成人免费无遮挡大片| 国产成人亚洲综合色影视| 国产精品蜜臀av| 91久久精品国产91性色tv| 午夜久久电影网| 久久亚洲私人国产精品va媚药| 国产盗摄视频一区二区三区| 国产精品盗摄一区二区三区| 欧美剧情电影在线观看完整版免费励志电影 | 久久蜜桃香蕉精品一区二区三区| 国产乱码精品一区二区三区忘忧草| 国产欧美日韩亚州综合| 欧美在线免费视屏| 国内精品久久久久影院薰衣草| 国产精品久久综合| 欧美一区二区视频在线观看2022| 国产精品自拍网站| 亚洲一区二区三区四区中文字幕| 日韩三级电影网址| 91性感美女视频| 日本少妇一区二区| 中文字幕一区在线观看| 正在播放一区二区| 丁香激情综合五月| 日本91福利区| 亚洲精品v日韩精品| 精品国产电影一区二区| 欧日韩精品视频| 国产麻豆成人精品| 亚洲电影视频在线| 国产精品天美传媒沈樵| 欧美一区三区二区| 色偷偷成人一区二区三区91| 国产精品88av| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品久久久久桃色tv| 欧美一级专区免费大片| 91黄色小视频| 成人黄色av网站在线| 免费久久99精品国产| 一卡二卡欧美日韩| 国产精品麻豆视频| 久久久精品综合| 欧美一级高清片| 在线视频一区二区三| 不卡一区中文字幕| 极品少妇一区二区| 麻豆精品在线看| 五月天激情综合网| 亚洲人成精品久久久久久| 久久久久久久久久看片| 日韩精品在线一区二区| 欧美乱熟臀69xxxxxx| 欧洲在线/亚洲| 一本久道久久综合中文字幕| 风间由美一区二区三区在线观看 | 日韩国产欧美三级| 亚洲一级二级在线| 亚洲精品日韩综合观看成人91| 国产女人18毛片水真多成人如厕| 精品国产伦一区二区三区免费| 3atv一区二区三区| 91精品国产综合久久精品性色| 欧美性猛交一区二区三区精品| 色综合天天综合在线视频| 国产a久久麻豆| 国产91在线看| 成人的网站免费观看| gogogo免费视频观看亚洲一| jlzzjlzz亚洲日本少妇| av成人老司机| 色综合久久中文字幕综合网| 91久久精品一区二区| 在线观看一区不卡| 69精品人人人人| 日韩美女视频在线| 久久久久久久免费视频了| 久久综合精品国产一区二区三区| 欧美电视剧免费观看| 国产清纯美女被跳蛋高潮一区二区久久w| 久久综合九色综合久久久精品综合| 欧美精品一区二区久久婷婷| 国产欧美一区二区精品性色| 国产精品国产三级国产专播品爱网| 亚洲人亚洲人成电影网站色| 有码一区二区三区| 蜜桃av噜噜一区| 丁香啪啪综合成人亚洲小说| 色哟哟亚洲精品| 在线电影国产精品| 国产日产欧美精品一区二区三区| 国产精品青草综合久久久久99| 亚洲欧美经典视频| 日韩精品成人一区二区在线| 国产一区91精品张津瑜| 99精品欧美一区二区蜜桃免费 | 亚洲精品国产一区二区精华液 | 欧美性色综合网| 日韩精品专区在线影院重磅| 国产精品久久久久精k8| 亚洲第一会所有码转帖| 国产精品综合久久| 欧洲国内综合视频| 精品免费国产一区二区三区四区| 中文字幕av资源一区| 亚洲超丰满肉感bbw| 国产一区二区伦理| 日本乱人伦aⅴ精品| 日韩欧美一区二区在线视频| 国产精品看片你懂得| 日本成人中文字幕| 91丨国产丨九色丨pron| 日韩美一区二区三区| 亚洲欧美激情小说另类| 久久99这里只有精品| 在线观看av一区| 久久久久国色av免费看影院| 亚洲第一在线综合网站| 成人免费黄色大片| 日韩精品中文字幕一区| 一区二区三区日本| 成人国产在线观看| 精品国产一二三区| 日韩影院免费视频| 在线观看国产日韩| 国产精品网站在线| 激情六月婷婷久久| 7777精品伊人久久久大香线蕉| 日韩理论片一区二区| 国产精品1区2区3区在线观看| 91精品国产丝袜白色高跟鞋| 亚洲最新视频在线观看| www.av亚洲| 国产欧美日韩另类一区| 精品中文字幕一区二区| 欧美高清hd18日本| 亚洲一区中文日韩| 色婷婷亚洲婷婷| 亚洲色图第一区| www.av亚洲| 国产精品久久久久毛片软件| 国产激情一区二区三区| 精品日韩欧美在线| 久久成人羞羞网站| 精品国产免费一区二区三区香蕉| 日韩精品一区第一页| 欧美日韩成人激情| 亚洲国产成人av网| 精品视频在线免费| 日韩精品欧美成人高清一区二区| 欧美午夜片在线看| 亚洲国产成人91porn| 777久久久精品| 日本vs亚洲vs韩国一区三区 |