文档库 最新最全的文档下载
当前位置:文档库 › MC33993的应用

MC33993的应用

MC33993的应用
MC33993的应用

基于多路开关监测接口芯片MC33993

的开关量输入电路

周定勇

(宁波工程学院,电气自动化,浙江宁波)

摘要:在分析多路开关电路的基础上,设计了一种以AT89S52单片机与可编程多路开关检测接口芯片MC33993为元件的开关量输入电路。本设计给出了具体的硬件电路并配有相应软件的分析。该输入控制电路为电压较高的开关量和微控制器提供一种有效的接口, 简化了电路结构, 增强了系统可靠性。

关键词:MC33993;AT89S52单片机;开关量输入电路

Input circuit of switch state on switch detection inter face

Zhou ding yong

(Ningbo engineering college ,Electrical automation,Zhejiang Ningbo)

Abstract: On the analysis of multiple switch circuit, and on the basis of a design AT89S52 SCM and programmable multiple switch interface device for detecting MC33993 of components of multiple switch interface circuit testing. This design give a specific hardware circuit and software with the corresponding analysis. The input control circuit for high voltage switch quantity and micro controller provides a effective interface, simplified the circuit structure, to enhance the system reliability.

Key words:MC33993; A T89S52MCU; Switch input circuit

引言

伴随着电子技术的快速发展,各种电路的开关元件也日益增多而复杂化。因此,可靠地对这些开关量进行检测已成为电子硬件设计必须解决的问题。传统的开关量的输入电路多采用电阻、电容等分立元件与单片机直接相连的模式,这样就会有很多不足之处比如说由分立元件设计的开关触点容易发生氧化,这样就会缩短开关的使用寿命,然而过多使用分立元件,会造成单片机IO的浪费,从而降低了CPU的利用率。

本文在研究传统的开关量输入电路的基础上,应用Motorola公司的新型开关监测接口芯片MC33993来构成新的开关量输入电路。MC33993是一种开关监测接口芯片,它可以为电压较高的开关量和微控制器提供一种有效的接口。该输入电路简单、综合成本低,可以大大简化接线、提高可靠性。

1 MC33993简介及常规开关量电路

1.1MC33993介绍

美国MOTOROLA公司推出的可编程多路开关检测接口集成电路MC33993可检测多达22路的开关量输入信号,并可将检测到的多路开关状态(三态)信号通过该芯片的SH(串行外围接口)传送给MCU(微控制器)。此外,该器件还具有22路模拟多路开关功能,可用以读取多路模拟

输入信号。该模拟输入信号经缓冲器可由模拟多路开关输出以供MCU读取。

MC33993最基本的功能是检测多路开关状态和作为多路模拟开关,有关其基本功能的应用原理通过对其内部结构框图的分析就不难看出,单片机通过与MC33993的万方数据SPI串行接口的通信,向MC33993送开关设置控制命令字,开关状态的变化引起中断,单片机又通过SPI接口读取开关状态。

另外MC33993器件还具有两种工作模式:正常模式和睡眠模式。睡眠模式用以降低系统的静电流,只有当给MC33993输入睡眠控制命令时,MC33993才由正常工作状态进入睡眠状态,但芯片正常工作时所有控制寄存器的状态依然保持,以便随时被唤醒时仍恢复原来的正常工作状态。芯片在开关状态发生变化、中断信号的下降沿、片选信号的下降沿、唤醒信号的下降沿、定时器中断时可以使其退出睡眠状态进入正常工作状态。正常工作模式在作为监视开关状态之用时,微处理器可经SPI接口与MC33993通讯对其进行编程设定,既可为开关的触点提供上拉电流,又可为开关触点提供下拉电流。

1.1常规开关量电路

图1为典型的一路开关量的输入电路,主要是由RC滤波整流再通过光电耦合进行信号的输入。上述传统的开入电路在开入量数目较多时会使电路成本高、复杂、占用PCB 电路板的面积增大。光耦属于易损器件, 而且多路开关量要占用MCU 较多的口线。则利用MC33993可以简化上述电路。

2 MC33993与AT89S52单片机的接口设计及工作原理

2.1硬件电路设计

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

在本电路设计中,如图2所示,22路按键开关分别与MC33993的SP0—SP7和SG0一SGl3共22个输人引脚相连.其中与SPN相连的开关闭合时接电源正端(通过编程实现),与SGN相连的开关闭合时接地,所有开关闭合时状态为1,断开时状态为0。由于这两个器件均有专门的SPI 接口,因此AT89S52单片机通过SPI通信读取MC33993的开关状态量。因此他们之间的SPI通信实现起来很容易。其中AT89S52的P0.3、P0.4、P0.5、INT0、INT1引脚分别与MC33993的CS、SCLK、SO、WAKE、INT引脚相连。

图2 MC33993与AT89S52硬件连线图

2.2工作原理

首先AT89S52单片机通过SPI接口对MC33993进行初始化设置,设定MC33993的工作方式,当开关被按下或断开时,MC33993的输人口状态发生变化,使之从睡眠模式中被唤醒,并立刻向处理器AT89S52发送读取开关状态量的中断请求。处理器识别中断并通过SPI接口读取开关状态的变化,然后执行相应的操作。

3 开关检测接口电路软件

本电路的软件部分设计首先是对MC33993内部的相关寄存器的初始化设置,比如像对SPN 设置寄存器、湿性电流控寄存器的初始化。然后就是对开关的状态的读取,当开关的状态变化时,MC33993中产生中信号,接着就触发AT89S52中断程序。下面给出整个多路开关检测接口电路软件设计的读写函数void Rw33993()的代码。

读写函数void RW33993()源代码如下:

void RW33993(unsigned char data1,unsigned char data2,unsigned char data3)

{

MC33993_CS=0;

SSPBUF=data1;

do

{

}while(PIR1bits.SSPIF==0);

PIR1bits.SSPIF=0;

SP_status.Byte=SSPBUF;

SSPBUF=data2;

do

{

} while(PIR1bits.SSPIF==0);

PIR1bits.SSPIF=0;

SGh_status.Byte=SSPBUF;

SSPBUF=data3;

do

{

} while(PIR1bits.SSPIF==0);

PIR1bits.SSPIF=0;

SGl_status.Byte=SSPBUF;

MC33993_CS=1;

}

4 实验结果

本实验通过对MC33993一路进行检测。通过改变开关量的状态来驱动硬件对外部电信号的采集,并利用AD/DA进行数模转换,然后再通过LCD对电信号的状态进行显示。

实验中利用MC33993的一号开关进行实验,闭合一号开关后MC33993的输人口状态发生变化,并立刻向处理器AT89S52发送读取开关状态量的中断请求。处理器识别中断并通过SPI 接口读取开关状态的变化,然后就对外部的电信号进行采集并将电信号的状态信息显示在LCD上,如图3所示。

图3

本次实验测试MC33993的性能非常成功,通过实验充分的体现出了MC33993的优越性,也让我们看到了其发展的前景。但本次实验并不是很完善,主要体现在多路开关的智能化上还欠佳,若能让多路开关在多级电路中通过具体的条件进行智能选择,那么才能体现出整体硬件和软件上的一个突破。所以希望能在日后对其外围电路进行更好的修饰和改进。

5 结束

本文中设计的多路开关量输入电路,不仅在电路设计上简单,而且在现实中使用也是操作简便。该检测电路运行良好,安全、性能可靠,避免了基于分立元件设计的开关检测电路的不足,而且降低了系统的功耗,具有较强的推广使用价值。经过试验证明, 基于MC33993 芯片设计的开关输入电路在多输入量的情况下具有更好的性能和应用意义。

参考文献:

[1] 翁绍捷, 袁涛.机电控制系统开关量输入的抗干扰[J]. 电工技术杂志,2003.

[2]曾洁,郭永伟.基于Mc33993与AT89S52的多路红外遥控系统的电路设计叨.电子技术应用.20()4,30(10):78—80.

[3] Motorola Multiple Switch Detection Interface [Z].Motorola.Inc.2002.

汉字点阵显示屏设计报告

广西交通职业技术学院信息工程系 作品设计报告书 课程名称电子电路设计与制作_____________ 题目16*16 汉字点阵显示屏 _________________ 班级___________ 电信2011-1班_____________ 学号007 032 ____________________ 姓名_________________ 范杰________________

任课老师_____________ 韦家正 _______________ 二O 一三年一月 目录 摘要 一、系统方案选择和论证 (2) 1.1设计要求 (2) 2.1系统基本方案 (2) 2.1.1.主控电路选择 (2) 2.1.2.点阵显示屏部分 (2) 2.1.3.显示屏控制部分 (3) 二、电路模块的设计与分析 (3) 2.1.系统程序的设计 (3) 2.2.单片机系统及外围电路 (4) 23 LED点阵显示 (6) 24.汉字扫描的原理 (7) 25.方案的实现 (7) 三、系统软件设计 (8) 四、系统测试与分析 (10) 4.1点阵显示屏的仿真与程序调试 (10) 4.2整机测试 (10) 4.3系统主程序............................... 错误!未定义书签。 4.4系统测试结果分析 (21) 五、设计制作总结 (21) 5.1 总结 (21) 5.2 致谢词 (22) 六、参考文献 (22)

附录一:系统主要元件清单 (14)

摘要 摘要 LED点阵显示屏作为一种新兴的显示器件,是由多个独立的高亮度的LED发光二极管封装而成。LED点阵显示屏可以显示数字或符号,通常用来显示时间、速度、系统状态等灵活的动态显示。文章给出了一种基于MCS-51/52单片机的 16X16点阵LED显示屏的设计方案,包括系统具体的硬件设计方案,软件流程图和汇编语言程序等方面内容。在负载范围内,只需通过简单的级联就可以对显示屏进行扩展,是一种成本低廉、亮 度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定的图文显示方案。 Abstract LED dot matrix display, as a new display device, by a nu mber of in depe ndent high- bright ness LED light-emitt ing diode packages. LED dot matrix display can display nu mbers or symbols, usually used to display time, speed, system status, and a flexible dyn amic display. Pap er, a microcomputer-based MCS-51/52 16 16 dot matrix LED display desig n, in cludi ng the system specific hardware desig n, software flowcharts and assembly Ian guage programs and other aspects. Withi n the load range, by simply cascad ing Jiu expa nsion can right display Jin Xin g, is a low cost, high brightness, low voltage Gong Hao Xiao, miniaturization, Yi Yu IC match, Qu Dong simple, Shou Ming Ion g, impact resista nee, stable performa nee, graphics and display opti ons.

运筹学应用实例分析

运筹学课程设计 实践报告 学号: 01 班级: 管理科学与工程类4班

第一部分小型案例分析建模与求解 ................................................................... 错误!未定义书签。 案例1. 杂粮销售问题 ........................................................................................................ 错误!未定义书签。 案例2. 生产计划问题 ........................................................................................................ 错误!未定义书签。 案例3. 报刊征订、推广费用的节省问题 ...................................................................... 错误!未定义书签。 案例4. 供电部门职工交通安排问题 ................................................................................ 错误!未定义书签。 案例5. 篮球队员选拔问题 ................................................................................................ 错误!未定义书签。 案例6. 工程项目选择问题 .............................................................................................. 错误!未定义书签。 案例7. 高校教职工聘任问题(建摸) .......................................................................... 错误!未定义书签。 案例8. 电缆工程投资资金优化问题 ................................................................................ 错误!未定义书签。 案例9. 零件加工安排问题 ................................................................................................ 错误!未定义书签。 案例10. 房屋施工网络计划问题 ...................................................................................... 错误!未定义书签。第二部分:案例设计 ...................................................................................................... 错误!未定义书签。 问题背景: .......................................................................................................................... 错误!未定义书签。 关键词: .............................................................................................................................. 错误!未定义书签。 一、问题的提出 .................................................................................................................. 错误!未定义书签。 二、具体问题分析和建模求解 .......................................................................................... 错误!未定义书签。 三、模型的建立对于N个应聘人员M个用人单位的指派是可行的。......................... 错误!未定义书签。

单片机课程设计---16×16点阵式汉字显示

目录 摘要 (1) Abstract (2) 1设计原理 (3) 1.1 MCS-51单片机的结构及编程方法 (3) 1.2 16*16点阵LED原理 (5) 1.3 3-8译码器原理 (6) 2.设计方案介绍 (7) 2.1 设计总体思路 (7) 2.2 与题目相关的具体设计 (7) 2.3程序设计流程图 (8) 3.源程序,原理图和仿真图 (9) 3.1程序清单(见附录) (9) 3.2电路图 (9) 3.2.1电路原理图 (9) 3.2.2电路图分析 (9) 3.3仿真图 (9) 4性能分析 (10) 5.总结和心得 (11) 6.参考文献 (12) 附录:程序代码 (13)

摘要 LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。文章给出了一种基于MCS-51单片机的16×16 点阵LED显示屏的设计方案。包括系统具体的硬件设计方案,软件流程图和部分汇编语言程序等方面。在负载范围内, 只需通过简单的级联就可以对显示屏进行扩展,是一种成本低廉的图文显示方案。 关键词:MCS-51;LED;单片机

Abstract As a popular display device component, LED dot-matrix display board consists of several independent LED (Light Emitting Diode). The LED dot-matrix display board can display the number or sign, and it is usually used to show time, speed, the state of system etc. This paper introduces a kind of simple 16x16 LED display screen design process based on MCS-51 single chip minicomputer . The detail hardware scheme, software flow and assemble language programmer design and so on is followed. The display part can be cascaded to meet the need. The practice proves the design is low-cost and effective. Key words: MCS-51;LED;MCU

第六章_线性变换_68180769

第六章 线性变换 映射:,X Y ≠?≠?,如果有一个法则σ,它使得X 中每个元素α,在Y 中有唯一确定的元素β与之对应,则称σ为X 到Y 的一个映射,记作:X Y σ→,()σαβ=,β称为α在σ下的象,α称为β在σ下的原象。 注:()(),X στασατα=??∈=对。 变换:一个集合到自身的映射。 线性变换的定义与性质 定义 设V 是数域F 上的线性空间,σ是V 的一个变换,如果满足条件: (1)()()()βσασβασV,α,β+=+∈?; (2)()()k F,αV,k αk σασ?∈?∈=, 则称σ是V 上的线性变换或线性算子。 (1), (2)等价于条件:,,,k l F V αβ?∈∈ ()()()σk αl βk σαl σβ+=+。 例:设σ:n n R R →,定义为()c αασ=,c 为常数。-----数乘 变换或位似变换。 c =0-----零变换,记为o 。 c =1-----恒等变换,记为ε。 例:设σ是把平面上的向量绕坐标原点逆时针旋转θ角的变换 设()()(),,,T T x y x y ασα''==,则

cos sin sin cos x x y y x y θθ θθ'=-??'=+? 记cos sin sin cos A θθθ θ-?? =??? ? ,则()A σαα=是一个线性变换。 例:判断下列变换是否是线性变换 (1) ()()12323,,1,,T T a a a a a σ=; (2) ()()12323,,0,,T T a a a a a σ=; (3) ()()12312231,,2,,T T a a a a a a a a σ=-+; (4) ()()212312 3,,,,3T T a a a a a a σ=. 线性变换的基本性质 (1)()θθσ=; (2)()()ασασ-=-; (3)线性变换保持向量的线性组合关系不变,即若s s αk αk αk β+++=Λ2211,则1122s s βk αk αk ασσσσ=+++L ; 若θ=+++s s αk αk αk Λ2211,则θσσσ=+++s s αk αk αk Λ2211。 (4)线性变换将线性相关的向量组映成线性相关的向量组。 线性变换的运算 ()V L ----线性空间V 上所有线性变换的集合。

浅析运筹学在实际生活中的应用1

运筹学在实际生活中的应用 摘要:随着经济的快速发展和社会的进步,社会各行各业之间的竞争日益激烈,尤其表现为对资源的争夺。因此,在有限的资源下获得最大的利益是每个竞争者所考虑的问题,这也是经济学和运筹学所着重解决的问题。运筹学就是以数学为主要手段、着重研究最优化问题解法的学科。作为一门实用性很强的学科,运筹学可以用来很好的解决生活中的许多问题。运筹学有着广泛的应用,对现代化建设有重要作用。正因为如此,运筹学在企业决策领域中有着广泛的应用。众所周知,运筹学研究的根本目的在于对资源进行最优化配置,用数学的理论与方法指导社会管理,提高生产效率,创造经济效益。而企业投资的根本目的也是在资源的优化配置和有限资源的有效使用的基础上,达到既定目标,实现企业利润最大化。然而,随着市场竞争的日趋激烈,决策是否有效对于企业生存发展的影响愈来愈大。正确的决策可以使企业获利并促进企业的发展,而错误的或者无效的决策只能使企业无利可获甚至亏损,阻碍企业的发展。而运筹学、经济学、博弈论等决策性的科学可以引导投资者选择最佳投资组合策略,为决策者在投资决策过程中提供一些有价值的思路。用来解决人们用纯数学方法或者现实实验无法解决的问题,对企业正确决策的形成有着积极地促进作用。 关键词:运筹学;决策;应用;理论体系;效益 一、引言 人们无论从事任何工作,不管采取什么行动,都希望所制订的工作或行动方案,是一切可行方案中的最优方案,以期获得满意的结果,诸如此类的问题,通常称为最优化问题。运筹学就是以数学为主要手段、着重研究最优化问题解法的学科。求解最优化问题的关键,一是建立粗细适宜的数学模型,把实际问题化

为数学问题;二是选择正确而简便的解法,以通过计算确定最优解和最优值。最优解与最优值相结合,便是最优方案。人们按照最优方案行事,即可达到预期的目标。运筹学的应用可大可小,可以处理各种策略性的问题。 通过对运筹学的学习,无论是从简单的故事,还是真实的案例中,我们可以发现,所谓的运筹,是用最小的功效获得最大的利益。这在我们的生产生活中有极大的意义。运筹学有广阔的应用领域,它已渗透到诸如矿山、服务、库存、搜索、人口、对抗、控制、时间表、资源分配、厂址定位、能源、设计、生产、可靠性、等各个方面。 二、运筹学概述 运筹学作为一门用来解决实际问题的学科,在处理千差万别的各种问题时,一般有以下几个步骤:确定目标、制定方案、建立模型、制定解法。虽然不大可能存在能处理及其广泛对象的运筹学,但是在运筹学的发展过程中还是形成了某些抽象模型,并能应用解决较广泛的实际问题。 运筹学的思想在古代就已经产生了。敌我双方交战,要克敌制胜就要在了解双方情况的基础上,做出最优的对付敌人的方法,这就是“运筹帷幄之中,决胜千里之外”的说法。但是作为一门数学学科,用纯数学的方法来解决最优方法的选择安排,却相对较晚。也可以说,运筹学是在二十世纪四十年代才开始兴起的一门分支。运筹学的具体内容包括:规划论(包括线性规划、非线性规划、整数规划和动态规划)、图论、决策论、对策论、可靠性理论等。 三、运筹学的发展 Operation Research原意是操作研究、作业研究、运用研究、作战研究,译作运筹学,是借用了《史记》“运筹于帷幄之中,决胜于千里之外”一语中“运筹”二字,既显示其军事的起源,也表明它在我国已早有萌芽。 运筹学是一门应用科学,是应用分析、试验、量化的方法,它使用许多数学工具(包括概率统计、数理分析、线性代数等)和逻辑判断方法,来研究系统中人、财、物的组织管理、筹划调度等问题。它对管理系统中人力、物力、财力等资源进行统筹安排,为决策者提供有依据的最优方案,以期发挥最大效益。作

DLT 直接线性变换解法程序

DLT 直接线性变换解法程序介绍 一、程序综合介绍:DLT结算程序 程序功能介绍:应用6个已知点计算左右片l 系数;然后应用已经求得的l系数求解物方空间坐标系坐标 程序名:SuYGDLT 程序界面: 程序界面有四个按钮,分别为读取文件,左片l系数计算,右片系数计算,物放坐标解算程序界面有四个编辑框,分别用来输出文件信息,左片l系数、右片l系数、以及无妨坐标结果 截图如下 程序使用介绍: 必须先点击导入文件按钮,导入文件方可进行正确的计算,如果未导入文件就点击左片平差或右片平差或无妨坐标解算就会弹出如下对话框:

读取数据后点击其它按钮进行其它计算。 程序文件格式: 数据文件分为两部分,KnownPoint,UNKnownPoint,分别代表已知点信息和待求点信息当文件读取程序读到“KnownPoint”时开始读取已知点信息,已知点信息格式如下 GCP1,1214.0000,1032.0000,1046.5180,1071.6652,9.201742,-9.672384,-2.726064 分别代表点名、左片相片X坐标、左片相片y坐标、右片相片x坐标、右片相片y坐标物方坐标X、Y、Z; 当文件读取到“END KnownPoint”时结束已知坐标的读取 待求点信息类似:文件格式截图如下: 程序运行结果与评估: 本程序区1-10号点作为已知点计算l近似值11-20号点作为未知点解求其物方三维坐标;

程序运行结果与所给参考值相似,应该可以证明其运算是正确的,运行结果截图如下: 二、程序编程思想及相关代码 程序编程思想及相关函数: 本程序设计DLTCalculation类作为l系数结算主程序,其成员变量及成员函数与作用介绍如下: CSuLMatrix LL;//左片L系数矩阵 CSuLMatrix RL;//右片L系数矩阵 int m_iKnownPointCount;//已知点个数 CControlPoint *m_pKnownPoint;//已知点 int m_iUnKnownPointCount;//未知点个数 CControlPoint *m_pUnKnownPoint;//未知点 public: CString LoadData(const CString& strFileName);//读取文件函数 int ifLoda;//判断是否导入数据 CString Datainfor;//文件信息存储 CString *SplitString(CString str,char split, int& iSubStrs); //分割函数 void LFormApproL(CSuLMatrix &LL);//计算左片L系数近似值 void RFormApproL(CSuLMatrix &RL);//计算右片L系数近似值 void FormLErrorEquations(CSuLMatrix LL,CMatrix &LM,CMatrix &LW);//组成左片系数矩阵和常数项矩阵 void LAdjust();//左片平差主函数 void FormRErrorEquations(CSuLMatrix RL,CMatrix &RM,CMatrix &RW);//组成右片系数矩阵和常数项矩阵 void RAdjust();//右片平差主函数 void Output(const CString& strFileName);//输出结果主程序

12点阵汉字在HD系列机型中的应用-汉字点阵字库原理

汉字点阵字库原理 一、汉字编码 1.区位码 在国标GD2312—80中规定,所有的国标汉字及符号分配在一个94行、94列的方阵中,方阵的每一行称为一个“区”,编号为01区到94区,每一列称为一个“位”,编号为01位到94位,方阵中的每一个汉字和符号所在的区号和位号组合在一起形成的四个阿拉伯数字就是它们的“区位码”。区位码的前两位是它的区号,后两位是它的位号。用区位码就可以唯一地确定一个汉字或符号,反过来说,任何一个汉字或符号也都对应着一个唯一的区位码。汉字“母”字的区位码是3624,表明它在方阵的36区24位,问号“?”的区位码为0331,则它在03区3l位。 2.机内码 汉字的机内码是指在计算机中表示一个汉字的编码。机内码与区位码稍有区别。如上所述,汉字区位码的区码和位码的取值均在1~94之间,如直接用区位码作为机内码,就会与基本ASCII码混淆。为了避免机内码与基本ASCII码的冲突,需要避开基本ASCII码中的控制码(00H~1FH),还需与基本ASCII码中的字符相区别。为了实现这两点,可以先在区码和位码分别加上20H,在此基础上再加80H(此处“H”表示前两位数字为十六进制数)。经过这些处理,用机内码表示一个汉字需要占两个字节,分别称为高位字节和低位字节,这两位字节的机内码按如下规则表示: 高位字节=区码+20H+80H(或区码+A0H) 低位字节=位码+20H+80H(或位码+AOH) 由于汉字的区码与位码的取值范围的十六进制数均为01H~5EH(即十进制的01~94),所以汉字的高位字节与低位字节的取值范围则为A1H~FEH(即十进制的161~254)。 例如,汉字“啊”的区位码为1601,区码和位码分别用十六进制表示即为1001H,它的机内码的高位字节为B0H,低位字节为A1H,机内码就是B0A1H。

基于51单片机的汉字点阵显示设计

湖南科技大学测控技术与仪器专业
单 片 机 课 程 设 计
题 姓 学 名 号

指导教师 成 绩 ____________________
湖南科技大学机电工程学院 二〇一五年十二月制

湖南科技大学课程设计
摘要
LED 显示屏在我们的周围随处可见,它的应用已经普及到社会中的方方面面。作为 一种新型的显示器件,在许多场合都可以见到它的身影,不仅是它的应用使呈现出来的 东西更加美观,更重要的是它的应用方便,成本很低,除了能给人视觉上的冲击外,更 能给人一种美的享受。LED 显示屏是由多个发光二极管按矩阵形式排列封装而成,通常 用来显示时间、图文等各种信息。本设计是基于 ATS52 单片机的 16*16 点阵式显示屏, 该 LED 显示屏能实现 16*16 个汉字,简单的显示图像, 然后一直循环着显示下去。该设 计包含了硬件、软件、调试等方案,只需简单的级联就能实现显示屏的拓展,但要注意 不要超过负载能力。本次设计的作品体积小、功能多、方便实用、花费小,电路具有结 构简单、操作方便、精度高、应用广泛的特点。 关键词: LED,ATS51 单片机,显示屏
-2-

湖南科技大学课程设计
目录
摘要…………………………………………………………………………i 第一章 系统功能要求 ……………………………………………………1 1.1 系统设计要求 ……………………………………………………1 第二章 方案论证 …………………………………………………………1 2.1 方案论证 …………………………………………………………1 第三章 系统硬件电路设计 ………………………………………………1 3.1 AT89S51 芯片的介绍 ………………………………………………1 3.1.1 系统单片机选型…………………………………………………1 3.1.2 AT89S51 引脚功能介绍 …………………………………………2 3.2 LED 点阵介绍………………………………………………………2 3.2.1LED 点阵……………………………………………………………2 3.3 系统各硬件电路介绍 ………………………………………………3
3.3.1 系统电源电路设计介绍……………………………………………3 3.3.2 复位电路……………………………………………………………4 3.3.3 晶振电路……………………………………………………………4 3.4 系统的总的原理图……………………………………………………5 第四章 系统程序设计 ………………………………………………………5 4.1 基于 PROTEUS 的电路仿真……………………………………………5 4.2 用 PROTEUS 绘制原理 ………………………………………………6
4.3PROTEUS 对单片机内核的仿真 ………………………………………6
-3-

简单的运筹学实际应用案例

运筹学的实际应用 学生会晨读考勤巡视人员分配建模 晨读考勤制度是我校对大学一年级及二年级学生的特殊制度,针对上午第一节有课的班级——周一至周五上午第一节课有课(包括任何课程)的班级需7:30到教室组织英语晨读,未按时到达学生录入考勤系统,按迟到处理。 晨读考勤状况的盘点与巡视工作由校学生会负责。因为每天上晨读的班级数目都不一样,所以每天需要的巡查人员数目也并不同,根据每天晨读班级数目制定的每日所需巡查人数如下表所示。巡视工作枯燥繁重,所以成员在连续参与巡视工作3天后,可以连休两天。(周二至周四巡视过得人员可以在周五和下周一休息)。 学生会人数有限,所以请设计一套方案,需满足每天所需的巡查人数,又使 项目解决: 一,项目内容要求提取 (1)忽略星期六和星期日 (2)巡视人员连续工作3天后连续休息2天,忽略请假情况 (3)分配休息两天后周一至周五每天开始工作的人员,使总工作人数最少。 二,分析建模 此问题是一个典型并且简单的线性规划问题,所以接下来是建立目标函数以及对应的约束条件,并设法求解。 建立模型: Z为所需巡视人员总的人数。 设:x i(i=1,2,3,4,5)为休息两天后,周一至周五每天开始工作的学生会成员。 minZ=x1+x2+x3+x4+x5 x1+x4+x5≥40 x1+x2+x5≥55

x1+x2+x3≥30 x2+x3+x4≥48 x3+x4+x5≥30 x i≥0,i=1,2,3,4,5 三,求解 运用Matlab的linprog函数求解 编写命令: c=[1,1,1,1,1] A=[-1 0 0 -1 -1; -1 -1 0 0 -1; -1 -1 -1 0 0; 0 -1 -1 -1 0; 0 0 -1 -1 -1;] b=[-40;-55;-30;-49;-30]; Aeq=[];beq=[]; vlb=[0;0;0;0;0];vub=[] [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub) 求解得出: x = 4.3625 32.0000 0.0000 17.0000 18.6375 fval = 72.0000

Matlab+实现直接线性变换

直接线性变换Matlab实现的程序源代码 function re=DLT(A,B) %imco为像方坐标,输入单位是像素 imco=A; %此处为控制点像方坐标,格式为2×n,单位:像素 %obco为物方坐标,输入单位是毫米 obco=B; %此处为控制点物方坐标,格式为n×3单位:毫米 imco_be=[];B=[];M=[]; for i=1:size(imco,2) imco_be=[imco_be;imco(:,i)]; end for i=1:size(imco,2) A1=[obco(i,:),1,0,0,0,0]; A2=[0,0,0,0,obco(i,:),1]; M=[M;A1;A2]; B1=obco(i,:).*imco_be(2*i-1); B2=obco(i,:).*imco_be(2*i); B=[B;B1;B2]; end M=[M,B]; N=M(1:11,:); L=N\(-imco_be(1:11,:)); X0=-((L(1)*L(9)+L(2)*L(10)+L(3)*L(11))/(L(9)*L(9)+L(10)*L(10)+L(11)*L(11))); Y0=-((L(5)*L(9)+L(6)*L(10)+L(7)*L(11))/(L(9)*L(9)+L(10)*L(10)+L(11)*L(11))); L=[L;0];M3=[];W=[]; for i=1:size(imco,2) xyz=obco(i,:); A=xyz(1)*L(9)+xyz(2)*L(10)+xyz(3)*L(11)+1; r2=(imco_be(2*i-1)-X0)*(imco_be(2*i-1)-X0)+(imco_be(2*i)-Y0)*(imco_be(2*i)-Y 0); M1=[A*(imco_be(2*i-1)-X0)*r2;A*(imco_be(2*i)-Y0)*r2]; M2=-[M(2*i-1:2*i,:),M1]/A; M3=[M3;M2]; W=[W;-[imco_be(2*i-1);imco_be(2*i)]/A]; end WP=M3'*W; NBBN=inv(M3'*M3); LP=-NBBN*WP; v=M3*LP+W; imco_be=imco_be+v; X0=-(LP(1)*LP(9)+LP(2)*LP(10)+LP(3)*LP(11))/(LP(9)*LP(9)+LP(10)*LP(10)+LP (11)*LP(11)); Y0=-(LP(5)*LP(9)+LP(6)*LP(10)+LP(7)*LP(11))/(LP(9)*LP(9)+LP(10)*LP(10)+LP (11)*LP(11)); 1

16-16点阵LED显示汉字汇编语言

LED16X16点阵显示课程设计报告 学院 专业 班级 学生 指导老师

一、设计目的 本次课程设计目的剖析试验箱,利用微机接口芯片8255,并行控制LED点阵显示;其次就是掌握8088微机系统与LED点阵显示模块之间接口电路设计及编程,了解LED点阵显示的基本原理和如何来实现汉字的的循环左移显示。 二、设计容 利用598H试验系统扩展接口CZ7座,在控制板MC1上以并行通信的方式控制LED点阵显示。要求自建字库,编制程序实现点阵循环左移显示汉字,并要求通过protues仿真软件画出电路图,运行程序。 三、硬件电路设计 整个电路由8088CPU,两片8255,1个74ls373,1个74LS138,1个16×16的LED,5个7407。该电路可静态显示1个16*16位的汉字,也可循环显示。 1、8255 Intel8255A是一种通用的可编程序并行I/O接口芯片,又称“可编程外设接口芯片”,是为Intel8080/8085系列微处理据设计的,也可用于其它系列的微机系统。可由程序来改变其功能,通用性强、使用灵活。通过8255A,CPU可直接同外设相连接,是应用最广的并行I/O接口芯片。其中含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存能力。可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。 2、138译码器 译码器是组合逻辑电路的一个重要的器件,74LS138的输出是低电平有效,故实现逻辑功能时,输出端不可接或门及或非门,74LS138与前面不同,其有使能端,故使能端必须加以处理,否则无法实现需要的逻辑功能。发光二极管点亮只须使其正向导通即可,根据LED的公共极是阳极还是阴极分为两类译码器,即针对共阳极的低电平有效的译码器;针对共阴极LED的高电平输出有效的译码器。 3、373锁存器 74LS373是低功耗肖特基TTL8D锁存器,有8个相同的D型(三态同相)锁存器,由两个控制端(11脚G或EN;1脚OUT、CONT、OE)控制。当OE接地时,若G为高电平,74LS373接收由PPU输出的地址信号;如果G为低电平,则将地址信号锁存。工作原理:74LS373的输出端O0—O7可直接与总线相连。当三态允许控制端OE为低电平时,O0—O7为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,O0—O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器部的逻辑操作不受影响。当锁存允许端LE为高电平时,O随数据D而变。当LE为低电平时,O被锁存在已建立的数据电平。 4、LED 动态显示原理 LED点阵显示系统中各模块的显示方式:有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。 点阵式LED绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视

8×8LED点阵显示汉字课程设计

目录 第1章本设计的研究背景及目的要 求 0 1.1凌阳单片 机 0 1.2 LED(8×8)点阵模块简 介 (1) 第2章设计方案和基本原 理 (3) 2.1设计方 案 (3) 2.2 基本原 理 (3) 1. 8×8LED点阵的工作原 理 (3) 第3章程序设 计 (6) 3.1程序流程 图 (6) 3.2 程序代 码 (6) 第4章调试结果及分 析 (8) 4.1调试结 果 (8) 4.2结果分 析 (9) 第5章结论与体 会 (10) 参考文 献 .................................................................. 11 附 录 .................................................................. . (12) 第1章本设计的研究背景及目的要求

1.1凌阳单片机 (1)来源 随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理数据处理以及数字信号处理,DSP(Digital Signal Processing)等领域。凌阳的16位单片机就是为适应这种发展而设计的。 (2)构造 它的CPU内核采用凌阳最新推出的Microcontroller and Signal Processor 16 位微机处理器芯片,以下简称μ'nSP?。围绕μ'nSP?所形成的16位μ'nSP?系 列单片机,以下简称μ'nSP? 家族。采用的是模块式集成结构,它以μ'nSP?内核为中心集成不同规模的ROM PAM和功能丰富的各种外设部件。μ'nSP?内核 是一个通用的和结构。除此之外的其它功能模块均为可选结构。以及这种结构可大可小可有可无,借助这种通用结构附加可选结构的积木式的构成,便可成为各种系列的派生产品,以适合不同场合,这样做无疑会使每种派生产品具有更强的功能和更低的成本。μ'nSP?家族有有以下特点:体积小,集成度高,可靠性 好易于扩展。μ'nSP? 家族把各功能把各功能部件模块化地集成在一个芯片里。内部采用总线结构,因为减少了各功能部件之间的连接,提高了其可靠性和抗干扰能力,另外,模块化的结构易于系列的扩展,以适应不同用户的需求。具有较强的中断处理能力。μ'nSP?家族的中断系统支持10个中断向量及10余个中断源,适合实时应用领域。高性能价格比:μ'nSP?家族片内带有高寻址能力的ROM,静态RAM和多功能的I/O口,另外μ'nSP?的指令系统提供出具有较高运算速度的16位,16位的乘法运算指令和内积运算指令,为其应用添加了DSP功能,使得μ'nSP?家族运用在复杂的数字信号处理方面既很便利又比专用的DSP芯片廉价。 优点: 功能强、效率高的指令系统:μ'nSP?的指令系统的指令格式紧凑,执行迅速,并且其指令结构提供了对高级语言的支持,这可以大大缩短产品的开发时间。低功耗、低电压:μ'nSP?家族采用CMOS制造工艺,同时增加了软件激发的弱振方式,空闲方式和掉电方式,极大地降低了其功耗,另外,μ'nSP?家族的工 作电压范围大,能在低电压供电时正常工作,且能用电池供电,这对于其在野外作业等领域中的应用具有特殊的意义。 (3)应用领域 凌阳单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: 1.在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控例且功能比起采用电子或数字电路更加强大。智能化、微型化,制使得仪器仪表数字化、. 。如精密的测量设备(功率计,示波器,各种分析仪)在工业控制中的应用2. 例如工厂流水线的智能化管数据采集系统。用单片机可以构成形式多样的控制系统、

点阵字库生成的原理

所有的汉字或者英文都是下面的原理, 由左至右,每8个点占用一个字节,最后不足8个字节的占用一个字节,而且从最高位向最低位排列。 生成的字库说明:(以12×12例子) 一个汉字占用字节数:12÷8=1····4也就是占用了2×12=24个字节。 编码排序A0A0→A0FE A1A0→A2FE依次排列。 以12×12字库的“我”为例:“我”的编码为CED2,所以在汉字排在CEH-AOH=2EH区的D2H-A0H=32H个。所以在12×12字库的起始位置就是[{FE-A0}*2EH+32H]*24=104976开始的24个字节就是我的点阵模。 其他的类推即可。 英文点阵也是如此推理。 51单片机的13×14点阵缩码汉卡 我们历时数载,开发成"51单片机13×14点阵缩码汉卡",适用于目前国内外应用最为广泛的MCSX-51及其兼容系列单片机. 与此同时,还开发了13×14点阵汉字字模.13×14点阵字模,可完全与目前通用的16×16点阵汉字字模媲美,其在单片机和嵌入式系统的汉字显示应用中也具有明显的经济价值和实用意义. 1.单片机目前的汉字显示 信息交流的最主要方式之一即文字交流,但由于我国方块汉字数量繁多,构形迥异,使汉字显示一直是我国计算机普及的障碍.随着计算机技术的迅速发展,PC机的汉字显示已不成问题.但对于成本低、体积小、应用灵活且用量极为巨大的单片机而言,因其结构简单,硬件资源十分有限,其汉字显示仍面对着捉襟见肘,力不从心的窘境. 目前单片机的汉字显示有三种基本方法. ①采用标准字库法.即将国标汉字库固人ROM中,将单片机的硬件和软件进行特别扩展后以显示汉字.众所周知,即使是16×16点阵标准字库,也须占用200KB以上的单元内存,而就目前主流5l系列单片机而言,最大寻址范围仅64KB,即使程序区与数据区合起来也仅128KB内存.因此,若不加特别的扩展设计,不要说检字程序和用户空间,仅字库都装不下.这种方法虽然可以方便地使用现成标准字库,但却需占用大量的硬件和软件资源,增加很大一部分成本和设计难度,所以不经常使用. ②字模直接固化法.即将所显示的汉字,依先后顺序将其字模一一从标准字库中提取后,重新固化,予以显示.此法虽为简捷,但只适于显示少量汉字,且字模的制取繁琐,软件的修改维护都很困难. ③带索引小字库法.即将欲显示文件中的汉字字模,从标准字库中逐一提取固化,制成小型字

Verilog程序(汉字点阵显示

中国石油大学 数电课程设计报告题目: 学院: 班级: 姓名: 学号: 日期: 2012 年 12月

摘要 设计要求: 利用EDA/SOPC 实验开发平台提供的16*16点阵LED以及EPC235核心板,实现循环显示“中国石油大学”这6个汉字(左移或者右移均可)。 (1)手动生成“中国石油大学”这6个汉字在16*16点阵LED 上的6个字模(即控制某些LED亮,某些LED灭)。 (2)实现循环显示“中国石油大学”这6个汉字(左移或者右移均可)。 (3)拓展要求:自主设计(如控制循环速度,方向)。 关键词: 扫描分频,控制速度,点阵,点阵汉字显示,

设计原理及方案: 1、16*16点阵LED内部结构如下图所示。 2、总体设计框图: 3、各子模块的设计: (1)、分频,扫描: module fenpin (clk_50Mhz,clk_4hz,k2,k3); input clk_50Mhz,k2,k3; // 输入端口声明

output clk_4hz; // 输出端口声明reg[24:0] count,ccount; reg clk_4hz; always @(posedge clk_50Mhz) begin if ((k2==0) && (k3==0)) ccount<=500000000; if ((k2==0) && (k3==1)) ccount<=100000000; if ((k2==1) && (k3==0)) ccount<=50000000; if ((k2==1) && (k3==1)) ccount<=10000000; if(count

16×16点阵字库

16×16点阵字库 2007-06-25 09:07 分类:单片机 一般我们使用16*16的点阵宋体字库,所谓16*16,是每一个汉字在纵、横各16点的区域内显示的. 不过后来又有了HZK12、HZK24,HZK32和HZK48字库及黑体、楷体和隶书字库. 虽然汉字库种类繁多,但都是按照区位的顺序排列的.前一个字节为该汉字的区号,后一个字节为该字的位号. 每一个区记录94个汉字,位号则为该字在该区中的位置. 因此,汉字在汉字库中的具体位置计算公式为:94*(区号-1)+位号-1. 减1是因为数组是以0为开始而区号位号是以1为开始的. 这仅为以汉字为单位该汉字在汉字库中的位置,那么,如何得到以字节为单位得到该汉字在汉字库中的位置呢? 只需乘上一个汉字字模占用的字节数即可, 即:(94*(区号-1)+位号-1)*一个汉字字模占用字节数,而按每种汉字库的汉字大小不同又会得到不同的结果. 以16*16点阵字库为例,计算公式则为:(94*(区号-1)+(位号-1))*32. 汉字库文该从该位置起的32字节信息即记录了该字的字模信息. 了解点阵汉字及汉字库的构成原理后,显示汉字就变得简单.以16*16点阵字库为例, 通常的方法是:将文件工作指针移到需要的汉字字模处、将汉字库文件读入一2*16数组再用for循环一位位地显示. #include "graphics.h" #include "stdio.h" main() { int i=VGA,j=VGAHI,k; unsigned char mat[16][2],chinease[3]="我"; FILE *HZK; if((HZK=fopen("hzk16","rb"))==NULL)exit(0); initgraph(&i,&j,""); i=chinease[0]-0xa0;j=chinease[1]-0xa0; /*获得区码与位码*/ fseek(HZK,(94*(i-1)+(j-1))*32l,SEEK_SET); fread(mat,32,1,HZK); for(j=0;j<16;j++) for(i=0;i<2;i++) for(k=0;k<8;k++) if(mat[j][i]&(0x80>>k)) /*测试为1的位则显示*/ putpixel(i*8+k,j,WHITE); getch();

相关文档