当前位置:文档之家› 超市收银系统刘建明

超市收银系统刘建明

接口课程设计报告计算机0216 刘建明012002014814一.目的和给定的条件1.掌握接口硬件开发平台的使用方法,利用现有的实验平台和PC机,组成一个微机模拟应用系统。

2.掌握基本接口电路的综合应用。

3.掌握接口电路的驱动程序和界面软件的设计与编制,学会调试与测试接口软件的一般方法。

4.微机接口技术及接口芯片的综合应用。

二.设计任务及要求本小组选题:超市收费系统(添加了条形码检测)超市商品条形码检测,客户端通过串行通信连接主机,主机识别商品ID,给出价格发送到客户端。

客户端付帐完成后有声光提醒。

本人和熊毅主要负责系统界面的设计,下位机部分的声光提醒系统的设计,连线及调试等。

试验要求达到的目的是下位机向上位机发送商品的条形码,上位机通过查询将该商品的名称以及价格返还下位机,下位机若受到顾客付账则声光报警提醒。

三.总体方案设计1.总体方案设计结构图2.设计的硬件,逻辑连线图见下页。

四.系统概述1.系统硬件由主控机(其中一台微机)、下位机和执行部件条形码输入设备组成。

主控机与下位机通过串行通信线连接。

2.条形码输入设备:由拨码开关来表示所执行的操作,通过接口电路将接收的数据送入到下位机。

3.下位机:与主控机通信,接受条形码输入设备的信息。

4.选用语言汇编语言。

5.系统功能概述:系统的功能主要是下位机不停的来监视,即读取用户的操作,也就是是否有顾客前来购买商品,若有则将商品的条形码发送给主控机。

主控机接受下位机发送过来的8位数据以后,进行数据分析,来确定用户所需要的商品的条形码,或者是顾客已付钱,然后将相应的商品的名称以及价格发送给下位机。

下位机在接到主控机发送的信息以后进行对应的操作,即输出商品的相关信息以提示顾客付账。

这里商品条形码输入设备用到了拨码开关,由条形码的8位数据来代表商品的条形码。

用声光报警系统来模拟顾客付账后的声光提示。

五、系统设计的详细内容:1.下位机部分:下位机主要是来监视用户的动作,比如是讲商品的条形码发送给上位机还是向上位机发送付账提示。

然后将数据发送给主控机,接收主控机发过来的信息,由此来输出商品信息或者控制声光报警。

这里是通过一排开关按钮来模拟用户商品的条形码输入的。

8位开关按钮,依次代表商品条形码的位数进而组成ASCII码,以方便上位机的查询。

将开关按钮连接到8255的B口上。

通过8255的B口来读取商品的条形码,。

下位机通过读取8251的A口将状态发送给主控机,由主控机来翻译处理具体的操作。

下位机的接收程序接收主控机送过来的信息以后的操作命令。

要做的事情很简单就是显示商品的信息,具体实现方法是将上位机发过来的信息放在一缓冲区中,下位机直接从该缓冲区中将信息读出即可。

下位机的工作流程图如下所示:下位机的程序如下:;*--------------------------------------------------------------------*/ ;* 超市收费系统_客户端*/ ;* Copyright (c) 2005 by HUST CS0216 */ ;* Date 2005.9.22 */ ;* 小组成员:程伟李巍刘建明熊毅张引*/ ;*-------------------------------------------------------------------*/ 仅列出所负责的声光报警系统方面的部分代码sound_l proc nearmov dx,303h ;初始化8255mov al,83hout dx,almov dx,300h ;LED全灭mov al,00hout dx,almov dx,303h ;关闭SPKmov al,0chout dx,alsl: call ledflash ;已按下,调用LED发光子程mov bx,200mov t,0ffffhhison: call outspk ;调用喇叭发声子程(高频)dec bxjnz hisonmov dx,300h ;LED全灭mov al,00hout dx,almov bx,200mov t,0afhloson: call outspk ;调用喇叭发声子程(低频)dec bxjnz losoncall delay2mov ah,0bh ;查任意键按下?int 21hcmp al,0ffhje quit ;有任意键按下,退出jmp sl ;无任意键按下,继续quit: mov dx,300h ;LED全灭mov al,00hout dx,almov dx,303h ;关闭SPKmov al,0chout dx,alretsound_l endpdelay1 proc ;延时子程1push bxmov bx,tdl1: dec bxjnz dl1pop bxretdelay1 endpdelay2 proc ;延时子程2push cxpush bxmov cx,04ffhdl4: mov bx,0ffffhdl3: dec bxjnz dl3dec cxjnz dl4pop bxpop cxretdelay2 endpoutspk proc ;喇叭发声子程mov dx,303h ;从PC6输出方波mov al,0dh ;置PC6=1;打开8253out dx,alcall delay1mov dx,303hmov al,0ch ;置PC6=0;关闭8253out dx,alcall delay1retoutspk endpledflash proc ;LED发光子程序mov si,offset data7 ;LED的点亮代码add si,nummov al,[si]mov dx,300h ;从8255的A口输出LED点亮代码out dx,alinc numcmp num,08hjne nextmov num,00hnext: retledflash endp下位机调试过程及遇到问题的说明:下位机是这次试验中较重要部分,向主控机发送信息以及声光报警都是由下位机完成,在调试的过程中遇到了不少问题。

1.对硬件平台的不了解。

串行通信与声光报警系统单独运行的时候都是正常的,但是组合起来的运行就产生了冲突,很是不解,在老师的指导下才明白了是实验平台上的跳线问题没有解决好。

2.对芯片初始化子程序的不熟悉。

上学期学的接口实验的时候基本上都忘了,8255,8253,8251的初始化都只能翻课本重新捡起来,结合具体试验将将每个芯片的状态字,命令字弄清楚。

3.在程序设计的过程中,虽不是很难,但是由于基础不好还是比较费力,设计声音报警的时候,刚开始并不理解为什么要设计两个延时子程,最后才恍然大悟,原来是声音的高音和低音,要不然就成单一的噪音了。

2.主控机部分:;*-------------------------------------------------------------------*/;* 超市收费系统__主机*/;* Copyright (c) 2005 by HUST CS0216 */;* Date 2005.9.22 */;* 小组成员:程伟,李巍,刘建明,熊毅,张引*/;*------------------------------------------------------------------*/仅列出所负责的系统界面方面的部分代码menu_message DB ' 'DB ' 'DB ' 'DB ' 'DB ' ******************************************************************** 'DB ' ******************************************************************** 'db ' *** *** 'DB ' *** Welcome to use this shopping system *** 'DB ' *** Press enter to continue *** 'DB ' *** Press esc to quit system *** 'db ' *** *** 'DB ' *** *** 'DB ' *** Copy Right: HUST CS0216 *** 'DB ' ******************************************************************** 'DB ' ******************************************************************** ','$'load db 'the id of your good is'db '(end with esc)'DB ' 'DB ' 'DB ' 'DB ' 'DB ' 'DB ''DB ' 'DB ' 'DB ' 'DB ' 'DB ' 'DB ' 'DB ' 'DB ' 'DB ' 'DB ' ','$'data ends主控机调试过程及遇到问题的说明:因为选择汇编语言,界面设计不比其他语言,比较单一而又麻烦,有的时候又摸不着头脑,弄得程序比较乱,欢迎界面中除了屏幕中间的些许欢迎字幕外,其他就是空字符了,所以很多空行,而且在编译过程中总是多多少少出现什么格式不美观之类的问题,慢慢调成最后还算可以的界面,回头看程序代码却实在不雅,这方面做的很不好,另外整体的程序设计因为考虑欠周,很多功能并不能实现,比如在欢迎界面中最好应该加入功能分类说明,比如按什么进入什么系统,感受最深的就是商品信息库的问题了,在现实程序成品中,增加,删除,修改信息都是比较容易实现的。

而在我们设计的程序中,如果需要增加,删除,修改商品的相关信息,必须进入程序代码内部进行一系列的操作,试想这样的产品也很难交的出手,用户使用起来也是摸不着头的,太不实用和人性化了。

五.运行结果六.总结通过这次的课程设计,我加深了对接口这门课程的理解。

相关主题