基于c51单片机简易计算器的课程设计论文(编辑修改稿)内容摘要:
数码管点亮的字位码。 由于采用的是共阴数码管,所以只有该位数码管对应的 为 1,其他位 位 0,点亮延时 10MS。 然后 P1 口输出数值十位七段码, 位 1,数值十位数码管点亮,延时 10MS。 接着 P1 口输出数值百位七段码, 为 1,数值百位数码管点亮,延时 10MS。 最后 P1 口输出数值千位七段码, 为 1,数值千位数码管点亮,延时 10MS。 发光二极管 LED 是单片机应用系统中的一种简单而最常 用的输出设备,其在系统中的主要作用是显示单片机的输出数据、状态等。 因而作为典型的外围器件,LED 显示单元是反映系统输出和操作输入的有效元器件。 LED 具备数字接口可以方便的和单片机引脚连接;它的优点是价格低,寿命长,对电压电流的要求低以及容易实现多路等,因而在单片机应用系统中获得了广泛的应用,所以在此设计中我首先选用了 LED作为显示器件。 如图 310所示: 图 36 数码显示管 11 4. 程序设计 本方案中的程序设计采用了模块化设计,各部分程序都分别进行独立的设计,最后主程序通过调用各模块程序来运行,编 程中所使用的语言全部都是 C语言,可以 利用 keil 软件进行灵活的编译,编译完成后也可生成 HEX 文件,利用 ISP编程软件通过串口写到单片机中。 本方案程序设计中部分 包括主程序模块、液晶显示模块、功能按键和控制输出等部分。 下面仅仅叙述了各部分程序设计的基本思想和流程图,详细程序请参阅附录。 读键输入程序流程图 为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码 —— 键码。 为了得到被按键的键码,现使用行扫描法识别按键。 列扫描信号进行读入行的信号判断该列是否有列的输出 —— 是则进行按照行列计算键盘的值,查表取得键码并返回 —— 若否则进行再次扫描。 程序框图如下 4— 1 图: 12 键盘输入流程图 4— 1 开始 初始化地址 读入行扫描信号 输出列扫描信号 等待按键释放 该列有信号。 四列扫描完。 返回 根据行列计算键值 返回 列扫描信号位移 查表得键码 是 否 是 否 13 LED显示程序流程图设计 LED 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们需要的数位,因此根据 LED 数码管的驱动方式的不同,可以分为静态式和动态式两类。 A、 静态显示驱动: 静态驱动也称直流驱动。 静态驱动是指每个数码管的每一个段码都由一个单片机的 I/O 埠进行驱动,或者使用如 BCD 码二 十进位 *器 *进行驱动。 静态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O 埠多,如驱动 5个数码管静态显示则需要 5 8=40 根 I/O埠来驱动,要知道一个 89S51 单片机可用的 I/O埠才 32 个呢。 故实际应用时必须增加 *驱动器进行驱动,增加了硬体电路的复杂性。 B、 动态显示驱动: 数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的 8 个显示笔划 a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极 COM 增加位元选通控制电路,位元选通由各自独立的I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位元选通 COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就会显示出字形,没有选通的数码管就不会亮。 透过分时轮流控制各个 LED 数码管的 COM 端,就使各个数码管轮流受控显示,这就是动态驱动。 在轮流显示过程中,每位元数码管的点亮时间为 1~ 2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 I/O 埠,而且功耗更低。 综上所述我们在本设计方案中选用了动态显示。 14 6 位 LED 显示的程序框图如图 42所示: 图 42 LED显示 流程图 主程序进行程序中用到的一些存储单元的初始化,数值显示和 4*4键盘扫描。 首先,进行存储单元初始化,给数码管显示单元 30H33H 赋予“ 0000”字形数据,将数值计数单元,存储单元, 23H25H,34H37H,38H,39H,3AH,3BH,3CH,赋予初值零。 之后,调用键盘扫描子程序,和数码管显示数据转换程序,数码管动态显示子程序。 主程序不断进行键盘扫描,数码管显示数据转换子程序和动态显示子程序。 首先初始化参数,送 LED 低位显示“ 0”,功能键(“ +” 、“ ” 、“ *” 、“ /” 、 “ +” )位不显示。 然后扫描键盘看是否有键输入,若有,读取键码。 判断键码是数字键、清零键还是“ +” 、“ — ” 、“ *” “ /” ,是数值键则送 LED 显示并保存数值,是清零键则做清零处理,是功能键则又判断是“ =”还是运算键,若是“ =”则计算最后结果并送 LED 显示,若是运算键则保存相对运算程序的首地址。 15 运算主程序框图如 43所示: 图 43 运算主程序框图 在程序设计方法上,模块化程序设计是单片机应用中最常用的程序设计方法。 设计的中心思想是把一个复杂应用程序按整体功能 划分成若干相对独立的程序模块,各模块可以进行单独的设计、编程和调试,然后组合起来。 这种方法便于设计和调试,容易实现多个程序共存,但各个模块之间的连接有一定的难度。 根据需要我们可以采取自上而下的程序设计方法,此方法先从主程序开始设计,然后再编制各从属程序和子程序,层层细化逐步完成,最终完成一个复杂程序的设计。 这种方法比较符合人们的日常思维,缺点是一级的程序错误会对整个程序 16 产生影响。 功能和操作:加减乘除运算和显示。 A: 上电后,屏幕初始化,按下“ ON/C”键。 B: 计算。 按下数字键,屏幕显示要运算的第一个 数字,再按下符号键,然后再按下 数字键,屏幕显示要运算的第二个数字,最后按下 “﹦ ”号键,屏幕上显示出计算结果。 C:如果要再次计算,可以按下 “ON/C”键清零,或者按下单片机的复位键,重新初始化。 硬件联系图如下图: 硬件连线图 17 5 结论 课程设计是培养学生运用所学的专业知识,发现,提出,分析和解决实际问题,锻炼实际动手能力的重要。基于c51单片机简易计算器的课程设计论文(编辑修改稿)
相关推荐
压 下图 74HC573 的仿真图,其中引脚 2~9 分别接 AT89C51 的 P0,引脚 12~19 分别接数码管的 A、 B、 C、 D、 E、 F、 G、 D、 P 端,引脚 1 接电源端,引脚 11 接地端。 图 34 74HC573 仿真图 74HC138 按照三位二进制输入码和赋能输入条件 ,从 8 个输出端中译出一个低电平输出。
和增大转矩,以满足工作需要。 主要用于带式输送机及各种运输机械,也可用于其它通用机械的传动机构中。 它具有承载能力高、寿命长、体积小、效率高、重量轻、噪声低等优点,用于输入轴与输出轴呈垂直方向布置的传动装置中。 图 节气门 AutoCAD 简介 AutoCAD( Auto Computer Aided Design)是 Autodesk(欧特克)公司首次于 1982
的 CAN总线控制 器芯片 ,它完全 符合 CAN 总线的 技术规范 ,并带有符合工业标准的 SPI串行接口。 MCP2510在目前市场上是体积最小、最易于使用也是最节约成本的独立 CAN 控制器。 MCP2510是一种带有 SPI接口的 CAN控制器, 它支持 CAN技术规范 ;并能够发送的接收标准的和扩展的信息帧,同时具有接收滤波和信息管理的功能。 MCP2510 通过 SI 接口与 MCU
3)FPGA 系统:用户可以用它进行可编程逻辑器件的设计,将设计完成后生成的熔丝文件烧录到逻辑器件中,就可以制作具备特定功能的元器件了。 4)VHDL 系统:主要用来进行硬件的编程工作。 Designer 改进方面 Altium Designer 解决了大量历史遗留的工具问题。 新版本中更关注于改进测试点的分配和管理、精简嵌入式开发、软设计中智能化调试和流畅的 License 管理功能。
点,使得基于单片机为核心的数据采集系统在许多领域得到了广泛的应用.传统的基于单片机的数据采集系统由于没有上位机的支持,不管采用什么样的数据存储器,它的存储容量都是有限的,所以不得不对存储的历史数据进行覆盖刷新,这样不利于用户对数据进行整体分析,因而也不能对生产过程的状况进行准确的把握。 本系统采用下位机负责模拟数据的采集,从单片机负责采集八路数据,并应答主机发送的命令
程序; 业务层:包括各 种业务规则和逻辑功能,业务功能 完成如账号验证和字符处理这样的业务; 数据层:这 层为 上面一面 层提供数据 的服务,这层 作为解决方案文件中的Conn 类来实现的。 .NET Framework 概述 .NET Framework 它 是 基 于 .NET 平台的编程 方式 , 其 公 用 语言运行库 包括CLR, Common Language Runtime 和