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

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

?? main_new_5_test.c

?? 低頻電子脈沖治療儀MCU程序。單片機通過io口發出一定頻率的脈沖
?? C
?? 第 1 頁 / 共 3 頁
字號:
/******************************************************************************************************
                                    All Rights Reserved
作者:    史永杰
修改時間:2006年4月15日
功能說明:定時器0作為系統時間發生器,定時器1控制波形輸出頻率,由于波形高電平持續時間很短,因此將輸出高電平
          放在定時器1中斷程序鐘;系統要求輸出兩路脈沖,由于頻率都不高,因此都放在中斷中處理。兩路脈沖并不同步
		  但是由于兩路脈沖是獨立的,相位的差別沒有什么 意義,因此這樣做是可行的
基于第二塊板子
******************************************************************************************************/
#include<AT89X52.h>

#define unchar unsigned char
#define unint  unsigned int
#define LED_1  P1_1                                 //定時指示燈
#define LED_2  P1_3									//功能一指示燈		
#define LED_3  P1_2                                 //功能二指示燈
#define BUZZER P1_4                                 //蜂鳴器 
#define DOTE   P1_0                                 //小數點顯示位
#define OUT1   P2_7                                 //波形一輸出io口
#define OUT2   P2_6                                 //波形二輸出io
#define GATE1  P2_5                                 //波形二輸出控制1
#define GATE2  P2_4                                 //波形二輸出控制2 
//全局變量
unchar TEMP;
unchar KEYNUM;                                       //鍵值
unchar SYS_STATE;                                    //系統當前設置狀態
unint  COUNT0;                                        //記錄定時器0中斷次數
unint  COUNT1;                                        //記錄定時器1中斷次數
unint  SECOND;
unint  BACKTIME;
char   SET_MINUTE;                                   //定時分鐘數
unchar WAVE_TYPE_1;                                  //功能一輸出波形
unchar WAVE_TYPE_2;                                  //功能二輸出波形

int   DISP_INTENSE_1;                                    //波形一顯示設定輸出強度
int   DISP_INTENSE_2;                                    //波形二顯示設定輸出強度

int   INTENSE_1;                                    //波形一實際設定輸出強度
int   INTENSE_2;                                    //波形二實際設定輸出強度

bit    FLAG2;
unchar COUNT2;                                       //波形1_2計時變量
unchar COUNT3;           							 //波形1_3計時變量
unint  COUNT4;                                       //波形1_4計時變量
unint  COUNT1_5;
unint  COUNT2_1;
unint  COUNT[3];
unint  COUNT2_5;
unint  COUNT2_6;
unint  COUNT2_7;
unint  COUNT2_9;
unint  COUNT2_10;
unint  COUNT2_11;
unint  COUNT2_12;
unchar COUNT2_4;
unint  TEMP2_5;
unint  COUNT1_3;
bit FLAG4;
bit FLAG5;
unchar FLAG2_7;
unchar DISBUFFER[6]={0,2,0,0,0,0};                   //顯示緩沖區
const unchar LED7Code[]={     //共陽的,編碼順序:A,B,C,D,E,F,G(7,6,5,4,3,2,1),H為小數點,單獨編碼
    0x03,		// 0
	0x9F,		// 1
	0x25,		// 2
	0x0D,		// 3
	0x99,		// 4
	0x49,		// 5
	0x41,		// 6
	0x1F,		// 7
	0x01,		// 8
	0x09,		// 9
	0xff
	};  //編碼表	
                       

 
//函數聲明
void SystemInitial();                  //系統初始化函數
void Display();                        //顯示函數
void KeyProg(unchar keynum);           //根據按鍵值執行響應的功能
void DelayShort(unchar delay);         //延時程序,延時0-255us
void Timer0Interrupt();                //定時器0中斷處理函數
//void Stop();                           //治療時間到,停止工作函數
void DisplayChar(unchar j, unchar offset);  //顯示一個0-99的數
void wave2_1();
void wave_sine(unint t,unint high,unchar type,unchar func);
/******************************************************************************************************
                                     
                                    200ms延時子程序
******************************************************************************************************/

void delay200ms(void)                  
{
      unsigned char i,j,k;
      for(i=5;i>0;i--)
      for(j=132;j>0;j--)
      for(k=150;k>0;k--);
}


/******************************************************************************************************
                                        鍵盤說明
鍵盤:鍵盤采用74148(8-3優先編碼器),輸出接到P2.0,P2.1,P2.2,有鍵按下時候給出中斷信號,接到單片機INT0
注意:有鍵按下后148給出得中斷信號是一個低電平,一直保持到鍵彈起為止
按鍵功能分布:
key0:功能一強度調節(+)
key1:功能一強度調節(-)
key2:功能二強度調節(+)
key3:功能二強度調節(-)
key4:功能選擇(+)
key5:功能選擇(-)
key6:時間設定
key7:功能選擇



******************************************************************************************************/
/******************************************************************************************************
                                     按鍵中斷處理函數
                                     中斷類型:外部中斷0
******************************************************************************************************/
void KeyInterrupt(void)   interrupt 0
{
  EX0 = 0;                              //禁止鍵盤,不在響應其他按鍵;但是定時器中斷同樣還是響應
  KEYNUM = P2 & 0x07;                   //p2低3位作為鍵值
  while(P3_2 == 0)                      //每隔200ms判斷按鍵是否還是按下,如果繼續按下,則當成第二次按鍵處理
     {
    	KeyProg(KEYNUM);               //轉向鍵值處理函數
		delay200ms();  
	 }
 //DISBUFFER[0] = KEYNUM;
 Display();
 EX0 = 1; 
}

/******************************************************************************************************
                                     按鍵處理函數
                                     作用:更具按鍵值執行響應的操作
									 參數:按鍵值
									 參數類型:unchar
******************************************************************************************************/

void KeyProg(unchar keynum)
{
  switch (keynum)
  	{
	
	 case 0:                        //波形一(+)
	 BACKTIME = 0;
     DISP_INTENSE_1 ++;
	 if(DISP_INTENSE_1 >=99)
	 DISP_INTENSE_1 = 99;
     DisplayChar(DISP_INTENSE_1,4);
	 break;

	 case 1:                        //波形一(-)
	 BACKTIME = 0;
     DISP_INTENSE_1 --;
	 if(DISP_INTENSE_1 <=0)
	 DISP_INTENSE_1 = 0;
	 DisplayChar(DISP_INTENSE_1,4);
	 break;

	 case 2:                        //波形二(+)
	 BACKTIME = 0;
     DISP_INTENSE_2 ++;
	 if(DISP_INTENSE_2 >=99)
	 DISP_INTENSE_2 = 99;
	 DisplayChar(DISP_INTENSE_2,2);
	 break;

	 case 3:                        //波形二(-)
	 BACKTIME = 0;
     DISP_INTENSE_2 --;
	 if(DISP_INTENSE_2 <=0)
	 DISP_INTENSE_2 = 0;
	 DisplayChar(DISP_INTENSE_2,2);
	 break;

     case 4:                        //定時按鍵(+)
     //
	 {
	  switch (SYS_STATE)
	 {
	   case 0:                       //時間設定
	    {
	     SET_MINUTE ++;
	     if(SET_MINUTE>99)
	       SET_MINUTE = 99;
         DisplayChar(SET_MINUTE,0);
	    }
		break; 
 
       case 1:                      //功能一波形選擇
        { 
		 BACKTIME = 0;
         DISP_INTENSE_1 = 0;
		 DisplayChar(DISP_INTENSE_1,4);
	     WAVE_TYPE_1 ++;
	     if(WAVE_TYPE_1>6)
	       WAVE_TYPE_1 = 1;
	      DisplayChar(WAVE_TYPE_1,0);
	    }
       break; 
       
	   case 2:                      //功能二波形選擇
        {
		  BACKTIME = 0;
		 DISP_INTENSE_2 = 0; 
		 DisplayChar(DISP_INTENSE_2,2);
	     WAVE_TYPE_2 ++;
	     if(WAVE_TYPE_2>9)
	     WAVE_TYPE_2 = 1;
	     DisplayChar(WAVE_TYPE_2,0);
	    }
       break;
	   }
	 break;
     }

	 case 5:                         //定時按鍵(一)
     //
	 {
	  switch (SYS_STATE)
	 {
	   case 0:                       //時間設定
	    {
	     SET_MINUTE --;
	     if(SET_MINUTE<= 0)
	       SET_MINUTE = 0;
	      DisplayChar(SET_MINUTE,0);
	    }
		break; 
 
       case 1:  					//功能一波形選擇
        {
		  BACKTIME = 0;
		 DISP_INTENSE_1 = 0;
		 DisplayChar(DISP_INTENSE_1,4);
	     WAVE_TYPE_1 --;
	     if(WAVE_TYPE_1 < 1)
	       WAVE_TYPE_1= 6;
	      DisplayChar(WAVE_TYPE_1,0);
	    }
       break; 
       
	   case 2: 						//功能二波形選擇
        {
		 BACKTIME = 0;
		 DISP_INTENSE_2 = 0;
		 DisplayChar(DISP_INTENSE_2,2);
	     WAVE_TYPE_2 --;
	     if(WAVE_TYPE_2 <1)
	     WAVE_TYPE_2 = 9;
	     DisplayChar(WAVE_TYPE_2,0);
	    }
       break;
	   }
	 break;
     }

     case 6:                        //時間設定
     //
	 SYS_STATE ++;
     SYS_STATE %=3;
     if(SYS_STATE == 0)
	 {
	 LED_1 = 1;
     LED_2 = 0;
	 LED_3 = 0;
     DisplayChar(SET_MINUTE,0);
	 }
     if(SYS_STATE == 1)
	 {
	 LED_1 = 0;
     LED_2 = 1;
	 LED_3 = 0;
	 BACKTIME = 0;
     DisplayChar(WAVE_TYPE_1,0);
	 }
	 if(SYS_STATE == 2)
	 {
	 LED_1 = 0;
     LED_2 = 0;
	 LED_3 = 1;
	 BACKTIME = 0;
     DisplayChar(WAVE_TYPE_2,0);
	 }

	 break;
	 case 7:                        //功能選擇(復位鍵盤) 
     //
	 SystemInitial();
	 break; 
	 


	 }
  //強度調整
 // INTENSE_1 =INTENSE_1*4+1;
//  INTENSE_1/=5;
  //INTENSE_2 =(DISP_INTENSE_2*4)/5+1;
  
  

}
/******************************************************************************************************
                                     數碼管顯示說明
數碼管皆為共陽型,1,2顯示時間和功能選項;數碼管3,4顯示功能一的強度,數碼管5,6顯示功能二的強度
數碼管采用串行驅動方式,只有LED2上的小數點由P1.0	控制,其余小數點都不能使用
另外還有三個LED指示燈,L1,L2,L3分別作為時間,功能一,功能二的指示燈。L1,L2,L3受到P1.2,P1.3,P1.4的控制
均為高電平點亮
注意:由于采用串行移位顯示,最先送入的的
******************************************************************************************************/
/******************************************************************************************************
                                     顯示函數
									 作用: 將顯示緩沖區的內容譯碼后送LED顯示
									 參數: 無

******************************************************************************************************/
void Display()
{
   unchar i;
   for(i =0;i<6;i++)
   	{
		SBUF = LED7Code[ DISBUFFER[5-i] ];
		while(TI == 0) ;
		TI = 0;
	}
}
//顯示一個0-99的數,offset指定顯示偏移量
void DisplayChar(unchar j, unchar offset)
{
  unchar i;
  i = j;
  i %= 100;
  //if(i/10 == 0)
  //DISBUFFER[1+offset] = 11;       //滅
  //else
  DISBUFFER[1+offset] = i/10;

  i %= 10;
  DISBUFFER[0+offset] = i;
  Display();
}

/***************************************************************************************
                            定時器0中斷處理
							作用:將定時器0作為系統時鐘,沒50ms發生一次中斷
****************************************************************************************/
void Timer0Interrupt() interrupt 1
{
 //P2_5 =!P2_5;
 ET0 = 0;
 COUNT0++;
 BACKTIME++;
 if( BACKTIME == 100)
 {
  SYS_STATE = 0;
  DisplayChar(SET_MINUTE,0);
  BACKTIME = 0;
  LED_1  = 1;
  LED_2  = 0;
  LED_3  = 0;
 }

 if((COUNT0%10) == 0)                 //0.5秒到
 { 
     DOTE = ! DOTE;                  //小數點交替亮滅
	 //INTENSE_1 +=10;
	 //if(INTENSE_1 >100)
	 //INTENSE_1 = 10;
	 //P1_6 = ! P1_6;
     // DISBUFFER[0]++;
	 //DISBUFFER[0] =DISBUFFER[0] % 10;
     //P1_1 = ! P1_1;
	 Display();
 }
 if(COUNT0 == 1200 )                  //1分鐘到
   {
     SET_MINUTE--;

	 if(SET_MINUTE == 0)
		{ 
	      
	      BUZZER = 1;
		  TR0 = 0;
        }
	  
      DisplayChar(SET_MINUTE,0);    //顯示設置分鐘
    
	COUNT0 = 0;
	//
	}

  
  TH0 = 0x3C;
  TL0 = 0xB0;
  ET0 = 1;
 }


/******************************************************************************************************
                                   治療時間到,停止工作函數
******************************************************************************************************/
//void Stop(){}

void wave2_1()
{
        unchar i,j;

        //強度調整
		INTENSE_2 =(DISP_INTENSE_2*3)/4+1;

        COUNT2_1++;
		COUNT2_1= COUNT2_1%200;
		i =INTENSE_2;
		j =INTENSE_2/20+1;
        if(COUNT2_1 <25)               //1s的脈沖
          {
		  // for (k=0;k<j;k++)
		 //  {
           OUT2 =0;
		   while(--i);         //寬度可調的高電平
		   OUT2 = 1;
		   i =INTENSE_2;
		   while(--i);         //寬度可調的高電平
         //  }
		   OUT2 =0;
		  }

	    if((COUNT2_1 >=25)&&(COUNT2_1<=100))     //1s 的低電平
		  {
		   OUT2 = 0;
		  }
       if((COUNT2_1 >=100)&&(COUNT2_1<=150))              //2s的脈沖
          {
		  // for (k=0;k<j;k++)
	//	   {
           OUT2 =0;
		   while(--i);         //寬度可調的高電平
		   OUT2 = 1;
		   i =INTENSE_2;
		   while(--i);         //寬度可調的高電平
    //       }
		   OUT2 =0;
		  }

	    if((COUNT2_1 >=150)&&(COUNT2_1<=200))     //1s 的低電平
		  {
		   OUT2 = 0;
		  }

}
/*
void wave_sine(unint t,unint high,unchar type,unchar func)
{
        unchar temp,i;
        unchar intense;
		if(func == 1)
		{
		 intense =INTENSE_1;
         
		}
		if(func == 2)
		{
		 intense =INTENSE_2;
		 
		}

        COUNT[type]++;
		COUNT[type]=COUNT[type]%t;                   //t為一周期,t以20ms為單位
		//i =INTENSE_1;
        //TH1 = (65536-25000)/256;           //25ms中斷一次(38hz)
        //TL1 = (65536-25000)%256;
       temp = high/10;                        //將高電平分為20段
	   i++;
       i =i% intense;
		if(COUNT[type] <=high/2)  			  //脈沖前半段		 
		{
         if(COUNT[type]%temp == 0)     
          {
          //if(intense<10)
         //     i = intense;
		 //  else
		 //     {
		 //      i = (intense/5)*(COUNT[type]/temp);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人无遮挡在线视频| 欧美日韩电影在线播放| 99免费精品在线| 色婷婷av一区二区| 91精品在线一区二区| 午夜av电影一区| 国产成人精品免费在线| 97精品久久久午夜一区二区三区 | 欧美日韩精品欧美日韩精品一 | 一本大道av伊人久久综合| 91国产视频在线观看| 538在线一区二区精品国产| 久久日一线二线三线suv| 中文字幕第一区综合| 日本女人一区二区三区| 成人性生交大片| 91精品国产色综合久久| 悠悠色在线精品| 国产剧情一区二区三区| 欧美性一区二区| 国产精品久久久久久久浪潮网站| 日韩vs国产vs欧美| 99re成人精品视频| 欧美成人精品二区三区99精品| 亚洲欧洲国产日本综合| 久久av中文字幕片| 欧美三级三级三级| 亚洲日本免费电影| 成人精品免费网站| 国产三级精品三级| 久久99精品久久久| 欧美一级片在线看| 日韩专区一卡二卡| 欧美群妇大交群中文字幕| 成人免费在线播放视频| 国产成人在线电影| 久久久99久久精品欧美| 毛片基地黄久久久久久天堂| 欧美精品一二三| 午夜精品视频在线观看| 在线观看成人小视频| 亚洲香蕉伊在人在线观| 在线观看视频一区二区欧美日韩| 亚洲免费观看高清在线观看| 91视频免费看| 亚洲已满18点击进入久久| 欧美日韩成人综合天天影院| 亚洲国产精品久久不卡毛片| 欧美体内she精视频| 亚洲日穴在线视频| 一本色道久久加勒比精品| 欧美国产日韩精品免费观看| 激情偷乱视频一区二区三区| 8x福利精品第一导航| 久久国产夜色精品鲁鲁99| 6080亚洲精品一区二区| 日本欧美久久久久免费播放网| 欧美一区二区三区精品| 日韩成人dvd| 久久蜜桃一区二区| 国产成人在线看| 国产精品每日更新在线播放网址| 国产91精品一区二区麻豆网站| 久久久久久久久久美女| 成人黄页在线观看| 国产日韩欧美麻豆| 99久久伊人网影院| 午夜久久久久久| 久久免费看少妇高潮| aaa亚洲精品| 久久99精品久久久久婷婷| 欧美韩日一区二区三区四区| 久久精品国产亚洲一区二区三区| 精品少妇一区二区| 91免费视频网址| 亚洲国产精品视频| 国产精品乱人伦中文| 欧美图片一区二区三区| 精品亚洲欧美一区| 亚洲视频狠狠干| 欧美mv日韩mv国产网站app| 色婷婷综合久久久中文一区二区| 午夜视频一区二区三区| 国产精品私房写真福利视频| 欧美性猛交xxxx黑人交| 国产美女视频91| 日韩精品五月天| 亚洲精品乱码久久久久久| 久久亚洲精品国产精品紫薇| 成人97人人超碰人人99| 免费人成在线不卡| 亚洲精品美国一| 中文字幕在线不卡视频| 国产日产精品一区| 亚洲国产精品成人久久综合一区| 欧美日韩国产精品成人| 在线观看国产91| 91豆麻精品91久久久久久| 91丝袜美腿高跟国产极品老师 | 国产欧美一区二区精品性色 | 日韩欧美国产小视频| 欧美一区二区在线看| 欧美在线免费观看亚洲| 欧美体内she精高潮| 欧美在线一区二区三区| 99久久er热在这里只有精品15| 成人激情文学综合网| 国产精品18久久久久| 粉嫩13p一区二区三区| 99久久精品免费看国产免费软件| 国产91精品欧美| 不卡区在线中文字幕| 成人性生交大片免费看视频在线| 国产盗摄视频一区二区三区| 丁香婷婷综合色啪| 色婷婷综合久久久中文一区二区| 色综合久久久久久久久| 一本色道久久综合狠狠躁的推荐| 色吊一区二区三区| 亚洲主播在线观看| 麻豆国产欧美日韩综合精品二区| 久久99久久99| 99国产精品久| 91精品国产综合久久久久久漫画 | 91麻豆精品国产91| wwww国产精品欧美| 亚洲人xxxx| 美女在线视频一区| 91女神在线视频| 欧美日本一区二区三区四区| 欧美精品一区二区三区很污很色的| 国产欧美视频一区二区| 亚洲小少妇裸体bbw| 国产成都精品91一区二区三| 欧美日韩日日骚| 日韩欧美国产综合| 亚洲一区二区视频| 不卡一区二区中文字幕| 日韩午夜三级在线| 亚洲 欧美综合在线网络| 激情久久久久久久久久久久久久久久| 97se亚洲国产综合自在线观| 2023国产一二三区日本精品2022| 国产精品国产自产拍高清av| 国产毛片精品视频| 日韩一级视频免费观看在线| 一区二区三区欧美日| 国产精品99久久久久| 精品国产污污免费网站入口 | 一区二区在线观看视频 | 国产精品自拍网站| 日韩欧美一区二区在线视频| 欧美高清在线精品一区| 国产91丝袜在线播放| 国产亚洲va综合人人澡精品 | 国产激情视频一区二区在线观看 | 亚洲激情一二三区| 99精品国产99久久久久久白柏| 欧美韩日一区二区三区四区| 国产精品888| 久久久久久久久久看片| 在线精品视频免费播放| 亚洲视频一区在线观看| 色www精品视频在线观看| 亚洲二区视频在线| 欧美精品 国产精品| 国产综合久久久久久久久久久久| 精品久久国产97色综合| 黄色日韩三级电影| 日韩三级视频中文字幕| 成人午夜精品在线| 亚洲午夜激情网站| 精品国产精品网麻豆系列| 国精产品一区一区三区mba视频| 国产精品久久久久一区| 欧美日韩卡一卡二| 成人小视频在线观看| 日韩国产高清影视| 亚洲精品国产精品乱码不99| 日韩欧美视频在线 | 欧美一级淫片007| 99re66热这里只有精品3直播 | 欧美成人精品高清在线播放| 不卡的av在线播放| 国产成人免费视频网站| 三级欧美韩日大片在线看| 一区在线播放视频| 国产清纯在线一区二区www| 欧美蜜桃一区二区三区| 粉嫩蜜臀av国产精品网站| 久99久精品视频免费观看| 亚洲丰满少妇videoshd| 亚洲综合色视频| 亚洲综合激情网| 亚洲日本一区二区三区| 欧美激情一区二区三区在线| 精品美女一区二区| 欧美成人猛片aaaaaaa| 91精品国产综合久久婷婷香蕉| 欧美视频一区在线观看|