0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

E4A5 易安卓和單片機keil串口通訊mini理療儀項目代碼

徐工 ? 來源:愿隨風(fēng) ? 作者:愿隨風(fēng) ? 2024-03-25 17:02 ? 次閱讀

一、軟件E4A5 APP部署方法

E4A5的部署文件有兩個,

wKgaomX-58qAFQR-AAAIWDfnJNI498.pngwKgaomX-7_KAGua2AAAbTwDhMOo990.png

?編輯后綴為e4a為編程文件,技術(shù)人員代碼編輯文件,部署文件為apk。使用E4A5時候在設(shè)置處可以設(shè)置png格式的圖標(biāo)以及apk文件名,在調(diào)試程序前,需要下載

wKgZomX-7_KAbe9rAAAvWvGDxUw684.pngwKgZomX-59eARTagAAApNbX4zrs635.png

?編輯雷電模擬器作為手機模擬發(fā)生器(官網(wǎng)可以下載),E4A5為中文編程,其APK文件通過QQ附件形式可以直接下載安裝在手機上,有些手機為了安全會在QQ下載時候后綴名改了,這個時候在手機默認(rèn)的文檔里找到該APK,將后綴名修改為APK后可以下載安裝,下載前由于簽字唯一性,需要將之前的程序先卸載,切記。

??

二、軟件飛訊語音功能技術(shù)部署方法

訊飛語音組件在E4A5的example例子文件里中級歷程有例子,在編程的媒體類軟件處可以找到

wKgaomX-7_OAPxw8AAAO9cdxoAM597.pngwKgaomX-6CWAU8pGAAAFLbUkYyw353.png

?編輯,同時也需要在擴展庫找到權(quán)限操作

wKgZomX-7_OAejuWAAAT1lyZjbM602.pngwKgaomX-6DOAbbiBAAAIhAp3Riw835.png

?編輯,將例程里將里面的libsarm64-v8alibmsc.so 和 libsarmeabi-v7alibmsc.so 文件導(dǎo)入到E4A左側(cè)的工程里的SO庫中,并將Msc.jar文件導(dǎo)入到工程里的JAR包中

?

wKgZomX-6EiAWIscAABIydy-rI0800.png

然后訊飛語音可以用,如果手機有攔截警告,可以予以信任,訊飛語音的準(zhǔn)確度一直在平臺更新,準(zhǔn)確率達90%。但是有一點需要注意,就是識別結(jié)束時候以逗號結(jié)束,所以一定在代碼要加上“?!北热纾簳r間設(shè)置為10分鐘。

核心代碼:
 事件 窗口1.創(chuàng)建完畢()
	如果 權(quán)限操作1.取系統(tǒng)版本號()>=23 則
		權(quán)限操作1.申請全部權(quán)限()
	結(jié)束 如果
	訊飛語音1.初始化("5cf517a5") '?。?!請?zhí)鎿Q成你自己的APPID,并到左側(cè)的工程選項卡中的  引入SO庫  那里替換你自己申請到的SDK開發(fā)包中的libmsc.so庫文件和Msc.jar文件
	訊飛語音1.初始化語音識別()
	訊飛語音1.設(shè)置語音識別參數(shù)(1,真)
	訊飛語音1.初始化語音合成()
	訊飛語音1.設(shè)置語音合成參數(shù)(1,50,50,50)
結(jié)束 事件
事件 訊飛語音1.語音識別初始化完畢(初始化結(jié)果 為 邏輯型)
	如果 初始化結(jié)果 = 真 則
		語音識別.可用=真
		彈出提示("語音識別初始化成功")
	否則	
	語音識別.可用=假
		彈出提示("語音識別初始化失敗")
	結(jié)束 如果
結(jié)束 事件

事件 訊飛語音1.語音合成初始化完畢(初始化結(jié)果 為 邏輯型)
	如果 初始化結(jié)果 = 真 則
		
		彈出提示("語音合成初始化成功")
	否則	
		彈出提示("語音合成初始化失敗")
	結(jié)束 如果
結(jié)束 事件

事件 語音識別.被單擊()
訊飛語音1.開始語音識別()
結(jié)束 事件
事件 訊飛語音1.語音識別完畢(識別結(jié)果 為 邏輯型,識別內(nèi)容 為 文本型)
	變量 分割 為 文本型()
	如果 識別結(jié)果 = 真 則
		分割 = 分割文本(識別內(nèi)容,"n")
		如果 取數(shù)組下標(biāo)(分割,1) > 0 則
		
			如果 分割(0)="時間設(shè)置為10分鐘。" 則			
			分=10
		   結(jié)束 如果
		   如果 分割(0)="時間設(shè)置為20分鐘。" 則
			分=20
		    結(jié)束 如果
		    如果 分割(0)="時間設(shè)置為30分鐘。" 則
			分=30
		    結(jié)束 如果
	        如果 分割(0)="強度增大。" 則
			    強度=強度+1
			    如果 到數(shù)值(強度) > 9 或 到數(shù)值(強度) < 0 則
			    彈出提示("請輸入0-9數(shù)字" )
				強度=強度-1
			    結(jié)束 如果	
			結(jié)束 如果
			如果 分割(0)="強度減小。" 則
				 強度=強度-1
				如果 到數(shù)值(強度) > 9 或 到數(shù)值(強度) < 0 則
			    彈出提示("請輸入0-9數(shù)字" )
				強度=強度+1
			    結(jié)束 如果	 
			結(jié)束 如果
			如果 分割(0)="模式選擇為針灸模式。" 則
			模式="針灸模式"
		    結(jié)束 如果
			如果 分割(0)="模式選擇為腰部模式。" 則
			模式="腰部模式"
		    結(jié)束 如果
			如果 分割(0)="模式選擇為腿部模式。" 則
			模式="腿部模式"
		    結(jié)束 如果
			如果 分割(0)="模式選擇為腦部模式。" 則
			模式="腦部模式"
		    結(jié)束 如果
			如果 分割(0)="啟動。" 則			
			  啟動狀態(tài)=1
	           如果 分 > 0 則
		       秒=59
		       毫秒=100
		       分=分-1
		       時間設(shè)置.可用=假
		       強度設(shè)置.可用=假
		       模式選擇.可用=假
		       藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(啟動狀態(tài),"GBK"))
		       如果 分

三、軟件E4A5藍牙技術(shù)說明

?

(一)使用串口助手或者HID轉(zhuǎn)串口小助手

wKgZomX-6c-AILExAADl7JIGfoU624.png

可以對HC-4或者更高級版本進行AT指令編輯。當(dāng)HC-4藍牙連接電腦時候,需要HC-USB-T 參數(shù)架配合使用,但當(dāng)跟單片機具體硬件時候則可以HC-4藍牙直接與單片機TXD和RXD通訊。具體執(zhí)行圖如圖1 圖2 圖3

wKgaomX-6pGAETSwAAHwe9GbEFQ429.png

圖1

?

wKgZomX-6r-Acf_4AAJKlNs1E_M431.png

圖3

(二)在ESA5里需要三個控件,分別是藍牙、位置傳感器、權(quán)限操作,藍牙初始化程序:

事件 主窗口.創(chuàng)建完畢()	
	如果 權(quán)限操作1.檢查權(quán)限("android.permission.BLUETOOTH") = 真 且 權(quán)限操作1.檢查權(quán)限("android.permission.BLUETOOTH_ADMIN") = 真  且 權(quán)限操作1.檢查權(quán)限("android.permission.READ_PHONE_STATE") = 真 則
		彈出提示("已獲得權(quán)限,直接初始化藍牙")
		初始化藍牙()
	否則
		彈出提示("未獲得權(quán)限,開始申請權(quán)限")
		權(quán)限操作1.申請全部權(quán)限()
	結(jié)束 如果
結(jié)束 事件

事件 權(quán)限操作1.申請完畢(權(quán)限數(shù)組 為 文本型(),申請結(jié)果 為 整數(shù)型())
	如果 權(quán)限操作1.檢查權(quán)限("android.permission.BLUETOOTH") = 真 且 權(quán)限操作1.檢查權(quán)限("android.permission.BLUETOOTH_ADMIN") = 真  且 權(quán)限操作1.檢查權(quán)限("android.permission.READ_PHONE_STATE") = 真 則
		初始化藍牙()
	否則
		信息框("信息","藍牙權(quán)限沒有開啟,請在應(yīng)用的權(quán)限設(shè)置頁面開啟藍牙權(quán)限!","確定")
		權(quán)限操作1.打開權(quán)限設(shè)置()
	結(jié)束 如果
結(jié)束 事件

過程 初始化藍牙()
	如果 藍牙1.是否存在() = 假 則
		信息框("信息","本機找不到藍牙設(shè)備,程序?qū)⑼顺觯?,"確定")
		結(jié)束程序()
	結(jié)束 如果
	如果 藍牙1.是否已開啟() = 假 則
		藍牙1.開啟藍牙()
	否則	
		藍牙1.置工作模式(2)
	結(jié)束 如果		
結(jié)束 過程

事件 藍牙1.藍牙設(shè)置完畢(設(shè)置結(jié)果 為 整數(shù)型)
	如果 設(shè)置結(jié)果 = 2則
		藍牙1.置工作模式(2)
	結(jié)束 如果	
結(jié)束 事件
藍牙搜索:
事件 按鈕1.被單擊()
	位置傳感器1.開始監(jiān)測() '在新版的安卓系統(tǒng)中,必須開啟GPS定位才能搜索到藍牙設(shè)備
	列表框1.清空項目()
	藍牙1.搜索設(shè)備() '搜索設(shè)備
	彈出提示("正在搜索")
結(jié)束 事件
發(fā)現(xiàn)藍牙
發(fā)現(xiàn)藍牙陳列:
事件 藍牙1.發(fā)現(xiàn)設(shè)備(設(shè)備名稱 為 文本型,設(shè)備地址 為 文本型,是否已配對 為 邏輯型)	
	列表框1.添加項目("理療" & 列表框1.取項目數(shù)() & "-" & 設(shè)備地址 & "-" & 是否已配對)
	列表框1.置項目標(biāo)記(列表框1.取項目數(shù)()-1,設(shè)備地址)
結(jié)束 事件
選擇列表框里藍牙:
事件 列表框1.表項被單擊(項目索引 為 整數(shù)型)	
	變量 設(shè)備地址 為 文本型	
	藍牙索引=項目索引
	設(shè)備地址 = 列表框1.取項目標(biāo)記(項目索引)
	標(biāo)簽1.標(biāo)題=設(shè)備地址
	保存對象("標(biāo)簽1",標(biāo)簽1)
	'藍牙1.連接設(shè)備(設(shè)備地址)'連接設(shè)備
	'彈出提示("正在連接:" & 設(shè)備地址)	
	保存窗口("窗口1",創(chuàng)建 窗口1)'這句話很重要,要刷新作用,也是聲明創(chuàng)新窗口
	切換窗口(讀取窗口("窗口1"))
結(jié)束 事件
關(guān)閉藍牙:
事件 關(guān)閉藍牙.被單擊()
	藍牙1.斷開連接() '退出處理,釋放資源,結(jié)束內(nèi)部處理線程
	結(jié)束程序()
結(jié)束 事件
事件 藍牙1.連接完畢(連接結(jié)果 為 邏輯型,設(shè)備名稱 為 文本型,設(shè)備地址 為 文本型,連接模式 為 整數(shù)型)
	變量 設(shè)備信息 為 文本型
	變量 文本數(shù)組 為 文本型()
	變量 啟動窗口 為 主窗口
	如果 連接結(jié)果 = 真 則	
		窗口1.標(biāo)題 = "已連接:"
	標(biāo)簽2.標(biāo)題 =  "已連接" 
		彈出提示("連接成功")
	否則	
	標(biāo)簽2.標(biāo)題 =  "未連接" 
		彈出提示("連接失敗")
	結(jié)束 如果
結(jié)束 事件

值得注意是這兩句全局定義控件,只有保持對象了,在其他窗口才可以引用,藍牙功能就可以跨窗口操作:

保存對象("藍牙1",藍牙1)'這句話很重要,否則權(quán)限無法保存

保存窗口("主窗口",本對象) '本對象是當(dāng)前窗口

四、軟件E4A5串口發(fā)送和接收

發(fā)收具體命令:

藍牙1.發(fā)送數(shù)據(jù)(文本到字節(jié)(啟動狀態(tài),"GBK")),

其中啟動狀態(tài)是整數(shù)型或者文本型,字符可以直接接收,但是數(shù)字需要轉(zhuǎn)換,單片機接收是ASCII值,所以接收不能直接接收,需要ASCII碼轉(zhuǎn)換,我是全部將命令以數(shù)字形式發(fā)送給單片機,單片機有ASCII碼1-9轉(zhuǎn)換表:uchar shijian[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};單片機接收只能是一個字符一個字符接收,ascii碼減去字符0剛好等于對應(yīng)的數(shù)字,一定要記得。

Recive_table[i]=SBUF;

摘取字符接收:if(Recive_table[i]=='x')//接到需要匯報

摘取數(shù)字接收:minute=(Recive_table[1]-'0')*10+(Recive_table[2]-'0');

接收具體命令:

E4A5接收字符串后需要用尋找文本(分割數(shù)據(jù),"rp",0) >=0來分割字符,其中rp是尋找標(biāo)記的起始位置,它的起始開始數(shù)字位為0,所以找一個字符其實就是到0那個位置就是準(zhǔn)確位置。我們的字符串格式為zifu="rpm10Ms58Sq4Qa2Ab0B",分別代表分鐘、秒、強度、模式、啟動狀態(tài),例:如果 尋找文本(分割數(shù)據(jù),"q",0) >0 則 強度= 取指定文本2(分割數(shù)據(jù),"q","Q") 結(jié)束 如果

事件 藍牙1.收到數(shù)據(jù)(數(shù)據(jù) 為 字節(jié)型(),設(shè)備名稱 為 文本型,設(shè)備地址 為 文本型)
	變量 收到數(shù)據(jù) 為 文本型	
	分割數(shù)據(jù)=字節(jié)到文本(數(shù)據(jù),"GBK") ’串口通訊接收字符串
	如果 尋找文本(分割數(shù)據(jù),"y",0) >=0 則 
		彈出提示("程序已啟動")
	結(jié)束 如果
	如果 尋找文本(分割數(shù)據(jù),"n",0) >=0 則 
		彈出提示("程序已停止")
	結(jié)束 如果
	如果 尋找文本(分割數(shù)據(jù),"z",0) >=0 則 
		彈出提示("程序已暫停")
	結(jié)束 如果
	'rpm10Ms58Sq4Qa2Ab0B
 如果 尋找文本(分割數(shù)據(jù),"rp",0) >=0 則 
	  	如果 尋找文本(分割數(shù)據(jù),"m",0) >0 則
		分=取指定文本2(分割數(shù)據(jù),"m","M")		
	  	結(jié)束 如果
	  如果 尋找文本(分割數(shù)據(jù),"s",0) >0 則
	秒=  取指定文本2(分割數(shù)據(jù),"s","S")	  	
	  	結(jié)束 如果
		如果 尋找文本(分割數(shù)據(jù),"q",0) >0 則
	強度=  取指定文本2(分割數(shù)據(jù),"q","Q")
	  	結(jié)束 如果
		如果 尋找文本(分割數(shù)據(jù),"a",0) >0 則
	模式數(shù)額=  取指定文本2(分割數(shù)據(jù),"a","A")
	如果 模式數(shù)額=0 則
		模式="針灸模式"
		結(jié)束 如果
		如果 模式數(shù)額=1 則
		模式="腰部模式"
		結(jié)束 如果
		如果 模式數(shù)額=2 則
		模式="腿部按摩"
		結(jié)束 如果
		如果 模式數(shù)額=3 則
		模式="腦部按摩"
		結(jié)束 如果		
	  	結(jié)束 如果
		如果 尋找文本(分割數(shù)據(jù),"b",0) >0 則
	啟動狀態(tài)=  取指定文本2(分割數(shù)據(jù),"b","B")
		 如果 啟動狀態(tài)=0 則
		按鈕暫停.可用=假
		啟動.可用=真
		  時鐘1.時鐘周期 = 0 
		  秒 = 0
          分 = 0
          時 = 0
	      強度=0
		   結(jié)束 如果
			  如果 啟動狀態(tài)=1 則
		       時鐘1.時鐘周期 = 1
			按鈕暫停.可用=真
			啟動.可用=假
		      結(jié)束 如果
		     如果 啟動狀態(tài)=2 則
		     時鐘1.時鐘周期 = 0		
		     如果 按鈕暫停.標(biāo)題="暫停" 則
		    按鈕暫停.標(biāo)題="繼續(xù)"
		    時鐘1.時鐘周期 = 0
	        否則
	        時鐘1.時鐘周期 = 1
		   按鈕暫停.標(biāo)題="暫停"
	        結(jié)束 如果  
		結(jié)束 如果
	  結(jié)束 如果        
	結(jié)束 如果 
	標(biāo)簽1.標(biāo)題 = "時間:"&到文本(時) & ":" & 到文本(分) & ":" & 到文本(秒)&"n"&"強度:"&到文本( 強度 )&"  "&"模式:"&模式
	
結(jié)束 事件
     單片機發(fā)送字符串:
   				fasong_table[1]='r';				
				fasong_table[2]='p';
				fasong_table[3]='m';
				fasong_table[4]=shijian[minute/10];
				fasong_table[5]=shijian[minute%10];
				fasong_table[6]='M';
				fasong_table[7]='s';
				fasong_table[8]=shijian[second/10];
				fasong_table[9]=shijian[second%10];
				fasong_table[10]='S';
				fasong_table[11]='q';
				fasong_table[12]=shijian[stre];
				fasong_table[13]='Q';
				fasong_table[14]='a';
				fasong_table[15]=shijian[mod];
				fasong_table[16]='A';
				fasong_table[17]='b';
				fasong_table[18]=shijian[star_bol];
				fasong_table[19]='B';
				
				//zifu="rpm10Ms58Sq4Qa2Ab0B";
				for(j=0;j<=19;j++)
				{
					 TI=0;     //請求發(fā)送標(biāo)志位			
				   SBUF=fasong_table[j];
					while(!TI);
				}

五、單片機幾個定時器和中斷器使用說明

定時器在該項目中非常重要,STC12C5A60S2只有兩個定時器T0和T1,項目里T0當(dāng)?shù)褂嫊r,對應(yīng)中斷3,T1當(dāng)串口,對應(yīng)中斷4。但是2路模塊PCA模塊有獨立2個16位定時器,可以很好釋放T0和T1的工作壓力。PCA模塊里啟用PWM模塊時候需要啟用寄存器TMR2和AUXR1特殊功能寄存器。這樣才能啟動獨立的定時器。定時器有12T和1T的晶振頻率,本項目使用是AUXR |= 0x04; 1T的晶振頻率,使用12T啟動不了PCA的PWM模塊,具體如何我也沒研究透。

串口初始化:

#define		Timer0_Reload	18432	//T0 interrupt at 10ms @22.1184MHZ
sfr AUXR1 = 0xA2;
sfr	AUXR = 0x8E;
sfr S2CON = 0x9A;	//12C5A60S2雙串口系列
sfr S2BUF = 0x9B;	//12C5A60S2雙串口系列
sfr IE2   = 0xAF;	//STC12C5A60S2系列
sfr BRT   = 0x9C;
/////////////
//sfr	AUXR = 0x8E;
sfr CCON = 0xD8;
sfr CMOD = 0xD9;
sfr CCAPM0 = 0xDA;	//PCA module 0 work mode
sfr CCAPM1 = 0xDB;	//PCA module 1 work mode
sfr CL     = 0xE9;	//PCA counter
sfr CCAP0L = 0xEA;	//PCA模塊0的捕捉/比較寄存器低8位。
sfr CCAP1L = 0xEB;	//PCA模塊1的捕捉/比較寄存器低8位。
sfr PCA_PWM0 = 0xF2;	//PCA模塊0 PWM寄存器。
sfr PCA_PWM1 = 0xF3;	//PCA模塊1 PWM寄存器。
sfr CH     = 0xF9;
sfr CCAP0H = 0xFA;		//PCA模塊0的捕捉/比較寄存器高8位。
sfr CCAP1H = 0xFB;		//PCA模塊1的捕捉/比較寄存器高8位。

sbit CCF0  = CCON^0;	//PCA 模塊0中斷標(biāo)志,由硬件置位,必須由軟件清0。
sbit CCF1  = CCON^1;	//PCA 模塊1中斷標(biāo)志,由硬件置位,必須由軟件清0。
sbit CR    = CCON^6;	//1: 允許PCA計數(shù)器計數(shù),必須由軟件清0。
sbit CF    = CCON^7;	//PCA計數(shù)器溢出(CH,CL由FFFFH變?yōu)?000H)標(biāo)志。PCA計數(shù)器溢出后由硬件置位,必須由軟件清0。

#define		PWM0_NORMAL()	PCA_PWM0 = 0	//PWM0正常輸出(默認(rèn))
#define		PWM0_OUT_0()	PCA_PWM0 = 3	//PWM0一直輸出0
#define		PWM1_NORMAL()	PCA_PWM1 = 0	//PWM1正常輸出(默認(rèn))
#define		PWM1_OUT_0()	PCA_PWM1 = 3	//PWM1一直輸出0
/*************	本地函數(shù)聲明	**************/

void	en_PCA(void);
void	en_PWM(uchar channel,uchar start_value);

bit		B_T0_interrupt;
void Uart_Init()			
{  
 
		PCON &= 0x7F;		//波特率不倍速https://blog.csdn.net/lzxiaotu/article/details/117666450
	SCON = 0x50;		//8位數(shù)據(jù),可變波特率
	AUXR |= 0x04;		//獨立波特率發(fā)生器時鐘為Fosc,即1T
	BRT = 0xDC;		//設(shè)定獨立波特率發(fā)生器重裝值
	AUXR |= 0x01;		//串口1選擇獨立波特率發(fā)生器為波特率發(fā)生器
	AUXR |= 0x10;		//啟動獨立波特率發(fā)生器	
	EA = 1;//開總中斷
	ES = 1;//開串口中斷
} 
PWM初始化:
void pwm_init()
{
	uint	i;

	en_PWM(0,pwmH_num);	//load PWM value
	en_PWM(1,pwmL_num);	//load PWM value
	en_PCA();		//enable PCA
	EA  = 1;		//enable all interrupt
    TMOD = 0x02;	//T0 as 8 bit reload
		TH0  = 0 - 10;	//Reload time
		AUXR |=  0x80;	//T0 as 1T
		ET0 = 0;		//disable T0 interrupt
		TR0 = 1;		//enable T0
		PWM0_NORMAL();	//PWM0 normal output
		PWM1_NORMAL();	//PWM1 normal output
		for(i=0; i

六、單片機STC12C5A60S2芯片的pwm模塊介紹與使用

單片機只有s2結(jié)尾才代表有獨立的兩個PCB模塊,那么pwm是怎么發(fā)出呢?根據(jù)手冊,本項目的串口大概是默認(rèn) RXD2為P1.2,可以切換到P4.2 ,TXD2默認(rèn)為-P1.3,可以切換到P4.3。

本研究采用STC12C5A60S2單片機實現(xiàn)CCP脈沖波的精確控制。與傳統(tǒng)51單片機相比,該單片機具有專用的AUXR輔助寄存器,使CCP脈沖波計時更為獨立和準(zhǔn)確[16]。本研究通過以下公式計算PWM頻率初始值:

wKgaomX-7C2AXNwKAAAG00rZqsI482.png

理療儀的各種調(diào)制波形根據(jù)所需治療效果進行定制,包括脈寬、脈沖間隔、持續(xù)時間和關(guān)斷時間。實驗中,共80名測試者分為A、B兩組進行治療效果對比。A組僅采用傳統(tǒng)醫(yī)療手法,而B組則結(jié)合了本設(shè)備的輔助治療。兩周的治療后,本研究對比了兩組的效果,如表1所示。

表1 常規(guī)手法與設(shè)備輔助治療效果的對比

組別 治療部位 理療手法 效果(%) 匯總(%)
A組 腰部 錘擊、揉捏 60 55
A組 腿部 針刺、揉捏 50 -
A組 手部 針刺、叩擊、揉捏 70 -
A組 頭部 針刺、揉捏 40 -
B組 腰部 錘擊、揉捏 + 設(shè)備 80 82.5
B組 腿部 針刺、揉捏 + 設(shè)備 90 -
B組 手部 針刺、叩擊、揉捏 + 設(shè)備 90 -
B組 頭部 針刺、揉捏 + 設(shè)備 70 -

研究利用示波器捕獲了設(shè)備輸出的治療波形,以此驗證設(shè)備的性能和治療波形的一致性,如圖4所示。

wKgZomX-7FOAXkUvAAZds7yZhKk126.png

圖4 PWM調(diào)制成治療波形展示

具體代碼:

void mol_methor()
{
  switch(mod)
	{
		case 0:
			pwmH_num=120;
		  pwmL_num=50;
			if(jishi>15)
			{
			   pwmH_num=50;
				 pwmL_num=120;
				if(jishi==30)
				{
				jishi=0;
				}
			}
			break;
		case 1:	
			pwmH_num=130;
		  pwmL_num=100;
			if(jishi>15)
			{
			   pwmH_num=199;
				 pwmL_num=130;
				if(jishi==30)
				{
				jishi=0;
				}
			}
			break;
			case 2:	
			pwmH_num=80;
		  pwmL_num=110;
			if(jishi>15)
			{
			   pwmH_num=110;
				 pwmL_num=80;
				if(jishi==30)
				{
				jishi=0;
				}
			}
			break;
			default:
				pwmH_num=160;
		    pwmL_num=110;
			if(jishi>15)
			{
			   pwmH_num=110;
				 pwmL_num=160;
				if(jishi==30)
				{
				jishi=0;
				}
			}
			break;
		}
			
}


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    450

    文章

    49636

    瀏覽量

    417195
  • 藍牙
    +關(guān)注

    關(guān)注

    114

    文章

    5684

    瀏覽量

    168090
  • 通訊
    +關(guān)注

    關(guān)注

    9

    文章

    877

    瀏覽量

    34668
  • 串口
    +關(guān)注

    關(guān)注

    14

    文章

    1533

    瀏覽量

    75464
  • keil
    +關(guān)注

    關(guān)注

    68

    文章

    1207

    瀏覽量

    166177
收藏 人收藏

    評論

    相關(guān)推薦

    家用理療儀自制原理圖

    本電路原理簡單,制作方便,各位電子發(fā)燒友們可嘗試自制。家用 理療儀 自制原理圖如下:
    發(fā)表于 10-09 12:04 ?1.5w次閱讀
    家用<b class='flag-5'>理療儀</b>自制原理圖

    求基于單片機控制的紅外理療儀溫控系統(tǒng)設(shè)計方面的意見

    有沒有大神有 基于單片機控制的紅外理療儀溫控系統(tǒng) 實物設(shè)計方面的資料或者大神們給點意見,謝謝.要求:可以控制加熱時間與加熱溫度設(shè)定。
    發(fā)表于 05-06 21:04

    有沒有人做過單片機控制的紅外理療儀溫控方面的項目?

    有沒有人做過單片機控制的紅外理療儀 溫控方面的項目? 主要是控制溫度 與檢測溫度
    發(fā)表于 05-07 09:08

    我想找人開發(fā)一個中頻理療儀案子誰可以接???

    `我們公司想找人開發(fā)一個中頻理療儀的全套案子有誰可以接!類似京東網(wǎng)上的https://item.jd.com/1727315570.html `
    發(fā)表于 12-21 14:07

    重金。。。求一個中頻理療儀方案,及工業(yè)設(shè)計

    `需求一個中頻理療儀的方案:如果能夠提供整套解決方案,以及有介紹朋友做工業(yè)計設(shè)高手的,重謝!!聯(lián)系QQ:356214827中頻理療儀的功能與下圖相似`
    發(fā)表于 01-06 10:46

    【MAX17270申請試用】中低頻康復(fù)理療儀

    項目名稱:中低頻康復(fù)理療儀試用計劃:產(chǎn)品內(nèi)部涉及多種低壓直流電壓,由開關(guān)電源通過AC轉(zhuǎn)化為DC,再通過多組降壓,分別降到相應(yīng)值,再逐一提供給各各弱電系統(tǒng)。
    發(fā)表于 03-04 10:25

    什么是中頻理療儀?

    什么是中頻理療儀?基于STM8S103K3T6C 8位單片機的中頻理療儀解決方案
    發(fā)表于 06-16 07:50

    手機與藍牙模塊聯(lián)合調(diào)試—— 單片機藍牙控制LED燈亮滅(上)

    系列博文:(1)手機與藍牙模塊聯(lián)合調(diào)試(一)——藍牙模塊的串口通訊 (2)手機與藍牙模塊
    發(fā)表于 07-01 07:36

    串口單片機通訊問題

    串口單片機通訊問題
    發(fā)表于 09-23 23:04 ?62次下載

    51單片機串口通信代碼

    51單片機串口通信的代碼設(shè)計
    發(fā)表于 11-09 17:47 ?178次下載

    單片機串口通訊程序

    基于51單片機單片機串口通訊程序源代碼
    發(fā)表于 11-16 19:15 ?36次下載

    基于單片機串口通訊變長協(xié)議編寫代碼

    本文檔內(nèi)容介紹了基于單片機串口通訊變長協(xié)議編寫代碼,包括流程圖。
    發(fā)表于 09-15 15:22 ?8次下載
    基于<b class='flag-5'>單片機</b>的<b class='flag-5'>串口</b><b class='flag-5'>通訊</b>變長協(xié)議編寫<b class='flag-5'>代碼</b>

    Keil5創(chuàng)建51單片機項目中CPU顯示為空

    Keil5創(chuàng)建51單片機項目中CPU顯示為空
    發(fā)表于 11-23 16:36 ?12次下載
    <b class='flag-5'>Keil5</b>創(chuàng)建51<b class='flag-5'>單片機</b><b class='flag-5'>項目</b>中CPU顯示為空

    51單片機串口通訊仿真實驗

    實驗?zāi)康? 1.掌握單片機串行口通信的程序設(shè)計,及簡易三線式通訊的方法。 2.了解實現(xiàn)串行通訊的硬環(huán)境、數(shù)據(jù)格式的協(xié)議、數(shù)據(jù)交換的協(xié)議。 3.學(xué)習(xí)串口
    發(fā)表于 06-07 09:15 ?5次下載

    基于AT89C51單片機與PC串口通訊仿真及代碼

    基于AT89C51單片機單片機與PC串口通訊仿真仿真及代碼
    發(fā)表于 05-05 10:30 ?4次下載