基于mcs-51单片机的简易计算器的设计与实现毕业设计论文(编辑修改稿)内容摘要:
922 的 DA 引脚经过一个非门连接到单片机的 /INT0 脚,当 MM74C922 检测到键盘输入时, DA 产生高电平,与之相连的 /INT0 检测到低电平,给单片机一个中断,单片机从P2 口的低四位读入键盘上按下的键的值。 图 37 键盘接口电路图 江苏农牧科技职 业学院毕业论文(设计) 8 第四章 软件设计 本设计主要包含主程序、外部中断 0 程序。 主程序设计 主程序函数表示:允许中断;初始化键盘接口连接、 LCD 显示、 LCD、 LCD 输入数据函数。 图 41 主程 序流程图 外部中断 0 处理程序 有键按下时,单片机响应外部中断 0,转入外部中断 0 中断处理函数,在中断处理函数中完成对按键的判断,以进行下一步的程序处理。 其中调用键值转化函数、算术运算函数。 开始 允许中断 初始化键盘接口 初始化 LCD 显示 初始化 LCD 初始化 LCD 输入数据函数 江苏农牧科技职 业学院毕业论文(设计) 9 图 42 外部中断 0函数流程图 键值转化为键盘上按键值程序 该程序函数的作用是将输入的键值转化为数值或符号。 图 43 键值转化为键盘上按键值流程 开始 输入键值 读取键码 转化为数值或符号 数值送显示缓冲 键值转化 是否为数字键 将当前输入值 *10+输入值 当前输入值是否为第一个算术值 y=当前输入值 x=当前输入值 当前输入值是否超出范围规定 LCD显示当前输入值 数值溢出 是否为清除键 数值清 0 是否为“ =” 是否为“ +” 是否为“ ” 是 否 为“ *” 是 否 为“ /” 调用运算函数 Y N N Y N Y N N N N N Y Y 江苏农牧科技职 业学院毕业论文(设计) 10 算术运算程序 在外部中断函数对键值进行判断后,进行加、减、乘、除运算,运 算后的数值如果超出范围规定,则数值溢出处理。 图 44 算术运算程序 LCD 显示程序 利用 LCD 静态显示,通过程序向 LCD 写指令字或数据使 LCD 完成不同功能或显示相运 算 符 号是否为“ +” N 开始 Y Y 进行加号运算 运算后数值是否超出范围规定 运算符号是否为“ ” 进行减号运算 运 算 符 号是否为“ /” 进行乘号运算 运 算 符 号是否为“ *” Y N 进行除号运算 Y LCD 显示数值 N 溢出 N Y 江苏农牧科技职 业学院毕业论文(设计) 11 应数据。 /**************LCD 初始化函数 *************/ void init_LCM() { write_(0x30)。 write_(0x30)。 write_(0x30)。 write_(0x38)。 write_(0x08)。 write_(0x01)。 write_(0x06)。 write_(0x0e)。 } /***********LCD 写数据函数 *************/ void write_data(char ddata) { RS=1。 /*写指令 */ R_W=0。 EN=1。 /*使能信号开 */ P1=ddata。 /*将数据送入 p1 口 */ EN=0。 /*使能信号关 */ check_BF()。 } /***********LCD 写指令函数 *************/ void write_(char mand) { RS=0。 /*写指令 */ R_W=0。 江苏农牧科技职 业学院毕业论文(设计) 12 EN=1。 /*使能信号开 */ P1=mand。 /*将数据送入 p1 口 */ EN=0。 /*使能信号关 */ check_BF()。 } /************LCD 检查忙碌函数 ***********/ void check_BF() { char i,x=0x80。 P1=0xff。 while(xamp。 0x80) { RS=0。 R_W=1。 EN=1。 x=P1。 EN=0。 for (i=0。 i10。 i++)。 } EN=0。 /*关闭使能信号 */ } /**********LCD 清屏函数 **********/ void clearLCD() { write_(0x01)。 } /**********LCD 显示函数 **********/ void display(long a) { 江苏农牧科技职 业学院毕业论文(设计) 13 long temp,b,c=1。 int lenth=1,i,j。 clearLCD()。 if(a0) { a=a*c。 write_data(39。 39。 )。 } temp=a。 while((temp=temp/10)!=0) { lenth++。 } for(i=lenth。 i0。 i) { b=1。 for(j=0。 ji1。 j++) { b=b*10。 } write_data(0x30+a/b)。 a=a%b。 } } 第五章 开发体会 Keil 软件调试 keil软件。 keil 集成开发环境中创建新项目( Project),扩展文件名为 .UV2,并为该项目 江苏农牧科技职 业学院毕业论文(设计) 14 选定合适的单片机 CPU器件(本设计采用 ATMEL公司下的 AT89C51)。 keil的文本编辑器编写源文件,可以是汇编语言,也可以为 c语言,完成后将该文件添加到项目中去。 注意保存的时候如果是 c语言编写程序必须在后面加 .C。 keil 的相关选择项,配置编译环境、连接定位器以及 Debug调试器的功能。 ,生成绝对目标代码和可选的 HEX文件,如果出现编译连接错误则返回到第 2步,根据软件中的错 误提示进行修改源文件,切记不要浮躁,一步一步修改直到最后提示没有差错最终生成 hex文件。 ,调试成功后将 HEX文件写入到单片机应用系统的 ROM中。 Protues 软件仿真 1.首先在电脑里下载正确的软件,此软件主要是对硬件部分进行模拟。 2.进入软件后蓝色框内就是工作区域,可以在里面随意选择元器件,移。基于mcs-51单片机的简易计算器的设计与实现毕业设计论文(编辑修改稿)
相关推荐
LINUX 系统移植及按键驱动开发 Linux 系统移植 获取 Linux 内核源代码 从 linux 官方网站下载 Linux 内核代码。 指定交叉编译变量 我们移植目的是让 可以在 mini2440 上运行。 修改总目录下面的 Makefile,改为: export KBUILD_BUILDHOST :=$(SUBARCH) ARCH ?= arm CROSS_COMPILE ?=
部 DMA控制器包含六个独立的 DMA通道,支持片内与片外的存取, 3 维的数据传输,块传输结束时中断, DMA 触发来自于中断线和所有外围器件 [27]。 本文所做的工作及主要内容 本文根据当前电子系统要求数据传输量大,性能要求高等特点,以 Verilog 为硬件描述语言和可编程逻辑器件 (FPGA)为技术支撑,设计了一个基于 Verilog 语言的 DMA控制器,并对其相应程序进行仿真。
吉林化工学院信息与控制工程学院专业综合设计说明书 7 24 或 16 位模 /数转换器 (ADC0) C8051F350/1/2/3 内部有一个全差分 24 位 (C8051F350/1) 或 16 位(C8051F352/3)SigmaDelta的 数转换器 (ADC),该 ADC具有在片校准功能。 两个独立的抽取滤波器可被编程到 1KHz的样率。 可以使用内部的
的情况。 停止位:用于表示单个包的最后一位。 典型的值为 1, 2位。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。 因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。 适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 奇偶校验位:在串口通信中一种简单的检错方式。 有四种检错方式:偶、奇
洗衣机整体设计框图 ( 1)系统总体设计 在进行功能和技术指标对应用系统的可靠性、通用系统设计之前首先应根据对系统功能要求及其应用环境等确定 其 合理 性 、具体性、先进性、可维护性、以及成本等进行综合考虑以尽量 满足 并符合相应的标准。 然后根据市场上各种单片机的货源情况和单片机的性能及开发工具等因素选 择合适的机型。 接下来要根据系统中可能遇到的传感器、模拟电路、 I/O接口
Addr,*pClock)。 /* 秒 分 时 日 月 星期 年 */ pClock++。 ucAddr +=2。 } W1302(0x8e,0x80)。 /* 控制命令 ,WP=1,写保护 */ } /*开机显示 */ void display1(void) { uchar i。 uchar code dis[4]=week。 uchar code p1[16]=Name:Chen