简易超市收银机 分享.doc

简易超市收银机 分享.doc

ID:61435498

大小:141.50 KB

页数:27页

时间:2021-01-30

简易超市收银机  分享.doc_第1页
简易超市收银机  分享.doc_第2页
简易超市收银机  分享.doc_第3页
简易超市收银机  分享.doc_第4页
简易超市收银机  分享.doc_第5页
资源描述:

《简易超市收银机 分享.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、简易超市收银机设计一、课程设计目的:综合应用所学的微处理器原理,汇编语言及相关硬件知识,设计一个具有一定功能的电路。熟练掌握仿真器和编程器的使用。二、课程设计要求:要求:以单片机为核心器件,组成一个收银机系统,能通过4×4键盘的“0”-“9”键实现商品单价和商品数量的输入,“A”、“B”、“C”、“D”键作为功能键,完成“×”、“+”、“=”和清零的功能,并通过LED显示结果。三、系统组成与工作原理:1、电路原理图本电路原理图由基本的单片机系统组成,其中P1口与4*4键盘相连,行线与P1.0~P1.3相连

2、,列线与P1.4~P1.7相连;P0口分别与七段数码管的字线a,b,c,d,e,f,g,ph相连,P0口作为输出口时外接上拉电阻;P2.0~P2.3分别控制七段数码管的位线ABCD,每根线上加三极管作为驱动;P2.7控制一个蜂鸣器;最小系统包括晶振,上电自动复位电路,电源等。2、工作原理课程设计的基本要求是要通过键盘输入商品单价和数量,运算出结果并显示到七段数码管上。以此要求,本程序应该主要包括三个方面:键盘输入单元、逻辑运算单元以及结果显示单元。总体流程图如下:开始程序初始化键盘扫描逻辑运算结果显示单片

3、机上电初始化之后始终处于键盘扫描,将扫描到的信息进行处理并将处理结果通过七段数码管显示出来的循环之中。下面来分析各个模块的功能实现以及其中注意的问题:一、键盘扫描本设计使用的是一个4*4的矩阵式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4*4个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。下图是矩阵键盘的电路图,行线接P1.0~P1.3,列线接P1.4~P1.7。P1.7P1.6P1.5P1.4P1

4、.3P1.2P1.1P1.0当某一个按键按下时,该键所在的行与列相连,也就是在读取该键所在行的状态时就是该列的状态,读取该键所在列的状态时就是该行的状态,以此原理可以设计出键盘扫描程序,并得到各个按键的特征编码。先从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状态;再从P1口的高四位输出高电平,低四位输出低电平,从P1口的高四位读取键盘状态。将两次读取结果组合起来就可以得到当前按键的特征编码。各数字特征编码如下:其余ABCD*#特征码分别是7EH,7DH,7BH,77H,B7H,E

5、7H。未有键按下的特征码是FFH,部分扫描子程序如下:MOVP1,#0FHMOVA,P1ANLA,#0FHMOVB,AMOVP1,#0F0HMOVA,P1ANLA,#0F0HORLA,BYNNYYYNYYYNN扫描子程序开始键按下?清零?+?×?=?*?#?清零子程序主程序乘号判定#判定加号判定*判定等号判定存储操作数NN最终累加器A中存储的是扫描到的特征码,随后可以通过建表查表的方式得到具体按键值。扫描程序的流程图如下:扫描子程序的流程为:先判断有无按键按下,若无则返回主程序,若有按键按下则判断是否为各

6、功能键,若为功能键则跳转到相应的功能键子程序完成相应功能,最终返回主程序。若非功能键则通过查表方式得到相应的数字,存储后转到主程序。一、结果显示本设计运算的结果是通过四个七段数码管来显示,为了节省单片机的I/O口,采用了动态显示的方法。数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成。数码管显示的时间间隔也能够确定数码管显示时的亮度,若显示的时间间隔长,显示时数码管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。所以,在调整显

7、示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。需要显示的运算结果会分别存在千位单元QW,百位单元BW,十位单元SW以及个位单元GW,因此结果显示子程序只需要读取各单元的内容,转换成七段数码管的特征码输出即可。其流程图可表示如下:结果显示子程序取数查表转换为特征码赋P0口移至下一位延时5MS显示完成?主程序YN七段数码管的各特征码如下:一、逻辑运算本设计最重要的就是中间的逻辑运算部分。收银机主要会是以两种运算进行,第一是乘法,第二是加法。其中乘法用来计算单价乘以数量,加法用来

8、表示各个商品的总价格的和。这样就会有两种类型的公式:一种是A*B+C*D+···,另一种是当数量为1的时候A*B+C+D···。所以在各个功能键的子程序中需要判断上一次按下的功能键。例如A*B+C*D+···,当按下D后面的加号的时候要判断上一次的符号,若是乘法则直接相乘并与第一次相乘得到的结果相加得出最终结果,若是加法则将前两个数相加。本设计中使用了三个操作数存储单元,分别是X,Y,Z。流程图如下:程序初始化功能键判定上次+

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。