找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2644|回复: 1
打印 上一主题 下一主题
收起左侧

单片机多参数床边监护系统设计资料(仿真+源码+论文)下载

[复制链接]
跳转到指定楼层
楼主
制作的多参数床边监护系统实物图:


资料包里面含有完整的设计论文

基于单片机的多参数床边监护系统仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


多参数床边监护系统单片机源程序如下:
  1. ;***********************************************************************************************************
  2. ;           基于AT89C51的多参数床边监护系统
  3. ;************************************************************************************************************         
  4.                   SHIWEI   EQU          32H;
  5.                   GEWEI    EQU          33H;
  6.                   HUANCUN  EQU          36H;
  7.                   BEATS    EQU          40H        ;
  8.           XIN_BAI  EQU          41H                ;
  9.           XIN_SHI  EQU          42H                ;
  10.           XIN_GE   EQU          43H        ;
  11.                   CLOCK    BIT          P2.4;
  12.                   ST       BIT          P3.2;        
  13.                   EOC      BIT          P3.1;
  14.                   D_A      BIT                        P2.3;
  15.                   D_B      BIT                        P2.2;
  16.                   D_C           BIT          P2.1;
  17.                   E        BIT          P2.7;
  18.                   RW       BIT          P2.5;
  19.                   RS       BIT          P2.6;
  20.                   XIN      BIT          P3.5;                  
  21.                   ORG      0000H;
  22.                   LJMP     START;
  23.                   ORG      000BH;
  24.                   LJMP     INT_T0;
  25.                   ORG      0100H;
  26. ;***********主程序开始******************************************************
  27. START:    LCALL    LCDINIT;调用液晶显示屏初始化程序
  28.           LCALL    TISHI1;
  29.                   LCALL    TISHI2;
  30. ;*********************************************************************************
  31. ;                      温度部分
  32. ;*******************************************************************************
  33. BEGIN:          MOV      TMOD,#02H;
  34.           MOV      TH0,#236;        定时钟频位50khz
  35.                   MOV      TL0,#236;
  36.                   MOV      IE,#82H;           开T0中断
  37.                   SETB     TR0;                  启动定时器
  38.                   CLR      D_A;         AD0809选择IN0通道
  39.                   CLR      D_B;
  40.                   CLR      D_C;                  
  41. WEN:                                             
  42.               CLR      ST;                        
  43.           SETB     ST;                  
  44.                   CLR      ST;启动AD转换
  45.                   JNB      EOC,$; 等待转换结束
  46.                   LCALL    DELAY1S;
  47. ;*********查表法得到转换值*********************************                           
  48.                   MOV      HUANCUN,P1;                  
  49.                   MOV      DPTR,#TAB1
  50.                   MOV      A,HUANCUN
  51.                   MOVC     A,@A+DPTR
  52. ;*********将查表得到的值转换成BCD码**********************                           
  53.                   MOV      B,#10
  54.                   DIV      AB
  55.                   MOV      SHIWEI,A
  56.                   MOV      GEWEI,B
  57. ;*********显示整数部分的温度值**************************                                    
  58. XIANSHI:  MOV      A,#84H;
  59.           LCALL    WRC;
  60.                   NOP
  61.           MOV      R0,#32H;                           显示温度的十位、个位
  62. WDA1:     MOV      A,@R0
  63.           ADD      A,#30H;                                   转换成ASCII码
  64.                   LCALL    WRD;                                   写数据                                   
  65.                   INC      R0;
  66.                   CJNE     R0,#34H,WDA1;                   判断温度是否显示完
  67. ;*********显示小数点***********************************************************
  68. DIAN:     MOV      A,#86H;        显示小数点
  69.                   LCALL    WRC;
  70.                   MOV      A,#2EH;
  71.                   LCALL    WRD;
  72. ;*********查表得小数部分得温度值********************************************
  73.                   MOV      DPTR,#TAB2
  74.                   MOV      A,HUANCUN
  75.                   MOVC     A,@A+DPTR
  76. ;*********将小数部分的值转换成BCD码**********************************************************************
  77.                   MOV      B,#10
  78.                   DIV      AB
  79.                   MOV      SHIWEI,A
  80.                   MOV      GEWEI,B
  81. ;**********显示小数子程序********************
  82. XIANSHI1: MOV      A,#87H;
  83.           LCALL    WRC;
  84.                   MOV      R0,#32H;                           显示温度的十位、个位
  85. WDA12:    MOV     A,@R0
  86.           ADD      A,#30H;                                   转换成ASCII码
  87.                   LCALL    WRD;                                   写数据
  88.                   INC      R0;
  89.                   CJNE     R0,#34H,WDA12;                   判断温度是否显示完
  90. ;*********显示温度符号*************************************************************************
  91.                   MOV    A,#089H;                           显示温度符号,设定显示位置
  92.                   LCALL  WRC;                                   写入命令
  93.                   MOV    A,#0DFH;                           “。”的        ASCII码
  94.                   LCALL  WRD;                                   写数据
  95.                   MOV    A,#43H;                                   “C"的ASCII码
  96.                   LCALL  WRD;                                   写数据                  
  97. ;******************************************************************************
  98. ;            心率部分
  99. ;****************************************************************************
  100. JISHU:   MOV    TMOD,#60H            ;
  101.          MOV    TH1,#00H;
  102.                  MOV    TL1,#00H;
  103.                  SETB   XIN;
  104.                  SETB   TR1;
  105.                  MOV    R3,#10;
  106. REPPS:   
  107.          CALL   DELAY1S;
  108.                  DJNZ   R3,REPPS;
  109.                  MOV    BEATS,TL1;
  110.                  CLR    TR1;
  111.                  CLR    TF1;
  112.                  MOV    A,BEATS;
  113.                  CJNE   A,#00H,DOWNSX1;
  114.                  AJMP   DOWNSX;
  115. DOWNSX1:
  116.          CLR    C;
  117.                  SUBB   A,#08H;
  118.                  JNC    DOWNSU;
  119.                  AJMP   DOWNSX;
  120. DOWNSU:  
  121.          MOV    A,BEATS;
  122.                  ADD    A,BEATS;
  123.                  ADD    A,BEATS;
  124.                  ADD    A,BEATS;
  125.                  ADD    A,BEATS;
  126.                  ADD    A,BEATS;
  127.                  MOV    BEATS,A;                 
  128. DOWNSX:           
  129.                  ;转换成BCD
  130.                  MOV    B,#100;
  131.                  DIV    AB;
  132.                  MOV    XIN_BAI,A;
  133.                  MOV    A,B;
  134.                  MOV    B,#10;
  135.               DIV    AB;
  136.                  MOV    XIN_SHI,A;
  137.                  MOV    XIN_GE,B;                  
  138. ;*******心率显示子程序******************************************************
  139. XIN_XIAN:                                    
  140.           MOV   A,#0C4H;
  141.           LCALL WRC;
  142.           MOV   R0,#41H;
  143. WDA2:          MOV   A,@R0;                           心率值显示
  144.                   ADD   A,#30H;
  145.                   LCALL WRD;
  146.                   INC   R0;
  147.                   CJNE  R0,#44H,WDA2;                                    
  148. XIN_DAN:                                  ;显示心率单位
  149.                   MOV   A,#0C9H;
  150.                   LCALL WRC;
  151.                   MOV   A,#54H;
  152.                   LCALL WRD;
  153.                   MOV   A,#2FH;
  154.                   LCALL WRD;
  155.                   MOV   A,#6DH;
  156.                   LCALL WRD;
  157.                   MOV   A,#69H;
  158.                   LCALL WRD;
  159.                   MOV   A,#6EH;
  160.                   LCALL WRD;
  161.                  
  162.                   AJMP     WEN
  163.                   
  164.                                     
  165. ;*********温度提示字符显示**************************************************************
  166. TISHI1:    MOV    DPTR,#M_1;                           指针指到显示消息
  167. LINE11:    MOV    A,#80H;                                   设置LCD的第一行地址
  168.            LCALL  WRC;                                   写入命令
  169. FILL1:     CLR    A;                                           输入字符
  170.            MOVC   A,@A+DPTR;                           由消息区取出字符
  171.                    CJNE   A,#0,LC11;                           判断是否为结束码
  172.                    JMP    RET_END1                                  ;子程序返回
  173. LC11:      LCALL  WRD;                                   写入数据
  174.            INC    DPTR;                                   指针加1
  175.                    JMP    FILL1;                                   继续填入字符
  176. RET_END1:  RET
  177. ;********心率提示字符显示***************************************************
  178. TISHI2:    MOV    DPTR,#M_2;                           指针指到显示消息
  179. LINE12:    MOV    A,#0C0H;                                   设置LCD的第二行地址
  180.            LCALL  WRC;                                   写入命令
  181. FILL2:     CLR    A;                                           输入字符
  182.            MOVC   A,@A+DPTR;                           由消息区取出字符
  183.                    CJNE   A,#0,LC12;                           判断是否为结束码
  184.                    JMP    RET_END2                                  ;子程序返回
  185. LC12:      LCALL  WRD;                                   写入数据
  186.            INC    DPTR;                                   指针加1
  187.                    JMP    FILL2;                                   继续填入字符
  188. RET_END2:  RET
  189. M_1:       DB    "WEN:",0;
  190. M_2:       DB    "XIN:",0;

  191. ;********液晶初始化子程序***************************
  192. LCDINIT:  MOV      A,#01H;                                   清屏
  193.           LCALL    WRC;                                   调用写入命令子程序
  194.                   MOV      A,#38H;                                   8位数据,2行,5*8点阵
  195.                   LCALL    WRC;
  196.                   MOV      A,#0CH;                                   开显示和光标,字符不闪烁
  197.                   LCALL    WRC;
  198.                   MOV      A,#06H;                                   字符不动,光标自动右移1格
  199.                   LCALL    WRC;
  200.                      RET;
  201. ;********忙检查子程序************************
  202. CBUSY:    PUSH         ACC;                                   将A的值暂存于堆栈
  203.           PUSH   DPH;                                   将DPH的值暂存于堆栈
  204.                   PUSH   DPL;                                   将DPL的值暂存于堆栈
  205.                   PUSH   PSW;                                   将PSW的值暂存于堆栈
  206. WEIT:            
  207.           CLR    RS;                                           RS=0,选择指令寄存器
  208.           SETB   RW;                                           RW=1,选择读模式
  209.                   CLR    E;                                           E=0,禁止读/写LCD
  210.                   SETB   E;                                           E=1,允许读/写LCD
  211.                   NOP                  
  212.                   MOV    A,P0;                                   读操作
  213.                   CLR    E;                                           E=0,禁止读/写LCD
  214.                   JB     ACC.7,WEIT;                           忙碌循环等待
  215.                   POP    PSW;                                   从堆栈中取回PSW的值
  216.                   POP    DPL;                                   从堆栈中取回DPL的值
  217.                   POP    DPH;                                   从堆栈中取回DPH的值
  218.                   POP    ACC;                                   从堆栈中取回ACC的值
  219.                   LCALL  DELAY;                                   延时
  220.                   RET;
  221. ;********写子程序**************************
  222. WRC:      LCALL  CBUSY;                                   写入命令子程序
  223.           CLR    E;                                           E=0,禁止读/写LCD
  224.                   CLR    RS;                                           RS=0,选择指令寄存器
  225.                   CLR    RW;                                                             RW=0,选择写模
  226.                   SETB   E;                                           E=1,允许读/写LCD
  227.                   MOV    P0,A;                                   写操作
  228.                   CLR    E;                                           E=0,禁止读/写LCD
  229.                   LCALL  DELAY;                                   延时
  230.                   RET
  231. WRD:      LCALL  CBUSY;                                   写入数据子程序         
  232.           CLR    E;                                           E=0,禁止读/写LCD
  233.                   SETB   RS;                                           RS=1,选择数据寄存器
  234.                   CLR    RW;                                           RW=0,选择写模式                 
  235.                   SETB   E;                                           E=1,允许读/写LCD
  236.                   MOV    P0,A;                                   写操作
  237.                   
  238. ……………………

  239. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
多参数床边监护仪.rar (12.34 MB, 下载次数: 59)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:773598 发表于 2020-6-9 09:50 | 只看该作者
这个全面
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表