电子秤压力控制系统课程设计汇编语言中国矿业大学_第1页
电子秤压力控制系统课程设计汇编语言中国矿业大学_第2页
电子秤压力控制系统课程设计汇编语言中国矿业大学_第3页
电子秤压力控制系统课程设计汇编语言中国矿业大学_第4页
电子秤压力控制系统课程设计汇编语言中国矿业大学_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、题 目:班 级:学 号:姓 名:指导教师:硬件课程设计中国矿业大学计算机学院压力控制系统信息安全11-2班* * *周世斌2013年11月一3013年12月1 . 设计任务与要求 .31.1 设计任务 ., , 31.2 设计要求 .32 .总 体 方 案 与 说明.32.1 模拟信号的转换与显示 .32.2 键盘数据的输入与显示 .42.3 数 据 的 处 理 与 显示 .42.4 显示说明.43 .硬 件 框 图 与 说明.53.18086原理简介 .53.28255原理简介 .63.30809的应用 .93.4液晶显小屏113.5键盘144 .电路原理图与说明164.1 电路原理图164

2、.2 硬 件 运 行 过 程 说明175 .软件主要模块与说明 175.1 主程序流程图185.2 0809 转 换 及 数 据 处 理 流程196 .源程序清单与注释明 177 .问题分析与解决方案 288 .结论与体会 308.1 实验运行结果 .308.2 体会 .319 .参考资料 321.设计任务与要求1. 1设计任务运用相关硬件,结合自己的编程技术,设计简单的电子秤,并实现其基本 功能,是本次模拟压力控制系统的硬件课程设计。在完成课程设计的过程中, 需要学生独立思考,积极发挥创造力和动手能力,进一步学习各种软硬件的功 能和提高编程能力。电子秤的设计,是通过实验台左下角电位器RWIf

3、fi出05V直流电压,模拟压力信号,送入A /D转换器,将模拟信号转换成数字信号并显示在LCD字符图形液晶显示屏的第一行上,作为称重的重量。同时,从键盘输入数据, 并在LCD?符图形液晶显示屏的第二行上显示出来, 作为价格。最后在第三行 显示出重量与单价的乘积及总价。实现电子秤的基本功能,达到模拟压力控制 系统课程设计的基本要求。1) 模拟电子秤开机后,改变模拟信号的大小,模拟重量的值必须实时的显示在液晶显示屏上;2) 模拟的单价初始值默认为零,从键盘输入单价完成后,需在液晶显示器上显示输入的单价;3)模拟价格必须随模拟重量改变,并实时的显示在液晶显示器上。2. 总体方案与说明本次试验需要要使

4、用 ADC0809数模转换器,四乘四键盘,可编程控制接口 8255, 05V直流电压,128*64LCD?符图形液晶显示屏。2 1 模拟信号的转换与显示用滑动变阻器代替压力传感器,模拟压力的变化。将模拟电压输入ADC0809通道0(IN0) , ADC0809勺IN0 口地址为280H, CS接地址译码输出的 280h287h 8255的A 口接LCD的D7DO. 8255c眼地址译码输出的 288h28fh。8255的 PB0PB盼另J接LCD的D/I、RW E接口。编程采集IN0输入的电压,将压力传 感器的模拟信号转化为数字信号,之后进行转换,换算为设定量程下实际情况 的值,然后将模拟重量

5、的电压数据存放到 CPUJ存器中用于下一步计算。同时 将模拟重量的电压数据从8255的A 口输出并在LCDW幕的第一行作为重量显示 出来。2 2 键盘数据的输入与显示8255白C0C按键盘的歹10歹【3, C4C裱键盘的行0行3),从键盘输入 两位数,然后在LCD勺第二行作为单价显示出来,并存放到 CPU?存器中用于下 一步计算。2 3 数据的处理与显示通过编程将第一步与第二步寄存在CP加的模拟重量与模拟价格相乘处理 后输入到LCD勺第三行作为总价显示出来。1.2设计要求2 . 4 LCD显示说明液晶显示屏是一种内置128X 64-12汉字图形点阵的液晶显示控制模块,用 于显示汉字及图形?12

6、864A-1汉字图形点阵液晶显示模块集成 ST7920驱动器, 可显示汉字及图形,内置8192个中文汉字(16X 16点阵)、128个字符(8X16 点阵)及64X256点阵显示RAM(GDRAM 如图2.4。液晶显示屏共显示四行字符,每行可以显示八个字符。0-14 重量:*斤16-30 价格:* 元32-46 总价:*3 .硬件框图与说明3.1 8086原理简介3.1.1 8086CPU8086是Intel系列的16位微处理器,它采用HMOS艺技术制造,芯片采用40系列线封装,单一的+5Vfe源,时钟频率为510MHz8086有16根数据线和20根地址线,可以处理8位和16位数据,寻址1MB

7、的储存单元和64KB的I/O端口。如图3.1.1119120121122123124心126127128129 30131152133”113513©137LR; D 111LL9ST65 般言笫名六X2黑温aoafivccA16 AI7A13A13RHFrd" HOW HLDAWR MIO DTKDEZS:AL-E INTA TEST READfRI4I.T157 15© T5T 15.X isT TT 15T 150 11叩 14514S T5T 14 I45" HI" 1<3 142141图3.1.1 8086 引脚图3.1.2 8

8、086CPU的编程结构编程结构:是指从程序员和使用者的角度看到的结构,亦可称为功能结构。从功能上来看,8086CPUT分为两部分,即总线接口部件 BIU(BusInterface Unit)和执行部件 EU(Execution Unit) 。 8086CPU勺内部功能结构标志窃夺ffEl如图图3.1.2所示:图 3.1.23.2 8255原理简介3.2.1 8255 原理及接线图8255A是Intel系列的并行接口芯片,常作为微机系统与外部设备接口由于它是可编程的,可以通过软件来设置芯片的工作方式, 因此,用它连接外3.2.1图 3.2.1o J 2 3 4 5 £ 7 o 1 3

9、4 5 6 7 012 34567 ?A?A?APAPAPAW SPBPEPBFE诳PEppcpcpgppcpMMg 雷向D6D?RD而击AlNG部设备时,一般不需要在附加外部电路,给使用带来很大方便。如图3.2.2 芯片8255 A在本设计中的功能作用8255是并行的I|O接口芯片,内部有三个相互独立的8为数据端口。8255 实现了外设与8086之间的数据传输。8255的A口地址为288H B口地址为289H, C 口地址为28AH控制口地址为28BH A 口作为LED显示屏数据总线 D0D7 B 口控制LED 灯,蜂鸣器,电机,C 口的低三位分别接LED显示屏的D/I,RW,E。3.2.3

10、 芯片8255的功能分析1、8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A 口、B 口和C口。三个端口都可以作为输入端口或输出端口。A口有三种工作方式:方式0、方式1和方式2; B 口可以工作在方式0或方式1下;C 口通常 作为联络信号使用。8255的工作只有当片选CS有效时才能进行工作,而控制逻辑端口实现对其他端口的控制。当8255 工作在方式0 时,即基本输入输出方式时,可将三个数据端口划分为四个独立的部分:A 口和B 口作为两个8位端口,C 口的高4位和低4位可以用作两个4位的输入输出口,各个端口都可 独立地用作输入或输出。2、 数据总线缓冲器是一个8 位双向三态缓冲

11、器,三态是由读/ 写控制逻辑控制的,它可与系统的DB直接相连,实现CPUffi 8255A之间的信息传送;读 写控制器用于管理数据、控制字或状态字的传送,接收来自CPU的地址信息及 一些控制信号,然后向A组、B组控制电路发送命令,控制端口数据的传送方 向。3、8255引脚:RESET复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O 口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片 被选中,允许8255与CPU!行通讯;/CS=1时,8255无法与CPU故数据传输.RD读信号线,当这个输入引脚为低电平时,即/RD

12、=0且/CS=0时,允许8255 通过数据总线向CPUS:送数据或状态信息,即CPU从8255读取信息或数据。 WR写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU等数 据或控制字写入8255。D0D7:三态双向数据总线,8255与CPUK据传送的通道,当CPU执行输入输出指令时,通过它实现8 位数据的读/ 写操作,控制字和状态信息也通过数据总线传送。PAO- PA7端口 A输入输出线,一个8位的数据输出锁存器/缓冲器,一个 8 位的数据输入锁存器。PBA PB7:端口 B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。PC3 PC7:端口 C输入输出线

13、,一个8位的数据输出锁存器/缓冲器,一个 8 位的数据输入缓冲器。端口C 可以通过工作方式设定而分成2 个 4 位的端口,每个4位的端口包含一个4位的锁存器,分别与端口 A和端口 B配合使用,可作为控制信号输出或状态信号输入端口。A0,A1:地址选择线,用来选择8255的PA 口,PB 口,PC 口和控制寄存器.A0=0,A1=0 时 ,PA 口被选择; 当 A0=0,A1=1 时 ,PB 口被选择; 当 A0=1,A1=0时,PC 口被选择;当A0=1.A1=1时,控制寄存器被选择。3.2.4 8255 具有三种基本的工作方式基本输入 /输出方式(方式0)选通工作方式(方式1)双向传送方式(

14、方式2)方式0:相当于三个独立的8 位简单接口各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出。C端口可以是一个8位的简单接口,也可以分为两个独立的4 位端口 常用于连接简单外设(适于无条件或查询方式) 。方式 1:利用一组选通控制信号控制 A端口和B端口的数据输入输出A 口、B 口作 输入或输出口,CO的部分位用作选通控制信号 A 口、B 口在作为输入和输出 时选通信号不同方式 2:双向输入输出方式 可以既作为输入口,又作为输出口只有A端口可工作在方式2 下。3.3 0809 的应用3.3.1 0809 内部特性3.4 8路输入通道,8位A/D转换器,即分辨率为8位。如图3

15、.3.1。( 2)具有转换起停控制端。(3)转换时间为100仙s(4)单个+5V电源供电。( 5)模拟输入电压范围0+5V , 不需要零点和满刻度校准。( 6)工作温度范围为-40+85 摄氏度。( 7)低功耗,约15mWVCCIN2IN3IN1IN4IN0IN5ADD1IN6ADD2IN7ADD3D0ADC REF(-)D10809 eocD2OED4VCCD5CLKD6STARTD7ALED8GND图 3.3.2t图 3.3.13.3.2外部特性(引脚功能)卜面说明ADC08095片有28条引脚,采用双列直插式封装,如图所示。各引脚功能。IN0IN7: 8路模拟量输入端。2-12-8: 8

16、位数字量输出端。ADDA ADDB ADDC3位地址输入线,用于选通8路模拟输入中的一路。ALE地址锁存允许信号,输入,高电平有效。START A/D转换启动脉冲输入端, 输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降 沿启动A/D转换)。EOC A/D转换结束信号,输出,当 A/D转换结束时, 此端输出一个高电平(转换期间一直为低电平)。OE数据输出允许信号,输 入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出 三态门,输出数字量。CLK时钟脉冲输入端。要求时钟频率不高于 640KHz REF(+)、REF(-):基准电压。Vcc:电源,单一

17、+ 5V。GND 地。3.3.3 量程转换方法:INO 单极性输入电压与转换后的数字的关系为:N=Ui /(U REF/256)3.4 液晶显示屏3.4.1 液晶屏简介和主要特性液晶显示屏是一种内置128X64-12汉字图形点阵的液晶显示控制模块, 用于显示汉字及图形?12864A-1汉字图形点阵液晶显示模块集成 ST7920驱动 器,可显示汉字及图形,内置8192个中文汉字(16X 16点阵)、128个字符(8X16 点阵)及64X256点阵显示RAM(GDRAM主要技术参数和显示特性:电源:VDD 3.3V+5V(内置升压电路,无需负压);显示内容:128列X 64行;显示颜色:黄绿;显示

18、角度:6: 00 钟直视;LCDgfeS: STN与MCI® 口 : 8位或4位并行/3位用行;2MHZ寸钟频率;配置LED背光;多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等 naimLJ3.4.2 液晶显示屏引脚说明弓1脚号引脚名称电平功能说明1VSS-模块的电源地2VDD-模块的电源正端3V0-LCJl II5K12驱动电压输入端V0(3PIN)V0UT<181JN)4RS(/CS)H/L并行的指令/数据选择信号,L-指令;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据0

19、8DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RETH/L复位彳平后效18NC空脚19LED_A-背光源正极(LED+5V20LED_K-背光源负极(LED-O切表128X64引脚说明逻辑工作电压(VDD): 4.55.5V电源地(GND): 0V工作温度(Ta): 060c (常温)/ -20 75c (宽温)3.4.3 汉字编码查询表5T7920 GB中文字里福表4时*田川餐目.KM 军用看十才*立。辱不席其口看EB9

20、羽夏*联* *&*电助电E!她网凶 FH 4战时息十七,rr.死F产尸施MMtV « t K fKhi H N1 « MHJ 4 «- »0M 泪 4tSlAl 4>北味 &IC.4 £ fl 4 口网,青 3H R H-IHJ M H ft. na 河芹 R a 胖 it UHV愕停书 p5fl肆安 B2JD H 司 ». n:河康d修 日UD 餐后申奥HKV flt 帆 g*瞋警 LUI* “壮丁 KM / 6 由 bitau 用工 Wfl W H < k>D 1 at H5« s a

21、y 里碑 阻殉s? *如 Ml H * B4K X £ fi ELK (i 11 £ fl R错M取岬粒 肘Mi H if «HSHI时图力 Hul l 7 n qr 收押匿背也才 01KD置工 使印修事造区 WHI多亦欢火 M m事需K 睚匐 S ?." yrm 憾 « 4 fll- RKU史西H it 有翔一立 ¥西 口加卅千M* 国制博舌费的 3 耳港 FVW艇品煤 BK C K < < L5 叫力感H 胃 昕0 方R, 用FD步串理生 2* *fWi * S t B; HKV轴帖施M m«i A v r

22、« m 1 B st .r D*fl /电电总 旺山 依川奔 RW看早匾B一q&卞£n尸更山白四-|居巾?HWP.K WqR 壬,土后乘S看h罪 译口事1 MT* «&RaG<K*n M箕0 # m H $«,!=眄F, 归种怖”嘿ft,,*拌 Rh /«克 白L«姑坛*毋第«环鼻中«0-fiie<tl?斗十!«制#'三龄国»fc,nEF* 事理*«*4|¥* *市鼻1珞片!14|"土0<,«|*<1|心由&

23、#171;1*燃尽47!仃|1«!-杆人安燃,五海£<石4:付电|.-,青十注HI3E: * j耳+R星It,n比 律,,将餐吊r* ft fE H H H 鼻和*息螂行他举事再事茎举* M H胃话毕*J*粗* 3I,胆鼻m吊*用K * * * * *于 It tt M t V > IV r主不sat? r i* a e a a 箸*昨弄x用 也餐品。t R 牌里直行拿;#总 武力率* * + IT 朱重西也E :甲片展鹏/£电事M IT弟" 费用口:利事E« 0 B f It K N 摘摩布描四 二武堂装耳星且看3 *隹择 制同等

24、导用E B 熨/*但H君 M 另 4 工区看H城可。 H 是山a a e is v e n 盘心戈d粒M崛娱*Q世事上舌f! e ¥.E之胃立H屏二壮七百:砰出总岬的局 ilv 心 H H 时 千图r才m f赶M « 41 K 1* P R * t埠M H号*G ,*R书M樽 ft N th K .11 K t t ?R H < 事 我4 身 m 之 s 鼻珀3.4.4 液晶显小流程图:图 3.4.43.4.5 液晶显示原理图: -3255*'LCD,图 3.4.53.5 键盘键盘的工作原理是用4条I/O线作为彳T线,4条I/O线作为列线组成的键 盘。在行线和

25、列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4X4个。这种行列式键盘结构能够有效地提高单片机系统中I/O 口的利用率3.5.1键盘原理流程图jTSs.i图 3.5.13.5.2键盘电路图图 3.5.23.5.3键盘的扫描过程(1)检测是否所有键都松开了,若没有则继续检测。(2)档所有键都松开了,在检测是否有键按下,若无这继续检测。(3)若有键按下,要消除键盘抖动,确认有键按下。(4)对压下的键进行编码,将该键的行列信号转换成16进制,由此确定有哪个键按下了。如果出现有多个键重复按下的情况,只有在其他键全部释放 后,仅剩一个键按下时,才把此键当作按下的键。(5)该建释放后在回到(2

26、)4 .电路原理图与说明4.1 电路原理图4.1.1 电路连接图与说明:(1) 0809的通道0的地址为298H,通道0与0+5V相连接,片选地址为 280H287H(2) 8255的片选地址为288H29DH,A«地址为288H B 口地址为289H, C 口 地址为28AH PA0PA骸LC躁据总线 D0D7 PB0PB整LCD的D/I、 RW E。PC0PC按键盘的 DOD7图 4.1.14.1.2硬件接线实物图图 4.1.24.2 硬件运行过程说明4.2.1 过程说明初始化压力传感器,将压力传感器的信号传至 A/D转换器(由于没有压力 传感器,试验中用滑动变阻器替代),然后将

27、压力传感器的模拟信号转化为数 字信号,之后进行转换,换算为设定量程下实际情况的值,将值送到8255,8255控制液晶屏显示,将换算之后的值显示出来。并使当前数据随时间一直 不断变化。当压力大小相对稳定时,从 4*4键盘输入一个2为数,通过8255 链接的LCD显示器显示在显示屏的第二行。然后计算模拟重量乘以价格得到总 价输出到LCD液晶显示屏的第三行。5 .软件主要模块与说明程序软件模块分为主程序,键盘程序,0809转换程序,液晶显示程序,计 算子程序五个部分,键盘程序,液晶显示程序流程图在硬件部分已有叙述,下面主要描述主程序,0809转换程序的详细过程,主程序完成8255初始化,调用0809

28、 转,完成LCD®备工作,调用键盘函数,调用计算函数等一系列主干过程。5.1主程序流程图启动0剂9转粒LCD蒲屏+,瞬葭一行第四行,转化为漏吗法至覆冲区计算,送至参;申区山显示第二、三行,exi>图5.15.2 0809转换及数据处理流程5.2.1数据处理流程图图 5.3.15.2.2数据转换代码如下TRANSFORM PROC;启动0809MOV DX280H OUT DXAL MOV CX0FFH AGAIN:LOOPAGAININ ALDX;读取0809的值MOV BL2;量程转换,100-1000MOV AH0 MUL BLMOVHUANCH+64 , AXMOV DX

29、0MOVCX100;将转换量程后的值进行拆分,使之能在 LECW上显示DIV CXADD AX0A3B0HMOVHUANCH+6, AX ; 储存百位数值,显示 MOV AX, DXMOV DX,0MOV CX,10DIV CXADD AX,0A3B0HMOVHUANCH+8, AX ; 储存十位数值,显示MOV AX, DXADD AX,0A3B0H MOVHUANCH+12, AX; 储存个位数值至缓冲区 RETTRANSFORM ENDP6. 源程序清单与注释IO_ADDRESS IO_ADDRESS a8255 c8255 k8255DATAHUANCHEQU288h EQU288H

30、equ 288H equ 28aH equ 28bH SEGMENT;8255 A 口;8255 C 口;8255控制口分DW0D6D8H, 0C1BFH,0A3BAH,0C1A6H,0A1C3H,0A3AEH,0A3CBH,0BDEFH ;0-14 显示 kg,+6, 最后一个存数据,+16DW0BCDBH,0B8F1H,0A3BAH,0A3B0H,0A3AEH,0A3B0H,0A1A0H,0D4AAH;16-30 单价 XXX.XBDW0D7DCH,0BCDBH,0A3BAH,0A3AEH,0A3AEH,0A3AEH,0A3AEH,0A3AEH ;32-46 显示状态DW0D6B5H,0B

31、0E0H,0C8CbH,0D4B1H,0A1C3H,0D1EEH,0BDA8H,0A1A0H ;48-52 显示值班人员DW64,66,68,0,72 ;CC DB10;HZ_ADR DB ?table1 DW0770h,0B70h,0D70h,0E70h,07B0h,0BB0h,0DB0h,0EB0hDW07D0h,0BD0h,0DD0h,0ED0h,07E0h,0BE0h,0DE0h,0EE0h ; 键盘扫描码表char DB'0123456789ABCDEF' 字符表DATA ENDSDATA ENDS; 堆栈空间;jianpanSTACKS SEGMENSTTACKDB

32、100 DUP(?) STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKS,ES:DATASTART:CLIMOV AX,DATAMOV DS, AXMOV ES, AXMOV AX,stacksMOV SS, AXMOV DX,IO_ADDRESS+3MOV AL,81HOUT DX, ALCALL TRANSFORMCALL CLEARLEA BX,HUANCHMOV CH,1CALL LCD_DISPCALL JISUANLEA BX, HUANCHMOV CH,2CALL LCD_DISPLEA BX, HUANCHMOV CH,3CA

33、LL LCD_DISPLEA BX,HUANCHMOV CH,4CALL LCD_DISP;?;8255初始化; 调用 0809 ok;LCD 清除; 显示第 1行信息; 显示第1行信息; 显示第1行信息; 显示第4行信息MOV DX,c8255 MOV AL,0fh OUT DX, AL IN AL, DX AND AL,0fh CMP AL,0fh JZ START MOV DL,3fhMOV AH,2 INT 21h CALL JIANPAN MOV DL,CC ADD DL,30H MOV AH,02 INT 21hMOV BL,CC ; 读行扫描值; 未发现有键按下则转; 显示查找到

34、的键盘; 显示查找到的键盘;8255初始; 显示第2行信息; 显示第3行信息;设置CLEA命令;启动LC曲行命令; 启动 0809MOV BH,0 ;MOVHUANCH+66, BXADD BX,0A3B0HMOVHUANCH+22, BXCALL JIANPANMOV DL,CCADD DL,30HMOV AH,02INT 21hMOV BL,CC ;MOV BH,0MOVHUANCH+68, BXADD BX,0A3B0HMOVHUANCH+26, BXMOV BL,10MOV AX,HUANCH+66MOV AH,0 ;MUL BLADD AX,HUANCH+68MOVHUANCH+70

35、,AX;MOV DX,IO_ADDRESS+3MOV AL,81HOUT DX, ALLEA BX, HUANCHMOV CH,2CALL LCD_DISPLEA BX, HUANCHCALL JISUANMOV CH,3CALL LCD_DISPl1:JMPSTARTCLEARPROCMOV AL,0CHMOV DX,IO_ADDRESSOUT DX, ALCALL CMD_SETUPRETCLEARENDPTRANSFORMPROCMOV DX,280HOUT DX, ALMOV CX,0FFHAGAIN:LOOPAGAININ AL, DXMOV BL,2MOV AH,0MUL BLMO

36、VHUANCH+64 , AXMOV DX,0MOV CX,100DIV CXADD AX,0A3B0HMOVHUANCH+6, AXMOV AX, DXMOV DX,0MOV CX,10DIV CXADD AX,0A3B0HMOVHUANCH+8, AXMOV AX, DXADD AX,0A3B0HMOVHUANCH+12, AXRETTRANSFORMENDP FUNCUPPROCMOV AL,34HOUT DX, AL CALLCMD_SETUPRETFUNCUP ENDPLCD_DISP PROCLEA BX, HUANCHCMP CH, 1JZ DISP_SEC1CMP CH,2JZ

37、 DISP_SEC2CMP CH,3JZ DISP_SEC3CMP CH,4JZ DISP_SEC4MOV BYTEPTRHZ_ADR,98hADD BX,48JMP NEXTDISP_SEC1:MOV BYTEPTRHZ_ADR,80H; 读取0809的值; 量程转换,100-1000; 将转换量程后的值进行拆分,使之能在LEDW上显示; 储存百位数值,显示; 储存十位数值,显示; 储存个位数值至缓冲区;LCD显示状态命令; 判断是否为第一行; 判断是否为第二行; 判断是否为第三行; 判断是否为第三行; 第四行起始端口地址; 指向第四行信息; 第一行起始端口地址ADD BX,0JMP NEX

38、T; 指向第一行信息DISP_SEC2:MOV BYTEPTRHZ_ADR,90HADD BX,16JMP NEXTDISP_SEC3:MOV BYTEPTRHZ_ADR,88HADD BX,32JMP NEXT; 第二行起始端口地址; 指向第二行信息; 第三行起始端口信息; 指向第三行信息DISP_SEC4:MOV BYTEPTRHZ_ADR,98H; 第三行起始端口信息;设定ddraM址命令; 先送汉字编码高位; 输出汉字编码高字节; 延迟; 输出汉字编码低字节; 修改显示内码缓冲区指针;修改LCD示端口地址ADD BX,48; 指向第三行信息JMP NEXTNEXT:MOV CL,8CO

39、NTINUE:PUSHCXMOV AL,HZ_ADRMOV DX,IO_ADDRESSOUT DX, ALCALL CMD_SETUPMOV AX, BXPUSHAXMOV AL, AHMOV DX,IO_ADDRESSOUT DX, ALCALL DATA_SETUPCALL DELAYTIMEPOP AXMOV DX,IO_ADDRESSOUT DX, ALCALL DATA_SETUPCALL DELAYTIMEINC BXINC BXINC BYTEPTRHZ_ADRPOP CXDEC CLJNZ CONTINUERETLCD_DISPENDPCMD_SETUPPROCMOV DX,I

40、O_ADDRESS ; 指向8255端口控制端口;PC1 置0,pc0置0 (LCD I端=0, W =0);PC2置 1 (LCD 圆=1);PC2置0, (LCD 圆置0); 指向8255控制端口;PC1 置0, PC0=1 (LCD I端=1);PC2置 1 (LCD 圆=1);PC2置0, (LCD 圆=0); 延时子程序ADD DX,1NOPMOV AL,00000000BOUT DX, ALCALL DELAYTIMENOPMOV AL,00000100BOUT DX, ALNOPCALL DELAYTIMEMOV AL, 00000000BOUT DX, ALCALL DELAY

41、TIMERETCMD_SETUP ENDPDATA_SETUPPROCMOV DX,IO_ADDRESSADD DX,1MOV AL,00000001BOUT DX, ALNOPCALL DELAYTIMEMOV AL,00000101BOUT DX, ALNOPCALL DELAYTIMEMOV AL, 00000001BOUT DX, ALNOPDELAYTIME PROCMOV CX,0FFFFHD1:LOOPD1RETDELAYTIME ENDPDATA_SETUP ENDPJISUAN PROCMOV AX,HUANCH+70MOV BX,HUANCH+64MUL BXMOV DX,

42、0 ;MOV BX,10000DIV BXADD AX,0A3B0HMOV HUANCH+38, AX MOV AX, DX MOV BX,1000 MOV DX,0 ;DIV BXADD AX,0A3B0HMOV HUANCH+40, AX MOV AX, DX MOV BX,100 MOV DX,0 ;DIV BXADD AX,0A3B0HMOV HUANCH+42, AX MOV AX, DX MOV BX,10 MOV DX,0 ;DIV BXADD AX,0A3B0HMOV HUANCH+46, AX MOV AX, DX RETJISUAN ENDP JIANPAN PROC MO

43、V DX,k8255 MOV AL,81h OUT DX, AL key_loop:MOV DX,c8255MOV AL,0fh OUT DX, AL IN AL, DX AND AL,0fh CMP AL,0fh JZ key_loop CALL DELAY MOV AH, AL MOV DX,k8255 MOV AL,88h OUT DX, AL MOV DX,c8255 MOV AL, AH OR AL,0f0h OUT DX, AL; 初始化8255控制字; 读行扫描值; 未发现有键按下则转;delay for amomentIN AL, DXAND AL,0f0hCMP AL,0f0

44、hJZ key_loopMOV SI, offset table1MOV DI, offset charMOV CX,16 key_tonext: CMP AX, SI JZ key_findkeyDEC CXJZ key_loopADD SI ,2INC DIJMP key_tonext key_findkey:MOV DL, di MOV AH,02 int 21hMOV BL, DLSUB BL,30HMOVCC, BL key_waitup:MOV DX,k8255MOV AL,81hOUT DX, ALMOV DX,c8255MOV AL,0fhOUT DX, ALIN AL, dx

45、AND AL,0fhCMP AL,0fhJNZ key_waitupCALL delay; 显示查找到的键盘; 读列扫描值; 未发现有键按下则转; 键盘扫描码表首址; 字符表首址; 待查表的表大小;cmp (col,row) with every word;in the table; 未找到对应扫描码; 读行扫描值; 按键未抬起转;delay for amomentRETJIANPAN ENDPDELAY PROCNEARPUSHAX;delay 50ms-100msMOVAH,0INT 1AHMOVBX, DXDELAY1:MOVAH,0INT 1AH CMPBX, DX JZ DELAY1

46、 MOVBX, DX DELAY2: MOVAH,0 INT 1AH CMPBX, DX JZ DELAY2POPAX RETDELAY ENDP CODEENDS ENDSTART7. 问题分析与解决方案7.1 重量如何用05v直流电压模拟?解决方案:最后解决方案是依据0809 A/D转换器将电压转换为0255的数 值,存入寄存器后,再乘2,默认保留一位小数,就得到一个类似于 XX.X的重 量值( 00.051.0Kg)7.2 究竟该怎样将12864的四行与我们设计的显示内容对应起来?解决方案:我们是在LED液晶屏的自定义实验的基础上修改得来,自定义实验只有两行显示,通过对代码的分析,发现四行的端口地址并不是顺序排列的。经过不断的试验,得到各口地址为:第一行:80H;第二行:90H;第三行: 88H;第四行:98H通过判断需要输出哪一行的信息,输出汉字表中的相应汉字,LED 显示屏的每一行能显示八个字符,所以根据汉字在 LED屏幕上的位置以计算得出汉字 在表中位置。LEA BX, HZ_TABADD BX,48; 指向第四行信息ADD BX,0; 指向第一行信息

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论