微机化医学仪器原理与接口技术》课程设计_第1页
微机化医学仪器原理与接口技术》课程设计_第2页
微机化医学仪器原理与接口技术》课程设计_第3页
微机化医学仪器原理与接口技术》课程设计_第4页
微机化医学仪器原理与接口技术》课程设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计任务书(指导教师填写)课程设计名称 微机化医学仪器原理与接口技术课程设计 学生姓名 专业班级 设计题目 简易计算器设计 一、课程设计目的微机化医学仪器原理与接口技术课程设计是工科院校“生物医学工程”专业对学生进行“能力培养”的重要环节,又是生物医学工程专业技术人员必须经过的基础训练。微机化医学仪器原理与接口技术课程设计是课程理论的模拟实践,通过课程设计既要达到巩固课堂所学知识的目的;又要达到培养学生能综合运用所学各种知识,初步分析问题和解决问题的能力,为毕业设计和今后的实践打下基础。二、设计内容、技术条件和要求设计内容:1、完成简易计算器的原理图设计;2、绘制软件流程图;3、设计软件并

2、进行调试;4、书写设计说明书。技术条件和要求:1、利用“单片机课程设计练习系统”在基本练习的基础上设计软、硬件系统。要求利用“单片机课程设计练习系统”的单一功能模块,组合成题目所要求设计内容的新系统。2、设计简易计算器原理图,实现基本的加、减、乘、除等运算,可以连续计算;3、设计软件并进行调试;4、书写设计说明书,严格按照学校规定格式完成。三、时间进度安排第一周:进行基础练习,完成基本的人机界面系统练习及所要求的功能程序设计;第二周:按照要求,完成老师在任务书中下达的设计任务。第三周:完成设计任务,撰写说明书并答辩。四、主要参考文献1、MCS-51单片机应用设计 张毅刚 哈工大出版社2、单片机

3、课程设计指导 楼然苗 北京航空航天大学出版社3、单片机原理及接口技术 余锡存 电子科大出版社指导教师签字: 年 月 日目录一、总体设计.1二、硬件设计.22.1单片机部分.22.2按键部分.42.3显示部分.52.4驱动部分.6三、软件设计.73.1 LED显示程序流程图.73.2读键输入程序流程图.83.3主程序流程设计.83.4总程序.9四、调试说明.11五、应用说明.11参考文献.12附录.13前言随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。电子产品的更新速度快就不足惊奇了,单片机的应用已经越来越贴近生活,用单片机来实现一些电子设

4、计也变得容易起来。近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。本设计采用80S51芯片,实现了利用单片机进行了一个简单计算器设计。允许对输入数据进行加减乘除运算及LED显示。如果设计对象是更为复杂的计算器系统,其实际原理与方法与本设计基本相同。另外,实例所设计的计算器是用LED数码管显示的,当然也可以用其他的器件

5、显示,如LED显示屏,这样就可以显示出更多的字符,在此基础上,还可以编写更加完善的程序来实现更多的计算功能。设计的关键所在,必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,将单片机和其他模块完整的衔接。一 总体设计本次单片微型计算机与接口技术课程设计做的是利用C51单片机为主体的计算器,实现了简单的加、减、乘、除功能。采取的是键盘输入和液晶显示屏的输出结果显示。主要硬件构成部分由四个,一个AT89C51单片机芯片,一个液晶显示屏,一个4*4键盘和一个排阻(10K)做P0口的上拉电阻,可以实现16位的数值操作计算。首先,计算器可现实8位数字,开机运行时,只有数码管最低位显示为

6、“0”,其他位全部不显示;其次,可以对计算结果在16位以内的;两个无符号数进行加、减、乘、除运算,并显示计算结果,如果输入操作数和输出结果超过16位,则会显示“error”,以提示使用者输入错误,应清零后重新输入。最后,运算时,如果按错了可以使用清零键直接清零,重新输入数据,运算过程中,如果运算表达式是加、减、乘、除混合运算,可以进行连续运算,不需要按等号键,运算规则则是从左到右,不区分运算等级。即认为加减乘除是同等级的运算。 4*4键盘51系列单片机时钟电路和复位控制电路 4位LCD显示部分图1-12硬件设计2.1单片机部分使用的单片机以AT89C51来作为核心元器件AT89C51是一种带4

7、K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且

8、价廉的方案。其主要特性:与MCS-51 兼容4K字节可编程FLASH存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路如下图:图2-1-1AT89C51 提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲

9、方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。2.2按键部分方案一:采用4*4行列式键盘,分别设定数字键和功能键,采用查询方式,每次有键按下时,先判断是实数字键还是功能键,但是这种方式采用了大量的I/O口线。方案二:采用独立式按键,独立式按键借口电路配置灵活,软件结构简单。虽然采用独立式按键时每个按键必须占用一根I/O口线,但是在本实验中根据实际的需要采用通过四个按键即只占用四个I/O口线,而如果采用4*4行列式键盘时占用8个I/O口线,所以我们采用一方案。键盘包括数字键(0

10、9)、符号键(+、-、)、清除键和等号键,故只需要16个按键即可。按键部分电路图如下:图2-2-12.3显示部分在单片机应用系统中,使用的显示器主要有LED,LCD液晶显示器及CRT接口。 方案一:使用4位LED数码管来显示,LED显示器是由发光二极管显示字段组成的显示器件,这种显示器有共阴极和共阳极两种,它具有成本低廉、配置灵活和单片机接口方便等特点。方案二:使用液晶显示器来显示。液晶是介于固态和液态间的有机化合物,将其加热会变成透明液态,冷却后变成结晶的浑浊固态。在电机的作用下,产生冷热变化,从而影响它的透光性,来达到显示的目的。LCD还具有以下优点:(1)低压、微功耗;(2)显示信息量大

11、;(3)长寿命;(4)无辐射、无污染。显示部分电路图如下:图2-3-12.4驱动部分使用74ls245芯片如下图:图2-4-174ls245是我们常见的芯片,在这里它用来驱动LED,它是8路同相三态双向总线收发器,可以双向传送数据。74ls245还具有双向三态功能,既可以输出,也可以输入数据。当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须介入74L245等总线驱动器。当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;(接收)*DIR=“1”,信号由A向B传输;(发送)当/CE为高电平时,A、B均为高阻态。总硬件系统是指构成微机系统的实际装置,通常是由运算器、控制

12、器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种拓展接口电路、外部设备等才能构成一个单片机应用系统。系统总接线图如下:三软件设计3.1 LED显示程序流程图设计,4位LED显示程序框图如下:图3-1-13.2读键输入程序流程图为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码键码。为了得到被按键的键码,现使用行扫描法识别按键。列扫描信号进行读入行的信号判断该列是否有列的输出是则进行按照行列计算键盘的值,查表取得键码并返回若否则进行再次扫描。其程序框

13、图如下:图3-2-13.3主程序流程设计首先初始化参数,送LED低位显示“0”,高位不显示。然后扫描键盘看是否有键输入,若有,读取键码。判断键码是数字键、清零键还是功能键(“+”“-”“*”“/”“=”),是数值键则送LED显示并保存数值,是清零键则做清零处理,是功能键则又判断是“=”还是运算键,若是“=”则计算最后结果并送LED显示,若是运算键则保存相对运算程序的首地址。运算主程序框图如下所示:图3-3-13.4主程序 /*主函数*/ void main()unsigned int a=0,b=0,y,r,k; /定义变量,a、b为运算数,y存放符号类型值,unsigned int s; /

14、k为键值,r为运算结果,s是用来显示的数值 while(1) /死循环,使程序一直执行time(5); /延时5msk=keys(); /执行keys();time(80); if(k!=20) /k!=20时代表有键按下 time(5);if(k10) /按下数字键a=a*10+k; /所按下数字键乘十累加time(3); s=a; /将a的值赋给s,执行下一步显示if(s=9999)display(s); /若s9999)displayE();buzzer(); /若s9999,则显示“E”,蜂鸣器报警 if(12=k&k=15) /按下符号键time(4); b=a; a=0; /将a的

15、值赋给b,a清零y=k; /键值存放在ytime(5);s=b;display(s);time(5); /显示b if(k=10) /按下=键time(5);r=count(y,b,a); /执行运算time(2);s=r; if(r9999)displayE();buzzer(); /若结果大于9999,显示“E”,蜂鸣器报警 if(k=11) /按下“AC”清零键 time(5); a=0;b=0;y=0;time(5); /清零各个变量s=0;display(s); /显示“0” display(s); /若循环中无键按下,则显示s 四调试说明在程序设计方法上,模块化程序设计是单片机应用

16、中最常用的程序设计方法。设计的中心思想是把一个复杂应用程序按整体功能划分成若干相对独立的程序模块,各模块可以单独设计、编程和调试,然后组合起来。这种方法便于设计和调试,容易实现多个程序共存,但各个模块之间的连接有一定的难度。根据需要我们可以采用自上而下的程序设计方法,此方法先从主程序开始设计,然后再编制各从属程序和子程序,层层细化逐步求精,最终完成一个复杂程序的设计。这种方法比较符合人们的日常思维,缺点是一级的程序错误会对整个程序产生影响。功能和操作:加减乘除运算和显示。五使用说明(1)上电后,屏幕初始化。(2)计算。按下数字键,屏幕显示要运算的第一个数字,再按下符号键,然后再按下数字键,屏幕

17、显示要运算的第二个数字,最后按下“”号键,屏幕上显示出计算结果。如果要再次计算,可以按下“ON/C”键清零,或者按下单片机的复位键,重新初始化。(3)如果要再次计算,可以按下“ON/C”键清零,或者按下单片机的复位键,重新初始化。参考文献1李朝青编著,单片机原理及接口技术。北京:北京航空航天大学出版社,2004年7月。2茹国宝刘克刚编。单片机原理及应用实验指导书。武汉大学电子信息学院。3周荷琴吴秀清编著。微型计算机原理与接口技术。第三版。中国科学技术大学出版社。2004年12月。4李伯成:单片机及嵌入式系统,清华大学出版社,20055胡汉才:单片机原理及接口技术,清华大学出版社,20006王田

18、苗:嵌入式系统设计与实例开发,清华大学出版社,20027张友德:单片机原理与应用,复旦大学出版社,20028倪继烈:微型计算机原理与接口技术,清华大学出版社,2005附录总程序:#include#include#define uchar unsigned char / 宏定义 #define uint unsigned int #define dataPort P0 /定义P0为段选口#define LedConPort P2 /定义P2为位选口sbit BEEP=P34; /定义P3.4口为蜂鸣器/*延时函数*/void time(unsigned int ucMs) /定义延时函数延时单位

19、为ms#define DELAYTIMES 239unsigned char ucCounter;while (ucMs!=0)for(ucCounter=0;ucCounterDELAYTIMES;ucCounter+)ucMs-;/*键盘扫描函数*/unsigned char hang,lie;char code tab44=7,8,9,10,4,5,6,11,1,2,3,0,12,13,14,15;unsigned char keys() /表tab对应键盘所示键值及符号值 P1=0x0f;if(P1!=0x0f)time(200);if(P1!=0x0f) switch(P1&0x0f

20、) /扫描行case 0x0e:hang=0;break;case 0x0d:hang=1;break;case 0x0b:hang=2;break;case 0x07:hang=3;break;P1=0xf0;switch(P1&0xf0) /扫描列case 0xe0:lie=0;break;case 0xd0:lie=1;break;case 0xb0:lie=2;break;case 0x70:lie=3;break;return tabhanglie; /有键按下则返回键值else return 20; /无键按下则返回20 /*显示函数1*/void display(unsigned

21、 int d)unsigned char code table11=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x79; /该数组对应显示屏显示0,9,E字符int i;int q; if(0=d&d=9) /假如d是一位数,则直接显示LedConPort=3; /位选端3对应个位数显示dataPort=tabled;time(5);if(10=d&d=2;i-) /LED显示屏从位选端3开始显示q=d%10; d=d/10;LedConPort=i;dataPort=tableq;time(5);if(100=d&d=1;i-)q=d

22、%10;d=d/10;LedConPort=i;dataPort=tableq;time(5);if(1000=d&d=0;i-)q=d%10;d=d/10;LedConPort=i;dataPort=tableq; time(5); /*显示错误函数*/void displayE()LedConPort=3; /输入位选信号dataPort=0x79; /段选信号使其显示“E”time(5);/*蜂鸣器函数*/void buzzer()int i;for(i=0;i=1000;i+) time(1);T0=0; /p3.4口即T0time(1);T0=1; /*运算函数*/unsigned int count(unsigned int x,unsigned int m,unsigned int n)unsigned int p;switch(x)/x为运算类型,据键盘和tab对应关系:case 12:p=m+n;break; /x为12时,执行加法case 13:p=m-n;break; /x为13时,执

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论