数码管显示简易计算器说明书资料.docVIP

  • 21
  • 0
  • 约7.2千字
  • 约 16页
  • 2016-05-08 发布于湖北
  • 举报
目录 一、原理图设计说明 1 1.1数码管硬件电路设计 1 1.2矩阵键盘电路设计: 2 二、程序设计说明 3 2.1键盘扫描程序设计 3 2.2算术运算程序设计 4 2.3显示程序设计 5 三、工作原理图及程序流程图 6 四、程序清单 9 五、参考文献 15 一、原理图设计说明 1.1数码管硬件电路设计 数码管数据显示的硬件电路由单片机、4 位共阳极数码管、位驱动电路、限流电阻等组成。实验板中用杜邦线将P7 与单片机IO 口相连(这里以P0 口为例)。用跳线将P8 与单片机P2 低四位相连,P0 口送出数码管段选码,P2 送出位选码。 图1-1 数码管硬件电路原理图 1.2矩阵键盘电路设计: 4*4 矩阵键盘行输入接单片机P1.0-P1.3,列输入接单片机P1.4-P1.7,通过扫描方式检测是否有键按下,并确定键值,使用矩阵键盘时注意给P10 矩阵键盘选择端使能。对键盘进行编号,S3-S18,按下相应按键,在数码管上显示相应键值(0-F) 。例如按下S10 键,显示A,按下S0 键,显示0。 图1-2 矩阵键盘电路原理图 二、程序设计说明 2.1键盘扫描程序设计 键盘扫描程序的过程为:开始时,先判断是否有键闭合,无键闭合时,返回继续判断,有键闭合时,先去抖动,然后确定是否有键按下,若无键按下,则返回继续判断是否有键闭合,若有键按下,则判断键号,然后释放,若释放按键完毕,则返回,若没有释放按键,则返回继续释放。其流程图如图2-1所示。 图2-1 键盘扫描程序流程图 2.2算术运算程序设计 算术运算程序的过程为:先判断输入的运算符是+、-、*、/ 中的哪一个,若是+或-,则要判断运算结果是否溢出,溢出则显示错误信息,没溢出就显示运算结果,若是/,则要先判断除数是否为零,为零就显示错误信息,不为零则显示运算结果,若是-,则直接显示运算结果。其流程图如图2.2所示。 图2-2 算术运算程序设计流程图 2.3显示程序设计 先是程序的过程为:显示开始时,先进行LED的初始化,判断是否显示,若不显示,则返回,若显示,则进行相应功能的设置,然后送地址和数据,再判断是否显示完,显示完则返回,没有显示完则继续送地址。 图2-3 显示程序流程图 三、工作原理图及程序流程图 图3-1仿真工作原理电路图 图3-2系统组成及总体框图 图3-3-1 PCB原理图 图3-3-2 PCB原理图 图3-3-3 3D效果图 图3-4 程序流程图 四、程序清单 mian.c: //简单的数码管显示按键编码0到9 #includereg52.h typedef unsigned char uint8; uint8 num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x00,0x40}; //共阴极数码管 uint8 s[4]={0,10,10,10}; uint8 T0RH=0; //重载初值 uint8 T0RL=0; //重载初值 uint8 step=0; //步骤标号 uint8 oprt=0; //运算符标志 long num1=0; //运算数1 long num2=0; //运算数2 long num3=0; //结果 void Init_times(uint8 ms); extern void KeyDriver(); //定义键盘驱动 extern void KeyScan(); //定义键盘扫描 void main() { EA=1; // 中断总允许位 Init_times(1); //配置T0定时1ms while(1) {

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档