2022年单片机的计算器设计方案2.docx
《2022年单片机的计算器设计方案2.docx》由会员分享,可在线阅读,更多相关《2022年单片机的计算器设计方案2.docx(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源3.1 硬件连接图 3-1 所示为简易运算器的电路原理图; P3 口用于键盘输入,接 4*4 矩阵键盘,键值与键盘的对应表如表 -所示, p0 口和 p2 口用于显示, p2 口用于显示数值的高位, po 口用于显示数值的低位;图 3-1 简易运算器电路原理图键值与功能对应表键值0123456789+-/=ON/C欢迎下载精品学习资源功能0123456789+-=清零表 3-13.2 运算器的软件设计#include/头文件#define uint unsigned int / #define uchar unsigned charsbit lcden=P23; /定义引脚sbit
2、 rs=P24;sbit rw=P20;sbit busy=P07;char i,j,temp,num,num_1;long a,b,c;/a,第一个数 b,其次个数 c,得数float a_c,b_c;uchar flag,fuhao;/flag 表示是否有符号键按下, fuhao 表征按下的是哪个符号uchar code table= 7,8,9,0,4,5,6,0,1,2,3,0,0,0,0,0;uchar code table1=欢迎下载精品学习资源7,8,9,0x2f-0x30,4,5,6,0x2a-0x30,1,2,3,0x2d-0x30,0x01-0x30,0,0x3d-0x30
3、,0x2b-0x30;void delayuchar z / 推迟函数uchar y;forz;z0;z-fory=0;y;void check /判定忙或闲暇doP0=0xFF;rs=0;/指令rw=1;/读 lcden=0;/禁止读写delay1; /等待,液晶显示器处理数据lcden=1;/答应读写whilebusy=1; /判定是否为闲暇, 1 为忙, 0 为闲暇void write_comuchar com /写指令函数欢迎下载精品学习资源P0=com; /com指令付给 P0 口rs=0;rw=0;lcden=0;check;lcden=1;void write_dateuchar
4、 date / 写数据函数P0=date;rs=1; rw=0;lcden=0;check;lcden=1;void init /初始化num=-1;lcden=1; /使能信号为高电平write_com0x38; /8 位, 2 行欢迎下载精品学习资源write_com0x0c; /显示开,光标关,不闪耀 */ write_com0x06; /增量方式不移位 显竟獗暌贫 柚. write_com0x80; /检测忙信号write_com0x01; /显示开,光标关,不闪耀num_1=0;i=0;j=0;a=0;/第一个参与运算的数b=0;/其次个参与运算的数c=0;flag=0; /flag
5、 表示是否有符号键按下,fuhao=0; / fuhao 表征按下的是哪个符号void keyscan /键盘扫描程序P3=0xfe;ifP3.=0xfedelay20; 推迟 20ms ifP3.=0xfetemp=P3&0xf0;switchtemp欢迎下载精品学习资源case 0xe0:num=0; break;case 0xd0:num=1; break;case 0xb0:num=2; break;case 0x70:num=3;break;whileP3.=0xfe;ifnum=0|num=1|num=2/假如按下的是 7,8 或9ifj.=0write_com0x01;j=0;i
6、fflag=0/没有按过符号键a=a*10+tablenum;else/如/果按过符号键欢迎下载精品学习资源b=b*10+tablenum;else/如/果按下的是 /flag=1;fuhao=4;/4 表示除号已按i=table1num;write_date0x30+i;P3=0xfd;ifP3.=0xfddelay5;ifP3.=0xfdtemp=P3&0xf0;switchtempcase 0xe0:num=4; break;欢迎下载精品学习资源case 0xd0:num=5; break;case 0xb0:num=6; break;case 0x70:num=7; break;whi
7、leP3.=0xfd;ifnum=4|num=5|num=6&num.=7/ 假如按下的是 4,5 或6ifj.=0write_com0x01;j=0;ifflag=0/没有按过符号键a=a*10+tablenum;else/如/果按过符号键欢迎下载精品学习资源b=b*10+tablenum;else/如/果按下的是 /flag=1;fuhao=3;/3 表示乘号已按i=table1num;write_date0x30+i;P3=0xfb;ifP3.=0xfbdelay5;ifP3.=0xfbtemp=P3&0xf0;switchtempcase 0xe0:num=8; break;欢迎下载精
8、品学习资源case 0xd0:num=9; break;case 0xb0:num=10; break;case 0x70:num=11; break;whileP3.=0xfb;ifnum=8|num=9|num=10/假如按下的是 1,2 或3ifj.=0write_com0x01;j=0;ifflag=0/没有按过符号键a=a*10+tablenum;else/如/果按过符号键欢迎下载精品学习资源b=b*10+tablenum;else ifnum=11/假如按下的是 -flag=1;fuhao=2;/2 表示减号已按i=table1num;write_date0x30+i;P3=0xf
9、7;ifP3.=0xf7delay5;ifP3.=0xf7temp=P3&0xf0;switchtempcase 0xe0:num=12; break;欢迎下载精品学习资源case 0xd0:num=13; break;case 0xb0:num=14; break;case 0x70:num=15; break;whileP3.=0xf7;switchnumcase 12:write_com0x01;a=0;b=0;flag=0;fuhao=0;/按下的是 清零break;case 13:/按/ 下的是 0ifflag=0/没有按过符号键a=a*10;write_date0x30;P1=0;
10、欢迎下载精品学习资源else ifflag=1/假如按过符号键b=b*10;write_date0x30;break; case 14:j=1;iffuhao=1write_com0x80+0x4f;/按下等于键,光标前进至其次行最终一个显示处write_com0x04;/设置从后住前写数据,每写完一个数据,光标后退一格c=a+b;whilec.=0write_date0x30+c%10;c=c/10;write_date0x3d;/再写= a=0;b=0;flag=0;fuhao=0;else iffuhao=2write_com0x80+0x4f;/光标前进至其次行最终一个显示处write
11、_com0x04;/设置从后住前写数据,每写完一个数据,光标后退一格 这个照理说次序不对,可显示和上段一样欢迎下载精品学习资源ifa-b0 c=a-b;elsec=b-a;whilec.=0write_date0x30+c%10;c=c/10;ifa-b write_date0x2d;write_date0x3d;/再写= a=0;b=0;flag=0;fuhao=0;else iffuhao=3write_com0x80+0x4f; write_com0x04;c=a*b;whilec.=0write_date0x30+c%10;c=c/10;write_date0x3d;a=0;b=0;f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 单片机 计算器 设计方案
限制150内