新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于stc12c56的心電信號模擬程序

        基于stc12c56的心電信號模擬程序

        作者: 時間:2016-11-29 來源:網絡 收藏
        ///////////////////////////////////////////////////////////*************定時器定時輸入波形***********************/void timer0_int() interrupt 1{pwm_n = (pwm_n + 1)/255;switch(Wave){case 0 : {pwm(SacTab[pwm_n]);break;} //正常心電波case 1 : {pwm(pwm_n);break;} //鋸齒波case 2 : {pwm(SinTab[pwm_n]);break;} //正弦波// case 3 : {pwm(SanTab[pwm_n]);break;}default : pwm(0x3c);break;}TH0 = (-50000+Wave*200) / 256;TL0 = (-50000+Wave*200) % 256; }////////////////////////////////////////////void pwm(uchar High) //調節PWM輸出{CR = 0;CMOD = 0x02; //setup PCA timerCL = 0x00;CH = 0x00;CCAP0L = 255 - High; //Set the initial value same as CCAP0H;CCAP0H = 255 - High; //高電平為 high/256CCAPM0 = 0x42; //0100,0010 setup PCA module 0 in PWM modeCR = 1; //start PCA timer}//////////////////////////////////////////////uchar get_adc(uchar channel) //AD 采樣{ADC_DATA = 0;ADC_LOW2 = 0;channel &= 0x07; //0000,0111 清0高5位_nop_();_nop_();_nop_();_nop_();ADC_CONTR |= AD_SPEED1; //選擇速度_nop_();_nop_();_nop_();_nop_();ADC_CONTR |= channel; //選擇 A/D 當前通_nop_();_nop_();_nop_();_nop_();delay(1); //使輸入電壓達到穩定ADC_CONTR |= 0x08; //0000,1000 令 ADCS = 1, 啟動A/D轉換_nop_();_nop_();_nop_();_nop_();while(!(ADC_CONTR & 0x10)); //0001,0000 測試A/D轉換結束否ADC_CONTR &= 0x80; //1000,0000 清 ADC_FLAG 位, 關閉A/D轉換,_nop_();_nop_();_nop_();_nop_();return (ADC_DATA); //返回 A/D 8 位轉換結果}/******************按鍵處理****************************/void button(uchar key){if(key == 1) {Wave=(Wave+1)%4; }if(key == 2){Wave=(Wave-1)%4;}if(key == 3){Freq=(Freq+1)%50;}if(key == 4){Freq=(Freq-1)%50;}}//////////////////////////////////////////////////******************AD做鍵盤**********************************/void Key(){AD_result = get_adc(NUM); //獲取按鍵值if(abs(AD_result)< 240) //判斷是否按鍵{delay(4); //去抖動AD_result = get_adc(NUM);if(abs(AD_result)< 240) //獲取穩定的按鍵值{AD_n=(255)/(254 - AD_result); //獲取倍率,方便處理if((AD_n > 1.5)&&(AD_n <= 2.5))button(1);else if((AD_n > 2.5)&&(AD_n <= 3.5))button(2);else if((AD_n > 3.5)&&(AD_n <= 4.5))button(3);else if((AD_n > 4.5)&&(AD_n <= 5.5))button(4);elsebutton(5);}}delay(25);}//////////////////////////////////////////////main(){adc_init();timer0_init();pwm_init();while(1){Key();}} 2、設計波形采集回放系統。
        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 姜堰市| 舞钢市| 万载县| 班戈县| 马尔康县| 江源县| 古蔺县| 东乌| 丹东市| 开化县| 石狮市| 德昌县| 揭东县| 垫江县| 灵川县| 从化市| 马尔康县| 衡南县| 临颍县| 东兴市| 江门市| 海阳市| 广平县| 翁牛特旗| 娱乐| 合川市| 新巴尔虎右旗| 新绛县| 莱芜市| 平安县| 天台县| 类乌齐县| 青州市| 黄龙县| 永清县| 新昌县| 岳阳市| 监利县| 津市市| 梁平县| 富平县|