单片机原理与应用技术(三)———动态数码管显示汇编语言

一、数码管基础知识

1.数码管结构

一般数码管通常由八段LED灯组成,又分成共阳数码管和共阴数码管(如下图所示)。共阴极数码管即为LED阴极连接在一起为公共阴极,共阳极数码光即为LED阳极连接在一起为公共阳极。以共阴极数码管为例,当某个LED阳极通入高电平时,LED灯点亮,相对应的段也就被显示出来,共阳极数码管恰好与之相反。

 

 2.数码管段码

显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码
03FHC0Hb7CH83H
106HF9Hc39HC6H
25BHA4Hd5EHA1H
34FHB0HE79H86H
466H99HF71H8EH
56DH92HP73H8CH
67DH82HU3EHC1H
707HF8HT31HCEH
87FH80Hy6EH91H
96FH90HH76H89H
A77H88HL38HC7H

3.数码管动态显示

       动态扫描显示方式的依据是利用人眼的滞留现象,只要在1秒内一个发光管亮24次以上,每次点亮时间维持2ms以上,则人眼感觉不到闪烁,宏观上仍可看到多位LED同时显示的效果。动态显示可以简化硬件、降低成本、减小功耗。具体实现时通常将所有位的段选线相应的并联在一起,由一个l/O口控制,形成段选线的多路复用。而各位的共阳极和共阴极分别由相应的I/o口控制,实现分时复用。

二、动态数码管显示实例———显示(0-999)

1.电路原理图

 二、执行代码

ORG 	0000H
MAIN:	MOV		DPTR,#LEDTAB
		MOV		R4,#0
QIAN:	
		MOV		R3,#0
BAI:		
		MOV		R2,#0
SHI:
		MOV		R1,#0	
G:	
		MOV		R0,#50	
START:			
		MOV		R7,#0DFH
		LCALL	OPEN

		SETB	P2.6		
		MOV		A,R1
		MOVC	A,@A+DPTR		
		MOV		P0,A
		LCALL	DELAY
		CLR		P2.6

		MOV		R7,#0EFH
		LCALL	OPEN
		SETB	P2.6		
		MOV		A,R2
		MOVC	A,@A+DPTR		
		MOV		P0,A
		LCALL	DELAY
		CLR		P2.6

		MOV		R7,#0FBH
		LCALL	OPEN
		SETB	P2.6	
		MOV		A,R3
		MOVC	A,@A+DPTR		
		MOV		P0,A
		LCALL	DELAY
		CLR		P2.6

		MOV		R7,#0F7H
		LCALL	OPEN
		SETB	P2.6		
		MOV		A,R4
		MOVC	A,@A+DPTR		
		MOV		P0,A
		LCALL	DELAY
		CLR		P2.6
		DJNZ	R0,START

	 	INC		R1
		CJNE	R1,#10,G

		INC		R2
		CJNE	R2,#10,SHI

		INC		R3
		CJNE	R3,#1O,BAI

		INC		R4
		CJNE	R4,#10,QIAN
		LCALL	MAIN

DELAY:	MOV 	R6,#1	
DELAY1:	MOV 	R5,#250
DELAY2:	DJNZ 	R5,DELAY2
		DJNZ	R6,DELAY1
		RET
OPEN:
		SETB 	P2.7	
		MOV		A,R7
		MOV		P0,A	
		CLR		P2.7		
		RET
		ORG 1000H		
LEDTAB:
DB	03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH
END

  • 30
    点赞
  • 120
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
目 录 第1篇 序 幕 单片机是什么?单片机有何用?如何系统学习单片机单片机系统设计的流程是怎样的,需要掌握哪些辅助软件?本篇将针对这些问题一一阐述,为读者掀开单片机完全学习与应用的华丽序幕。 第1章 单片机在哪里 1.1 ■寻找单片机 1.1.1 电磁炉与单片机 1.1.2 MP3播放机与单片机 1.1.3 更多单片机 1.2 ■学习单片机 1.2.1 掌握单片机基础知识 1.2.2 理解单片机系统 1.2.3 成为单片机系统设计师 1.3 ■单片机之家 1.3.1 Intel 8051单片机 1.3.2 PIC单片机 1.3.3 AVR单片机 1.3.4 其他单片机 1.4 ■应用体验——数字温度计 1.4.1 数字温度计工作原理 1.4.2 体验数字温度计 1.5 ■实例解读——装小球系统 1.5.1 需求分析 1.5.2 系统框架 第2章 如何成为单片机系统设计师 2.1 ■需要准备哪些 2.1.1 综合素质 2.1.2 软件工具 2.1.3 硬件工具之一:面包板 2.1.4 硬件工具之二:万用板和 印制电路板 2.1.5 焊接工具 2.1.6 焊接方法 2.2 ■单片机系统设计流程 2.2.1 需求分析 2.2.2 电路设计 2.2.3 程序设计 2.2.4 系统调试 2.3 ■应用体验——单片机控制下的 发光二极管 2.3.1 发光二极管工作原理 2.3.2 单片机的控制 2.3.3 体验单片机控制发光二极管 2.4 ■实例解读——反应时间测试仪 2.4.1 需求分析 2.4.2 电路设计 2.4.3 程序设计 第3章 单片机系统登场 3.1 ■单片机系统组成 3.1.1 单片机本身 3.1.2 系统的构成 3.2 ■单片机系统抽丝剥茧 3.2.1 AT89S51单片机的“外衣” 3.2.2 AT89S51单片机的管脚 3.2.3 常见外设 3.3 ■元器件插曲之一:变压器 3.3.1 变压器基础知识 3.3.2 电源变压器 3.4 ■元器件插曲之二:二极管与整流 3.4.1 二极管基础知识 3.4.2 整流 3.4.3 整流全桥 3.5 ■元器件插曲之:电容 3.5.1 电容基础知识 3.5.2 电容的种类 3.5.3 电源滤波 3.6 ■元器件插曲之四:端稳压与 单片机系统电源 3.6.1 端稳压基础知识 3.6.2 单片机系统电源方案一: 自制直流稳压电源 3.6.3 单片机系统电源方案二: 电源适配器 3.6.4 单片机系统电源方案: USB口供电 3.7 ■元器件插曲之五:晶振与振荡器 3.7.1 晶振基础知识 3.7.2 振荡器 3.8 ■诠释单片机最简系统 3.8.1 单片机最简系统 3.8.2 电源端(VCC、GND) 3.8.3 时钟信号端(XTAL1、 XTAL2) 3.8.4 复位端(RST) 3.8.5 外部程序存储器访问控制端 ( ) 3.8.6 从最简系统出发 3.9 ■元器件插曲之六:电阻 3.9.1 电阻基础知识 3.9.2 电阻的参数和种类 3.9.3 电阻的分压、限流、上拉作用 3.10 ■从单片机最简系统开始设计 3.10.1 发光二极管交替发光 3.10.2 程序设计 3.10.3 初见汇编语言 3.10.4 初识指令 3.10.5 立即数 3.11 ■应用体验——发光二极管的交替 发光 3.11.1 控制交替发光原理 3.11.2 体验交替发光 3.12 ■元器件插曲之七:开关 3.12.1 开关基础知识 3.12.2 常用开关 3.13 ■实例解读——与发光二极管的 交互 3.13.1 需求分析 3.13.2 电路设计 3.13.3 程序设计 3.13.4 延时子程序 第4章 单片机系统设计辅助软件 4.1 ■Proteus单片机系统仿真软件 4.1.1 Proteus软件界面 4.1.2 用Proteus仿真 Vision单片机程序开发4.2 ■ Vision软件界面4.2.1 4.2.2 新建和保存项目 4.2.3 向项目中添加文件 4.2.4 汇编程序,生成执行代码 4.2.5 生成下载到单片机的执行 代码HEX文件 Vision的调试及仿真功能4.3 ■ 4.3.1 调试界面 4.3.2 虚拟逻辑分析仪 4.4 ■应用体验——把程序下载到 单片机里 4.4.1 下载器与单片机 4.4.2 体验下载过程 4.5 ■实例解读——流水灯 4.5.1 需求分析 4.5.2 电路设计 4.5.3 软件设计 第2篇 揭 密 单片机的内部结构是怎样的?单片机开发经常会用到哪些电子技术和元器件知识?还有那困扰了很多人的单片机编程语言……本篇将生动地通过诸多实例带出单片机的基础知识,在遇到相关模拟电路、数字电路、元器件知识时会有及时的补充说明,带领读者一点点揭开单片机的神秘面纱。 第5章 单片机的触角——I/O口 5.1 ■何谓I/O口 5.1.1 I/O口的功能 5.1.2 I/O口与单片机的关系 5.1.3 I/O口的操作 5.2 ■元器件插曲之八:场效应管 5.2.1 JFET 5.2.2 MOSFET 5.3 ■元器件插曲之九:逻辑门 5.3.1 非门 5.3.2 或门 5.3.3 或非门 5.3.4 与门 5.3.5 与非门 5.3.6 异或门 5.3.7 缓冲器 5.4 ■元器件插曲之十:锁存器与触发器 5.4.1 门控D锁存器 5.4.2 边沿D触发器 5.5 ■I/O口结构探密 5.5.1 P1口 5.5.2 P3口 5.5.3 P0口 5.5.4 P2口 5.5.5 I/O口小结 5.6 ■应用体验——控制流水灯 5.6.1 功能与电路 5.6.2 体验控制流水灯 5.7 ■实例解读——晃晃灯 5.7.1 原理分析 5.7.2 需求分析 5.7.3 电路设计 5.7.4 软件设计 第6章 七段数码管显示 6.1 ■二进制与数据 6.1.1 二进制与数字 6.1.2 二进制与语音 6.1.3 二进制与图像 6.2 ■元器件插曲之十一:七段数码管 6.2.1 七段数码管原理 6.2.2 七段数码管显示数字 6.3 ■应用体验——计时器 6.3.1 功能与电路 6.3.2 体验计时器 6.4 ■元器件插曲之十二:蜂鸣器 6.4.1 蜂鸣器 6.4.2 蜂鸣器如何工作 6.5 ■元器件插曲之十极管及 极管开关 6.5.1 极管基础 6.5.2 极管的直流放大特性 6.5.3 极管的直流增益 6.5.4 极管的电流关系式 6.5.5 极管开关 6.6 ■实例解读——带声音提示的秒表 6.6.1 需求分析 6.6.2 电路设计 6.6.3 开关抖动的处理 6.6.4 计时中数字的增加 6.6.5 软件设计 第7章 解剖单片机 7.1 ■单片机的功耗 7.1.1 运行功耗 7.1.2 I/O口驱动功耗 7.1.3 空闲模式 7.1.4 待机模式 7.2 ■单片机内部结构 7.2.1 从I/O口到内部结构 7.2.2 数据在内部交换 7.2.3 算术逻辑单元(ALU) Vision中观察寄存器7.2.4 在 7.3 ■单片机的程序存储器 7.3.1 整体结构 7.3.2 程序下载到哪里 7.3.3 片内程序存储器 7.3.4 程序计数器PC 7.3.5 是片内还是片外程序存储器 Vision中观察程序存储器7.3.6 在 7.4 ■单片机的数据存储器 7.4.1 片内数据存储器 7.4.2 工作寄存器区(00H~1FH) 7.4.3 位寻址区(20H~2FH) 7.4.4 开放区(30H~7FH) Vision中观察数据存储器7.4.5 在 7.5 ■单片机的特殊功能寄存器 7.5.1 特殊功能寄存器分布图 7.5.2 特殊功能寄存器的功能 7.5.3 特殊功能寄存器的字节操作 7.5.4 特殊功能寄存器的位操作 Vision中观察特殊功能7.5.5 在 寄存器 7.6 ■应用体验——用取表方式实现 流水灯 7.6.1 取表法 7.6.2 取表法小结 7.6.3 体验流水灯 7.7 ■实例解读——直接驱动七段 数码管 7.7.1 需求分析 7.7.2 电路设计 7.7.3 软件设计 第8章 单片机与汇编指令 8.1 ■汇编语言真面目 8.1.1 汇编语言与高级语言 8.1.2 从汇编程序到执行代码 8.1.3 伪指令 8.2 ■指令的执行 8.2.1 振荡周期、机器周期、指令 周期 8.2.2 指令的执行 8.3 ■寻址方式 8.3.1 直接寻址 8.3.2 间接寻址 8.3.3 寄存器寻址 8.3.4 寄存器特征寻址 8.3.5 立即寻址 8.3.6 变址寻址 8.4 ■指令分类 8.4.1 指令概述 8.4.2 指令的长度 8.5 ■算术运算指令 8.5.1 加法指令——ADD A, <src-byte> 8.5.2 带进位的加法指令——ADDC A, <src-byte> 8.5.3 带借位的减法指令——SUBB A,<src-byte> 8.5.4 自增/自减指令——INC <byte> / DEC <byte> 8.5.5 乘法指令——MUL AB 8.5.6 除法指令——DIV AB 8.5.7 十进制调整指令——DA A 8.6 ■逻辑运算指令 8.6.1 与操作——ANL <dest-byte>,<src-byte> 8.6.2 或操作——ORL <dest-byte>,<src-byte> 8.6.3 异或操作——XRL <dest-byte>, <src-byte> 8.6.4 累加器A清0操作——CLR A 8.6.5 累加器A取反操作——CPL A 8.6.6 累加器A位移动操作——RL、 RLC、RR、RRC 8.6.7 累加器A高低位交换操作 ——SWAP A 8.7 ■数据装载指令 8.7.1 片内数据装载指令——MOV   <dest>, <src> 8.7.2 数据指针DPTR装载指令 ——MOV DPTR, #data16 8.7.3 堆栈指令——PUSH、POP 8.7.4 数据交换指令——XCH、 XCHD 8.7.5 片外数据装载指令——MOVX   <dest>, <src> 8.7.6 查表指令——MOVC  <dest>, <src> 8.8 ■布尔指令 8.8.1 清0、置1、取反操作——CLR、 SETB、CPL 8.8.2 布尔逻辑运算指令——ANL、 ORL 8.8.3 位数据装载指令——MOV <dest-bit>,<src-bit> 8.8.4 布尔跳转指令——JC、JNC、 JB、JNB、JBC 8.9 ■调用子程序指令 8.9.1 长调用指令——LCALL 8.9.2 绝对调用指令——ACALL 8.9.3 返回指令——RET、RETI 8.10 ■跳转与循环指令 8.10.1 无条件跳转指令——LJMP、 AJMP、SJMP、JMP 8.10.2 条件跳转指令——JZ、JNZ 8.10.3 比较跳转指令——CJNE <dest-byte>, <src-byte>, rel 8.10.4 循环指令——DJNZ <byte>,<rel-addr> 8.10.5 无操作指令——NOP 8.11 ■应用体验——七段数码管的串行 控制技术 8.11.1 串行与并行传输 8.11.2 串行控制七段数码管 8.11.3 程序设计 8.12 ■实例解读——指令应用(程序) 实例 8.12.1 数据求和 8.12.2 减法与二进制的二补数 8.12.3 异或操作指令XRL用于比较 寄存器数值 8.12.4 利用布尔指令产生矩形波 信号 8.12.5 布尔指令应用于控制
电子技术基础课程设计报告 定 时 闹 钟 2014年12月24日 摘要 本设计是一个定时闹钟,它仅使用单片的40引脚单片机完成闹钟的全部功能。设计目 的是为了学习和巩固单片机知识,使对已学过的基础知识能有更深入的理解,学会独立 思考、独立思考、独立工作,以及提高对所学应用基本理论分析和解决实际问题的能力 。 本文设计的定时闹钟采用80c51芯片,用汇编语言进行编程,时、分、秒用6位LED数 码管显示。在电路中通过四个按键S1、S2、S3和S4来进行定时和调时,定时时间到通过 喇叭发出报警声。 设计系统的主要功能 · 能显示 时时-分分-秒秒。 · 能够设置定时时间、 修改定时时间。 · 到定时时间能发出报警 1 系统总体方案及硬件设计 1.1 系统总体方案 1)由于要显示数字时间,所以需要6位数码管。 2)时间的定时用时钟电路,修改时间和定时用手动按键控制,报警声通过喇叭发出 。 3)80c51单片机加上外围器件(2个3位共阳数码管,8个限流电阻和一个蜂鸣器)和 应用程序(ISIS 7 Professional软件和KEIL编译软件),构成相应的应用系统。 1.2系统设计方框图 1.3硬件设计 1.3.1芯片:80c51 80c51芯片内不包含一个8位中央处理器cpu,4kb程序存储器ROM,128B随机存取存储器 ,RAM,4个8位并行I/O接口,1个全双工串行通信接口,2个16 位定时器、计数器级及21个特殊功能寄存器。 由先进CMOS 工艺制造并带有非易失性Flash 程序存储器 全部支持12 时钟和6 时钟操作 P89C51X2 和P89C52X2/54X2/58X2 分别包含128 字节和256 字节RAM 32 条I/O 口线 3 个16 位定时/计数器 6 输入4 优先级嵌套中断结构 1 个串行I/O 口 可用于多机通信 I/O 扩展或全双工UART以及片内振荡器和时钟电路。此外,由于器件采用了静态设计,可提 供很宽的操作频率范围,频率可降至0 。可实现两个由软件选择的节电模式,空闲模式和掉电模式,空闲模式冻结CPU但RAM定 时器,串口和中断系统仍然工作掉电模式保存RAM的内容 但是冻结振荡器 导致所有其它的片内功能停止工作。由于设计是静态的时钟可停止而不会丢失用户数据 运行可从时钟停止处恢复。 .1.3.2蜂鸣器 由P3.7口控制蜂鸣器,使其定时时间到能发出报警声。 1.3.3时钟电路 单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。本系统中单片机采用 内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。振 荡晶体可在1.2MHz~12MHz之间。电容值无严格要求,但电容取值对振荡频率输出的稳定 性、大小和振荡电路起振速度有少许影响,一般可在20pF~100pF之间取值。 单片机的时钟电路:如图所示 限流电阻:8个10k电阻 控制按键:本系统要进行时间的调整和定时,因此用4个手动按键对其进行控制。 1.3.4显示器模块的设计 利用2个七段数码管6个选位引脚连接C51单片机 P2.5 –P2.0接口,其他8个引脚分别通过限流电阻与C51单片机的P0.0 - P0.7和共阳极数码管连接。 数码管单片机中通常使用7段LED,LED是发光二极管显示器的缩。LED显示器由于结构简单 ,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳, 配置灵活,与单片机接口方便而得到广泛应用。LED显示器是由若干个发光二极管组成显 示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组 合的二极管导通,就能显示出各种字符。 如图所示 2软件设计 2.1划分模块 根据设计要求,定时闹钟程序可分为以下几个模块: 1)显示时间的设置; 2)闹钟时间的设置: 4)定时时间的响应。 3.2程序流程图 程序流程图 2.3汇编程序 ORG 0000H LJMP START ORG 000BH LJMP TIME ;;;;;;;;初始化;;;;;;;; START: MOV SP, #50H MOV 20H,#00H ;定义秒 MOV 21H,#00H ;定义分 MOV 22H,#00H ;定义时 MOV 23H,#01H ;定义闹钟分钟 MOV 24H,#01H ;定义闹钟小时 MOV 25H,#00H MOV 26H,#01H MOV 30H,#00H ;BCD SECOND MOV 31H,#00H MOV 32H,#00H ;BCD MINUTE MOV 33H,#00H MOV 34H,#00H ;BCD HOUR MOV 35H,#00H MOV 36H,#01H MOV 37H,#00H MOV 38H,#01H MOV 39H,#00H MOV 50H,
目录 1. 设计思想和设计说明----------------------- 2. 硬件原理框图-----------------------------3 3. 硬件原理图与其软件配合介绍---------------3 4. 程序存储器和数据存储器的单元分配---------6 5. 程序流程图-------------------------------7 6. 源程序清单-------------------------------9 7. 芯片资料---------------------------------12 8. 仿真结果(打印仿真图)-------------------17 9. 参考文献---------------------------------19 一 设计思想和设计说明 设计思想: 本次课程设计采用一个可扩展芯片AT89C51,四个7段LED数码管显示器,经过电阻 连接而组成,并具有开关复位等功能。首先在keil软件中输入计数器程序,在生成以he x为后缀名的文件,拷贝添加到芯片AT89C51中以实现其功能。其中芯片的P0.0到P0.7和 P1.0到P1.7分别和四个7段LED数码管显示器相连接,作为0000-9999计数的十位数显示 ,在练习使用译码器驱动7段LED数码管显示器的同时,芯片AT89C51的由12MHZ的晶振提 供脉冲支持芯片工作。 设计说明: 在汇编程序中可将十六进制转换变为十进制输出显示,即使得计数器的初始状态为 0000,当第1个计数脉冲来到后,其状态为0001,以后来一个脉冲计一次数,依次可计数 到9999后清零,计数器是采用数字电路实现的对个,十,百,千位的数字显示技术装置 ,能广泛应用于实验室,公共场合,以及实际生活中的一些应用,是人们日常生活中不 可少的必需品。由于数字集成电路以及555振荡器的广泛应用,使得计数器的精度大大的 提高。给人们的生活带来了极大的方便。计数器是一个将"千百十个位"显示于人的视觉 器官的技术装置,它的计数周期为9999,显示的满刻度为9999。 二 硬件原理框图 硬件原理图与其软件配合介绍 此硬件原理图由AT89C51、7段LED数码管显示器、电阻、电容等相互连接而成,是 本次单片机课程设计脉冲计数的基本硬件原理框图,利用89C51芯片的P0和P1口分别与四 个7段数码显示管连接实现数码显示功能。 在原理图中将P3.2和P3.4相连,即实现外部中断与计数的连接,当外部来一个脉冲即实 现一次加一计数,因为中断程序完成后转到跳转程序,送显示7段LED数码管显示器显示 。 当按下暂停开关后,只有再按启动开关才可以实现脉冲计数,可以通过硬件实现复位, 即接89C51的引脚上的RST实现手动复位。 四个7段LED数码管单片机的P0和P1相连接,从而实现了数码显示功能。其软件程 序为 CLR C MOV A,TL0 ADD A,#00H DA A MOV TL0,A MOV P0,TL0 将TL0加一后的值调整为BCD码并把数据送到P0口显示,而下面的程序即其高位TH0中的原 理相同,也是变为BCD码,然后送往P1口显示。 在硬件原理图中软件启动程序为 SEVER2:MOV TL0,#00H; MOV TH0,#00H; LCALL ZHUAN ;调用程序 RETI ;中断返回 四 程序存储器和数据存储器的单元分配 存储器是单片机的一个重要组成部分,每个存储单元对应一个地址,每个个单元共有1个 地址,用两位16进制数表示,即存储器的地址(00H~FFH)。存储器中每个存储单元可 存放一个八位二进制信息,通常用两位16进制数来表示,这就是存储器的内容。 程序存储器内外存储器的地址最大可从0000H到FFFFH。当EA为高电平时,用户在0000H至 0FFFH范围内使用内部ROM,大于0FFFH后,单片机CPU自动访问外部程序存储器。 程序存储器共分为5个单元: 1、0000H 0029H 开始入口及跳转指令单元 2、0030H 0099H 主程序单元 3、0100H 0149H中断1服务程序单元 4、0150H 0199H中断2服务程序单元 5、0200H END 调用显示子程序单元 数据存储器的单元:89C51单片机的片外RAM跟ROM地址是独立编址的,地址范围都有64K 。 在硬件上,通过不同的片选信号来区别。因为程序存储器只读的,所以只需要一根选通 信号——PSEN(程序选择使能)。而数据存储器是可读的,所以需要两根选择信号:RD (读)跟WR()。 在软件上,通过使用不同的指令来访问ROM跟RAM区。访问ROM时使用MOVC指令,而访问R AM时,使用MOVX指令。 特殊功能寄存器TMOD,其在程序中设置为T0工作于模式1,TMOD
目录 一、设计总绪 2 1.1设计思想 2 1.2设计说明 2 1.3关键词:矩阵键盘,单片机数码管显示汇编语言 2 1.4设计目的 2 1.5设计要求 2 二、设计方案 3 2.1硬件电路设计方案 3 2.1.1基本结构 3 2.1.2系统框架图 3 2.1.3工作流程图 4 2.1.4单片机主控制模块 5 2.2系统功能描述 6 、各模块功能介绍 7 3.1键盘输入模块 7 3.1.1键盘分布图 7 3.1.2工作原理 7 3.2运算控制模块 8 3.3显示模块 8 3.4振荡电路模块 9 四、仿真电路 10 仿真运行结果 10 五、调试过程总结 12 附录: 13 参考文献: 13 源程序代码 13 一、设计总绪 1.1设计思想 近年来随着科技的飞速发展,单片机应用正在不断深入,同时带动传统控制检测技术 日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件 来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加 以完善。 计算机在人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后必 将出现功能更加强大的计算机,基于这样的理念,本次设计是用AT89c51单片机、LCD显 示器、控制按键为元件来设计的计算器。利用此设计熟悉单片机微控制器及汇编语言编 程,对其片资源及各个I/O端口的功能和基本用途的了解。掌握应用程序开发环境,常用 的LCD显示器的使用方法和一般键盘的使用方法 此设计是基于单片机技术的简易计算器的方案,本次设计所提出的一种基于单片机技术 的简易计算器的方案,采用具有数据处理能力的中央处理器CPU,随机存储器ROM,多种 I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算 机系统——单片机,配以汇编语言的执行程序,能更好的解决计算机计算的问题,随 着数字生活的到来,单片机在生活中越来越重要,它能将大量的逻辑功能集成与一个集 成电路中,使用起来十分方便。 1.2设计说明 本次课程设计讨论了单片机技术的计算器构思,设计方案,工作原理,主要系统包括 单片机80C51,排阻RESPACK—8,开关,六位数码管显示器等,主要组成部分包括:键盘 输入模块,运算模块,控制模块,显示模块。通过键盘输入数值,单片机进行运算后在 数码管显示出结果。 1.3关键词:矩阵键盘,单片机数码管显示汇编语言 1.4设计目的 通过本次课程设计,运用《单片机微型计算机原理应用》所学到的知识及查询相关资料 ,完成简易计算器的设计,进一步提高单片机的系统设计和开发能力,达到理论知识与 实践更好的结合,提高综合运用所学知识和设计能力的目的。 1.5设计要求 要求设计一个单片机应用系统,利用keil和proteus软件完成系统软硬件的设计及模拟调 试。实现五位数(可为带小数点)的加减乘除运算,通过按键输入十进制数据。利用六 位数码管显示运算结果。并实现复位操作。由于要设计的是简单的计算器,可以进行四 则运算,为了得到教好的显示效果,采用LCD显示数据和结果。、另外键盘包括数字键( 0-9)、符号键(+、- 、*、/)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算机键盘来 ,当键入+、- 、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值后将显示键入 的数值,按等号就会在LCD上输出运算结果,执行程序:开机显示零,等待键入数值,当 键入数字,通过LCD显示出 二、设计方案 2.1硬件电路设计方案 2.1.1基本结构 计算器一般由运算器、控制器、键盘、显示器、电源和一些可选外围设备及电子配件通 过人工或机器设备组成。键盘是计算器的输入部件,一般采用接触式或传感式。显示器 是计算器的输出部件,有发光二极管显示器或液晶显示器等。除显示计算结果外,还常 有溢出指示、错误指示等。计算器电源采用交流转换器或电池。计算器都采用CMOS工艺 制作的大规模集成电路。 本次课程设计中我是采用了以MCS—51系列的单片机AT89C51单片机为核心构成的简易计算 器。该系统通过单片机控制,实现对4*4键盘进行实时扫描的按键检测,并把检测数据存 储下来。整个计算器系统的工作过程为:首先存储单元初始化,显示初始值和键盘扫描 ,判断按键位置,查表得出按键值,单片机则对数据进行储存与相应处理转换,之后送 入数码管动态显示。整个系统可分为个主要功能模块:功能模块一,实时键盘扫描; 功能模块二,数据转换成显示器显示;功能模块,计算控制模块。功能模块四:显示 模块。 2.1.2系统框架图 图2.1 系统总体框架图 2.1.3工作流程图 No Yes 图2.2 系统工作流程图 2.1.4单片机主控制模块 AT89C51是一种带4K字节闪烁可编程可擦除只
一:课程设计题目 秒表/时钟计时器 二:课程设计任务与要求: 利用89C51单片机设计秒表/时钟计时器,通过LED显示器显示秒十位和个位,在设计 过程中用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计 数达到60时,就自动返回到0,重新开始秒计数。 :设计过程: 1.设计原理:此次课程设计题目是秒表/时钟计时器,由课程设计的要求和任务,我采用 的C语言编程,设计秒表要求一秒定时,采用了定时器和FOR循环来定时,其中一个软件 一个硬件,会在方案论证中分析在1秒时采用的是硬件定时,即用单片机内部的定时器T 0。先将时钟初始化,赋入初值50ms定时,循环20次来进行1秒定时。然后由定义的变量 second来进行加一运算,然后将其值通过P1,P2口在数码管上进行显示。其中数码管的 显示时,我在程序中首先定义了一个关于数码管显示的字形码定义,以便在显示时调用 即可。 (1)方案论证: 方案1:在方案1中,我们所选用的是软件定时,即用for循环来定时1秒进行显示的变化 。 方案2:在方案2中,采用的是硬件定时,即用单片机内部的定时器T0。先将时钟初始化 ,赋入初值50ms定时,循环20次来进行1秒定时。 方案比较:我们从两方面进行两种方案的比较,第一,由于此次课程设计要求是秒表, 则在定时时要求比较精确,所以采用硬件的定时器定时时比较准确的。第二,由于秒表 的定时程序是很小的,在利用软件定时占用的CPU并不是很多,不能显现出来,但真正大 程序时会很占用资源的,所以在用定时中断过程中是非常节省资源的。综合上述两种比 较,我们选用了第二种方案。 (2)创新点: a.在课程要求的基础上,我们做成的电路板上,用复位键来控制秒表计时的重新开始, 即清零。 b.在以上设计的基础上,我们又重新设计了一个程序,基本原理没有变,只是将秒表在 到达59清零的瞬间向分的位数上进1,程序将会在附录3中给出。 2.硬件系统框图与说明: 首先,连接的是单片机51的最小系统,其中包括时钟电路,复位电路,在此中包 括的元器件在附录3中。我们所选用的数码管是共阴极的,置1时导通,所以将单片机 的P1.0~P1.7连接数码管的a~dp,P2口同理。然后在数码管秒表个十位的显示则由软件 程序来控制。 3.软件主要模块流程图与说明: 在真正应用时,我们的一秒定时是用定时中断的,但单片机的T0最长也不能1秒定时 ,所以我们采用50ms定时循环20次,用count来控制。当秒的时间达到59时,用软件来清 零时循环从00重新开始。 四:课程设计总结: 1:本次的课程设计,使关于51系列单片机的,正是我们刚刚学到的51单片机,在平时课 程的学习中,我们仅限于理论知识的讲解,即使知识是很扎实的,实际应用并不是这样 的。开始时我也觉得自己的理论知识已经够了,但当我拿到课题时,在脑海里想的是非 常好的,但真正编成和控制时,理论和实际结合不到一起,甚至于51芯片的使用我都感 觉很迷茫,还是经过搜集大量资料才将理论与实际结合到一起了。本次课程设计我主要 负责编程,这次不仅锻炼了我C语言的知识,更加我们正在学习的51的定时与中断结合在 一起,进行了实际的操作,让我的知识掌握得更加牢固。本次的实际经验之后,让我对 单片机定时赋初值有了更新的认识,对程序的循环顺序、结构类型都有了非常深刻的认 识,对真正硬件的连接也有了认识,不再将自己的知识局限于自己狭隘的空间中。 2:通过这次课程设计——秒表/时钟计时器,使我又重新开始学习C语言,因为C语言是大 一学的,至从学完就再也没用过,所以开始很陌生,我又找了有关资料来了解,才有了 一点眉目。刚开始以为可以用汇编很容易就出来,因为我们正在学习汇编语言,以为 学的很明白了,但是用汇编时才发现原来都不怎么熟练,编了一会程序发现只有一种感 觉——举步维艰啊!还是放弃汇编选择C语言吧!对于单片机,我们课本学习的是80C51, 但是这次做课程设计用的是89C51,这样不仅使我们掌握了80C51,而且对89C51也有了一 定的了解了,在课堂上学习的都理论的,跟实际永远有一定的差距,不实践就不会发现 问题。通过这次课程设计使我把课堂上学习的东西都用到了实践中,例如:定时/计数器 的应用与中断。学习的时候不怎么理解,但是在实践中应用了以后就自然了解了。这次 课程设计使我受益匪浅,而且都是实际的东西。 3:这次课程设计,我们做的是秒表/时钟计时器,最终我们选择的是用C语言编程,但原 来学的也只是能看懂别人好的程序而已,通过这次课程设计,更加熟练了C语言的程序 设计思路。这次课程设计我主要负责焊接电路板,焊接过程中最困难的地方就是数码管 的焊接,因为数码管的管脚和89C51的管脚是不对应的,而且要避免接线的交叉,所以最 后确定了布线最合理的方案,如硬
目录 单片机课程设计计算器设计全文共22页,当前为第1页。 单片机课程设计计算器设计全文共22页,当前为第1页。 一、设计总绪 设计思想 近年来随着科技的飞速发展,单片机应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。? 计算机在人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算机,基于这样的理念,本次设计是用AT89c51单片机、LCD显示器、控制按键为元件来设计的计算器。利用此设计熟悉单片机微控制器及汇编语言编程,对其片资源及各个I/O端口的功能和基本用途的了解。掌握应用程序开发环境,常用的LCD显示器的使用方法和一般键盘的使用方法 此设计是基于单片机技术的简易计算器的方案,本次设计所提出的一种基于单片机技术的简易计算器的方案,采用具有数据处理能力的中央处理器CPU,随机存储器ROM,多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统——单片机,配以汇编语言的执行程序,能更好的解决计算机计算的问题,随着数字生活的到来,单片机在生活中越来越重要,它能将大量的逻辑功能集成与一个集成电路中,使用起来十分方便。 设计说明 单片机课程设计计算器设计全文共22页,当前为第2页。本次课程设计讨论了单片机技术的计算器构思,设计方案,工作原理,主要系统包括单片机80C51,排阻RESPACK—8,开关,六位数码管显示器等,主要组成部分包括:键盘输入模块,运算模块,控制模块,显示模块。通过键盘输入数值,单片机进行运算后在数码管显示出结果。 单片机课程设计计算器设计全文共22页,当前为第2页。 关键词:矩阵键盘,单片机数码管显示汇编语言 设计目的 通过本次课程设计,运用《单片机微型计算机原理应用》所学到的知识及查询相关资料,完成简易计算器的设计,进一步提高单片机的系统设计和开发能力,达到理论知识与实践更好的结合,提高综合运用所学知识和设计能力的目的。 设计要求 要求设计一个单片机应用系统,利用keil和proteus软件完成系统软硬件的设计及模拟调试。实现五位数(可为带小数点)的加减乘除运算,通过按键输入十进制数据。利用六位数码管显示运算结果。并实现复位操作。由于要设计的是简单的计算器,可以进行四则运算,为了得到教好的显示效果,采用LCD显示数据和结果。、另外键盘包括数字键(0-9)、符号键(+、-、*、/)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算机键盘来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果,执行程序:开机显示零,等待键入数值,当键入数字,通过LCD显示出 单片机课程设计计算器设计全文共22页,当前为第3页。 单片机课程设计计算器设计全文共22页,当前为第3页。 二、设计方案 硬件电路设计方案 基本结构 计算器一般由运算器、控制器、键盘、显示器、电源和一些可选外围设备及电子配件通过人工或机器设备组成。键盘是计算器的输入部件,一般采用接触式或传感式。显示器是计算器的输出部件,有发光二极管显示器或液晶显示器等。除显示计算结果外,还常有溢出指示、错误指示等。计算器电源采用交流转换器或电池。计算器都采用CMOS工艺制作的大规模集成电路。 本次课程设计中我是采用了以MCS—51系列的单片机AT89C51单片机为核心构成的简易计算器。该系统通过单片机控制,实现对4*4键盘进行实时扫描的按键检测,并把检测数据存储下来。整个计算器系统的工作过程为:首先存储单元初始化,显示初始值和键盘扫描,判断按键位置,查表得出按键值,单片机则对数据进行储存与相应处理转换,之后送入数码管动态显示。整个系统可分为个主要功能模块:功能模块一,实时键盘扫描;功能模块二,数据转换成显示器显示;功能模块,计算控制模块。功能模块四:显示模块。 系统框架图 控制 控制 运算 键盘 显示 运算 键盘 显示 单片机课程设计计算器设计全文共22页,当前为第4页。 图 系统总体框架图 单片机课程设计计算器设计全文共22页,当前为第4页。 工作流程图 开始 开始 初始化 初始化 键盘列扫描 键盘列扫描 有键按下 复位键 有键按下 复位键 数字键 数字键 记忆对应键值 运算功能键 记忆对应键值 运算功能键 其他键数码管显示 是" ="? No 其他键 数码管显示 是" ="? 记忆其运算符 数码管显示 计算最后结果 Yes 记忆其运算符 数码管显示 计算最后结果 单片机课程设计计算器设计全文共22页,当前为第5页。 图 系统工作流程图 单

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值