ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:72KB ,
资源ID:13165505      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13165505.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机C语言简易计算器Word格式文档下载.doc)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机C语言简易计算器Word格式文档下载.doc

1、 录入5.硬件设计(1)电路原理图:(2)元件清单:元件名称型号数量用途单片机1控制核心电阻10k4按键电路数码管8位共阳极显示电路按键166.软件设计(1)算法流程图:开始主函数结束调用运算程序录入数值判断符号中断结束定时器赋初值送显示数据关中断中断开始显示函数 按键函数运算查值赋值给变量列扫描行扫描(2)程序清单:#include/*按键程序*/char keyscan();/*显示程序*/ void display();char dsp9=0,0,12,12,12,12,12,12,12; /初始化显示数组/*计算程序*/ void calculate(char k,char c18,c

2、har c28);/*片选*/unsigned char code Select=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/*码选*/ unsigned char code LED_CODES=0xC0,0xF9,0xA4,0xB0,0x99, /0-40x92,0x82,0xF8,0x80,0x90, /5-90x86,0xAF,0xFF,0x7F,0xBF,; /E,r,空格,.,-/*main函数*/void main(void)char i,j,k,c;char a8,b8;/*定时1ms*/TMOD=0;/TL0=-(1000/256);/TH

3、0=-(1000%256);EA = 1; /总中断开关ET0 = 1; /开中断TR0 = 1; /启用计数器0LR:dofor(i=1;i9;i+) /数字录入循环dsp0=keyscan();if(c=2&dsp010) /此段代码验证是否有旧的计算结果在显示,且不再参与新计算dsp1=dsp0;for(j=2;j9) /旧的计算结果将参与新的计算,作为第一个数if(dsp0=0&dsp1=0&dsp2=12) /个位为0且十位为空时按下0,按键无效,跳回LR等待正确输入/*goto跳转标志*/ goto LR;else if(dsp09) break; /有操作符按下,跳出数字录入循环

4、 elsefor(j=i;j0;j-)dspj=dspj-1; /移位,以正确显示数字 if(i=9) /判断是否输入8个有效数字,是则等待操作符,否则直接判断操作符do /使用do while无论是否第一个数都取一次操作符dsp0=keyscan(); /获取操作符号if(dsp0=14|dsp010) /按下C或者第9位数字清零dsp1=0;for(i=2;i+)dspi=12;c=0;while(dsp0=15)&(c=0); /等号被按下,等待新的操作符(仅对第一个数字有效)else if(dsp0=14) /按下C清零dsp1=0;for(i=2;dspi=12;c=0;while(

5、dsp0=15&c=0) /未输满8位且是第一个数字即按下等号,等待非等号操作符if(dsp0=14|dsp010) /按下C或者数字都进行清零,重新输入adsp0=14; /将dsp0置为14,防止因数字清零未能拦截dsp1=0;for(i=2;dspi=12;while(dsp0=14); /数字输入未完成即按下C,重新等待输入doif(c=0) /没有数字输入 k=dsp0; /存计算符(循环内已排除C、数字)for(i=0;8;i+) /将第一个数存入a8ai=dspi+1; /清零c=1; /已输入a/*goto跳转标志*/goto LR;else if(c=1)i+) /将第二个数存入b8bi=dspi+1;c=2; /已输入bif(dsp0!=15) /b输完后操作符不是等号calculate(k,a,b);for(i=0;i+) /将计算结果存入a8,a值更新ai=dspi+1;k=dsp0; /更新计算符c=1;while(dsp0=15)&(c=0;i-) /从高位到低位扫描显示P2=0;P1=LED_CODESdsp8-i;P2=Selecti;for(h=0;hh+);TL0=-(1000/256);TH0=-(1000%256);ET0=1;voi

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1