单片机应用技术 教学课件 作者 邱文棣 主编 任务五_设计计算机任务五_设计计算机.ppt

单片机应用技术 教学课件 作者 邱文棣 主编 任务五_设计计算机任务五_设计计算机.ppt

ID:50472287

大小:1.13 MB

页数:14页

时间:2020-03-09

单片机应用技术 教学课件 作者 邱文棣 主编 任务五_设计计算机任务五_设计计算机.ppt_第1页
单片机应用技术 教学课件 作者 邱文棣 主编 任务五_设计计算机任务五_设计计算机.ppt_第2页
单片机应用技术 教学课件 作者 邱文棣 主编 任务五_设计计算机任务五_设计计算机.ppt_第3页
单片机应用技术 教学课件 作者 邱文棣 主编 任务五_设计计算机任务五_设计计算机.ppt_第4页
单片机应用技术 教学课件 作者 邱文棣 主编 任务五_设计计算机任务五_设计计算机.ppt_第5页
资源描述:

《单片机应用技术 教学课件 作者 邱文棣 主编 任务五_设计计算机任务五_设计计算机.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、任务五设计计算器任务情境描述在计算机原理中经常要用到二—十进制、十—十六进制之间的转换,在实际应用中也常常要进行加减乘除等四则运算,正如WINDOW中的计算器那样,我们能否也自己来设计一个呢?任务五设计计算器项目11二进制→十进制转换器项目描述:输入一串二进制数,按下转换键把它变成十进制数。一.能力培养目标(1)会编写二进制→十进制数转换程序(2)能领会键盘扫描原理二.学习组织形式采取以小组为单位互助学习,有条件的每人一台电脑,条件有限的可以两人合用一台电脑。用仿真实现所需的功能后如果有实物板(或自制硬件电路)可把程序下载到实物上再运行、调试,学习过程鼓励小组

2、成员积极参与讨论。三.项目实施过程(一)创建硬件电路(二)程序编写1.编程思想采用模块化编程,除主函数外,本程序共有7个子函数:延时子函数delay(uintt)、显示子函数disp()、按键扫描子函数getkey()、初始化显示缓冲区子函数disp_init()、二进制位左移子函数leftmove(uchark)、二进制到十进制转换子函数btod()、按键识别与处理子函数key()。初始化显示缓冲区调用按键识别与处理子函数调用显示子函数图11-2主函数流程行输出“0”有键按下?再次判有键按下?是返回是返回否返回延时(去抖动)获取按下的列号等待键释放返回键值否

3、返回返回0xFF图11-4按键扫描流程获取按键值→keyKey为无效键?Key=1?Key=0且已按过1?Key为清除键?Key为转换键?返回调用左移处理子函数调用左移处理子函数调用初始化处理子函数调用转换子函数图11-3按键识别处理子函数流程是返回否返回是返回是返回是返回是返回否返回否返回否返回否返回2.编写程序如下二进制→十进制数转换程序项目12设计四则运算计算器项目描述:模拟WINDOWS系统中的简易计算器,实现十进制数的加减乘除运算,要求操作数和运算结果都不超过65535,输入数据不带符号,不够减时显示负数,被除数为零时最高位显示“E”。一.能力培养目

4、标(1)会编写矩阵式键盘扫描程序(2)会编写四则运算程序程序(3)能领会矩阵式键盘扫描原理二.学习组织形式采取以小组为单位互助学习,有条件的每人一台电脑,条件有限的可以两人合用一台电脑。用仿真实现所需的功能后如果有实物板(或自制硬件电路)可把程序下载到实物上再运行、调试,学习过程鼓励小组成员积极参与讨论。三.项目实施过程(一)创建硬件电路(二)程序编写1.编程思想采用模块化编程,除主函数外,本程序共有11个子函数:延时子函数delay(uintt)、显示子函数disp()、按键扫描子函数getkey()、初始化显示缓冲区子函数cls1()、数据初始化子函数cl

5、s2()、显示缓冲区左移子函数buffkz(uchark)、数字处理子函数shuzichuli(uchark)、计算结果子函数jisuanjieguo()、按键判断与处理子函数keypd()。初始化显示缓冲区及数据变量调用按键识别与处理子函数调用显示子函数图12-2主函数流程获取按键值→keyKey为无效键?Key<10?Key=”C”?Key=“E”?返回调用数字键处理子函数调用初始化处理子函数调用计算结果处理子函数存运算符号图12-3按键识别处理子函数流程是返回是返回是返回是返回否返回否返回否返回否返回为输入第二个操作数作准备是返回图11-4计算结果处理流

6、程加法运算减法运算乘法运算除法运算num1>num2?否返回number=num2-num1fushu=1number=num1-num2num2<>0?否返回number=num1/num2置溢出标志初始化显示缓冲区及数据变量number=num1*num2number=num1+num2返回显示缓冲区初始化是返回运算结果按位拆分并放到buff[i]中Fushu=1?否返回初始化数据变量是返回置负数显示标志返回运算符号判断?2.编写程序如下:/proj12.c//计算器--四则运算程序#include//52系列单片机头文件#defineu

7、charunsignedchar//宏定义#defineuintunsignedint//宏定义#definedis_portP0//宏定义#definekey_portP3//宏定义sbitdx=P2^6;//定义74HC573段选位sbitwx=P2^7;//定义74HC573位选位bitfushu;//负数标志bittwobz;//第二个操作数标志bitzero;//0标志(操作数为"0"时此标志为1,此时输入0无效)ucharfh;//fh为运算符号标记uintnum1,num2,number;//分别为第一个操作数,第二个操作数和结果单元变量//定义

8、矩阵键盘码:'D'代表除、'M'代表乘

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。