加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

基于51单片机病床呼叫系统proteus仿真设计(proteus仿真+源码+报告)

07/16 09:17
1704
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
相关方案
  • 方案介绍
  • 相关文件
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

基于51单片机病床呼叫系统仿真设计(protues仿真+源码+报告)

仿真图protues 8.9

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:C0047

具体功能:

应用所学单片机知识,搭建一个病床呼叫系统设计,功能要求如下

(1)当病人紧急呼叫时,会产生声、光提示,并显示病人编号(房间号和床号);

(2)根据病人病情设置优先级,当有多人呼叫时,先呼叫的优先处理;

(3)医护人员处理完当前呼叫后,系统按呼叫顺序显示其它呼叫病人的号码;

(4)可设定呼叫倒计时,总床位数为24个。

仿真图(提供源文件):

单片机最小系统介绍

单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统定时器/计数器等功能(可能还包括显示驱动电路脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。本文的单片机特指51单片机,具体芯片型号是AT89C52。需注意STC89C51,STC89C52,AT89C51,AT89C52都是51单片机的一种具体芯片型号。

最小系统组成:

51单片机最小系统:单片机、复位电路晶振(时钟)电路、电源

最小系统用到的引脚

1、主电源引脚(2根)

VCC:电源输入,接+5V电源

GND:接地线

2、外接晶振引脚(2根)

XTAL1:片内振荡电路的输入端

XTAL2:片内振荡电路的输出端

3、控制引脚(4根)

RST/VPP:复位引脚,引脚上

复位电路

电路图中,电容的的大小是10uf,电阻的大小是10k。

在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。可以算出电容充电到电源电压的0.7倍,即电容两端电压为3.5V、电阻两端电压为1.5V时,需要的时间约为T=RC=10K*10UF=0.1S。

也就是说在单片机上电启动的0.1S内,电容两端的电压从0-3.5V不断增加,这个时候10K电阻两端的电压为从5-1.5V不断减少(串联电路各处电压之和为总电压),所以RST引脚所接收到的电压是5V-1.5V的过程,也就是高电平到低电平的过程。

单片机RST引脚是高电平有效,即复位;低电平无效,即单片机正常工作。所以在开机0.1S内,单片机系统RST引脚接收到了时间为0.1S左右的高电平信号,所以实现了自动复位。

在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。

晶振电路

晶振基本概念 晶振全名叫晶体振荡器,每个单片机系统里都有晶振,晶振是由石英晶体经过加工并镀上电极而做成的,主要的特性就是通电后会产生机械震荡,可以给单片机提供稳定的时钟源,晶振提供时钟频率越高,单片机的运行速度也就越快。 晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。

晶振起振后, 产生的振动信号会通过XTAL1引脚, 依次经过振荡器和时钟发生器的处理,得到机器周期信号,作为指令操作的依据。51单片机常用的晶振是12M和11.0592M
img

img

程序(提供源文件源码):

img

main函数

#include <reg52.h>
#include "key.h"
#include "delay.h"

#define uint unsigned int
#define uchar unsigned char
	
sbit key1=P3^0;
uint code shu[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};  		//共阳极段码  				
uint code wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //位选             
								
uchar mm,ss,pp;

void Timer0Init(void)		  //定时器初始化
{	
	TMOD=0x01;
	TH0=(65536-18000)/256;
	TL0=(65536-18000)%256;					
	TR0=1;
  ET0=1;
  EA=1;	
}
void main()
{
	uchar tt,i,j,aa=1;
	uchar num[30];
	P0=0x00;
	P2=0x00;
	Timer0Init();
	
	while(1)
	{
		tt = keynum();	
		if(tt!=num[i]&&tt!=0)
		{
		  num[++i] = tt;
		}
		if(key1==0)
		{
		  DelayMS(1);
      if(key1==0)
      {
			  while(!key1);
				aa++;
				ss=0;
				mm=0;
				beep=0;
				led=0;
			}				
	  }
		if(num[aa]!=0)
		{
      TR0=1;
			P2 = wei[7];
			P0 = shu[num[aa]/10];
			DelayMS(1);
			P2 = wei[5];
			P0 = shu[num[aa]%10];
			DelayMS(1);
		  P2 = wei[2];
			P0 = shu[ss/10];
			DelayMS(1);
			P2 = wei[3];
			P0 = shu[ss%10];
			DelayMS(1);
			P2 = wei[0];
			P0 = shu[mm/10];
			DelayMS(1);
			P2 = wei[1];
			P0 = shu[mm%10];
			beep=1;
			led=1;
			if(ss==60)
			{
				ss=0; 
				mm++;
			}
		}
		else
		{
		  P2=0x00;
			ss=0;
			aa=1;
			for(j=0;j<i+1;j++)
			  num[j]=0;
			i=0;
			TR0=0;
		}
	}
}
void T0_time() interrupt 1
{
  TR0=0;
	TH0=(65536-18000)/256;
	TL0=(65536-18000)%256;
	pp++;
	if(pp==40) {ss++;pp=0;}
	TR0=1;
}

按键驱动函数

#include <reg52.h>
#include "delay.h"

unsigned char keynum(void)
{
	 static unsigned char key;
	 P3=0x7f;
	 DelayMS(10);
	 if(P1!=0xff)
	 {
	   key=1;
		 beep=1;led=1;
	 }
	 else
	 {
	   P3=0xbf;
		 DelayMS(10);
		 if(P1!=0xff)
	   {
	     key=2;
	   }
		 else
		 {
		   P3=0xdf;
			 DelayMS(10);
			 if(P1!=0xff)
			 {
				 key=3;
			 }
			 else key=0;
		 }
	 }
	 switch(P1)
	 {
		 case 0xfe : key=key*10+1;break;
		 case 0xfd : key=key*10+2;break;
		 case 0xfb : key=key*10+3;break;
		 case 0xf7 : key=key*10+4;break;
		 case 0xef : key=key*10+5;break;
		 case 0xdf : key=key*10+6;break;
		 case 0xbf : key=key*10+7;break;
		 case 0x7f : key=key*10+8;break;
		 default : break;
	 }
	 return key;
}


设计报告:

img

资料清单(提供资料清单所有文件)

img

下载地址 https://docs.qq.com/doc/DS3FKTlNGam1ZZ01s
  • 设计资料获取联系方式.doc

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
ATXMEGA32E5-M4U 1 Microchip Technology Inc IC MCU 8BIT 32KB FLASH 32UQFN

ECAD模型

下载ECAD模型
$2.73 查看
ATXMEGA192D3-MH 1 Atmel Corporation RISC Microcontroller, 16-Bit, FLASH, AVR RISC CPU, 32MHz, CMOS, 9 X 9 MM, 1 MM HEIGHT, 0.50 MM PITCH, GREEN, MO-220VMMD, MLF-64
$5.62 查看
DS3234SN# 1 Maxim Integrated Products Real Time Clock, Non-Volatile, 1 Timer(s), CMOS, PDSO20, 0.300 INCH, ROHS COMPLIANT, SOP-20
$10.19 查看

相关推荐

电子产业图谱