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

📄 main.c

📁 在ARM7处理器S3C444B0X上的脉搏测量仪程序
💻 C
字号:
#include "option.h"
#include "def.h"
#include "44b.h"
#include "44blib.h"


#include "GUI.H"
#include "DIALOG.H"
#include "WM.h"

#include "button.h"
#include "progbar.h"
#include "ADC.h"

#include "string.h"

#include "define.h"

extern const GUI_BITMAP bmwelcome;//欢迎位图
//----------------------------------------------------------------------
int  status=0;
/*
status=0;//程序处于欢迎界面状态
status=1;//程序处于主界面状态
status=11;//程序处于脉搏测量界面状态
status=12;//程序处于脉搏常识浏览界面状态
status=13;//程序处于脉搏测量仪设置界面状态
status=14;//程序处于脉搏测量仪使用方法界面状态
status=6;//程序处于主界面状态
status=7;//程序处于主界面状态
*/
//------------------------------------------------------------------
 char *knowledge[98]={
                       "   脉搏测量常识   ",   
                       "<一>,正常脉搏的观",
                       "察及生理性变化1,正",
                       "常脉搏的观察及生理",
                       "性变化动脉有节律的",
                       "搏动称为脉搏。由于",
                       "心脏周期性活动,使",
                       "动脉内压和容积发生",
                       "节律变化,这种变化",
                       "以波浪形式沿动脉壁",
                       "向外周传播形成脉搏.",
                       "(1)正常脉搏",
                       "1.脉率 即每分钟脉",
                       "搏搏动的次数。成人",
                       "在安静时,每分钟脉",
                       "搏为60-100次. 正常",
                       "情况下,脉率和心率",
                       "是一致的,当脉率微",
                       "弱难以测得时,应测",
                       "心率。",
                       "2.脉律 即脉搏的节",
                       "律性。正常脉搏的节",
                       "律是有规则、均匀的",
                       "搏动,间隔时间相等",
                       "在一定程度上反映了",
                       "心脏的功能。",
                       "2,生理性变化",
                       "情绪、运动等因素而",
                       "变动。一般女性比男",
                       "性稍快。幼儿比成人",
                       "快,运动和情绪变化",
                       "时可暂时增快,休息",
                       "和睡眠时较慢。",
                       "<二>:异常脉搏的观",
                       "察及护理",
                       "1,频率异常",
                       "1.速脉 成人脉率每分",
                       "钟超过100次,称为速",
                       "脉。常见于发热休克",
                       "大出血前期等病人。",
                       "2.缓脉 成人脉率每",
                       "分钟低于60次, 称为",
                      "缓脉。常见于颅内压",
                       "增高,房室传导阻滞",
                       "洋地黄中毒等病人。",
                       "<三>:测量脉搏的",
                       "方法",
                       "(一)测量部位 凡身体",
                       "浅表靠近骨骼的动脉",
                       "均可用以诊脉。",
                       "常用的有桡动脉,",
                       "其次有颞浅动脉、颈",
                       "动脉、肱动脉、腘动",
                       "脉、足背动脉、胫后",
                       "动脉、股动脉等。",
                       "(二)操作方法",
                       "1.触诊法",
                       "(1)诊脉前,病人情",
                       "绪应稳定,避免过",
                       "度活动及兴奋。",
                       "(2)病人手腕放于舒",
                       "适位置。",
                      " (3)诊脉者以食、",
                      " 中、无名指(三指",
                       "并拢),指端轻按于",
                      " 桡动脉处,压力的",
                       "大小以清楚触到搏动",
                       "为宜,一般病人计数",
                       "半分钟,并将所测得",
                      " 数值乘2即为每分钟",
                      " 的脉搏数。异常脉搏",
                       "(如心血管疾病、危",
                       "重病人等) 应测1分",
                       "钟。当脉搏细弱而触",
                       "不清时,可用听诊器",
                       "听心率1分钟代替触",
                       "诊。测后记录结果。",
                       "(4)脉搏短绌的病人",
                       ",应由两人同时测量",
                       ",一人听心率,另一",
                       "人测脉率,两人同时",
                       "开始,由听心率者发",
                       "出'起'、 '停'口令",
                       ",测1分钟。",
                       "以分数式记录。记录",
                       "方法为心率/脉率,",
                       "如心率为100次,脉",
                       "率为76次则写成",
                       "100/76次/分。",
                       "(四)注意事项",
                       "1.活动或情绪激动",
                       "时,应休息20分钟",
                       "后再测。",
                       "2.不可用拇指诊脉",
                       ",以免拇指小动脉",
                       "搏动与病人脉搏相",
                       "混淆.3.偏瘫病人测",
                       "脉应选择健侧肢体."
                      };
//---------------------------------------------------------------------
 char *usageArray[30]={
                       "脉搏测量仪使用说明",   
                       "<一>测量仪配置",
                       "<1>.进入主界面,点击",
                       "\"测量设置\"进入脉",
                       "搏仪选项配置界面:",
                       "1.点击\"测量时间\"",
                       "下的左边按纽,减少",
                       "测量时间,点击右边",
                       "按纽增加测量时间;",
                       "2.点击\"健康状态提",
                       "示\"右边复选按钮,设",
                       "置测量仪根据你的测",
                       "量结果提示你的健康",
                       "状态,并显示其他相关",
                       "配置选项;",
                       "3.如果你选择了健康",
                       "状态提示,你需要选择",
                       "你的运动与否状态,",
                       "你的性别,年龄阶段.",
                       "测量仪根据这些和你",
                       "的脉搏测量数据判断",   
                       "你的健康状态。",
                       "<二>测量脉搏",
                       "进入主界面后,点击",
                       "\"测量脉搏\"进入脉搏",
                       "测量界面.点击\"开始\"",
                       "开始测量脉搏;点击",
                       "\"停止\"结束脉搏测量",
                       "这是你可以在界面下",
                       "方读取你的测量结果."
                       };
//-------------------------------------------------------------------------
 struct ConfigData configData;
 struct Knowledge  showKnowledge;
 struct Usage   usage;
/**********************************************************************
 *	main loop
 */
#define DELAY_TIME 50000

void Main(void)
{
	int i,j;
	GUI_COLOR Color;
	GUI_HID_STATE  m_hidState;
    rSYSCFG=CACHECFG;   // Using 8KB Cache//

    Port_Init();

    Isr_Init();
    ADCInit();//ADC初始化
    
    ChangePllValue( 56, 3, 1 ) ;
    
    //Uart_Init(0,57600);
    Uart_Init(0,115200);
    Delay(0);
    Uart_Select(0); //Select UART0
    Uart_Printf("\n uc-gui demo");
    GUI_Init(); 
    TP_init();
  // Test_Rtc();
    //-----------------------------------------------
  
    configData.minutes=1;
    configData.sex=1;
    configData.ageLevel=2;
    configData.exerciseOrNormal=1;
    configData.prompt=0;
    
    for(j=0;j<=99;j++)
      showKnowledge.message[j]=knowledge[j];
    showKnowledge.nCount=99;
    showKnowledge.startLine=0;
    showKnowledge.endLine=11;
    
    for(j=0;j<=30;j++)
      usage.message[j]=usageArray[j];
    usage.nCount=30;
    usage.startLine=0;
    usage.endLine=11;
    
    GUI_Clear();
	status=0;//欢迎界面
    GUI_DrawBitmap(&bmwelcome,0,0);//显示欢迎界面 
    
    
  /*
  while(1) 
  {
    
	GUI_Clear();
	status=0;//欢迎界面
    GUI_DrawBitmap(&bmwelcome,0,0);
    Delay( DELAY_TIME) ; 
    WaitKey();
    _ExecCalibration();Delay( DELAY_TIME) ; //WaitKey();
    
   _TestCalibration();Delay( DELAY_TIME) ; //WaitKey();
    
   // _ExecKeyboard();Delay( DELAY_TIME) ; //WaitKey();
	
    GUI_Clear();
    GUI_SetBkColor(GUI_BLUE);
    GUI_SetColor(GUI_WHITE);
   	GUI_SetFont(&GUI_Font_HZK16);
	GUI_DispString("你好,朋友!");
	GUI_DispString("\n谢谢您选择了我们的产\n品!");
	GUI_DispString("\n北京恒丰锐科科技有限\n公司");
	GUI_DispString("\nhttp://www.hfrk.net");
	GUI_DispString("\n电话:010-63726790");
	GUI_DispString("\n按key2继续......");
	WaitKey();
	
	GUI_Clear();
	GUI_SetFont(&GUI_Font_HZK16);
	GUI_DispString("现在是字体演示\n");
	GUI_SetFont(&GUI_Font6x8);
    GUI_DispString("\nGUI_Font6x8");
    GUI_SetFont(&GUI_Font8x8);
    GUI_DispString("\nGUI_Font8x8");
    GUI_SetFont(&GUI_Font8_ASCII);
    GUI_DispString("\nGUI_Font8_ASCII");
    GUI_SetFont(&GUI_Font8x16);
    GUI_DispString("\nGUI_Font8x16");
    GUI_SetFont(&GUI_Font16_ASCII);
    GUI_DispString("\nGUI_Font16_ASCII");
    GUI_SetFont(&GUI_Font16B_ASCII);
    GUI_DispString("\nGUI_Font16B_ASCII");
    GUI_SetFont(&GUI_Font16B_ASCII);
    GUI_DispString("\nGUI_Font16B_ASCII");
    GUI_SetFont(&GUI_Font_HZK16);
    GUI_DispString("\n现在是字体演示\n");
    GUI_SetFont(&GUI_Font24_ASCII);
    Delay( DELAY_TIME+5000) ; 
  
    
    GUI_Clear();
    GUI_SetFont(&GUI_Font_HZK16);
	GUI_DispString("支持16级灰度");
	ShowColorBar();//
	Delay( DELAY_TIME+3000) ; 
	GUI_Clear();
	GUI_SetBkColor(GUI_BLUE);
    GUI_SetColor(GUI_WHITE);
	GUI_SetFont(&GUI_Font_HZK16);
	GUI_DispStringAt("位图演示",48,60);
    Delay( DELAY_TIME) ; //WaitKey();
    GUI_DrawBitmap(&bm001,0,0);Delay( DELAY_TIME) ; //WaitKey();
    GUI_DrawBitmap(&bm002,0,0);Delay( DELAY_TIME) ; //WaitKey();
    GUI_DrawBitmap(&bm003,0,0);Delay( DELAY_TIME) ; //WaitKey();
    GUI_DrawBitmap(&bm004,0,0);Delay( DELAY_TIME) ; //WaitKey();
    GUI_DrawBitmap(&bm005,0,0);Delay( DELAY_TIME) ; //WaitKey();
    GUI_DrawBitmap(&bm006,0,0);Delay( DELAY_TIME) ; //WaitKey();
	GUI_DrawBitmap(&bm007,0,0);Delay( DELAY_TIME) ; //WaitKey();
	
	    
	GUI_Clear();
	GUI_SetBkColor(GUI_BLUE);
    GUI_SetColor(GUI_WHITE);
    GUI_SetFont(&GUI_Font_HZK16);
	GUI_DispString("绘图函数演示");
    GUI_SetDrawMode(GUI_DRAWMODE_NORMAL);
    GUI_FillCircle(60, 64, 40);//绘制填充圆
    Delay( DELAY_TIME+1000) ; //WaitKey();
    GUI_SetDrawMode(GUI_DRAWMODE_XOR);
    GUI_FillCircle(60, 134, 40);//绘制填充圆
    Delay( DELAY_TIME) ; //WaitKey();
	GUI_SetDrawMode(GUI_DRAWMODE_NORMAL);//恢复正常绘制模式
	
	GUI_Clear();
	GUI_SetBkColor(GUI_BLACK);
	GUI_SetColor(0xffffff);
	DrawPolygon();//绘制多边形
	Delay( DELAY_TIME+1000) ; 
	GUI_SetColor(0xffffff);
	
	GUI_Clear();
	GUI_SetBkColor(GUI_BLACK);
	for (i=10; i<80; i++)
		GUI_DrawCircle(100,50+i,60);
	Delay( DELAY_TIME+1000) ; //WaitKey();
	GUI_Clear();
    GUI_SetFont(&GUI_Font_HZK16);
	GUI_DispString("\n以下对话框演示一般\nkey1选择键\nkey2为确定键");
	GUI_DispString("\n按key2继续......");
	
	
    Color = WM_SetDesktopColor(GUI_BLACK);
    GUI_MessageBox("系统问候", "大家好!", 0);
    WM_SetDesktopColor(Color);
	
	//WaitKey();
	//GUI_SetDrawMode(GUI_DRAWMODE_NORMAL);//恢复正常绘制模式
	GUI_SetDrawMode(GUI_DRAWMODE_XOR);
	GUI_SetBkColor(GUI_BLACK);
	GUI_SetColor(0xffffff);
	GUI_SetFont(&GUI_Font6x8);
	
	Dialog_Radio();//单选按钮测试
	
	Dialog_SliderClolor(); 
	
    Dialog_All();
    
    GUI_Clear();
    //ShowHiresAntialiasing();//(这个程序按键反映迟钝)
     
    //Widget_Progbar();//(这个程序按键反映迟钝)
    
   // DemoListbox();//(这个程序按键反映迟钝)
    
    
    //DemoButton();
   GUI_Clear();
 	DemoScale();//电子仪表盘测试
    
 	GUI_Clear();	
    DemoBandingMemdev();
    
 	GUI_Clear();	
    Demo_DrawGraph(); 
  }*/
}

⌨️ 快捷键说明

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