ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:806KB ,
资源ID:3533713      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3533713.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机简易计算器设计.doc)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

单片机简易计算器设计.doc

1、一、设计要求1设计 4*4 的键盘,其中 10 个数字键 09,其余 6 个为“+” “-” “*”“/” “=”和“C”2设计 2 位 LED 接口电路3实现 1 位数的简单运算二、硬件系统设计1、LED 接口电路简易计算器需要 2 位 8 段码 LED 显示电路。用 8031 单片机经 8255A 扩展 2 位 8 段码LED 显示器,用 8255A 的 A 口作为段码(字形代码)数据口, PB0 和 PB1 作为位控制端口。在位控制口加集电极开路的反相高压驱动器 74LS06 以提供驱动 LED 显示器所需的足够大的电流,然后接至各数码显示器的共阴极端。同理,在段码数据口集电极开路的正相

2、高压驱动器 74LS07 提供足够大的电流,然后接到数码显示器的各段。逻辑电路结构如下:8 2 5 5 AP A 0P A 1P A 2P A 3P A 4P A 5P A 6P A 7P B 0P B 17 4 L S 3 7 3GC SA 1A 0D 0 D 7W RR DR E S E TW RR DR S TA L EP 2 . 78 0 3 1Q 2 Q 7Q 1Q 0A 2 A 7A 1A 0D 0 D 7A 8 A 1 1O EC EP 0 . 0 P 0 . 7P 2 . 0 2 . 3P S E N+ 5 V2 7 3 2X T A L 2X T A L 1晶 振 6 M H

3、 Z8 X 7 4 L S 0 72 X 7 4 L S 0 62、键盘接口电路简易计算器需要 4*4 的行列式键盘。用 8031 单片机经 8255A 扩展 4*4 行列式键盘,8255A 的 B 口和 C 口用于扩展键盘接口, B 口高 4 位作为输出口,C 口低 4 位作为输入口。逻辑电路结构如下:8 2 5 5 AP B 4P B 5P B 6P B 7P C 0P C 1P C 2P C 37 4 L S 3 7 3GC SA 1A 0D 0 D 7W RR DR E S E TW RR DR S TA L EP 2 . 78 0 3 1+ 5 VQ 2 Q 7Q 1Q 0A 2 A

4、 7A 1A 0D 0 D 7A 8 A 1 1O EC EP 0 . 0 P 0 . 7P 2 . 0 2 . 3P S E N2 7 3 2X T A L 2X T A L 1晶 振 6 M H Z4 X 4 键 盘3、计算器逻辑电路图将 LED 接口电路和键盘接口电路结合到一起就是简易计算器的逻辑电路图,如下:8 2 5 5 AP A 0P A 1P A 2P A 3P A 4P A 5P A 6P A 7P B 0P B 1P B 4P B 5P B 6P B 7P C 0P C 1P C 2P C 37 4 L S 3 7 3GC SA 1A 0D 0 D 7W RR DR E S

5、E TW RR DR S TA L EP 2 . 78 0 3 1+ 5 VQ 2 Q 7Q 1Q 0A 2 A 7A 1A 0D 0 D 7A 8 A 1 1O EC EP 0 . 0 P 0 . 7P 2 . 0 2 . 3P S E N+ 5 V2 7 3 2X T A L 2X T A L 1晶 振 6 M H Z8 X 7 4 L S 0 72 X 7 4 L S 0 64 X 4 键 盘三、软件设计1、LED 显示程序设计LED 显示器由七段发光二极管组成,排列成 8 字形状,因此也成为七段 LED 显示器,器排列形状如下图所示:为了显示数字或符号,要为 LED 显示器提供代码,即

6、字形代码。七段发光二极管,再加上一个小数点位,共计 8 段,因此提供的字形代码的长度正好是一个字节。简易计算器用到的数字 09 的共阴极字形代码如下表:09 七段数码管共阴级字形代码显示字型 g f e d c b a 段码0 0 1 1 1 1 1 1 3fh1 0 0 0 0 1 1 0 06h2 1 0 1 1 0 1 1 5bh3 1 0 0 1 1 1 1 4fh4 1 1 0 0 1 1 0 66h5 1 1 0 1 1 0 1 6dh6 1 1 1 1 1 0 1 7dh7 0 0 0 0 1 1 1 07h8 1 1 1 1 1 1 1 7fh9 1 1 0 1 1 1 1 6

7、fh2 位 LED 显示的程序框图如下:2、读键输入程序设计为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码键码。为了得到被按键的键码,现使用行扫描法识别按键。其程序框图如下:3、主程序设计(1)数值送显示缓冲程序设计简易计算器所显示的数值最大位两位。要显示数值,先判断数值正负,如果是负值,则符号位显示“-” ,然后将数值除以 10,余数送显最最低位,判断商是否为 0,若为 0 则返回,若不为 0,则将商除以 10,将余数送显高位。程序框图如下:(2)运算主程序设计首先初始化参数,送 LED 低位显示“0” ,高位不显示。然后扫描键盘看是否有键输入,若有

8、,读取键码。判断键码是数字键、清零键还是功能键(“+” “-”“*”“/”“=” ) ,是数值键则送 LED 显示并保存数值,是清零键则做清零处理,是功能键则又判断是“=”还是运算键,若是“=”则计算最后结果并送 LED 显示,若是运算键则保存相对运算程序的首地址。运算主程序框图如下所示:4、简易计算器源程序OUTBIT equ 07FFDh ; 位控制口OUTSEG equ 07FFCh ; 段控制口IN equ 07FFEh ; 键盘读入口data1 equ 70hdata2 equ 71hdizhi1 equ 72hdizhi2 equ 73hLEDBuf equ 60h ; 显示缓冲l

9、jmp StartLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: ; 延时子程序mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDisplayLED:mov r0, #LEDBufmov r1, #2 ; 共 2 个八段管mov r2, #00000010b ; 从左边开始显示Loop:mov dptr, #OUTBITmov a, #0movx dptr, a ;

10、 关所有八段管mov a, r0mov dptr, #OUTSEGmovx dptr, amov dptr, #OUTBITmov a, r2movx dptr, a ; 显示一位八段管mov r6, #1call Delaymov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, LoopretTestKey:mov dptr, #OUTBITmov a, #0movx dptr, a ; 输出线置为 0mov dptr, #INmovx a, dptr ; 读入键状态cpl aanl a, #0fh ; 高四位不用retKeyTable: ; 键码定义db

11、0dh, 0ch, 0bh, 0ahdb 0eh, 03h, 06h, 09hdb 0fh, 02h, 05h, 08hdb 00h, 01h, 04h, 07hGetKey:mov dptr, #OUTBITmov P2, dphmov r0, #Low(IN)mov r1, #00100000bmov r2, #4KLoop:mov a, r1 ; 找出键所在列cpl amovx dptr, acpl arr amov r1, a ; 下一列movx a, r0cpl aanl a, #0fhjnz Goon1 ; 该列有键入djnz r2, KLoopmov r2, #0ffh ; 没有键按下, 返回 0ffhsjmp ExitGoon1:mov r1, a ; 键值 = 列 X 4 + 行mov a, r2dec arl arl a

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。