100以内加法计算器23226.pdf

上传人:得****3 文档编号:83547447 上传时间:2023-03-31 格式:PDF 页数:11 大小:1.93MB
返回 下载 相关 举报
100以内加法计算器23226.pdf_第1页
第1页 / 共11页
100以内加法计算器23226.pdf_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《100以内加法计算器23226.pdf》由会员分享,可在线阅读,更多相关《100以内加法计算器23226.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、一、实习目的 增加学生对基本电子器件、单片机的感性认识,锻炼学生电路板布局、布线、电路组装、单片机程序编制、焊接与调试的动手能力,培养学生对电子的兴趣。二、实习任务 1.硬件焊接(a)根据所给原理图完成单片机最小系统的焊接:单片机最小系统(供电,串口程序下载,晶振,复位电路)(b)将一下电路布线焊接,与单片机最小系统连接(1)4*4矩阵按键(2)双位数码管(3)8 个 LED灯(4)蜂鸣器 2.程序软件设计 三、电路板所实现的具体功能 1.最小系统(1)4LED跑马灯:4 个 LED依次点亮,同时数码管显示对应 LED灯的号码(动态显示 00-01-02-03-04),当第四号灯熄灭第一号灯亮

2、起时,蜂鸣器响;(2)任意选取 2 个按键(矩阵按键扫描方式)按键 1 号 按下跑马灯暂停,再次按下继续 2 号按键复位:按下按键使跑马灯从一号灯开始亮 2.100以内加法计算器 10 按键代表数字 0-9,1 按键加,1 按键减,一按键等号,一按键清除 2 位数码管显示当前输入数字,初始为 00,按下数字按键输入一个 0-99的数字 按下加或减按键 继续输入数字 按下等号,数码管显示计算结果 结果超过 100,蜂鸣器响 数码管和 led显示溢出错误图样 结果为负数,蜂鸣器响 数码管和 led显示负数错误图样 四、电路板布局图 布局图正面 布局图背面 五、电路板布线图 11223344DDCC

3、BBAATitleNumberRevisionSizeA4Date:2012/7/3Sheet ofFile:C:Users.原理图.SchDocDrawn By:12P1Header 2VCCGNDVCC30pFC130pFC212YGND1KR2GNDU2BellVCCEA/VPP31XTAL119XTAL218RST9P3.7/RD17P3.6/WR16P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P0.039P0.138P0.237P0.336P0.435P0.534P0.

4、633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30P3.1/TXD11P3.0/RXD10GND20VCC40U190C52GNDVCC10KR1GND10FC3S1S2S3S4S5S6S7S8S9S10S11S12S13S14S15S16S17P3_2P3_3P3_4P3_5P3_6P3_7P1_1P1_2P1_3P1_4P1_5P1_6P1_7P1_0P1_0P1_1P1_2P1_3P1_4P1_5P1_6P1_7D1D2D3D4D5D6D7D8Q1NPNP3_5A1f2g3e4d5A6c8DP

5、7b9a10DS1A1f2g3e4d5A6c8DP7b9a10DS2P2_0P2_1P2_2P2_3P2_4P2_5P2_6P2_7P2_1P2_2P2_3P2_4P2_5P2_6P2_7P2_0P2_0P2_1P2_2P2_3P2_4P2_5P2_6P2_7VCCVCCP3_6P3_7VCCVCCR3R4R5R6R7R8R91KR108*1K六、所有程序的程序流程图 1.跑马灯路程图 开始 T=8 按键 2 是 否按下 结束 Y Y 是否有键按下 Y N 定时器定时 数码管按定时器 显示对应的数 N N LED 按定时器依次点亮 按键 1 是 否按下 N Y 键盘扫描 T=0 循环 原来状态

6、 定时器正常但置T=0 等从定 时器 正常 定时器停止申请中断停止 2.计算器流程图 开始 输入第一个操作数的十位 num11 S0 结束 Y Y 输出 s 输出 s 输入第二个操作数的十位 num21 输入第一个操作数的个位 num12 输入第二个操作数的十位 num22 加法 Y N 第一个操作数 n1=num1110+num12 第二个操作数 n2=num2110+num22 s=n1+n2 s=n1-n2 蜂鸣器 N N 蜂鸣器 复位 七、所有程序的代码 1跑马灯程序#include#define unint unsigned int#define unchar unsigned ch

7、ar unchar a,i,k,t,time,d=0,b=10,c,cnt=0,num=0,key1;sbit D1=P35;/蜂鸣器 sbit D2=P36;/数码管段选 sbit D3=P37;sbit s1=P14;unsigned char code led=0 xfe,0 xfd,0 xfb,0 xf7;unsigned char code shuma=0 xf3,0 xa4,0 xa2,0 x63;unchar key;/定义头文件 void delayms(unchar t)/延时 50MS/t unchar j;for(;t0;t-)for(j=110;j0;j-);uncha

8、r keyboard(void)/键盘扫描函数 unchar cord_h,cord_l;/行列值 P1=0 x0f;/行线输出全为 0 cord_h=P1&0 x0f;/读入列线值 if(cord_h!=0 x0f)/先检测有无按键按下 delayms(10);/去抖 cord_h=P1&0 x0f;/读入列线值 if(cord_h!=0 x0f)P1=cord_h|0 xf0;/输出当前列线值 cord_l=P1&0 xf0;/读入行线值 return(cord_h+cord_l);/键盘最后组合码值 return(0 xff);/返回该值 void init()/定时器初始化 TMOD=

9、0 x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;D1=1;void main()/主函数 init();/开启定时器 while(1)key=keyboard();/扫描键盘 switch(key)case 0 xee:c+;/按键 1 按下 while(!s1);if(c=3)c=1;break;case 0 xde:d=0;num=0;break;/按键 2 按下 if(c=1)/暂停 TR0=0;if(c=2)/恢复 TR0=1;P0=lednum;/LED 循环点亮 D2=0;D3=1;/数码管显示对

10、应数字 P2=shumanum;delayms(10);D2=1;D3=0;P2=0 x30;delayms(10);void time0()interrupt 1 /定时器程序 TH0=(65536-50000)/256;TL0=(65536-50000)%256;time+;if(time=20)num+;if(num=4)num=0;if(num=0)D1=0;if(num=1)D1=1;time=0;2.100 以内计算器程序:#include /定义头文件#define unint unsigned int#define unchar unsigned char unchar key

11、,time,c=1,a=0,b=0,d=0,x=0,y=0,e=0,f=0,z=0;char num1=0,num2=0;sbit D1=P35;/蜂鸣器 sbit D2=P36;/数码管段选 sbit D3=P37;unsigned char code led=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdF,0 xbF,0 x7F;unsigned char code shuma=0 x30,0 xf3,0 xa4,0 xa2,0 x63,0 x2a,0 x28,0 xb3,0 x20,0 x22,0 x21,0 x25,0 x2c,0 x3c,0 xff,0 x00

12、;void delayms(unchar t)/延时 50MS/t unchar j;for(;t0;t-)for(j=110;j0;j-);unchar keyboard(void)/键盘扫描函数 unchar cord_h,cord_l;/行列值 P1=0 x0f;/行线输出全为 0 cord_h=P1&0 x0f;/读入列线值 if(cord_h!=0 x0f)/先检测有无按键按下 delayms(10);/去抖 cord_h=P1&0 x0f;/读入列线值 if(cord_h!=0 x0f)P1=cord_h|0 xf0;/输出当前列线值 cord_l=P1&0 xf0;/读入行线值

13、return(cord_h+cord_l);/键盘最后组合码值 return(0 xff);/返回该值 void init()/定时器初始化 TMOD=0 x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;D1=1;void main()/主函数 init();/开启定时器 while(1)key=keyboard();/扫描键盘 switch(key)case 0 xde:c=1;break;/十位 case 0 xbe:c=2;break;/个位 if(c=1)/十位 09 switch(key)case 0

14、xee:num2=0;break;case 0 xed:num2=1;break;case 0 xdd:num2=2;break;case 0 xbd:num2=3;break;case 0 xeb:num2=4;break;case 0 xdb:num2=5;break;case 0 xbb:num2=6;break;case 0 xe7:num2=7;break;case 0 xd7:num2=8;break;case 0 xb7:num2=9;break;z=0;if(c=2)/个位 09 switch(key)case 0 xee:num1=0;break;case 0 xed:num

15、1=1;break;case 0 xdd:num1=2;break;case 0 xbd:num1=3;break;case 0 xeb:num1=4;break;case 0 xdb:num1=5;break;case 0 xbb:num1=6;break;case 0 xe7:num1=7;break;case 0 xd7:num1=8;break;case 0 xb7:num1=9;break;z=0;if(z=0)switch(d)case 0:a=num2;b=num1;break;case 1:e=num2;f=num1;break;case 2:e=num2;f=num1;bre

16、ak;switch(key)case 0 x77:num1=10;num2=14;d=1;c=1;break;/加 case 0 x7b:num1=11;num2=14;d=2;c=1;break;/减 case 0 x7e:num1=0;num2=0;c=1;d=0;a=0;b=0;D1=1;P0=0 xff;break;/清零 if(key=0 x7d)z=1;switch(d)case 1:num1=b+f;if(num19)e=e+1;num1=num1-10;num2=a+e;if(num29)x=1;d=0;break;case 2:num1=b-f;if(num10)a=a-1;

17、num1=10-(f-b);num2=a-e;if(num20)x=2;d=0;break;D2=0;D3=1;/数码管显示对应数字 P2=shumanum1;/低位 delayms(10);D2=1;D3=0;P2=shumanum2;/高位 delayms(10);void time0()interrupt 1 /定时器程序 TH0=(65536-50000)/256;TL0=(65536-50000)%256;time+;if(time=20)if(x=2)D1=0;P0=0 xfe;num1=14;num2=14;if(x=1)D1=0;P0=0 x7f;num1=15;num2=15

18、;time=0;x=0;八、实习心得体会 本次实习我的题目是 100以内加法计算器,实现了简单的加减法计算。通过这几天的实训,我在理论的基础上更深刻的掌握了单片机的内容,让我在课堂学习的基础上有了更多的实践操作学习。在实习中我不仅自己焊接了一块电路板,提高了自己的焊接能力,同时还学会了几种软件如 protel、keil4、烧录程序到单片机的软件等的使用方法。实训锻炼了我的动手能力、思维能力和在软件方面的编程能力,让我受益匪浅,同时也发现了很多问题,要在以后的学习中慢慢补上来。通过实训,让我懂得了如何编写一个单片机程序,将以前学过的 C 语言和单片机编程相结合,学会了如何制作一个单片机应用程序,并且可以通过已经焊接好的电路板实现一些功能。这些工作都让我得到了一定的锻炼,达到了理论与实践相结合的目的。这次实习让我有了一定的进步,使我受益匪浅。

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

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁