超市收银系统刘建明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
接口课程设计报告
计算机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 near
mov dx,303h ;初始化8255
mov al,83h
out dx,al
mov dx,300h ;LED全灭
mov al,00h
out dx,al
mov dx,303h ;关闭SPK
mov al,0ch
out dx,al
sl: call ledflash ;已按下,调用LED发光子程mov bx,200
mov t,0ffffh
hison: call outspk ;调用喇叭发声子程(高频)dec bx
jnz hison
mov dx,300h ;LED全灭
mov al,00h
out dx,al
mov bx,200
mov t,0afh
loson: call outspk ;调用喇叭发声子程(低频)dec bx
jnz loson
call delay2
mov ah,0bh ;查任意键按下?
int 21h
cmp al,0ffh
je quit ;有任意键按下,退出
jmp sl ;无任意键按下,继续quit: mov dx,300h ;LED全灭
mov al,00h
out dx,al
mov dx,303h ;关闭SPK
mov al,0ch
out dx,al
ret
sound_l endp
delay1 proc ;延时子程1
push bx
mov bx,t
dl1: dec bx
jnz dl1
pop bx
ret
delay1 endp
delay2 proc ;延时子程2
push cx
push bx
mov cx,04ffh
dl4: mov bx,0ffffh
dl3: dec bx
jnz dl3
dec cx
jnz dl4
pop bx
pop cx
ret
delay2 endp
outspk proc ;喇叭发声子程
mov dx,303h ;从PC6输出方波
mov al,0dh ;置PC6=1;打开8253
out dx,al
call delay1
mov dx,303h
mov al,0ch ;置PC6=0;关闭8253
out dx,al
call delay1
ret
outspk endp
ledflash proc ;LED发光子程序
mov si,offset data7 ;LED的点亮代码
add si,num
mov al,[si]
mov dx,300h ;从8255的A口输出LED点亮代码
out dx,al
inc num
cmp num,08h
jne next
mov num,00h
next: ret
ledflash endp
下位机调试过程及遇到问题的说明:
下位机是这次试验中较重要部分,向主控机发送信息以及声光报警都是由下位机完成,在调试的过程中遇到了不少问题。
1.对硬件平台的不了解。串行通信与声光报警系统单独运行的时候都是正常的,但是组合起来的运行就产生了冲突,很是不解,在老师的指导下才明白了是实验平台上的跳线问题没有解决好。