




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硬件课程设计硬件课程设计 中国矿业大学计算机学院中国矿业大学计算机学院 题 目: 压力控制系统 班 级: 信息安全 11-2 班 学 号: * 姓 名: * * * 指导教师: 周世斌 2013 年 11 月3013 年 12 月 2 目目 录录 1. 设计任务与要求设计任务与要求 .3 1.1 设计任务3 1.2 设计要求3 2. 总体方案与说明总体方案与说明 3 2.1 模拟信号的转换与显示3 2.2 键盘数据的输入与显示4 2.3 数据的处理与显示4 2.4 显示说明4 3. 硬件框图与说明硬件框图与说明 5 3.1 8086 原理简介.5 3.2 8255 原理简介.6 3.3 0809 的应用.9 3.4 液晶显示屏 11 3.5 键盘 14 4电路原理图与说明电路原理图与说明 16 4.1 电路原理图 16 4.2 硬件运行过程说明 17 5软件主要模块与说明软件主要模块与说明17 5.1 主程序流程图 18 5.2 0809 转换及数据处理流程19 6源程序清单与注释明源程序清单与注释明17 7问题分析与解决方案问题分析与解决方案28 8结论与体会结论与体会30 8.1 实验运行结果.30 8.2 体会.31 9参考资料参考资料 32 3 1.设计任务与要求设计任务与要求 1.1. 1 1 设计任务设计任务 运用相关硬件,结合自己的编程技术,设计简单的电子秤,并实现其基 本功能,是本次模拟压力控制系统的硬件课程设计。在完成课程设计的过程 中,需要学生独立思考,积极发挥创造力和动手能力,进一步学习各种软硬 件的功能和提高编程能力。 电子秤的设计,是通过实验台左下角电位器 RW1 输出 05直流电压, 模拟压力信号,送入/转换器,将模拟信号转换成数字信号并显示在 LCD 字符图形液晶显示屏的第一行上,作为称重的重量。同时,从键盘输入数据, 并在 LCD 字符图形液晶显示屏的第二行上显示出来,作为价格。最后在第三 行显示出重量与单价的乘积及总价。实现电子秤的基本功能,达到模拟压力 控制系统课程设计的基本要求。 1.1. 2 2 设计要求设计要求 (1)模拟电子秤开机后,改变模拟信号的大小,模拟重量的值必须实时的 显示在液晶显示屏上; (2)模拟的单价初始值默认为零,从键盘输入单价完成后,需在液晶显示 器上显示输入的单价; (3)模拟价格必须随模拟重量改变,并实时的显示在液晶显示器上。 2. 总体方案与说明总体方案与说明 本次试验需要要使用 ADC0809 数模转换器,四乘四键盘,可编程控制接口 8255,05直流电压,128*64LCD 字符图形液晶显示屏。 2 21 1 模拟信号的转换与显示模拟信号的转换与显示 用滑动变阻器代替压力传感器,模拟压力的变化。将模拟电压输入 ADC0809 通道 0(IN0),ADC0809 的 IN0 口地址为 280H, CS 接地址译码输出的 280h287h。8255 的 A 口接 LCD 的 D7DO. 8255CS 接地址译码输出的 288h28fh。8255 的 PB0PB2 分别接 LCD 的 D/I、RW、E 接口。编程采集 IN0 4 输入的电压,将压力传感器的模拟信号转化为数字信号,之后进行转换,换算 为设定量程下实际情况的值,然后将模拟重量的电压数据存放到 CPU 寄存器中 用于下一步计算。同时将模拟重量的电压数据从 8255 的 A 口输出并在 LCD 屏 幕的第一行作为重量显示出来。 2 22 2 键盘数据的输入与显示键盘数据的输入与显示 8255的C0C3接键盘的列0列3,C4C7接键盘的行0行3),从键盘输 入两位数,然后在LCD的第二行作为单价显示出来,并存放到CPU寄存器中用于 下一步计算。 2 23 3 数据的处理与显示数据的处理与显示 通过编程将第一步与第二步寄存在CPU中的模拟重量与模拟价格相乘处理 后输入到LCD的第三行作为总价显示出来。 2 24 4 LCDLCD 显示说明显示说明 液晶显示屏是一种内置 12864-12 汉字图形点阵的液晶显示控制模块,用 于显示汉字及图形12864A-1 汉字图形点阵液晶显示模块集成 ST7920 驱动器, 可显示汉字及图形,内置 8192 个中文汉字(1616 点阵) 、128 个字符(816 点阵)及 64256 点阵显示 RAM(GDRAM) 。如图 2.4。 液晶显示屏共显示四行字符,每行可以显示八个字符。 0-14 重量:*斤 16-30 价格:*元 32-46 总价:* 48-62 值班人员:* 5 图2.4 LCD接线图 3.硬件框图与说明硬件框图与说明 3.13.1 80868086 原理简介原理简介 3.1.13.1.1 8086CPU8086CPU 8086是Intel系列的16位微处理器,它采用HMOS工艺技术制造,芯片采用 40系列线封装,单一的+5V电源,时钟频率为510MHz。 8086 有 16 根数据线和 20 根地址线,可以处理 8 位和 16 位数据,寻址 1MB 的储存单元和 64KB 的 I/O 端口。如图 3.1.1。 图 3.1.1 8086引脚图 6 3.1.23.1.2 8086CPU8086CPU 的编程结构的编程结构 编程结构:是指从程序员和使用者的角度看到的结构,亦可称为功能结 构。从功能上来看,8086CPU 可分为两部分,即总线接口部件 BIU(Bus Interface Unit)和执行部件 EU(Execution Unit)。8086CPU 的内部功能结 构如图图 3.1.2 所示: 图 3.1.2 3.23.2 82558255 原理简介原理简介 3.2.13.2.1 82558255 原理及接线图原理及接线图 8255A 是 Intel 系列的并行接口芯片,常作为微机系统与外部设备接口。 由于它是可编程的,可以通过软件来设置芯片的工作方式,因此,用它连接 外部设备时,一般不需要在附加外部电路,给使用带来很大方便。如图 3.2.1 7 图 3.2.1 3.2.23.2.2 芯片芯片 82558255 A 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.33.2.3 芯片芯片 82558255 的功能分析的功能分析 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 位的输入输出口,各 8 个端口都可独立地用作输入或输出。 2、数据总线缓冲器是一个 8 位双向三态缓冲器,三态是由读/写控制逻 辑控制的,它可与系统的 DB 直接相连,实现 CPU 和 8255A 之间的信息传送; 读写控制器用于管理数据、控制字或状态字的传送,接收来自 CPU 的地址信 息及一些控制信号,然后向 A 组、B 组控制电路发送命令,控制端口数据的 传送方向。 3、8255 引脚:RESET:复位输入线,当该输入端处于高电平时,所有内 部寄存器(包括控制寄存器)均被清除,所有 I/O 口均被置成输入方式。 CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0 时,表示芯片 被选中,允许 8255 与 CPU 进行通讯;/CS=1 时,8255 无法与 CPU 做数据传输. RD:读信号线,当这个输入引脚为低电平时,即/RD=0 且/CS=0 时,允许 8255 通过数据总线向 CPU 发送数据或状态信息,即 CPU 从 8255 读取信息或 数据。 WR:写入信号,当这个输入引脚为低电平时,即/WR=0 且/CS=0 时, 允许 CPU 将数据或控制字写入 8255。 D0D7:三态双向数据总线,8255 与 CPU 数据传送的通道,当 CPU 执行 输入输出指令时,通过它实现 8 位数据的读/写操作,控制字和状态信息也通 过数据总线传送。 PA0PA7:端口 A 输入输出线,一个 8 位的数据输出锁存器/缓冲器, 一 个 8 位的数据输入锁存器。 PB0PB7:端口 B 输入输出线,一个 8 位的 I/O 锁存器, 一个 8 位的输 入输出缓冲器。 PC0PC7:端口 C 输入输出线,一个 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 时,控制寄存器被选择。 9 3.2.43.2.4 82558255 具有三种基本的工作方式具有三种基本的工作方式 基本输入/输出方式(方式 0) 选通工作方式(方式 1) 双向传送方式(方式 2) 方式 0: 相当于三个独立的 8 位简单接口 各端口既可设置为输入口,也可设置为 输出口,但不能同时实现输入及输出。C 端口可以是一个 8 位的简单接口, 也可以分为两个独立的 4 位端口 常用于连接简单外设(适于无条件或查询方 式) 。 方式 1: 利用一组选通控制信号控制 A 端口和 B 端口的数据输入输出 A 口、B 口 作输入或输出口,C 口的部分位用作选通控制信号 A 口、B 口在作为输入和 输出时选通信号不同 方式 2: 双向输入输出方式-可以既作为输入口,又作为输出口 只有 A 端 口可工作在方式 2 下。 3.33.3 08090809 的应用的应用 3.3.13.3.1 08090809 内部特性内部特性 (1)8 路输入通道,8 位 A/D 转换器,即分辨率为 8 位。如图 3.3.1。 (2)具有转换起停控制端。 (3)转换时间为 100s (4)单个+5V 电源供电。 (5)模拟输入电压范围 0+5V ,不需要零点和满刻度校准。 (6)工作温度范围为-40+85 摄氏度。 (7)低功耗,约 15mW 10 图 3.3.1 3.3.23.3.2 外部特性(引脚功能)外部特性(引脚功能) ADC 0809 IN2 IN1 IN0 ADD1 EOC OE START CLK VCC REF(-) GND ADD2 ADD3 ALE VCC IN3 IN7 IN6 IN5 IN4 D2 D4 D5 D6 D8 D7 D1 D0 图 3.3.2 ADC0809 芯片有 28 条引脚,采用双列直插式封装,如图所示。下面说 明各引脚功能。IN0IN7:8 路模拟量输入端。2-12-8:8 位数字量输出 端。ADDA、ADDB、ADDC:3 位地址输入线,用于选通 8 路模拟输入中的一路。 ALE:地址锁存允许信号,输入,高电平有效。START:AD 转换启动脉冲 11 输入端,输入一个正脉冲(至少 100ns 宽)使其启动(脉冲上升沿使 0809 复位,下降沿启动 A/D 转换) 。EOC: AD 转换结束信号,输出,当 AD 转换结束时,此端输出一个高电平(转换期间一直为低电平) 。OE:数据输 出允许信号,输入,高电平有效。当 AD 转换结束时,此端输入一个高电 平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟 频率不高于 640KHZ。REF(+) 、REF(-):基准电压。Vcc:电源,单一 5V。GND:地。 3.3.33.3.3 量程转换方法:量程转换方法: INO 单极性输入电压与转换后的数字的关系为: N=Ui/(UREF/256) 3.43.4 液晶显示屏液晶显示屏 3.4.13.4.1 液晶屏简介和主要特性液晶屏简介和主要特性 液晶显示屏是一种内置 12864-12 汉字图形点阵的液晶显示控制模块,用 于显示汉字及图形12864A-1 汉字图形点阵液晶显示模块集成 ST7920 驱动器, 可显示汉字及图形,内置 8192 个中文汉字(1616 点阵) 、128 个字符 (816 点阵)及 64256 点阵显示 RAM(GDRAM) 。主要技术参数和显示 特性: 电源:VDD 3.3V+5V(内置升压电路,无需负压); 显示内容:128 列 64 行; 显示颜色:黄绿; 显示角度:6:00 钟直视; LCD 类型:STN; 与 MCU 接口:8 位或 4 位并行/3 位串行; 2MHZ 时钟频率; 配置 LED 背光; 多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等 12 3.4.23.4.2 液晶显示屏引脚说明液晶显示屏引脚说明 引脚号引脚名称电平功能说明 1VSS-模块的电源地 2VDD-模块的电源正端 3V0-LCD 驱动电压输入端 4RS(/CS)H/L并行的指令/数据选择信号,L-指令;串行的 片选信号 5R/W(SID)H/L并行的读写选择信号;串行的数据口 6E(CLK)H/L并行的使能信号;串行的同步时钟 7DB0H/L数据 0 8DB1H/L数据 1 9DB2H/L数据 2 10DB3H/L数据 3 11DB4H/L数据 4 12DB5H/L数据 5 13DB6H/L数据 6 14DB7H/L数据 7 13 15PSBH/L并/串行接口选择:H-并行;L-串行 16NC空脚 17/RETH/L复位 低电平有效 18NC空脚 19LED_A-背光源正极(LED+5V) 20LED_K-背光源负极(LED-OV) 表 128X64 引脚说明 逻辑工作电压(VDD):4.55.5V 电源地(GND):0V 工作温度(Ta):060(常温) / -2075(宽温) 3.4.33.4.3 汉字编码查询表汉字编码查询表 图 3.4.3 14 3.4.4 液晶显示流程图:液晶显示流程图: 图 3.4.4 3.4.5 液晶显示原理图:液晶显示原理图: 图 3.4.5 3.5 键盘键盘 键盘的工作原理是用 4 条 I/O 线作为行线,4 条 I/O 线作为列线组成的键 盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数 是 44 个。这种行列式键盘结构能够有效地提高单片机系统中 I/O 口的利用率。 15 3.5.13.5.1 键盘原理流程图键盘原理流程图 图 3.5.1 3.5.23.5.2 键盘电路图键盘电路图 图 3.5.2 16 3.5.33.5.3 键盘的扫描过程键盘的扫描过程 (1)检测是否所有键都松开了,若没有则继续检测。 (2)档所有键都松开了,在检测是否有键按下,若无这继续检测。 (3)若有键按下,要消除键盘抖动,确认有键按下。 (4)对压下的键进行编码,将该键的行列信号转换成 16 进制,由此确定有哪 个键按下了。如果出现有多个键重复按下的情况,只有在其他键全部释 放后,仅剩一个键按下时,才把此键当作按下的键。 (5)该建释放后在回到(2) 4电路原理图与说明电路原理图与说明 4.1电路原理图电路原理图 4.1.1 电路连接图与说明:电路连接图与说明: (1)0809 的通道 0 的地址为 298H,通道 0 与 0+5V 相连接,片选地址为 280H287H (2)8255 的片选地址为 288H29DH,A 口地址为 288H,B 口地址为 289H,C 口 地址为 28AH,PA0PA7 接 LCD 数据总线 D0D7,PB0PB2 接 LCD 的 D/I、RW、E。PC0PC7 接键盘的 DOD7。 图 4.1.1 17 4.1.24.1.2 硬件接线实物图硬件接线实物图 图 4.1.2 4.2 硬件运行过程说明硬件运行过程说明 4.2.1 过程说明过程说明 初始化压力传感器,将压力传感器的信号传至 A/D 转换器(由于没有压 力传感器,试验中用滑动变阻器替代) ,然后将压力传感器的模拟信号转化为 数字信号,之后进行转换,换算为设定量程下实际情况的值,将值送到 8255,8255 控制液晶屏显示,将换算之后的值显示出来。并使当前数据随时 间一直不断变化。当压力大小相对稳定时,从 4*4 键盘输入一个 2 为数,通 过 8255 链接的 LCD 显示器显示在显示屏的第二行。然后计算模拟重量乘以价 格得到总价输出到 LCD 液晶显示屏的第三行。 5.软件主要模块与说明软件主要模块与说明 程序软件模块分为主程序,键盘程序,0809 转换程序,液晶显示程序,计 算子程序五个部分,键盘程序,液晶显示程序流程图在硬件部分已有叙述,下 面主要描述主程序,0809 转换程序的详细过程,主程序完成 8255 初始化,调 用 0809 转,完成 LCD 准备工作,调用键盘函数,调用计算函数等一系列主干过 程。 18 5.15.1 主程序流程图主程序流程图 图 5.1 19 5.25.2 08090809 转换及数据处理流程转换及数据处理流程 5.2.15.2.1 数据处理流程图数据处理流程图 图 5.3.1 5.2.25.2.2 数据转换代码如下数据转换代码如下 TRANSFORM PROC ;启动0809 MOV DX,280H OUT DX,AL MOV CX,0FFH AGAIN: LOOP AGAIN IN AL,DX ;读取0809的值 MOV BL,2 ;量程转换,100-1000 MOV AH,0 MUL BL MOV HUANCH+64 ,AX MOV DX,0 MOV CX,100 ;将转换量程后的值进行拆分,使之能在LED屏上显示 20 DIV CX ADD AX,0A3B0H MOV HUANCH+6,AX ;储存百位数值,显示 MOV AX,DX MOV DX,0 MOV CX,10 DIV CX ADD AX,0A3B0H MOV HUANCH+8,AX ;储存十位数值,显示 MOV AX,DX ADD AX,0A3B0H MOV HUANCH+12,AX;储存个位数值至缓冲区 RET TRANSFORM ENDP 6.6.源程序清单与注释源程序清单与注释 IO_ADDRESS EQU 288h IO_ADDRESS EQU 288H a8255 equ 288H ;8255 A口 c8255 equ 28aH ;8255 C口 k8255 equ 28bH ;8255控制口分 DATA SEGMENT HUANCH DW 0D6D8H, 0C1BFH,0A3BAH,0C1A6H,0A1C3H,0A3AEH,0A3CBH,0BDEFH ;0-14 显示kg,+6,最后一个存数据,+16 DW 0BCDBH,0B8F1H,0A3BAH,0A3B0H,0A3AEH,0A3B0H,0A1A0H,0D4AAH ;16-30 单价XXX.X帕 DW 0D7DCH,0BCDBH,0A3BAH,0A3AEH,0A3AEH,0A3AEH,0A3AEH,0A3AEH ;32-46 显示状态 DW 0D6B5H,0B0E0H,0C8CbH,0D4B1H,0A1C3H,0D1EEH,0BDA8H,0A1A0H ;48-52 显示值班人员 DW 64,66,68,0,72; CC DB 10; HZ_ADR DB ? table1 DW 0770h,0B70h,0D70h,0E70h,07B0h,0BB0h,0DB0h,0EB0h DW 07D0h,0BD0h,0DD0h,0ED0h,07E0h,0BE0h,0DE0h,0EE0h ;键盘扫描码表 char DB 0123456789ABCDEF ;字符表 DATA ENDS DATA ENDS STACKS SEGMENT STACK ;堆栈空间 21 DB 100 DUP (?) STACK ENDS ;jianpan CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKS,ES:DATA START: CLI MOV AX,DATA MOV DS,AX MOV ES,AX ;? MOV AX,stacks MOV SS,AX MOV DX,IO_ADDRESS+3 MOV AL,81H OUT DX,AL ;8255初始化 CALL TRANSFORM ;调用0809 ok CALL CLEAR ;LCD 清除 LEA BX,HUANCH MOV CH,1 ;显示第1行信息 CALL LCD_DISP CALL JISUAN LEA BX, HUANCH MOV CH,2 ;显示第1行信息 CALL LCD_DISP LEA BX, HUANCH MOV CH,3 ;显示第1行信息 CALL LCD_DISP LEA BX,HUANCH MOV CH,4 ;显示第4行信息 CALL LCD_DISP MOV DX,c8255 MOV AL,0fh OUT DX,AL IN AL,DX ;读行扫描值 AND AL,0fh CMP AL,0fh JZ START ;未发现有键按下则转 MOV DL,3fh MOV AH,2 INT 21h CALL JIANPAN MOV DL,CC ADD DL,30H MOV AH,02 22 INT 21h ;显示查找到的键盘 MOV BL,CC; MOV BH,0; MOV HUANCH+66,BX ADD BX,0A3B0H MOV HUANCH+22,BX CALL JIANPAN MOV DL,CC ADD DL,30H MOV AH,02 INT 21h ;显示查找到的键盘 MOV BL,CC; MOV BH,0 MOV HUANCH+68,BX ADD BX,0A3B0H MOV HUANCH+26,BX MOV BL,10 MOV AX,HUANCH+66 MOV AH,0; MUL BL ADD AX,HUANCH+68 MOV HUANCH+70,AX; MOV DX,IO_ADDRESS+3 MOV AL,81H OUT DX,AL ;8255初始 LEA BX, HUANCH MOV CH,2 ;显示第2行信息 CALL LCD_DISP LEA BX, HUANCH CALL JISUAN MOV CH,3 ;显示第3行信息 CALL LCD_DISP l1: JMP START CLEAR PROC MOV AL,0CH MOV DX,IO_ADDRESS OUT DX,AL ;设置CLEAR命令 CALL CMD_SETUP ;启动LCD执行命令 RET CLEAR ENDP TRANSFORM PROC ;启动0809 MOV DX,280H OUT DX,AL 23 MOV CX,0FFH AGAIN: LOOP AGAIN IN AL,DX ;读取0809的值 MOV BL,2 ;量程转换,100-1000 MOV AH,0 MUL BL MOV HUANCH+64 ,AX MOV DX,0 MOV CX,100 ;将转换量程后的值进行拆分,使之 能在LED屏上显示 DIV CX ADD AX,0A3B0H MOV HUANCH+6,AX ;储存百位数值,显示 MOV AX,DX MOV DX,0 MOV CX,10 DIV CX ADD AX,0A3B0H MOV HUANCH+8,AX ;储存十位数值,显示 MOV AX,DX ADD AX,0A3B0H MOV HUANCH+12,AX ;储存个位数值至缓冲区 RET TRANSFORM ENDP FUNCUP PROC MOV AL,34H ;LCD显示状态命令 OUT DX,AL CALL CMD_SETUP RET FUNCUP ENDP LCD_DISP PROC LEA BX, HUANCH CMP CH, 1 ;判断是否为第一行 JZ DISP_SEC1 CMP CH,2 ;判断是否为第二行 JZ DISP_SEC2 CMP CH,3 ;判断是否为第三行 JZ DISP_SEC3 CMP CH,4 ;判断是否为第三行 JZ DISP_SEC4 MOV BYTE PTR HZ_ADR,98h ;第四行起始端口地址 ADD BX,48 ;指向第四行信息 JMP NEXT 24 DISP_SEC1: MOV BYTE PTR HZ_ADR,80H ;第一行起始端口地址 ADD BX,0 ;指向第一行信息 JMP NEXT DISP_SEC2: MOV BYTE PTR HZ_ADR,90H ;第二行起始端口地址 ADD BX,16 ;指向第二行信息 JMP NEXT DISP_SEC3: MOV BYTE PTR HZ_ADR,88H;第三行起始端口信息 ADD BX,32 ;指向第三行信息 JMP NEXT DISP_SEC4: MOV BYTE PTR HZ_ADR,98H;第三行起始端口信息 ADD BX,48 ;指向第三行信息 JMP NEXT NEXT: MOV CL,8 CONTINUE: PUSH CX MOV AL,HZ_ADR MOV DX,IO_ADDRESS OUT DX, AL CALL CMD_SETUP ;设定DDRAM地址命令 MOV AX,BX PUSH AX MOV AL,AH ;先送汉字编码高位 MOV DX,IO_ADDRESS OUT DX,AL CALL DATA_SETUP ;输出汉字编码高字节 CALL DELAYTIME ;延迟 POP AX MOV DX,IO_ADDRESS OUT DX, AL CALL DATA_SETUP ;输出汉字编码低字节 CALL DELAYTIME INC BX INC BX ;修改显示内码缓冲区指针 INC BYTE PTR HZ_ADR ;修改LCD显示端口地址 POP CX DEC CL JNZ CONTINUE RET LCD_DISP ENDP 25 CMD_SETUP PROC MOV DX,IO_ADDRESS ;指向8255端口控制端口 ADD DX,1 NOP MOV AL,00000000B ;PC1置0,pc0置0 (LCD I端=0,W端0) OUT DX, AL CALL DELAYTIME NOP MOV AL,00000100B ;PC2置1 (LCD E端1) OUT DX, AL NOP CALL DELAYTIME MOV AL, 00000000B ;PC2置0,(LCD E端置0) OUT DX, AL CALL DELAYTIME RET CMD_SETUP ENDP DATA_SETUP PROC MOV DX,IO_ADDRESS ;指向8255控制端口 ADD DX,1 MOV AL,00000001B ;PC1置0,PC0=1 (LCD I端=1) OUT DX, AL NOP CALL DELAYTIME MOV AL,00000101B ;PC2置1 (LCD E端1) OUT DX, AL NOP CALL DELAYTIME MOV AL, 00000001B ;PC2置0,(LCD E端0) OUT DX, AL NOP DELAYTIME PROC ;延时子程序 MOV CX,0FFFFH D1: LOOP D1 RET DELAYTIME ENDP DATA_SETUP ENDP JISUAN PROC MOV AX,HUANCH+70 MOV BX,HUANCH+64 MUL BX MOV DX,0; 26 MOV BX,10000 DIV BX ADD AX,0A3B0H MOV HUANCH+38,AX MOV AX,DX MOV BX,1000 MOV DX,0; DIV BX ADD AX,0A3B0H MOV HUANCH+40,AX MOV AX,DX MOV BX,100 MOV DX,0; DIV BX ADD AX,0A3B0H MOV HUANCH+42,AX MOV AX,DX MOV BX,10 MOV DX,0; DIV BX ADD AX,0A3B0H MOV HUANCH+46,AX MOV AX,DX RET JISUAN ENDP JIANPAN PROC MOV DX,k8255 ;初始化8255控制字 MOV AL,81h OUT DX,AL key_loop: MOV DX,c8255 MOV AL,0fh OUT DX,AL IN AL,DX ;读行扫描值 AND AL,0fh CMP AL,0fh JZ key_loop ;未发现有键按下则转 CALL DELAY ;delay for amoment MOV AH,AL MOV DX,k8255 MOV AL,88h OUT DX,AL MOV DX,c8255 MOV AL,AH 27 OR AL,0f0h OUT DX,AL IN AL,DX ;读列扫描值 AND AL,0f0h CMP AL,0f0h JZ key_loop ;未发现有键按下则转 MOV SI,offset table1 ;键盘扫描码表首址 MOV DI,offset char ;字符表首址 MOV CX,16 ;待查表的表大小 key_tonext: CMP AX,SI ;cmp (col,row) with every word JZ key_findkey ;in the table DEC CX JZ key_loop ;未找到对应扫描码 ADD SI,2 INC DI JMP key_tonext key_findkey: MOV DL,di MOV AH,02 int 21h ;显示查找到的键盘 MOV BL,DL SUB BL,30H MOV CC,BL key_waitup: MOV DX,k8255 MOV AL,81h OUT DX,AL MOV DX,c8255 MOV AL,0fh OUT DX,AL IN AL,dx ;读行扫描值 AND AL,0fh CMP AL,0fh JNZ key_waitup ;按键未抬起转 CALL delay ;delay for amoment RET JIANPAN ENDP DELAY PROC NEAR PUSH AX ;delay 50ms-100ms MOV AH,0 INT 1AH MOV BX,DX 28 DELAY1: MOV AH,0 INT 1AH CMP BX,DX JZ DELAY1 MOV BX,DX DELAY2: MOV AH,0 INT 1AH CMP BX,DX JZ DELAY2 POP AX RET DELAY ENDP CODE ENDS END START 7.7.问题分析与解决方案问题分析与解决方案 7.17.1 重量如何用重量如何用 05v 直流电压模拟?直流电压模拟? 解决方案:最后解决方案是依据 0809 A/D 转换器将电压转换为 0255 的 数值,存入寄存器后,再乘 2,默认保留一位小数,就得到一个类似于 XX.X 的重量值(00.051.0Kg) 7.27.2 究竟该怎样将究竟该怎样将 1286412864 的四行与我们设计的显示内容对应起来?的四行与我们设计的显示内容对应起来? 解决方案:我们是在 LED 液晶屏的自定义实验的基础上修改得来,自定义 实验只有两行显示,通过对代码的分析,发现四行的端口地址并不是顺序排列 的。经过不断的试验,得到各口地址为:第一行:80H;第二行:90H;第三行: 88H;第四行:98H。 通过判断需要输出哪一行的信息,输出汉字表中的相应汉字,LED 显示屏 的每一行能显示八个字符,所以根据汉字在 LED 屏幕上的位置以计算得出汉字 在表中位置。 LEA BX, HZ_TAB ADD BX,48 ;指向第四行信息 ADD BX,0 ;指向第一行信息 ADD BX,16;指向第二行信息 29 ADD BX,32;指向第三行信息 7.37.3 扫描键盘输入值时,有时可能是键盘不够灵敏,按下键可能没反应,这样扫描键盘输入值时,有时可能是键盘不够灵敏,按下键可能没反应,这样 就得重按,导致我们也不知道输入的数是什么?另外,在本实验中,键盘还有就得重按,导致我们也不知道输入的数是什么?另外,在本实验中,键盘还有 控制程序循环的功能,所以我们必须知道是否输入成功,并且知道扫描出来数控制程序循环的功能,所以我们必须知道是否输入成功,并且知道扫描出来数 值值. . 解决方案:我们经过权衡利弊后决定引入系统显示中断,进而判断是否需 要重输或者不用,并且还可以增加实验的透明性。另外,我们引入了两次
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 8.2.5 生物的变异 说课稿-2025-2026学年鲁科版(五四学制)生物八年级下册
- Chapter1 Study tours教学设计-2025-2026学年小学英语6B香港朗文版
- 第三节 DNA通过复制传递遗传信息教学设计-2025-2026学年高中生物浙科版2019必修2 遗传与进化-浙科版2019
- 十六 项脊轩志教学设计-2025-2026学年高中语文高一下册华东师大版
- 2025年中考数学试题分类汇编:圆的有关位置关系(9大考点51题) (第1期)解析版
- 2025年采购与供应链管理岗位职业技能资格知识考试题与答案
- 1.3地球的历史教学设计2023-2024学年高中地理人教版(2019)必修第一册
- 2025年体育学科专业知识教师招聘考试押题卷及答案(一)
- 一年级语文上册 第7单元 课文3 11 项链说课稿 新人教版
- 蓄水池防溺水知识培训课件
- 物业客服管理知识培训课件
- 2025-2026学年湘教版(2024)初中数学八年级上册教学计划及进度表
- GB/T 45763-2025精细陶瓷陶瓷薄板室温弯曲强度试验方法三点弯曲或四点弯曲法
- 【MOOC】理解马克思-南京大学 中国大学慕课MOOC答案
- 夏商周考古课件 第1章 绪论
- GB/T 23723.1-2009起重机安全使用第1部分:总则
- 《汽车发动机检修》课程标准
- GB308-2002滚动轴承钢球
- 夹芯彩钢复合板吊顶施工方案
- 高二物理培优计划
- 初中英语阅读理解100篇
评论
0/150
提交评论