单片机设计简易计算器

上传人:ji****72 文档编号:37632610 上传时间:2018-04-20 格式:DOC 页数:22 大小:258KB
返回 下载 相关 举报
单片机设计简易计算器_第1页
第1页 / 共22页
单片机设计简易计算器_第2页
第2页 / 共22页
单片机设计简易计算器_第3页
第3页 / 共22页
单片机设计简易计算器_第4页
第4页 / 共22页
单片机设计简易计算器_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《单片机设计简易计算器》由会员分享,可在线阅读,更多相关《单片机设计简易计算器(22页珍藏版)》请在金锄头文库上搜索。

1、单片机设计简易计算器 2009-06-10 14:18题目:根据所学单片机知识,设计一简易计算器,要求至少用到 键盘,LED 数码管,LCD1602液晶,ADC0809,DA0832,串口,等中的两种,每个项目中至少包含 定时器,总线,中断中的两种。设计方案:应用矩阵键盘,LCD1602,单片机,74HC21 与门,总线,中断设计简易计算器。实验内容:1、P0 口接上拉电阻做液晶输出端口,连接图如实验原理图所示。2、键盘接在 P1 口上,如实验原理图所示,并用 74HC21 与门实现中断请求。3、程序设计,见文后。实验原理图(如下):实验原理图(如下):键盘接口图:74HC21 与门接线图:上

2、拉电阻:LCD1602 液晶:实验效果:程序设计:#include #include#define uint unsigned int #define uchar unsigned charsbit lcden=P23; /定义引脚 E 使能sbit rs=P24;sbit rw=P20;sbit busy=P07;sbit p33=P33;char i,j,temp,num,num_1;long a,b,c; /a,第一个数 b,第二个数 c,得数uchar flag,fuhao;/flag 表示是否有符号键按下,fuhao 表征按下的是哪个符号uchar code table=7,8,9,

3、0,4,5,6,0,1,2,3,0,0,0,0,0;uchar code table1=7,8,9,0x2f-0x30, /按键标值 0x2f-0x30 是将字符转化为数字,与后面的 0x30+i 抵消,得 i 值4,5,6,0x2a-0x30,1,2,3,0x2d-0x30,0x01-0x30,0,0x3d-0x30,0x2b-0x30 /0x01 是清屏命令;void delay(uchar z) / 延迟函数uchar y;for(z;z0;z-)for(y=0;y0)c=a-b;else c=b-a;while(c!=0) write_date(0x30+c%10)(0x30+c%10

4、);c=c/10; if(a-b0)write_date(0x2d);write_date(0x3d); /再写“=“ a=0;b=0;flag=0;fuhao=0;else if(fuhao=3)write_com(0x80+0x4f);write_com(0x04);c=a*b;while(c!=0) write_date(0x30+c%10);c=c/10; write_date(0x3d); a=0;b=0;flag=0;fuhao=0;else if(fuhao=4)write_com(0x80+0x4f);write_com(0x04);i=0;c=(long)(float)a/b

5、)*1000);while(c!=0) write_date(0x30+c%10);c=c/10;i+;if(i=3) /设置小数点位数write_date(0x2e); if(a/b=0)write_date(0x30);write_date(0x3d); a=0;b=0;flag=0;fuhao=0;break;case 15:write_date(0x30+table1num);flag=1;fuhao=1;break;P1=0xf0;void main() /主函数init();EX1=1;EA=1;IT1=1;p33=1;P1=0xf0;while(1) if(p33=0) keyscan();void int0() interrupt 2 using 1 /中断if(p33=1)p33=0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号