基于51单片机的简易带密码计算器设计报告.doc下载

weixin_39820780 2021-09-25 09:35:27
基于51单片机的简易带密码计算器设计报告.doc , 相关下载链接:https://download.csdn.net/download/yunxidzh/24432599?utm_source=bbsseo
...全文
12 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
项目一:简单计算器 1.实验题目:用51单片机实现简单的计算器功能 2.实验截图: 1).实验运行前截图: 2).实验运行后截图: 3.实验代码: #include #include #include #include #include unsigned char table1[16]; //1602第一行显示字符 unsigned char table2[16]; //1602第二行显示字符 unsigned char code table_error[] = "error"; /* 键扫描函数 */ unsigned char keyscan() //扫描键盘函数 { unsigned char key_l,key_h,addres,num; P0=0x0f; key_l=P0; P0=0xf0; key_h=P0; addres=key_l " key_h; if(addres!=0xff) { Delayms(1); if(addres!=0xff) { P0=0x0f; key_l=P0; P0=0xf0; key_h=P0; addres=key_l " key_h; switch(addres) { case 0xee:num='1';break; case 0xde:num='2';break; case 0xbe:num='3';break; case 0xed:num='4';break; case 0xdd:num='5';break; case 0xbd:num='6';break; case 0xeb:num='7';break; case 0xdb:num='8';break; case 0xbb:num='9';break; case 0xd7:num='0';break;//按键0 case 0xe7:num='C';break;//按键* case 0xb7:num='=';break;//按键# case 0x7e:num='/';break;//按键A case 0x7d:num='*';break;//按键B case 0x7b:num='-';break;//按键C case 0x77:num='+';break;//按键D } while(addres!=0xff) { P0=0x0f; key_l=P0; P0=0xf0; key_h=P0; addres=key_l " key_h; } return num; } } return 0; } void clear_lcd(void) //清屏 { unsigned char j; for(j=0;j<16;j++) { table1[j]='\0'; table2[j]='\0'; } } void main() { unsigned char i=0,j; unsigned char key; unsigned char flag_operator = 0; //加减乘除标志位 unsigned char flag_equ = 0; //等于标志位 unsigned char flag_key = 0; //运算位标志 bit flag_MaxValue = 0; bit flag_minus = 0;//负数 long int value = 0; //最终运算结果 unsigned long int value_H =0; //第一个数据 unsigned long int value_L = 0; //第二个数据 unsigned long int temp[]={1, 10, 100,1000,10000,100000,1000000,10000000,100000000}; Initialize_LCD(); while(1) { key=keyscan(); if(key != 0) { if(key == 'C') //清除键C按下 { clear_lcd(); i=0; flag_operator = 0; flag_equ = 0; value = 0; value_H =0; value_L = 0; flag_key = 0; flag_minus=0; } else { for(j=0; j
赣南师范大学 基于C51单片机简易计算器 学 院: 物理与电子信息学院 专 业: 电子信息工程 班 级: 学 名: 学 号: 指 导 教 师: 日 期: 目录 1. 绪论 3 2. 系统软件设计方案 4 2.1设计目标和实现方法 4 2.2整体方案论证 4 3. 系统硬件的设计与介绍 5 3.1复位电路的设计与运用 5 3.2时钟振荡器电路的设计与运用 6 3.3输入电路的设计 6 3.4输出电路的设计 8 4. 系统程序的设计与介绍 11 4.1 LED显示程序流程图设计 11 4.2读键输入程序流程图设计 13 4.3主程序流程图设计 14 4.4仿真与调试 15 5. 结论 17 元件清单 18 附录1简易计算器源程序 19 1.绪论 中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多是用竹子制成, 也有用木头,兽骨充当材料的。大约二百七十枚一束,放在布袋里可以随身携。    直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时期的珠 算盘已经与现代的珠算盘几乎没有差别。    17世纪初,西方国家的计算工具已经有了较大的发展,英国数学家纳皮尔发明的"纳皮尔 算筹",英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方 、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅动了 计算器的快速发展,也为实现现代计算器发展奠定了良好的基础,成为现代社会应用广 泛的计算工具。    1642年,年仅19岁的法国伟大科学家帕斯卡引用算盘的原理,发明了世界上第一部机械 式计算器,在他的计算器中有一些互相联锁的齿轮,一个转过十位的齿轮会使另一个齿 轮转过一位,人们可以像拨电话号码盘那样,把数字拨进去,计算结果就会出现在另外 一个窗口中,但是只能做加减计算。1694年,莱布尼兹在德国将其改进成可以进行乘除 的计算。此后,一直要到20世纪50年代末才有了电子计算器的出现。 2. 软件设计方案 2.1 设计目标和实现方法 为了满足简易计算器的基本要求,可以进行基本的运算(加减乘除),数据归零和出 错警告提示,我们采用基于51单片机设计计算器,并用七段共阴级LED 数码管显示数据,4*4的矩阵键盘实现数据的输入。 2.2 整体方案论述 根据简单计算器的功能和本方案中的设计指标要求,本系统选用了MCS 51 单片机为主控机。通过扩展必要的外围接口电路,实现对简单计算器设计。具体设计 考虑如下: 由于要设计的是简单的计算器,可以进行基本的四则运算,对数字的大小范围要求 不高,故我们采用可以进行四位数字的运算,选用8 个LED 数码管显示数据和运算结果。 另外键盘包括数字键(0~9)、符号键(+、- 、×、÷)、清除键和等号键,故只需要16 个按键即可。 系统模块图: 图2-1 系统模块图 3. 系统硬件的设计 3.1 复位电路的设计 上电复位的原理:VCC上电时,C充电,在10K电阻上出现了电压,使单片机复位;几个毫 秒后,C充满,10K电阻上电流降为0,电压也为0,使得单片机进入工作状态。 手动复位的原理:工作期间,按下S,C放电。S松手,C又充电,在10K电阻上出现电压, 使得单片机复位。几个毫秒后,单片机进入工作状态。 如SW复位键按下时:RST经1k电阻接VCC,获得10k电阻上所分得电压,形成高电平, 进入"复位状态"。 当SW复位键断开时:RST经10k电阻接地,电流降为0,电阻上的电压也将为0,RST降 为低电平,开始正常工作 。 对于成熟产品,从降低成本角度,可以使用上电复位。另外,作为产品,最好使用上 电复位。因为使用者通常没有专业知识,就知道断电通电,对他们来说,按键复位成了 摆设。按键复位比较适合样品制作或者实验室调试场合,上电复位电路成本也低一些。 综上所述我们在本方案中选用了上电自动复位电路。 上位自动复位电路图和手动复位电路图如下图 两种复位方式 如图3—1: 3.2 时钟振荡电路的设计 能够产生振荡电流的电路叫做振荡电路。一般由电阻、电感、电容等元件和电子器件所 组成。由电感线圈l和电容器c相连而成的lc电路是最简单的一种振荡电路,其固有频率 为f=[sx(]1[]2πlc。 § 一种不用外加激励就能自行产生交流信号输出的电路。它在电子科学技术领域中得到广 泛地应用,如通信系统中发射机的载波振荡器、接收机中的本机振荡器、医疗仪器以及 测量仪器中的信号源等。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器 。石晶振荡和陶瓷振荡均可采用此振动器。如采用外部时钟源驱动器件,XTAL2应不接。 有余输入至内部时钟信号要通

13,656

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧