硬件课设实验报告-自动售货机
自动售卖机设计实训报告

一、实训背景与目的随着科技的不断发展,自动售卖机已经成为现代生活中不可或缺的一部分。
为了更好地了解自动售卖机的原理和设计,提高我们的创新能力和实践能力,我们进行了为期两周的自动售卖机设计实训。
本次实训旨在通过实际操作,掌握自动售卖机的结构设计、功能实现、系统调试等关键技术,培养我们的工程实践能力和团队协作精神。
二、实训内容与过程1. 实训内容本次实训主要包括以下内容:(1)自动售卖机结构设计:了解自动售卖机的整体结构,包括机身、货架、取货装置、支付模块等。
(2)功能模块实现:学习并实现自动售卖机的核心功能,如商品识别、取货、支付等。
(3)系统调试与优化:对自动售卖机进行系统调试,确保各功能模块正常工作,并对系统进行优化。
(4)团队协作与沟通:在实训过程中,团队成员之间需要密切配合,共同完成设计任务。
2. 实训过程实训过程分为以下几个阶段:(1)前期准备:查阅相关资料,了解自动售卖机的基本原理和设计要求。
(2)结构设计:根据实训要求,设计自动售卖机的整体结构,绘制相关图纸。
(3)功能模块实现:选择合适的硬件和软件,实现自动售卖机的各项功能。
(4)系统调试:对自动售卖机进行系统调试,确保各功能模块正常工作。
(5)优化与改进:根据调试过程中发现的问题,对自动售卖机进行优化和改进。
三、实训成果经过两周的实训,我们成功设计并实现了一款自动售卖机。
以下是我们的实训成果:1. 结构设计(1)机身:采用不锈钢材质,具有良好的耐腐蚀性和稳定性。
(2)货架:采用可调节式货架,可根据商品尺寸进行调整。
(3)取货装置:采用机械臂式取货装置,可实现商品自动取货。
(4)支付模块:采用非接触式支付,支持多种支付方式。
2. 功能模块实现(1)商品识别:采用条形码扫描技术,实现商品信息的快速识别。
(2)取货:通过机械臂式取货装置,实现商品的自动取货。
(3)支付:支持非接触式支付,如微信、支付宝等。
3. 系统调试与优化在系统调试过程中,我们发现了以下问题:(1)机械臂式取货装置的精度不够高,导致部分商品取货失败。
自动售卖机实训总结报告

一、实训背景随着科技的飞速发展,自动售货机已经成为日常生活中不可或缺的一部分。
为了提高我们的专业技能,适应社会发展的需要,我们参加了为期一个月的自动售卖机实训。
本次实训旨在让我们深入了解自动售货机的原理、操作、维护以及市场前景,为今后的工作打下坚实的基础。
二、实训内容1. 自动售货机的基本原理实训期间,我们首先学习了自动售货机的基本原理。
自动售货机主要由以下几个部分组成:传感器、控制系统、显示系统、支付系统、机械臂、存储系统等。
传感器负责检测货物的位置和数量,控制系统负责协调各个部分的工作,显示系统用于显示商品信息,支付系统实现货币支付,机械臂负责取货,存储系统则用于存放商品。
2. 自动售货机的操作与维护实训中,我们亲自动手操作自动售货机,学习了如何上架、补货、清货、维护等基本技能。
通过实践,我们掌握了以下操作与维护方法:(1)上架:按照商品摆放要求,将商品整齐地放入货架上,确保商品可见、易取。
(2)补货:根据商品销售情况,及时补充库存,避免缺货。
(3)清货:定期清理货架,确保商品卫生、整洁。
(4)维护:定期检查自动售货机各部件,发现问题及时解决,确保设备正常运行。
3. 自动售货机的市场前景随着人口老龄化加剧、快节奏生活以及消费升级,自动售货机市场前景广阔。
实训期间,我们了解到以下市场前景:(1)便捷性:自动售货机24小时营业,为消费者提供便捷的购物体验。
(2)智能化:随着人工智能技术的发展,自动售货机将更加智能化,为消费者提供个性化服务。
(3)多元化:自动售货机商品种类将更加丰富,满足消费者多样化需求。
三、实训收获1. 理论与实践相结合通过本次实训,我们深刻认识到理论与实践相结合的重要性。
在理论知识学习的基础上,通过实际操作,我们更好地掌握了自动售货机的原理、操作与维护。
2. 团队合作意识实训过程中,我们与同学们共同协作,共同完成任务。
这让我们意识到团队合作的重要性,为今后的工作积累了宝贵经验。
自动售货机实验报告

自动售货机实验报告实验目的:本次实验的目的旨在了解自动售货机的工作原理和方法,掌握串口通信和图形化用户界面设计的技巧,实现一个基础的自动售货机模型并调试其功能。
实验环境和工具:硬件平台:Arduino UNO开发板、LCD液晶屏、矩阵键盘、电机、红外传感器等。
软件环境:Arduino IDE集成开发环境、Proteus电路仿真软件。
实验步骤:1. 硬件搭建2. 程序编写编写程序,实现自动售货机的基本功能,包括选择商品种类、投币、购买商品、找零等。
程序中以串口通信方式实现与PC端的通信,将运行状态和操作结果实时传输到PC端进行监测和反馈。
3. 软件仿真在Proteus电路仿真软件中,将硬件连线图导入,设置各个元件的型号和参数,构建完整的电路仿真模型,并运行模拟程序,进行自动售货机模型的完整验证和调试。
4. 调试运行将编写好的程序烧录到Arduino开发板中,将电路模型与实际硬件连接起来,进行硬件调试和运行测试。
在控制台上进行商品选择、投币、购买、找零等操作,并观察LCD屏幕反馈和PC端的串口通信,检测程序运行是否正常、反应是否及时、显示是否精准等。
实验结果:经过以上的实验操作和调试测试,我们成功实现了一个基础的自动售货机模型,其核心功能和操作结果均符合设计要求和实际需求。
通过电路仿真和硬件实验,我们深入了解了自动售货机的实际工作原理、运行机制和参数特性,掌握了串口通信和图形化用户界面设计等技巧,为今后相关工作提供了良好的基础。
同时,我们也发现了一些问题和待优化的方面,例如降低误操作率、提高售货速度、增加商品种类等,这些都将成为下一步改进的重点和方向。
本次实验是一项十分有趣和实用的工作,它不仅让我们明白了自动售货机的实现原理和工作方式,同时也展示了设计和制作电路的技能和能力。
在实验过程中,我们遇到了不少问题和困难,但我们也能够积极思考和动手解决,最终获得了可靠和优秀的成果。
从这份实验中,我们深入体验了科学与技术的魅力,感到对学习和未来发展的期望和信心,期望今后能够更好地发掘自身的潜力和优异实力,为社会和人类的发展做出建设性的贡献。
EDA实验报告---自动售货机

自动售货机的设计一.实验内容:本自动售货机系统,结合EDA技术,采用ALTERA公司可编程逻辑器件(CPLD)EPM7128SLC84-15芯片作为控制核心,再配以必要的外围电路从而实现只销售两种饮料,售价均为15元,可以找零和退币等功能的EDA应用系统。
芯片的设计是以MAX_PLUS II 作为开发平台,VHDL语言作为开发语言,使用掌宇公司CIC_310 CPLD/FPGA数字开发系统完成软件测试。
自己制作下载板与外围电路。
二.实验分析:本自动售货机只销售两种罐装饮料。
售价均为15元。
顾客可以由两个不同投币孔分别投入3个5元硬币或2个10元硬币。
一次交易只能买一罐,且自动找零。
只要按下取消键就会马上无条件退币。
本设计的硬件电路用2个按键电路代替2个投币孔,以LED点亮的数量显示各币种的投入数量,在以4Hz闪烁的LED来显示退币种类与数量。
因为投币是计次电路,应先经过抖动消除电路处理。
本设计采用1000Hz的系统时钟信号来控制所有买卖行为。
系统中设计的复位键为管理人员所用,并未在用户界面中设计。
三.系统设计流程图:四.自动售货机外观图:(为指示灯)五.电路原理图六.PCB图:根据PROTEL99画的系统原理图,成生PCB图。
然后进行布局与布线。
注意:布线时将晶振这种易产生噪声的器件的输出端与芯片时钟输入端的连线尽量布为直线;将电源与地线的宽度定为30mil到100mil之间。
本系统的电流不是很大,所以不用将板子的两面分别布成电源与地。
七.系统实物图:八.软件系统框图九.源程序:1.产生系统频率和退币信号电路首先要根据硬件电路的晶振频率确定分频系数,先产生系统频率,在进一步分频产生退币信号。
由于掌宇公司的开发系统上的晶振频率为20MHz,所以要分频系数分别为20000(COUNT)和250(COUNT1)。
(注:由于在自制的下载板上使用了1MHz的有源晶振,所以把程序中的COUNT的范围改为0到1000即可。
自动售货机实验报告

自动售货机实验报告自动售货机实验报告引言:自动售货机是一种现代化的商业销售设备,它通过自动化技术实现商品销售和支付功能,为消费者提供了便利和选择。
本实验旨在探究自动售货机的工作原理、销售模式以及对消费者行为的影响。
一、自动售货机的工作原理自动售货机通过内部的电子系统和机械结构实现商品的储存、选择、售卖和支付等功能。
其工作原理主要包括以下几个步骤:1. 商品储存:自动售货机内部设置有多个货道,每个货道可以储存一种商品。
商品通过传送带或弹簧等装置储存在货道中,保持整齐有序。
2. 商品选择:消费者通过触摸屏或按键选择所需商品。
自动售货机内部的电子系统会根据消费者的选择信号,控制相应货道的开关门,将商品送至取货口。
3. 商品售卖:当消费者选择的商品位于取货口时,自动售货机会打开门,消费者可以取走商品。
部分自动售货机还配备了自动找零功能,方便消费者支付。
4. 支付方式:自动售货机通常支持多种支付方式,如硬币、纸币、银行卡、移动支付等。
消费者可以根据自己的需求选择适合的支付方式。
二、自动售货机的销售模式自动售货机的销售模式主要分为自动售卖和自助选购两种。
1. 自动售卖:在这种模式下,自动售货机会事先设定好商品的价格,并通过内部的计算机系统实时监测库存和销售情况。
当商品售罄或库存不足时,自动售货机会停止销售并显示相应信息。
这种模式适用于一些固定价格和库存较少的商品,如饮料、零食等。
2. 自助选购:在这种模式下,自动售货机提供了更多的选择和定制化服务。
消费者可以根据自己的需求选择商品的种类、数量和价格等,并通过自动售货机完成支付。
这种模式适用于一些需要个性化定制的商品,如鲜花、礼品等。
三、自动售货机对消费者行为的影响自动售货机的出现改变了传统的购物方式,对消费者行为产生了一定的影响。
1. 购物便利性:自动售货机的24小时不间断运营,为消费者提供了更加便捷的购物体验。
消费者可以在任何时间和地点购买所需商品,无需排队等待。
FPGA实验报告 系统设计综合实践 自动售货机

FPGA实验报告系统设计综合实践自动售货机引言本实验报告旨在介绍FPGA实验中关于系统设计综合实践的内容,以及针对自动售货机的设计和实现过程。
本项目的目标是通过FPGA实现一个基本的自动售货机,能够接受货币投入并显示余额,实现商品选择和出货的功能。
设计概述在本项目中,我们使用FPGA作为硬件平台进行实现,采用VHDL语言进行编程。
整个设计主要分为三个模块:货币处理模块、商品选择模块和出货控制模块。
货币处理模块货币处理模块负责接收和处理投入的货币,并显示当前的余额。
具体实现过程如下:1.接收货币输入:使用FPGA板载的GPIO接口连接硬币接收器,将接收到的信息传递给FPGA。
2.处理货币信息:通过计算接收到的货币数量和面额,计算出当前的余额。
3.显示余额:使用FPGA板载的数码管显示当前的余额。
根据计算得到的余额,将其显示在数码管上。
商品选择模块商品选择模块负责接收用户的商品选择,并计算选中商品的价格。
具体实现过程如下:1.接收商品选择:使用FPGA板载的按键输入接口,接收用户按下的相应按键,确定用户选择的商品。
2.计算商品价格:根据用户选择的商品,从预先配置的商品价格表中查找相应的价格。
3.显示选中商品价格:使用FPGA板载的数码管显示选中商品的价格。
根据查找到的价格,将其显示在数码管上。
出货控制模块出货控制模块负责控制商品的出货和相关信息的提示。
具体实现过程如下:1.判断余额是否足够:根据当前余额和选中商品的价格,判断余额是否足够购买商品。
2.控制商品出货:如果余额足够购买商品,则触发相应的出货机构,实现商品的出货。
3.提示用户相关信息:根据出货情况,通过数码管显示相关信息,如余额不足、出货成功等提示。
实验结果经过对上述三个模块的设计和实现,我们成功地完成了自动售货机的基本功能。
在实验过程中,我们选取了几种常见的商品,并配置了相应的价格表。
通过按下相应的按键,用户可以选择购买的商品,并通过投币的方式支付。
29 自动售货机

自动售货机设计实验一、实验目的:1.了解自动售货机的工作原理。
2.熟悉编程环境;3.掌握变量定义方法;4.掌握梯形图语言的编程;5.掌握IL语言的编程;6.掌握PCC程序的调试过程。
7.了解PCC控制系统设计的基本原则。
8.掌握PCC控制系统设计的基本内容。
9.熟悉PCC控制系统设计的基本步骤。
二、实验内容:1.自动售货机控制的基本要求要求:有一台能供应8种不同货物的自动售货机,用梯形图(Ladder)编程实现选择不同商品的程序,每一种商品的选择与一个按钮相对应,1表示按钮按下,有此种商品可以售出;0表示没有。
2.电动机启动/停止电路如下图所示,编程用软件实现此控制功能,并要求有自锁功能。
3.选择输入设备、输出设备、输出设备的扩展对象(八个电机的控制)。
4.PCC模块的选择。
PCC模块是整个控制系统的核心部件,其选择包括机型容量、I/O模块、CPU模块、电源模块等。
5.连接PCC外部电路。
6.分配I/O点,绘制接线图。
7.设计控制程序。
控制程序是保障系统可靠运行的关键,需反复调试修改,直至满足自动售货机控制的基本要求。
三、实验步骤:1.深入、详细了解和分析自动售货机控制的基本控制规律和要求,建立自动售货机控制的基本模型。
2.根据自动售货机的基本控制要求,确定整个系统的输入、输出设备的数量,从而确定PCC的I/O点数,包括开关量I/O点数、模拟量I/O点数,以及特殊功能模块等。
3.确定选用的PCC机型。
4.绘制系统控制流程图。
5.选定程序语言,编写控制程序。
6.调试、修改程序,直至满足要求。
7.进行联机调试。
四、实验要求:1、认识、掌握PCC的基本结构、原理和工作过程。
2、掌握可编程控制中几种编程语言的用法,并能够进行相应的程序编写。
3、能够综合运用PCC的编程语言实现较复杂程序的编写、调试。
五、实验报告:1. 写出I/O分配表、程序梯形图。
2. 仔细观察实验现象,认真记录实验中发现的问题、错误、故障及解决方法。
课程设计报告自动售货机

《软件工程》课程设计报告目录:序 (2)一、问题描述 (3)(一)关于自动售货机 (3)(二)自动售货机的设计 (3)二、需求分析 (3)(一)UML自动售货机系统功能需求: (3)(二)UML自动售货机系统操纵要求: (4)(三)业务流程图 (6)(四)数据流程图 (7)三、各类UML图型及其分析 (8)(一)用例图 (8)(二)类图 (9)(三)序列图 (10)(四)协作图 (15)(五)状态图 (18)(六)活动图 (20)(七)组件图 (24)(八)配置图 (24)(九)数据模型图 (25)四、心得体会 (25)序一.目的软件工程课程设计是软件工程专业一个综合性的实践教学环节,其目的在于增进学生温习和巩固运算机软件设计知识,加深对软件设计方式、软件设计技术和设计思想的明白得,并能运用所学软件设计知识和面向对象技术进行综合软件设计,提高学生的综合应用能力。
通过这次课程设计,要把握UML(统一建模语言),并能运用UML在Rational Rose中建模。
二.要求:一人一组。
熟悉Rose开发环境。
把握UML的大体模型元素(如角色、用例、类等)。
熟悉UML,要紧了解UML中的9大图:Use case diagram(用例图)、Class diagram(类图)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)、Activity diagram(活动图)、Component diagram(组件图)、Deployment diagram(配置图)、datamodel diagram(数据模型图)。
进行系统需求分析与系统功能模块设计,绘出系统详细的业务流程图和数据流程图,成立完整的系统数据库的逻辑模型。
完成对系统的建模实现。
进行检查,并提交设计报告。
三.报告要求:实验题目、实验目的、实验要求、实验内容、系统设计的源程序和文档(包括说明)、心得体会四.参考资料:Wendy Boggs & Michael Boggs 著邱仲潘译《UML与Rational Rose2002从入门到精通》电子工业出版社Martin Fowler & Kendall Scott:UML Distilled Second Edition A Brief Guide to the Standard Object Modeling LanguageUML参考手册Jason T. Roff 著张瑜杨继萍等译《UML基础教程》清华大学出版社参见本中心效劳器ftp:\\s@172.16.38.223软件开发基础或《软件工程课程设计》目录下的相关文档。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
硬件课程设计报告课题名称: 自动售货机班级: 计科2014-02班**: ***学号: ************: ***2016年12月27日摘要 1 1.设计简介 21.1设计步骤及要求 21.2设计题目 21.3设计背景 21.4面临问题 21.5解决方案 31.6设计思想 32.设计任务及要求 32.1实验目的 32.2具体要求 32.3使用硬件 43.总体方案与说明 43.1流程设计 43.1.1系统程序模块 43.1.2系统流程图 44.硬件框图与说明 54.1DAC0832芯片 54.2可编程外围接口芯片8255A 74.3128×64字符液晶显示器94.4可编程定时计数器8254 115.电路原理图与说明 135.18254定时电路 135.2LCD显示电路 145.3总的电路 146.软件流程图 147.实验代码及注释 158.结论与体会 188.1实验成果 188.1.1实验线路图 188.1.2实验结果 188.2实验体会 189.参考文献 18在日常的生活中,为了方便人群,在人群活动较多的地方放置自动售货机,解决了人群的需求,自动售货机里包括多种商品,若需要购买货物,选择自己所需的商品,按下确定键,付款后及购买成功。
通过使用自动售货机,解放了人力资源的同时,为人们提供了便利,同时由于自动售货机是集中调配,统一管理,使其成为新时期电子产品应用现实社会的体现之一。
关键词普通开关 8255A芯片 8254芯片 DAC0832芯片 LCD液晶显示器1 设计简介1.1设计步骤及要求课程安排1.指导老师布置任务,学生选题2.系统总体设计3.系统硬件设计4.系统调试5.设计报告6.检查、评定、总结1.2设计题目自动售货机1.3设计背景在日常的生活中,为了方便人群,在人群活动较多的地方放置自动售货机,解决了人群的需求,自动售货机里包括多种商品,若需要购买货物,选择自己所需的商品,按下确定键,付款后及购买成功。
通过使用自动售货机,解放了人力资源的同时,为人们提供了便利,同时由于自动售货机是集中调配,统一管理,使其成为新时期电子产品应用现实社会的体现之一。
1.4面临问题1.如何实时反应所购商品变化2.如何利用8254上升沿下降沿实现定时转动电机3.如何将商品显示在LCD显示屏上1.5解决方案1.利用8255A B口作为输入端口实时读取开关控制信息,即所购商品。
2. 将级联后的8254out1端口连至8255A输入口,通过读取输入口数据,判断8254处于高低点平状态。
3.将汉字写入系统根据开关读取状态实时显示汉字在LCD液晶显示屏。
1.6设计思想该系统通过8255A芯片的B口作为输入口,实时采集用户从开关输入的状态,当K2开关未闭合表示用户选择完毕,此时显示用户选择的商品,通过LCD液晶显示屏显示商品名称,并循环此过程,不断的显示用户选择的商品。
8254芯片定时一秒,输出口通入8255A B口不断读取PB3位状态,在高电平时,实现跟踪,低电平时通过0832芯片给电机写FF电机转动。
每一种商品对应一种转速。
2 设计任务与要求2.1实验目的1.复习8255芯片,8254芯片工作原理及使用方法2.学会使用128×64字符液晶显示屏3.锻炼小规模逻辑电路设计4.提高分析、解决问题的能力2.2具体要求本系统需要实时提供用户购买商品服务,客户在通过K0,K1开关选择实验商品时,显示屏显示商品,按下K2键即确认购买键,电动机根据所选商品转动,不同商品为了区分,使其设置为不同的电动机转速。
2.3使用硬件8255A芯片 8254芯片 DAC0832芯片 128×64字符液晶显示器3 总体方案与设计说明3.1实验流程设计3.1.1系统程序模块图3-1系统程序模块3.1.2系统流程图图3-2系统流程图4 硬件框图与说明4.1DAC0832芯片1.概述DAC0832是8分辨率的D/A转换集成芯片。
与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
2.芯片结构图图4-1DAC0832结构图*D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);* ILE:数据锁存允许控制信号输入线,高电平有效;* CS:片选信号输入线(选通数据锁存器),低电平有效;* WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;* XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;* WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。
由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
* IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;* IOUT2:电流输出端2,其值与IOUT1值之和为一常数;* Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;* Vcc:电源输入端,Vcc的范围为+5V~+15V;* VREF:基准电压输入线,VREF的范围为-10V~+10V;* AGND:模拟信号地;* DGND:数字信号地。
4.2可编程外围接口芯片 8255A1.概述8255A是一种通用的可编程并行I/O接口芯片,它是为Intel 系列微处理器设计配套电路,也可用于其他微处理器系统中。
通过对它编程,芯片可工作于不同的工作方式。
在微型计算机系统中,用8255A做接口时,通常不需要附加外部逻辑电路就可直接为CPU 与外设之间提供数据通道,因此得到了极为广泛的应用。
2.系统结构图图4-2 8255A系统结构图由图可见,8255A由数据端口A、B、C(期中,C口被分为C 口上半部分和C口下半部分),A组和B组控制逻辑,数据总线缓冲器和读写控制逻辑。
3.控制字8255A具有3种基本工作方式。
方式0:基本输入输出方式;方式1:选通输入输出方式;方式2:双向总线I/O方式。
端口A可以工作于3种方式中的任一种;端口B只能工作于方式0和方式1,而不能工作于方式2;端口C常被分成2个4位端口,除了用做输入输出端口外,还能用来配合A口和B口工作,为这两个端口的输入输出操作提供联络信号。
4.工作方式方式0 基本输入输出方式,它适用于不需要应答信号的简单输入输出场合。
A B C口适用方式1 选通输入/输出方式。
在这种方式下,A口和B口作为数据口,均可用于输入或输出方式。
A B口方式2 双向总线方式。
A口4.3 128×64字符液晶显示器1.概述ST7920是台湾矽创电子公司生产的中文图形控制芯片,它是一种内置128×64-12汉字图形点阵的液晶显示控制模块,用于显示汉字及图形。12864A-1汉字图形点阵液晶显示模块集成ST7920驱动器,可显示汉字及图形,内置8192个中文汉字(16×16点阵)、128个字符(8×16点阵)及64×256点阵显示RAM(GDRAM)。
2.系统结构外形如图图4-3 LCD显示屏系统结构图图4-4 LCD系统图3.工作原理12864液晶显示器工作于并行模式。
8位数据线与8255A芯片8位数据口连接,控制口(E、R/W、D/I)与8255A芯片C口四位相连。
通过8255A的8位数据空向12864液晶显示器传送数据,通过C口低四位传送控制信号。
控制口E为使能端,高电位有效。
R/W为读写控制,低点位为写数据、高电位为读数据。
D/I为数据与命令口,低电位为命令、高电位为数据。
将需要显示的地址通过数据口以命令的形式送入显示器,再将需要显示的数据通过数据口以数据的形式送入显示器,即可显示内容。
表4-1 LCD汉字显示坐标图4-5 LCD中文字库截图4.4 可编程定时器计数器82541. 概述8254 芯片是一款使用十分广泛的可编程定时,计数芯片,其主要功能是定时和计数的功能。
我们的微机内的动态存储器刷新电路,系统日时钟的技术以及发声系统的声源都是由8254芯片来完成的。
2.系统结构图4-6 8254系统结构图数据总线缓冲器:数据总线缓冲器是一个三态、双向8位寄存器主要作用是与cpu进行数据交换,8位数据线D7~D0与CPU的系统数据总线连接,构成CPU和8254之间信息传送的通道,CPU通过数据总线缓冲器向8254写入控制命令、计数初始值或读取计数值。
读写逻辑:读写逻辑是芯片的控制部分,编程人员通过控制信号的选择来选择芯片的工作方式。
读/写控制逻辑用来接收CPU系统总线的读、写控制信号和端口选择信号,用于控制8254内部寄存器的读/写操作。
控制字寄存器:控制寄存器是一个只能写不能读的8位寄存器,系统通过指令将控制字写入控制寄存器,设定8254的不同工作方式。
计数器:8254内部有三个结构完全相同而又相互独立的16位减“1”计数器,每个计数器有六种工作方式,各自可按照编程设定的方式工作。
3.工作方式(1)方式0:计数到0结束输出正跃变信号方式。
(2)方式1:硬件可重触发单稳方式。
(3)方式2:频率发生器方式。
(4)方式3:方波发生器。
(5)方式4:软件触发选通方式。
(6)方式5:硬件触发选通方式。
5 电路原理图与说明5.1 8254定时电路图5-1 8254定时电路5.2 LCD显示电路图5-2 LCD显示电路5.3 总的电路图5-3 系统总电路6 软件流程图图6-1 软件流程图7 实验代码及注释#include<stdio.h>#include<conio.h>#include "ApiExusb.h"#pragmacomment(lib,"ApiExusb.lib")char lcd1[6] = {0xBF,0xC9,0xC0,0xD6,0x20,0x31};char lcd2[6] = {0xC2,0xF6,0xB6,0xAF,0x20,0x31};char lcd3[6] = {0xBA,0xEC,0xC5,0xA3,0x20,0x31};右转char lcd4[6] = {0xC4,0xCC,0xB2,0xE8,0x20,0x31};void clear();void cmdsetup();void datasetup();void main(){byte data;int i;printf("Press any key tobegin!\n\n");getch();if(!Startup()) /*打开设备*/{printf("ERROR: Open Device Error!\n");return;}//通道0工作方式3,初值1000 PortWriteByte(0x283,0x36);PortWriteByte(0x280,2000%256);PortWriteByte(0x280,2000/256);PortWriteByte(0x283,0x76);//通道2工作方式3,初值Out0PortWriteByte(0x281,1000%256);PortWriteByte(0x281,1000/256) ;//级联后的周期2秒clear();while(!kbhit()){PortWriteByte(0x28b,0x82);/*设8255为方式0,C口输出,A口输出,B口输入*/clear();PortReadByte(0x289,&data);//从B口不断地读入数据printf("%d\n", data);PortWriteByte(0x290,0x00);if(!(data & 4)) //判断B口输入数据 K2是否闭合{if(data == 0||data == 8) //根据K0 K1 由B口传入数据判断键值四种 {PortWriteByte(0x288,0x90);cmdsetup();Sleep(10);for(i = 0;i<6;i++){PortWriteByte(0x288,lcd1[i]);datasetup();}}else if(data == 1||data == 9){PortWriteByte(0x288,0x90);cmdsetup();Sleep(10);for(i = 0;i<6;i++){PortWriteByte(0x288,lcd2[i]);datasetup();}}else if(data == 2||data == 10){PortWriteByte(0x288,0x90);cmdsetup();Sleep(10);for(i = 0;i<6;i++){PortWriteByte(0x288,lcd3[i]);datasetup();}}else if(data == 3||data == 11){PortWriteByte(0x288,0x90);cmdsetup();Sleep(10);for(i = 0;i<6;i++){PortWriteByte(0x288,lcd4[i]);datasetup();}}}else //键K2按下开始电机转动{PortWriteByte(0x290,0x00);while(true){if(data & 8) //跟踪8254高电平不断获取{break;}break;}while(true) //低电平开始转动并不断检测电平{PortWriteByte(0x290,0x00);//由K0 K1 键值给电动机一个转速共四种转速if(!(data & 8)) {if(data == 4||data == 12){PortWriteByte(0x290,0xCC);}else if(data == 5||data == 13){PortWriteByte(0x290,0xEE);}if(data == 6||data == 14){PortWriteByte(0x290,0x51);}if(data == 7||data == 15){PortWriteByte(0x290,0xFF);}break;}PortWriteByte(0x290,0x00);break;}}}Cleanup();}void clear(){PortWriteByte(0x288,0x0c); cmdsetup();}void cmdsetup(){PortWriteByte(0x28a,0x00); Sleep(1);PortWriteByte(0x28a,0x04); Sleep(1);PortWriteByte(0x28a,0x00);Sleep(1);}void datasetup(){PortWriteByte(0x28a,0x01); Sleep(1);PortWriteByte(0x28a,0x05); Sleep(1);PortWriteByte(0x28a,0x01); Sleep(1);}8 结论与体会8.1实验成果8.1.1实验线路图图8-1 实验线路图8.1.2实验结果实现K0 K1 选择商品在LCD显示屏显示,而后,K2 闭合,控制电机转动,不同商品对应不同转速,转动1S。