八路模拟数据采集系统-proteus课程设计
- 格式:doc
- 大小:293.22 KB
- 文档页数:10
前言一直以来,科学都是人类文明不断进步的源泉,从最开始的原始人折树枝弄火,磨石头做各种器件,到现在的飞机大炮因特网,无一不彰示着我们的进步,无一不说明了科技在生活中的重要性。
而自从1840年,洋枪坚船利炮惊醒还在梦中的国人,经历了近100年的屈辱和血泪,终于看到了科技的重要性,明白了什么是落后就要挨打,只有科技进步了,国家才能强大!本次专业课程设计就是锻炼理论和实际结合的能力,提高科技能力和科学思想。
随着计算机技术的飞速发展和普及,数据采集系统也迅速地得到应用。
在生产过程中,应用这一系统可对生产现场的工艺参数进行采集,监视和记录,为提高产品质量,降低成本提供信息和手段。
在科学研究中,应用数据采集系统可获得大量的动态信息,是研究瞬间物理过程的有力工具,也是获取科学奥秘的重要手段之一。
总之,不论在哪个应用领域中,数据采集与处理越及时,工作效率就越高,取得的经济效益也越高。
科学发展的今天,选择基于单片机八路数据采集系统设计是很有意义也是很有必要的。
第一章 设计要求1.1 设计要求(1) 对8路模拟电压信号进行采集并循环显示 (2) 模拟电压变换范围为:0 –5V (3) 测量精度小于±2%(4) 测量温度用3位LED 显示器显示,1位显示循环通道1.2 系统设计思路图1.1 八路数据采集系统方框图1.3 方案选择1.3.1模拟输入方案在试验中使用滑动变阻器改变输入电压,模拟数据采集。
此方案简单易懂,可操作性强,价格也比较便宜。
1.3.2 数据显示方案利用试验使所提供的7279最小功能版来实现数据的显示和按键等试验要求。
在试验中如果使用四个数码管来实现,要使用动态显示,且实现按键功能等比较复杂。
要在P 口接多个按键,这样使程序很复杂。
使用7279最小功能板在试验中使用命令字87H~80H,收到此指令后,按以下规则进行译码0000~1001显示数字0~9,1010显示—,1111显示空白。
只需利用两个P 口就能够实现所有功能。
基于单片机的多路数据采集与控制系统课程设计报告单片机多路数据采集与控制系统课程设计报告首先,设计目的是利用单片机原理及其应用等课程知识,根据课题要求设计和调试软硬件系统,加深对课程知识的理解,将所学的相对零碎的知识系统化,比较系统学习和开发单片机应用系统的基本步骤和方法,从而在一定程度上提高学生的应用知识能力、设计能力、调试能力和报告写作能力。
二、8051单片机设计数据采集控制系统的设计要求,基本要求如下:基本零件:1.假设8路信号都是0~5V电压信号,可以采集8路数据。
2.采集的数据可以通过液晶显示器以[通道号]电压值的格式显示,如[01] 4.5。
3.采集模式可通过键盘设置:单点采集、多通道测量、采集时间间隔。
4.具有异常数据、声音和晶体爆炸功能:第一路数据可以设置正常数据的上限值和下限值,当采集的数据异常时,发出报警信号。
选择为函数:1.异常数据音乐报警。
2.可输出8路顺序控制信号,每路顺序控制信号设置一位。
顺序控制流程如下:步骤1步骤2步骤3步骤4步骤5步骤6步骤7步骤8延迟3秒延迟3秒延迟6秒延迟1秒延迟1秒延迟1秒延迟1秒延迟6秒第三,总体设计选择了单片机和模数转换芯片相结合的方式来实现这一设计。
使用的基本组件有:AT89C52单片机、ADC0809模数转换芯片、液晶显示器、按键、电容、电阻、晶体振荡器等。
数字电压测量电路由模数转换、数据处理和显示控制组成。
模数转换由集成电路ADC0809完成。
ADC0809有8个模拟输入端口和地址线(23~-首先,设计目的是利用单片机原理及其应用等课程知识,根据课题要求设计和调试软硬件系统,加深对课程知识的理解,将学到的相对零碎的知识系统化,比较系统学习和开发单片机应用系统的基本步骤和方法,在一定程度上提高学生的应用知识能力、设计能力、调试能力和报告写作能力。
二、8051单片机设计数据采集控制系统的设计要求,基本要求如下:基本零件:1.假设8路信号都是0~5V电压信号,可以采集8路数据。
微机原理课程设计说明书11 级电气工程及其自动化专业 972 班级题目八路模拟量转换为数字量电路设计2011年12 月26 日摘要随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要的作用。
多媒体技术、网络技术、智能信息处理技术、自适用控制技术、数据挖掘与处理技术等都离不开计算机。
本课程设计是基于微机原理与接口技术的简单应用。
运用所学的微机原理和接口技术知识完成ADC0809的采样,即基于0806最小系统将模拟电压表通过ADC0809的采样完成模拟量转换成的数字量并显示出来。
通过硬件与软件的结合,用我们刚刚学过的汇编语言编写程序模拟分析了ADC0809的芯片功能和硬件配置,结合硬件和软件阐述了该系统的工作原理,得出了一种简单实用的ADC0809的采样即实现数字电压表功能系统的硬件、软件电路设计方案。
该系统能测量0~5V的电压,结果显示于数码管上。
关键字:ADC0809、8086系统、频率发生器前言 (4)1.题义分析与解决方案 (5)1.1题义与需求分析 (5)1.2解决问题的方法与思路 (5)1.2.1硬件部分 (5)1.2.2软件部分 (5)2.硬件设计 (5)2.1电路原理 (5)2.2 8086最小系统模块 (6)2.3可编程并行接口芯片8255A (7)2.3.1 8255A的作用 (7)2.3.2 8255A的功能分析及技术参数 (7)2.4 模数转换芯片ADC0809 (9)2.4.1 ADC0809的内部结构和外部引脚 (9)2.5 模拟量( 0~5V)电压输出 (11)2.6 频率发生器 (11)2.7 七段LED显示器 (12)2.7.1 七段LED显示器的作用、功能分析及结构 (12)2.8 硬件总逻辑图及说明 (13)3.汇编程序设计 (14)3.1控制程序设计思路说明 (14)3.2 程序流程图 (15)4.ADC0809采样系统的设计总结 (21)附录: (23)1、8086最小系统框图 (23)2、0809功能模块框图: (24)3、接口与显示模块框图 (24)4. 程序流程图 (25)前言电子课程设计是电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。
基于51单片机的多路数据采集器一、摘要:用51单片机控制ADC0808将模拟信号(0~0.5V)转换成数值量(0~255),再控制LED数码管以十六进制实时显示出来。
ADC0808为模/数(A/D)转换器。
在Proteus软件上实现电路设计和程序设计,并进行实时交互仿真。
本设计采用了以单片机为开发平台,控制系采用AT89C52单片机,A/D转换采用ADC0808。
系统除能确保实现要求的功能外,还可以方便进行8路其它A/D转换量的测量。
万用板经过排版、布线、焊接、调试等工作后基于51单片机的简易电压表成形。
关键字:51单片机ADC0808 LED数码显示二、设计要求1、用51单片机作为控制器,来控制ADC0808将模拟信号转换成数值量(0—255);2、可准确测量0—0.5V电压,最小分辨率2mV;3、测量误差小于5%;4、用51单片机控制两位数码管显示实时测量电压的16进制数值量;5、单片机采用中断工作方式;6、在Proteus软件上实现多路电压的测量的电路和程序设计,并进行实时仿真;三、功能创新(1) 在Proteus软件上实现了8路电压的测量设计,并仿真成功,且在万用板上焊接、调试成功;(2) 设计一个外部开关通过中断方式来选择任意一路的电压测量,并用单片机控制一位数码管显示路数;(3)通过编程实现直接在LED数码管上显示测量电压值,并精确到1mV;(4) 设计一个由LED灯和蜂鸣器组成的报警电路,当被测电压超过测量范围时,报警电路实现报警;四、硬件电路设计1、系统设计框图根据设计要求与思路,在Proteus软件上设计和仿真该系统的设计方案。
硬件电路由6个部分组成,即单片机电路、复位电路、4位LED显示电路、A/D转换电路和键盘及报警电路、放大电路。
系统设计框图如下:图1 系统框图2、单片机系统电路本次设计选择Atmel公司生产的AT89C52作为控制芯片。
AT89系列与MCS-51系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片,使整个电路体积更小。
基于PROTEUS的数据采集系统的设计与仿真
渠丽岩
【期刊名称】《电子设计工程》
【年(卷),期】2014(22)4
【摘要】基于PROTEUS的数据采集系统,结合Keil C51软件,实现了对单片机系统进行硬件设计和软件仿真功能,不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化.实验表明,使用PROTUES对单片机的数据采集系统进行设计和仿真,结果正确可靠,而且可以有效提高开发效率.
【总页数】3页(P191-193)
【作者】渠丽岩
【作者单位】天津理工大学中环信息学院,天津300380
【正文语种】中文
【中图分类】TN98
【相关文献】
1.基于Proteus的数字电路"秒表"的设计与仿真分析 [J], 朱超; 王苗; 张红欣
2.基于Proteus的80X86外部中断电路的设计与仿真 [J], 王超; 符晓玲; 李斌
3.基于Proteus的井字棋游戏设计与仿真 [J], 朱其祥;徐勇;蒋宗华;陈晓玲
4.基于Proteus软件的超声波测距设计与仿真 [J], 郭星辰
5.基于Proteus的温湿度数据采集系统设计与仿真 [J], 冯梅琳;王芸;温家旺
因版权原因,仅展示原文概要,查看原文内容请购买。
一、任务与要求:
⑴抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0 ~ S7表示。
⑵设置一个系统清除和抢答控制开关S,该开关由主持人控制。
⑶抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。
选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
⑷抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。
当主持人启动"开始"键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。
⑸参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
⑹如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
微机原理及接口技术课程设计书学院:信息与通信工程学院专业:测控技术与仪器班级:xxx学号:xxx姓名:xxx指导教师:xxx目录1、摘要 (2)2、总体方案设计 (2)2.1设计目的 (2)2.2设计任务与要求 (2)2.3设计方案 (3)3、硬件原理图设计设计 (3)3.1总设计图说明 (3)3.2各子硬件图说明 (4)3.2.1原理图所用芯片介绍 (4)3.2.2各子硬件电路说明 (9)4、程序设计 (13)4.1程序流程图 (14)4.2程序设计说明 (14)5、课程设计收获与心得体会 (17)6、参考文献 (18)7、附录 (19)一、摘要本次课程设计,主要是了解可编程外围芯片8255的工作原理,以及学会对ADC0809和8255芯片的应用和设计技术。
对微型计算机基本的系统结构、对微型计算机硬软件的工作原理有个整体的认识。
学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、总体设计方案2.1设计目的1)进一步建立微机系统的概念,加深对系统的理解和认识,培养学生应用微型计算机解决实际问题的能力;2)进一步学习和掌握汇编语言程序的编写和应用的方法,通过较大规模程序的编写,提高编写汇编语言程序的水平和学习程序调试方法。
3)进一步熟悉微机最小系统的构成及常用接口芯片的使用,提高系统设计的能力。
2.2设计任务和要求设计内容:以8088cpu为核心设计一个采集系统,系统可以实现一路模拟电压信号进行采集,已知该电压信号的电压范围是0~255mv,选用adc0809作为AD转换器,系统中有三位LED显示器显示所采集到电压的毫伏数。
设计要求:1)画出电路原理图,说明工作原理2)编写一个实现对输入模拟电压进行转换并在LED显示器显示当前采集数据的数字量程序2.3设计方案数据采集系统的设计,要求使用微型计算机的最小系统,且具有1路的输入,输入信号在0—255mV,而且采用数码管显示输入(显示10进制的结果)。
一、引言电子技术、通信技术和计算机技术在迅猛地发展。
世界各大电子器件公司都在积极开发新型元件。
以微型计算机为平台,配以专用的MCU、ARM、DSP 为实现某些测量和控制功能而构成的通用或专用仪器系统,必将有大发展。
我们这个课程所设计就是用于医疗等行业的信号采集与数字滤波系统。
设计任务:●设计具备A/D 、D/A的CPU单片系统,编写控制软件,并用Proteus仿真。
●用MATLAB软件工具对所采集的数据做各种IIR、FIR数字滤波,并做性能比较。
二、课程设计内容(一)A/D、D/A的CPU单片机系统1、设计要求1)用PROTEUS 设计基于8051 或ARM 系统的采集系统,三种采样率(250Hz, 1kHz, 2kHz) 采样率,12 bit A/D, 一个D/A输出2)编制系统程序●A/D 时序控制●自定义A/D数据采集存放起始地址,数据循环存储●自定义D/A输出地址,送存储的数据再通过D/A转换,送示波器显示2、元器件的选用1)处理器●型号:8051●原理图●功能模块●功能8051作为本设计的核心处理器,其功能在于控制A/D的模数转换和转换结果的读取、RAM和DAC1208的高8位和低4位的数据存储以及DAC1208的数模转换的输出。
2)A/D●型号:MAX1240●原理图●配置电路图●时序图①模数转换时序②读取结果时序●工作过程①在=1前提下,令片选有效,同时保持SCLK为低电平,经过一个周期后,转换正式开始。
当模数转换完成后,数据输出端DOUT由低电平翻转为高电平。
所以也可通过查询DOUT的状态确定转换是否完成;②读取数据,在外部输入13个脉冲后,数据读取完成,将片选端置高电平。
只要令片选再次有效,就可以重新开始一轮新的模数转换和读取过程。
③数据读取完成后,如果仍然保持片选有效,则DOUT端始终输出低电平。
●功能A/D转换芯片,完成信号的模数转换3)D/A●型号:DAC1208●原理图●配置电路图●时序图●功能D/A转换芯片,完成信号的数模转换4)数据存储器●型号:6264●原理图●功能存储模数转换的结果,循环存储,存储空间64K 5)锁存器●型号:74LS373●原理图●功能地址锁存器,用于8051的P0口数据地址复用时锁存低八位地址6)放大器●型号:LM324●原理图●功能①构成DAC1208基本配置电路②信号输出端具有缩小放大倍数和反相功能,使得转换输出后的信号与原信号的幅度和相位尽可能相同3、硬件电路设计1)硬件设计框图2)硬件设计原理图4、系统软件设计1)软件设计框图2)软件源代码及注释ORG 0000HLJMP MAINORG 000BH;Time0中断入口地址LJMP PROGORG 0100HMAIN:MOV SP,#60HJNB P1.4,L1;p1.4若为低,250hz采样率JNB P1.5,L2; p1.5若为低,1khz采样率JNB P1.6,L3; p1.6若为低,2khz采样率L1:MOV TH0,#0F0HMOV TL0,#60H;计数器0赋初值,250hz,计数初值61536SJMP CONL2:MOV TH0,#0FCHMOV TL0,#18H;计数器0赋初值,1khz,计数初值64536SJMP CONL3:MOV TH0,#0FEHMOV TL0,#0CH;计数器0赋初值,2khz,计数初值65036SJMP CONCON:MOV TMOD,#01H;工作方式1MOV DPTR,#4000H;RAM地址0,DAC1208高八位寄存器地址的前三位取0100C0 SETB ET0;T0开中断SETB EA;CPU开中断SETB TR0;T0启动SJMP $;等待中PROG:JNB P1.4,M1JNB P1.5,M2JNB P1.6,M3M1:MOV TH0,#0F0H;重赋计数初值MOV TL0,#60HSJMP MAX1240M2:MOV TH0,#0FCHMOV TL0,#18HSJMP MAX1240M3:MOV TH0,#0FEHMOV TL0,#0HSJMP MAX1240MAX1240:MOV A,#00H;初始化累加器AMOV R7,#08H;位计数器设置为8SETB P1.3;SHDN 设置为正常模式CLR P1.1;CLK初始化为低CLR P1.2;MAX1240片选信号有效NOP ;从第二个时序开始JNB P1.0,$;等待A/D转换结束SETB P1.1MSB:CLR P1.1;CLK下降沿,开始读数据,一个脉冲读一位NOPSETB P1.1;CLK上升沿,从DOUT读出数据MOV C,P1.0;DOUT数据读入CPURLC A;A寄存器左移位DJNZ R7,MSB;循环,直到读完高八位MOV R1,A;把高八位数据存到R1MOV R7,#04H;位计数器设置为四次MOV A,#00H;初始化累加器LSB:CLR P1.1NOPSETB P1.1MOV C,P1.0RLC ADJNZ R7,LSBMOV R2,A;低四位数据送R2保存,高四位为0NOPSETB P1.2;片选信号无效CLR P1.3;SHDN置0,MAX1240进入待机模式DAC:MOV A,#00011111BMOV R3,DPHANL A,R3MOV R3,AMOV A,#01000000BORL A,R3MOV DPH,A;DPTR前三位设为010,其余位不变,得到RAM地址和DAC1208高八位地址MOV A,R1;发送高八位数据MOVX @DPTR,A;高八位存到RAM和DAC1208高八位寄存器INC DPTR;RAM地址加一MOV A,#00011111BMOV R3,DPHANL A,R3MOV DPH,A;DPTR 前三位置0,得到RAM 地址和DAC1208低四位寄存器地址 MOV A,R2;发送低四位数据MOVX @DPTR,A;低四位存到RAM 和DAC1208低四位寄存器 MOV A,#10100000B; MOV R3,DPH ORL A,R3MOV DPH,A;DPTR 前三位设为101,RAM 不使能,得到DAC1208十二位寄存器地址 MOVX @DPTR,A;十二位DA 转换 INC DPTR;RAM 地址加一 RETIEND5、 仿真结果为了展现不同采样频率对同一信号的采样结果的不同,本设计仿真的信号源的频率均采用42hz ,幅度均为1.07。
课程: Proteus学生姓名:吴亚军学生学号: 0908050140 院系:电气信息工程学院专业:电子信息科学与技术班级: 09级电技1 班任课教师:陈帅《Proteus》课程设计报告学生姓名:吴亚军学号:0908050140一、设计任务内容如下列框图,当按下K1时,显示器显示模拟信号V1的测量值;当按下K2时,显示器显示模拟信号V2的测量值。
信号源可以采用传感器或信号发生器产生。
结合Proteus完成:1、设计的硬件电路图;2、软件操作流程图;3、运行的结果界面抓图;4、附设计的程序代码。
二、设计分析在做一个单片机系统时,常常会遇到这样那样的数据采集,在这些被采集的数据中,大部分可以通过我们的I/O口扩展接口电路直接得到,而本设计要求使用51单片机,由于51单片机大部分不带AD转换器,所以模拟量的采集就必须靠外部A/D来实现。
再者,可以利用AT89C51单片机自带外部中断INT0,INT1来实现模拟数据采集通道的转换。
三、整体设计摘要:以AD0808模数转换器和AT89C51单片机为核心,进行实时电压数据采集,数据处理与显示。
本设计显示采用4位数码管(共阴),利用AT89C51单片机自带外部中断INT0,INT1来实现数据采集通道的转换,使用滑动变阻器作为采集的信息源。
采用Proteus和Keil uvision3为开发工具,软件设计采用模块化编程。
关键字:AT89C51、电压采集、ADC0808、proteus1)系统总体设计方案及实现方框图以AD0808模数转换器和AT89C51单片机为核心,进行实时电压数据采集,数据处理与显示。
本设计显示采用4位数码管(共阴),利用AT89C51单片机自带外部中断INT0,INT1来实现数据采集通道的转换,使用滑动变阻器作为采集的信息源。
系统设计方框图2)硬件设计:显示模块:LED数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
电子设计应用软件训练总结报告 1 一、 任务说明 本次的任务是设计一个8路模拟信号,8路开关信号的数据采集系统。用数码管显示采集通道和结果,通过按键来选择通道;用发光二极管显示开关量输入。用Proteus绘制其电路原理图;此任务用到了三种芯片,分别是AT89C51、模数转换器ADC0808、锁存器74LS373,还用到了数码管、单刀双掷开关、发光二级管以及一些电阻。分析题意可知,数码管显示八路模拟信号,发光二级管显示开关量输入信号。 这次任务中采用C语言编写程序,在编译过程中设置成自动产生HEX文件,将此文件导入AT89C51中,即可实现相应的功能。
二、 原理图绘制说明 此次是用proteus绘制原理图,其具体的使用步骤如下: 1.运行该软件后,新建一个设计文件,设置图纸大小,由于本次设计元件较多,为便于操作,选择A3。选择界面如图1所示。
图1 选择图纸大小界面 2.接下来开始查找任务中所用到的元器件,查找界面如图2所示。
图2 元器件查找界面 电子设计应用软件训练总结报告
2 3.将查找的元器件放置到界面中,并进行相应的引脚连线,本次是采用标注的方式进行引脚连接,标注符号相同的表示引脚相连接,具体操作是先将引脚引出一小段导线,右击导线选择放置网络标号,标注标号界面如图3所示。
图3 标注标号界面 4.按照题目设计要求连接好各元件,完成后的原理图如附录Ⅰ所示。
三、 流程图绘制 1. 主程序流程图
开始 i=1 开关选择通道 模拟量采集 模数转换 显示结果 开关信号数据采集 数据处理 显示结果
N Y 电子设计应用软件训练总结报告
3 2.中断程序流程图
四、 原理图仿真步骤及过程结果说明 1.在完成原理图的连接之后,要进行仿真,AT89C51还需要导入编写的程序文件,这次任务我是用C语言编写的程序,用的是KEIL编程软件,用它产生HEX文件,将此文件导入到AT89C51中,然后就可以进行仿真了。导入HEX文件如图4所示。
图4 HEX文件导入界面
初始化 开始 中断标志为0 T0计数开始 时钟计数初始化
clk取反 中断返回
N Y 电子设计应用软件训练总结报告
4 2.八个模拟信号采集的仿真由数码管显示,通过调节滑头可以改变模拟量的输入,八个模拟量如图5所示。
图5 八个模拟量 3.采集到的模拟量经AD转换后由数码管显示,在程序中将结果量化为一个百位数,第一个数码管显示通道,第二、三、四个分别显示百位、十位、个位,第二个数码管加上小数点来更近似的表示模拟量。采集四通道的结果显示窗口如图6所示。
图6 数码管显示窗口 电子设计应用软件训练总结报告
5 4.模拟量的采集通道由三个单刀双掷开关来控制,通过改变开关的状态可以改变模拟量的采集通道,控制开关如图7所示
图7 采集通道控制开关 5.八路开关信号的数据采集结果由八个发光二级管显示,当开关信号为01101101时结果如图8所示。
图8 开关信号显示 6.开关信号由八个单刀双掷开关控制,其控制开关如图9所示。 电子设计应用软件训练总结报告 6 图9 开关信号控制开关 五、 总结 我们的图书馆可真是个大宝库。本次课设虽然只有短暂的一周,但是在这一周内学到了很多用的东西,以前学到的知识也得到了一定的巩固。此次课设又学了一种新软件——Proteus,通过参考图书馆借的相关书籍,网上查阅相关资料,查看相关教学视频,对Proteus有了一定的了解,虽然用的不是熟练,但是其基本功能还是能掌握,包括元器件的查找、元器件引脚的连接、以及完成之后的仿真,还对一些芯片的使用也有所熟悉,例如AD转换器AD0808、锁存器74LS373、AT89C51。 通过这次的课程设计,我充分认识到理论与实际相结合的重要性,理论知识再丰富,没有实际的操作经验再多的理论知识也没用,理论知识最终还是要用在实践上,只有这样才能锻炼我们的实际动手操作能力和独立思考能力。本次课设还得感谢老师同学们的细心帮助和指导,让我学会了很多新知识。
六、 参考文献 1.张毅刚.单片机原理及应用. [M]哈尔滨:哈尔滨工业大学出版社,2004. 2.杨打生,宋伟.单片机C51技术应用. [M]北京:北京理工大学出版社,2011 3.赵亮.单片机从入门到精通系列讲座——数码管驱动方法:[M]电子制作,2008.4 4.彭伟.单片机C语言程序设计实训100例. [M]北京:电子工业出版社,2011. 5.张义和,王敏男.例说51单片机.第3版,[M]北京:人民邮电出版社社,2010. 6.郭天祥.51单片机C语言教程.[M]北京:电子工业出版社,2009. 7.周坚.单片机C语言轻松入门.第2版,[M]北京:北京航空航天大学出版社,2011. 电子设计应用软件训练总结报告
7 附录Ⅰ 仿真电路图 电子设计应用软件训练总结报告
8 附录Ⅱ 程序清单 #include #include #include #define uchar unsigned char #define uint unsigned int
sbit START=P2^6; //位声明 sbit OE=P2^5; sbit EOC=P2^4; sbit NOT=P2^3; sbit NOT1=P2^7; sbit NOT2=P3^7; sbit wela1=P2^0; sbit wela2=P2^1; sbit wela3=P2^2 ; sbit wela4=P3^6; sbit clk=P3^4;
uint Rdata; uint Rdianya; uint tongdao; uchar code led[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; uchar code leddp[]={0xbf,0x86,0xdb,0xcf,0xe6, 0xed,0xfd,0x87,0xff,0xef}; /*********延时子程序**********/ void delay() { uint i; for(i=0;i<300;i++); } /**********显示子程序*********/ void xianshi(uint DIANYA) { wela1=wela2=wela3=wela4=1; //模拟量输入时数码管显示 电子设计应用软件训练总结报告 9 P0=led[DIANYA%10]; //量化为百位数(500/255*模拟量) wela1=0; delay(); wela1=wela2=wela3=wela4=1; P0=led[DIANYA/10%10]; wela2=0; delay(); wela1=wela2=wela3=wela4=1; tongdao=P3&0x07; P0=led[tongdao]; wela4=0; delay(); wela1=wela2=wela3=wela4=1; P0=leddp[DIANYA/100]; wela3=0; delay();
wela1=wela2=wela3=wela4=1; //开关量输入时二极管显示 NOT=0; Rdata=P1; NOT=1; P0=Rdata; NOT1=1; NOT2=0; //U4有效,读取D状态 delay(); NOT1=0;//锁存D状态 } /**********模拟量扫描子程序***********/ void scan() { START=0; START=1; START=0; while(EOC==0); //转换过程为低电平,其余为高 OE=1; Rdata=P1; 电子设计应用软件训练总结报告 10 OE=0; } /**************主程序***************/ void main() { float c=0; P3=0x00; wela1=wela2=wela3=wela4=1; NOT=1; NOT1=0; NOT2=1; TMOD=0x01; //定时器T0的初始化 TH0=(65536-100)/256; TL0=(65536-100)%256; EA=1; ET0=1; TR0=1; while(1) { scan(); c=Rdata*1.96; //(500/255*模拟量) Rdianya=c; xianshi(Rdianya); delay(); } } /**********中断子程序*************/ void T0_time() interrupt 1 { TH0=(65536-100)/256; TL0=(65536-100)%256; clk=~clk; }