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

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
长沙民政职业技术学院 长沙民政职业技术学院 课 程 设 计 报 告 课 题 名 称: 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();

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档