单片机课程设计-智能仪器

合集下载

单片机课程设计--智能电子钟的设计

单片机课程设计--智能电子钟的设计

目录1引言 (1)1.1设计内容和要 (1)1.2 工作原理 (2)2总体设计 (2)2.1 方案设计 (2)2.2 系统框图 (2)2.3 核心芯片简介 (3)2.3.1 DS1302简介 (3)2.3.2 AT89C51简介 (3)3 智能电子钟软硬件电路的设计 (4)3.1 硬件设计 (4)3.1.1 复位电路设计 (4)3.1.2 DS1302与单片机的接口设计 (5)3.1.3 LED显示设计 (5)3.1.4 电源设计 (6)3.1.5 按键开关去抖设计 (6)3.1.6 时钟电路的设计 (7)3.1.7 电路总原理图设计 (8)3.2 软件设计 (8)3.2.1 流程图 (8)4protues仿真与调试 (11)4.1 电路的仿真 (11)4.2软件调试 (11)结论……………………………………………………………………………………………错误!未定义书签。

参考文献 (14)附录 (15)源程序 (15)1 引言电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、界面友好、可扩展性能强等特点,被广泛应用于生活和工作当中。

另外,在生活和工农业生产中,也常常需要温度,这就需要电子时钟具有多功能性。

本设计主要为实现一款可正常显示时钟/日历、带有定时闹铃的多功能电子时钟。

本文对当前电子钟开发手段进行了比较和分析,最终确定了采用单片机技术实现多功能电子时钟。

本设计应用AT89C51芯片作为核心,6位LED数码管显示,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能。

这种实现方法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。

该电子时钟可以应用于一般的生活和工作中,也可通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。

1.1设计内容和要求以AT89C51单片机为核心,制作一个LCD显示的智能电子钟:(1) 计时:秒、分、时、天、周、月、年。

单片机在智能仪器仪表中的应用探究

单片机在智能仪器仪表中的应用探究

单片机在智能仪器仪表中的应用探究1. 数据采集与处理智能仪器仪表通常需要对各种参数进行采集和处理,例如温度、湿度、压力、流量等。

单片机通过其内置的模数转换器(ADC)可以实现对模拟信号的采集,并通过其强大的计算能力对数据进行处理,滤波、滑动平均、校正等操作。

这样可以实现高精度的数据采集和处理,为仪器仪表提供准确的测量数据。

2. 控制与实时监测智能仪器仪表需要对各种执行器进行控制,例如电机、阀门、泵等。

单片机可以通过其通用输入输出口(GPIO)实现对这些执行器的控制,同时通过时钟中断和定时器等功能实现对执行器的实时监测和调控。

这样可以确保仪器仪表的稳定工作和高效运行。

3. 人机交互界面现代智能仪器仪表通常需要一个友好的人机交互界面,单片机可以通过其串行通信接口(UART、SPI、I2C)与液晶显示屏、按键、触摸屏等外部设备进行通信,实现用户数据输入和信息输出。

单片机还可以通过其PWM输出实现对LED、蜂鸣器等外部设备的控制,为仪器仪表提供更多的交互方式。

二、单片机在智能仪器仪表中的优势1. 体积小、功耗低单片机具有体积小、功耗低的特点,适合应用于各种小型智能仪器仪表中。

其小巧的封装和低功耗的特性可以显著减小仪器仪表的体积和能耗,提高了产品的可携带性和使用时间。

2. 成本低、可靠性高单片机的制造成本低,而且经过了长期的市场考验,在性能和可靠性上都有很高的表现。

这使得单片机可以为智能仪器仪表提供成本效益高的解决方案,并且可以满足长期稳定运行的需求。

3. 灵活性强、开发周期短单片机具有强大的软硬件开发支持,有丰富的外设资源和丰富的开发工具链,开发者可以快速地实现各种复杂的功能和算法,大大缩短了产品的开发周期,提高了产品上市速度。

1. 温度控制仪表以温度控制仪表为例,单片机可以通过采集温度传感器的模拟信号,并实现对加热器或制冷器的控制。

通过单片机的PID算法调节,可以实现对温度的高精度控制,确保仪表的稳定性和精度。

智能DVM的设计

智能DVM的设计

《智能仪器》课程设计报告书题目:智能型DVM的设计院系:机电工程学院专业:09级应电一班姓名:路国红学号:2009061544指导教师:董卫军日期:2011.12.6目录1、智能DVM简介2、设计要求3、总体方案论证与选择4、硬件选择5、软件设计6、总结7、参考文献一、智能DVM简介智能仪器是一种典型的微机(大多数为单片机)应用系统,它是计算机技术、通信技术以及网络技术相结合的产物。

无论在测速、精确度、灵敏度、自动化程度和性能价格比等方面,都是传统仪器所不能比拟的。

它已成为仪器、仪表的发展的方向。

智能型DVM是指以微处理器为核心的的数字电压表,其中,专用微机部分包括微处理器芯片、存放仪器监控程序的存储器ROM和存放测量及运算数据的存储器RAM等。

用于测量的输入输设备有:输入电路、A/D转换器、键盘、显示器及标准仪器用借口等。

仪器内部采用总线结构,外部设备与总线相连。

智能型DVM测量大致分为三个主要阶段:首先,在微处理器的控制下,被测电压通过输入电路、A/D转换器,转变为相应的数字量存入到数据存储器;其次,微处理器对采集的测量数据进行必要的处理,例如计算平均值、减去零点漂移等;最后,显示最终处理结果。

二、设计要求1、功能设计要求:(1)、可以测量1000V以下的的直流电压(2)、具有开机自检、自动量程转换功能(3)、具有克服随机误差的数字滤波功能(4)、适用220V/50HZ交流电源,设置电源开关、电源指示灯和电源保护功能。

2、主要技术指标:(1)、支流电压量程:200MV、2V、20V、200V、1000V(2)、测量误差:≤1%(3)、输入电阻:10M(4)、显示方式:5位LED数码管显示被测电压值。

因此,从上面的设计要求来分析,可以确定硬件部分的器件为:(1)主机: 单片机MCS-51(AT89C51)(2)A/D:ICL7135(3)运放:ICL7650(4)电压源:由7805和7905组成全桥式电压源(5)5个LED显示数码管(6)驱动芯片74LS07和74LS06三、总体方案论证与选择由于本设计是一个DVM测量200V以下的直流电压,有两种方案选择供此设计选择。

基于单片机的智能电子秤设计

基于单片机的智能电子秤设计
缺点:此电路要求R3、R4相等,误差将会影响输出精度,难度较大。实际测量,每一级运放都会引入较大噪声,对精度影响较大。
方案二:采用专用仪表放大器[12],如:INA128,INA129等。
此类芯片内部采用差动输入,共模抑制比高,差模输入阻抗大,增益高,精度也非常好,且外部接口简单。
以INA128为例,引脚图如2-4所示:
所采用的传感器输出电压振幅范围0~10mV。而模数转换的输入电压要求为0~2V,因此放大环节至少200倍的增益,此处我们需要放大500倍。根据本设计的实际情况增列出了两种方案。
方案一:由高精度低漂移运算放大器构成差动放大器。
差动放大器具有高输入阻抗,增益高的特点,可以利用普通运放(如OP07)做成一个差动放大器,其内部电路如图2-3所示。
(2-2)
本文的目的是设计一简易电子秤,最大称重约为2.5千克,重量误差不大于±0.01千克;考虑到与其相配置的各种电路的设计的难易程度和设计性价比,最终选择了CZAF-605[8]电阻应变式称重传感器,其称重规模为5kg。
2.4
压力传感器感受重力转换后输出的信号一般电平较低;经由电桥等电路变换后的信号亦难以直接用来显示、记录、控制或进行模数转换。为此,测量电路中需要模拟放大环节。这一环节目前主要依靠由集成运算放大器的基本元件构成具有各种特性的放大器来完成。
AT89S51的电源脚分别为20脚Vss和40脚Vcc(图中已默认连接,未显示出来)。这两个脚分别接地和+5V直流电源,31脚EA为内外存储器的控制端,接+5V允许访问外部存储器。
传感器检测电路的功能是把电阻应变片的电阻变化转变为电压输出,本设计中选用的是CZAF-605电阻应变式称重传感器,因为通过其得到的电压信号很小,为所以还需要放大器放大信号。考虑到干扰的作用,对传感器的信号进行了滤波处理,最终设计如图3-3所示。

智能仪器课程设计——基于单片机的电动车城市充电系统设计

智能仪器课程设计——基于单片机的电动车城市充电系统设计

基于单片机的电动车城市充电系统设计电气工程专业 022012038 杜思山指导老师: 崔光照摘要本设计以凌阳公司的新一代16位单片机SPCE061A为核心,利用SPCE061A语音处理和控制功能,设计出具有语音提示功能和较好显示界面的电动自行车城市智能充电系统。

在设计中,探讨了智能充电系统的硬件结构的设计和蓄电池充电算法的实现。

硬件结构由单端反激式开关电源组成充电主电路,SPCE061A实现对蓄电池充电智能控制,同时实现和上位机的通讯,上位机软件采用DELPHI编制,使用ACM12864液晶显示中文菜单和充电状态,并利用SPCE061A的语音功能实现操作语音提示,使操作更加人性化;软件算法部分开发了恒流、恒压和智能等充电算法,能够对铅酸、镉镍等电动车电池进行充电。

关键词:SPCE061A ;电动自行车;智能ABSTRACTThe City Electric Bike Charging System with the speech function and Chinese menu is designed by using microcomputer SPCE061A,which is a 16 bit microcomputer and has the speech function and controlling .The design discussed hardware-structure of the intellective charge system and the algorithm of the storage battery. The hardware-structure is composedby switching power. SPCE061A controls switching power, charing storage battery in intelligence mode. The soft of SPCE061A communicates with PC is designed by Delphi.The design uses ACM12864 liquid crystal for display. Operation on the environmentof speech prompt and Chinese menu, the system has more friendly operation environment. Constant current charge、constant voltage charge and intellective charge algorithm were developed. The system can charge lead acid storage battery and cadmium-nickel accumulator.一、概述电动自行车在我国日益普及,正逐渐取代传统的交通代步工具。

单片机在智能仪器仪表中的应用

单片机在智能仪器仪表中的应用

单片机在智能仪器仪表中的应用【摘要】智能仪器仪表是一种具备微处理器,具备对数据信息存储处理功能的仪器仪表。

单片机是计算机系统中重要构成部分,具有集成度高、体积小等特点,在智能仪器仪表中应用广泛,促进仪器仪表向着柔性化方向发展,对于工业生产效率的提高起到了重要作用。

【关键词】单片机智能仪器仪表应用前言:基于计算机技术,特别是微型计算机技术的发展,使得单片机广泛应用于智能仪器仪表中,完善了仪器的功能,大大提高了工业生产中的工作效率,对工业生产效益的提升具有重要意义。

本文以单片机与智能仪器仪表为研究对象,主要论述了单片机在智能仪器仪表中的应用。

一、智能仪器仪表中单片机应用特点1、控制功能强。

单片机本身属于计算机系统的一部分,在智能仪器仪表中的应用具有显而易见的控制能力,对仪器仪表各参数都能够准确地进行监控。

微机承担着测量的责任,节省了大量的开关与常规仪器中的数字电路,其控制的状态位通常采取二进制的方式,二进制的状态位主要有测量完成检测位与启动控制位等[1]。

在众多的单片机类型中,有一种MCS-51类型的单片机,具有布尔处理功能,还具备处理指令输入输出的功能,基于这些控制特点优势在智能仪器仪表的控制上有广泛应用。

2、I/O功能强大。

智能仪器仪表内部结构较为复杂,由多种功能部件组成,为了保证各部件之间有序运行,通常单片机微机中的接口芯片可以保证各功能部件的稳定运行,相互协调运转。

MCS-51至少拥有16位的I/O线等部件,从硬件结构上来说,使仪器仪表越加简化,降低了其设备的成本。

3、数据计算能力高速。

和完整的计算机系统一样,单片机在智能仪器仪表中的应用同样具有高速准确的数据计算能力。

对于通常条件下的仪器仪表,在测量计算与操作中这些操作一个周期的完成要求需要的时间是0.1-0.6秒左右。

但是部分对于计算要求较复杂,要求有函数计算等难度很高的计算能力,所以从运算速度能力方面来说,对于单片机的相关功能要求还是很高的。

智能仪器设计课程教学大纲

智能仪器设计课程教学大纲

《智能仪器设计》课程教学大纲Design of intelligent Instrument一、课程教学目标1、任务和地位:没有测量就没有鉴别,科学技术就不能前进。

要测量就必须有正确的测量方法和先进的仪器仪表。

随着微电子技术和计算机技术的迅速发展,特别是单片微机的出现和发展,使传统的电子测量仪器在原理、功能、精度及自动化水平等方面都不得发生了巨大变化,形成一种完全突破传统概念的新一代测试仪器——智能仪器。

现在很多厂商、研究所以及高等院校都在研制开发各种智能化测量控制仪表,广大的仪表设计、生产和使用人员都不得迫切希望了解和掌握单片机在测量控制仪表中的应用技术。

为了跟上时代的步伐,本课程是测控专业学生必不可少的一门技术基础课。

2、知识要求:要求必须具备电路、电子仪器与测量技术、汇编原理及单片机原理的学习知识,通过本课程的学习为以后学生出去工作打下基础。

3、能力要求:系统地阐述基于单片机的智能化测量控制仪表的基本原理与设计方法,智能化测量控制仪表的人机接口、过程通道接口、串行和并行通讯接口、硬件和软件抗干扰技术、数据处理技术、仪表硬件及软件的设计方法。

通过课程设计加强学生综合知识的应用能力和设计动手能力。

二、教学内容的基本要求和学时分配2、具体要求:第一章绪论[目的要求]让学生了解智能化测量控制仪表的功能特点、智能化测量控制仪表的设计方法[教学内容]学习智能化测量控制仪表的基本与发展、智能化测量控制仪表的功能特点、智能化测量控制仪表的设计方法[重点难点]智能化测量控制仪表的功能特点[教学方法]板书,以教、学相结合来进行讲解。

[作业]课后复习思考题[课时]0.5学时第二章智能化测量控制仪表中专用微处理机[目的要求]让学生掌握MCS-51系列单片机的结构、MCS-51单片机的指令系统[教学内容]介绍了MCS-51系列单片机的特点、 MCS-51系列单片机的结构、CHMOS型单片机的节电工作方式、MCS-51单片机的指令系统[重点难点]MCS-51系列单片机的结构、CHMOS型单片机的节电工作方式、MCS -51单片机的指令系统[教学方法]板书,以教、学相结合来进行讲解。

智能仪器课程设计

智能仪器课程设计

智能仪器课程设计课程设计名称3位半数字电压表学生姓名、学号谭彩铭(0501170118)指导教师牛国柱2009-1-16课程设计要求设计一3位半直流数字电压表,满足下列要求1、量程为20mV,200mV,2V,20V,200V,测量精度要求0.1%2、3位半数码显示3、工作状态显示4、开机自检5、配简单键盘,如量程切换6、配微型打印机接口由实际操作中遇到的问题找解决方案实际搭建的数字电压表的量程为20mV,200mV,2V和8V,能完成量程的自动切换,并有各种量程状态以及超、欠量程的指示灯显示。

原理图附录一所示。

对应的完整汇编程序见附录三。

1 原理图总体思路由于采用3位半AD转换器TC14433,提供的基准电压为2V,可测电压量程为2V,故大于2V的待测电压衰减后输入,小于2V的待测电压放大后输入。

衰减和放大由51单片机控制控制模拟开关4051,4052来完成。

调试当中,发现若输入电压为负时,比例放大就不准确了,且相差较大,故又用运放和模拟开关搭建了一反相控制电路。

原理图当中,U15为用OP07搭建的电压跟随器,用于增大输入阻抗,减小输出阻抗,以减少对待测电压的影响。

U16为用OP07搭建的一反相器。

U1用于若发现待测电压为负,让待测电压反相后进入后续电路。

U6作用同U15。

U1用于控制是否将待测电压衰减1/4后进入后续电路。

U4和U7用于控制是否对电压进行衰减以及衰减多少。

U17作用同U15。

U2为用MC1403搭建的2V电压源,用于输出较准确的电压源给TC14433作为基准电压。

2 AD转换部分TC14433中,EOC与DU端相连,选择连续工作方式。

EOC与51单片机的中端口0相连,由中断方式采集数据。

中断0采集数据服务子程序如图2所示。

3 升降量程及量程状态指示灯显示程序控制升降量程即控制模拟开关4051和4052,是否对待测电压进行放大或衰减。

如何有效的控制量程的自动转换是一较难点,尤其是保证程序的健壮性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012-2013学年第一学期论文题目:单片机系统设计开发应用—智能仪器学院:计算机科学与信息工程专业:软件工程学号:姓名:高红斌日期:2013年12月1日单片机系统设计开发应用—智能仪器一、设计要求及目的本实验通过一个单通道通用型智能仪器的软硬件系统设计,将这学期学过的单片机原理加以综合运用,以此掌握单片机应用系统的设计要领,本次试验设计的总体目标是一路电压信号输入和两路报警开关量输出控制功能,其中信号电压范围0—5VDC,AD采样分辨率8bit,数码管显示信息为:以为参数字符和三位十进制采样值,控制参数有两个,即下限报警值L和上线报警值H,当采样值大于H时,高位报警继电器接通(用LED 状态灯D1亮表示);当采样值小于L时,下位报警继电器接通(用D2表示);当采样值介于L和H之间时,两路报警器功能均被解除(D1和D2均熄灭表示)二、实验环境微型计算机一台,proteus软件,keilC编译器。

三、元器件列表,图表 1四、实验原理本实验选用了一只六联共阴极数码管显示器,按照动态显示原理接线,其中段码通过锁存器74LS245驱动后接于P0口,位码则有反相器74LS04驱动后接于。

A/D转换器采用逐次逼近方式的芯片ADC0809,其并行数据输出端直接连接于P2口,4个控制端CLOCK,START,EOC,和OE分别接于,采用查询法等待转换结束,转换时钟利用定时器中断产生。

四个面板按键通过8位串行输入并行输出移位寄存器74LS164与单片机接口,其移位时终端与单片机的TXD引脚相连,串行数据端(1和2脚)与单片机的RXD引脚相连,串口输出功能采用汇编语言与C51语言混合编程实现。

软件系统采用一个有多个功能模块构成的程序,模块之间相互依赖,他们之间的关系如图,程序有主要的两个功能模块组成——控制模块和菜单模块。

这两个模块能够同时运行。

这里,“同时”的意思是指用户进行菜单操作的时候,程序还能采集数据并进行控制。

图表 2软件系统结构组成“控制”和“菜单”这两个主要的模块都是建立在其他小模块的基础上的,比如控制模块建立在A/D转换和LED 显示的基础上,菜单建立在按键检测和LED显示的基础上,而按键检测又建立在串口输出的基础上。

下表列出了各个模块的主要函数。

图表 3各个模块的主要函数和功能五、程序源代码//void ad_init();void control_thread();void menu_thread();void main(){ad_init();while (1){menu_thread();control_thread();}}//#define MENU_ON 0#define MENU_OFF 1#define MENU_NUM 2#define MENU_MAX 999#define MENU_MIN 0unsigned char param_value[] = {100, 150}; unsigned char menu_status = MENU_OFF;char _menu_name[] = {'L','H'}; //参数名的符号unsigned char _menu_value[] = {0,0}; //供显示用的参数数组unsigned char _menu_idx = 0; //参数序号char get_key();void print(char name, unsigned int value);void menu_thread(void){char i = 0;char key = get_key();if (menu_status == MENU_OFF){//当前菜单为关闭状态时if (key == 0){ //若按键0已被按下menu_status = MENU_ON; //置当前菜单为打开状态_menu_idx = 0; //设置参数序号0//将所有参数当前值取出,送入供显示的参数数组中for (i = 0 ; i < MENU_NUM ; i++){_menu_value[i] = param_value[i];}}} else{//如果当前菜单为打开状态,则进行以下操作:if (key == 0){//若按键0按下,则不保存键值,仅切换到下一个参数if (++_menu_idx == MENU_NUM){ //判断是否所有参数都循环到了menu_status = MENU_OFF; //若已循环完成,设置菜单关闭状态}} else if (key == 1){//若按键1按下,则保存键值,并切换到下一个参数param_value[_menu_idx] = _menu_value[_menu_idx];if (++_menu_idx == MENU_NUM){menu_status = MENU_OFF;}} else if (key == 2) {//若按键2按下,则参数值加10_menu_value[_menu_idx] += 10;if (_menu_value[_menu_idx] > MENU_MAX) {_menu_value[_menu_idx] = MENU_MAX;}} else if (key == 3) {//若按键3按下,则参数值减10_menu_value[_menu_idx] -= 10;if (_menu_value[_menu_idx] < MENU_MIN) {_menu_value[_menu_idx] = MENU_MIN;}}}if (menu_status == MENU_ON) {//菜单状态为开时,显示参数值print(_menu_name[_menu_idx], _menu_value[_menu_idx]);}}//#include <>sbit P32 = P3^2;sbit P33 = P3^3;sbit P34 = P3^4;sbit P35 = P3^5;sbit P37 = P3^7; unsigned char ad() { P33 = 0;P33 = 1;P33 = 0;while(!P34);P35 = 1;return P2;}void ad_init() {TMOD = 0x02;TH0 = 0;TL0 = 0;ET0 = 1;TR0 = 1;EA = 1;}void _ad_clock(void) interrupt 1 {P32 = ~P32;}//#include<>sbit P16=P1^6;sbit P17=P1^7;unsigned char ad();void print(char name, unsigned int value); extern unsigned char param_value[2];extern char menu_status;void control_thread() {//第1步:A/D转换unsigned char value = ad();//第2步:根据采样值控制LED灯if (value > param_value[1]) {P16 = 0;P17 = 1;} else if (value <= param_value[1] && value >= param_value[0]) {P16 = 0;P17 = 0;} else {P16 = 1;P17 = 0;}//第3步:如果菜单是关闭的,显示采集到的数值if (menu_status == 1) {print(' ', value);}}//#include <>#define CHECK_KEY_DOWN 0 //处在检测按键压下阶段标志#define CHECK_KEY_UP 1 //处在检测按键抬起阶段标志#define KEY_UP 0 //按键抬起标志#define KEY_DOWN 1 //按键压下标志sbit _p33 = P3^3;sbit _p34 = P3^4;sbit _p35 = P3^5;sbit _p36 = P3^6;char _key_status = CHECK_KEY_DOWN; //按键检测状态(初值为检测压下阶段)char _key_idx = 0; //按键序号void serial(char byte);char _check_key(unsigned char _key_idx) { //检查按键状态serial(~(0x01<<_key_idx)); //将待查按键键码转换成扫描码后输出if (_p36 == 0) { //根据P36状态决定返回值return KEY_DOWN;} else {return KEY_UP;}}char get_key(void) {char result = -1; //无键按下时键值为-1if (_key_status == CHECK_KEY_DOWN) { //如果当前处于检查压下阶段,进行以下操作if (_check_key(_key_idx) == KEY_DOWN) { //判断当前扫描键的状态,若为压下标志则_key_status = CHECK_KEY_UP; //将检查阶段标志设置为抬起} else { //否则,将检查阶段标志设置为压下if (++_key_idx == 4) { //判断是否4个按键已经轮流扫描一遍_key_idx = 0; //是,则将待扫描按键号设为0 }}} else if (_key_status == CHECK_KEY_UP) { //如果当前处于检查抬起阶段,进行以下操作if (_check_key(_key_idx) == KEY_UP) { //判断当前扫描键的状态,若为抬起标志则result = _key_idx; //键值输出_key_status = CHECK_KEY_DOWN; //按键检查阶段标志改为压下if (++_key_idx == 4) { //判断是否4个按键已经轮流扫描一遍_key_idx = 0; //是,则将待扫描按键号设为0 }}}return result;}//#include<>char code map1[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; char code map2[]={0x00,0x76,0x38};char _convert(char c){ if(c==' ')return map2[0];else if(c=='H')return map2[1];else if(c=='L')return map2[2];else if(c>='0'&&c<='9') return map1[c-'0']; return 0;}void _delay(){int i=0,j=0;for(i=0;i<10;i++){for(j=0;j<10;j++){}}}void print(char name, unsigned int value) { char buf[6];char i = 5;for (i = 5 ; i > 1 ; i--) {buf[i] = '0' + value % 10;value /= 10;if (value == 0) {break;}}i--;for ( ; i >= 1 ; i--) {buf[i] = ' ';}buf[0] = name;for (i = 0 ;i < 6 ;i++) {P1 &= 0xC0;P1 |= (1 << i);P0 = _convert(buf[i]);delay();}}//PUBLIC _SERIALDE SEGMENT CODERSEG DE_SERIAL:MOV SCON, #0MOV SBUF, R7JNB TI, $CLR TIRETEND六、实验结果图表 4程序通过编译,并且没有错误系统运行效果如图所示,参数设置状态效果如图所示。

相关文档
最新文档