文档详情

单片机计算器程序设计报告.doc

发布:2019-01-13约7.32千字共13页下载文档
文本预览下载声明
长沙民政职业技术学院 长沙民政职业技术学院 课 程 设 计 报 告 课 题 名 称: 51单片机的计算器设计 课 程: 单片机技术及应用 专 业: 应用电子技术 学生姓名 周扬 孔计 张娇 陈实 学 号 17 15 14 19 班 级 0733 0733 0733 0733 指导老师 方跃春老师 应用电子技术教研室 2009 一、课题任务及要求 要求:1、掌握数码管移位动态扫描显示的编程方法 2、掌握矩阵扫描的编程方法 3、掌握数据在内部运算的编程方法 任务:1、实现最大6位正整数加、减、乘、除 2、具备清零、等于功能 3、16个按键功能依次为: 数字0、数字1、数字2、数字3、数字4、数字5、数字6、数字7、数字8、数字9、清零、等于、加、减、乘、除 二、硬 件 设 计 原理图 原理分析 该设计通过89C51芯片控制6个一位数码管显示,并实时检测按键按下情况来实现计算器功能,16个按键有10个为数字按键 其他6个分别为加、减、乘、除、复位、等于 电路接上电源后 数码管显示个位显示数字0 ,芯片对按键进行实时扫描,通过矩阵键盘进行计算,特别注意的是,当结果为负数时,数码管显现EORR。 (一)、硬件部分 1、数码管为一位共阴数码管,共6个;故在段码输出口外加NPN型三极管作驱动 2、51芯片P1口接键盘端(矩阵按键)、P3口接段码、P2口的P2_0—P2_5接位码 3、按键为四乘四矩阵,共16个键 (二)、软件部分 1、数码管移位显示的实现是通过标志位wei2的数值变化控制dispiay函数显示位来实现的 2、程序的重要算法是通过类型为unsigned int 的数temp和数组str[]实现整体加减乘除、各位显示的 只要弄懂这一算法,此程序就可轻易掌握 PCB图 略。 元件清单及造价预算 按键 20个 单价 0.2 元 总计 4元 万用板 2块 单价 4 元 总计 8元 一位共阴数码管 6个 单价 2 元 总计 2元 三极管 7个 单价 0.2 元 总计 1.4元 1K电阻 20个 单价 0.01 元 总计 2毛 排插及排线 5对 单价 1元 总计 5元 电容 3个 单价 0.2元 总计 6毛 晶振 1个 单价 1元 总计 1元 8051芯片 1 个 单价 6元 总计 6元 费用总计 26.2元 5.实物照片 三、程 序 设 计 头程序 str[6]=str[5]=str[4]=str[3]=str[2]=str[1]=10; str1[6]=str1[5]=str1[4]=str1[3]=str1[2]=str#includereg51.h //51单片机基本定义头文件 #includeintrins.h //循环位移头文件 #define uchar unsigned char //宏定义 #define uint unsigned int sbit P1_4=P1^4; //IO端口定义 (矩阵扫描后4位端口) sbit P1_5=P1^5; sbit P1_6=P1^6; sbit P1_7=P1^7; uchar i,num,s; //全局变量定义 uchar wei,wei2,ss,ss1,ss2,str1[]={0,0,0,0,0,0,0}; long temp,temp1,str[]={10,10,10,10,10,10,10}; uchar code dutable[]={ //段位编码 0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; uchar code wetable[]={ 0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; void init(); //函数声明 void panduan(); void display(); void delay(uint z); void shaomiao();
显示全部
相似文档