实验:模拟计算器.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验:模拟计算器.ppt

实验:模拟简单计算器 小组成员: 潘贝 孙健 薄跃耀 题目描述 用AW60实验板模拟计算器, 通过键盘按键输入完成加减运算 ,运算算式及结果在液晶显示器上显示。 注:这里的加减运算是单个数字的相加。 实验器材 AW60实验板 S08/S12/ColdFire写入器 液晶显示器 导线若干 实验的思路 第一步实现的是键盘按键在液晶上显示(这是基本的工作)。 第二步开始判断输入的数或运算符是否符合要求即单个数的加减运算,如不符合会显示报错即液晶上会显示Sorry:Input Error。要求重新输入。(这是关键的工作)。 第三步出于为了使实验更完美一点,增加了蜂鸣器模块和小灯模块。 主要的实验步骤 1.将写入器分别与主机箱和AW60实验板相连,将导线连接到指定的端口和引脚,液晶插入到指定的插槽。 2.初始化程序和写中断服务程序并修改中断向量。 3.重新定义键盘 ,小灯的引脚,和蜂鸣器。 4.进行运算便开始判断,观察实验现象。 判断输入的运算式是否正确并显示出来 因为是单个数字的相加,举个例子如1+2=3或者是1-2=-1;若输入的第一个数是0~5之间的数,这将第一个数存入j[0],调用LCDShow1(j)函数,将第一个数显示出来,若不是报错。输入第二个数若为+或-,将第二个数存入j[1],调用LCDShow1(j)函数显示,否则报错。依次列推当输入第四步“=”(即j[3]=“=“)的时候要开始进一步的判断若结果为负数,则先将-号赋值给j[4],然后将减数与被减数调换位置得出的值赋值给就j[5],否则直接将计算的值赋值给j[4]。结果值显示。 小灯模块 //LEDinit:小灯初始化 void LEDInit(void) { Light_D = 0xff; //令小灯引脚为输出 (F1接口) Light_P = 0xff; //初始时,小灯暗 } //总循环 while (1) { INT8U i; for(i=0;i8;i++){ Light_P = ~(1i); Delay(60000); Light_P =0xFF; Delay(60000); } } 小灯实现的功能 运行时使小灯一直处于流水灯亮灭 蜂鸣器模块 //BuzzerInit:蜂鸣器(Buzzer)初始化 void BuzzerInit(void) { Buzzer_D = 0x01; //令C口第1个引脚为输出 (F2接口) Buzzer_P = 0x00; //初始蜂鸣器不发声 } void Buzzer_N_F(INT8U flag) { if (flag == N) { Buzzer_P |= 1Buzzer_Pin; //蜂鸣器发声(ON) } else if (flag == F) { Buzzer_P = ~(1Buzzer_Pin); //蜂鸣器不发(OFF) } } 蜂鸣器实现的功能 按键按一下,蜂鸣器响一下 液晶模块 const INT8U* g_DispalyInit1 = MC9S08AW60 ; const INT8U* g_DispalyInit2 = “Welcome; //7. LCD显示初始化 for(m=0;m2;m++){ LCDShow((INT8U *)g_DispalyInit1); //调用函数在 LCD1602上显示g_DispalyInit1数据 for(n=0;n10;n++) Delay(60000); LCDShow((INT8U *)g_DispalyInit2); //调用函数在LCD1602上显示g_DispalyInit2数据 for(n=0;n10;n++) Delay(60000); } 液晶实现的功能 运算时在液晶上显示是相应数字或字符 运算与判断 //判断程序 void display (INT8U data) { const INT8U* g_DispalyError = Sorry: Input Error -_-#; INT8U j[16],NUM[4]; switch(p+0) { case 0:if(data=0 data=5){ j[0]=data; j[1]=\0; LCDShow1(j); }

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档