

免费预览已结束,剩余36页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
泸 州 职 业 技 术 学 院毕 业 论 文基于单片机霓虹灯广告牌的设计学生姓名赵勇所 在 系机械工程系班 级09级机电3班专 业机电一体化技术指导教师洪震2011年9月5日指导教师评阅书指导教师评语:建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)指导教师: (签名) 单位:(盖章)年 月 日评阅教师评阅书评阅教师评语:建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)评阅教师: (签名) 单位:(盖章)年 月 日教研室(或答辩小组)及教学系意见教研室(或答辩小组)评语:评定成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)教研室主任(或答辩小组组长): (签名)年 月 日教学系意见:系主任: (签名)年 月 日泸州职业技术学院毕业论文 目录摘要随着社会的发展,各种商家不断的追求低成本,而点阵电子显示屏的性价比越来越明显,而电子显示屏的关键就是单片机的运用。由于单片机价格的低成本、高性能,在自动控制产品中得到了广泛的应用。本设计利用atmel公司的at89s52单片机对点阵电子显示屏进行开发,设计了实现所需功能的硬件电路,应用汇编语言进行软件编程,并用实验板进行演示、验证。随着现代电子技术的发展,人们正处于一个信息时代。每天都要通过电视,广播,通信,互联网等多种每体获取大量的信息。而现代信息的存储和传输越来越趋于高科技化,led电子显示屏作为一个信息传递的媒介,在人们日常生活,生产中,起着不可替代的作用。在本文中对led显示屏的显示技术,做了全面的分析。以及国内外的最新动态和研究方向,并有大量的程序和电路图,以及各种核心器件的介绍,使研究更加深刻,易懂。泸州职业技术学院毕业论文 绪论目录摘要v1 绪论31.1 背景31.2 led显示屏的发展与应用31.3 本章小节42led显示方式53 系统硬件介绍83.1 单片机介绍8typ14oe153.3复位电路的分析183.4振荡电路223.5 驱动电路233.6显示电路243.7本章小节244 软件设计254.1单片机延时子程序254.2点阵的移动274.3主程序模块设计314.4 本章小节315 系统调试33附录a:实验板原理图34参考文献35 1 绪论1.1 背景随着微处理器和微型计算机的问世,加之超大规模集成电路的发展以及军事、通信、工业自动化、机电一体化技术的需求,使微型机向两个方向发展:一个是向高速、性能优异的高档微型机方向发展;另一个是向简单可靠、小巧便宜的单片机方向发展。单片机自1974年美国仙童公司生产出世界上第一块单片机f8,迄今已有二十多年了。由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、pc机外围以及网络通讯等广大领域。本文讨论的单片机点阵电子显示屏的核心是目前应用极为广泛的51系列单片机,配置了1616的显示屏,构成了一个可编程的led显示器,具有可靠性高,功能多、应用广泛等特点。不仅能满足所需要求而且还有很多功能可供扩展,有着广泛的应用领域。1.2 led显示屏的发展与应用 led显示器(屏)的优点,具有视角大、亮度高、色彩艳丽的特点,现已十分广泛的应用在体育场馆,大屏幕显示系统可以显示比赛实况及比赛比分、时间、精彩回放等;在交通运输行业,可以显示道路运行情况;在金融行业,可以实时显示金融信息,如股票、汇率、利率等:在商业邮电系统,可以向广大顾客显示通知、消息、广告,在商业领域可以显示新品信息、促销方式等等。具调查显示,人们接收的信息有23的信息是通过眼睛取得的。显示技术还应用于工业生产、军事、医疗单位、公安系统乃至宇航事业等国民经济、社会生活和军事领域中,并起着重要作用,显示技术已经成为现代人类社会生活的一项不可或缺的技术。1.3 本章小节本章主要介绍了课题背景和课题意义,对单片机的优点及结构作了简要叙述,也对本系统的应用及概况进行了说明。泸州职业技术学院毕业论文 系统硬件设计2 led显示方式2.1显示的步骤汉字显示屏用于显示汉字、字符及图像信息,在公共汽车、银行、医院及户外广告等地方都有广泛的应用。下面是简单的汉字显示屏的制作,由单片机控制汉字的显示内容。为了降低成本,使用了四块88的led点阵发光管的模块,组成了一个1616的led点阵显示屏,如图2.10所示。在这里仅做了四个汉字的显示,在实际的使用中可以根据这个原理自行的扩展显示的汉字,下面是介绍汉字显示的原理。 图2.10 四块88的led点阵组成1616的led点阵led驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。以1616点阵为例,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第1行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定的时间,然后熄灭;再送出第2行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;.第16行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。该方法能驱动较多的led,控制方式较灵活,而且节省单片机的资源。显示数据传输采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都已传输到位之后,这一行的各列才能并行地进行显示。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下,留给行显示的时间就太少了,以致影响到led的亮度。采用串行传输中列数据准备和列数据显示的时间矛盾,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一行的列数据。为了达到重叠处理的目的,列数据的显示就需要有锁存功能。对于列数据准备来说,它应能实现串入并出的移位功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串行移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。led点阵显示模块进行的方法有两种:(1)水平方向(x方向)扫描,即逐列扫描的方式(简称列扫描方式):此时用一个p口输出列码决定哪一列能亮(相当于位码),用另一个p口输出行码(列数据),决定该行上那哪个led亮(相当于段码)。能亮的列从左到右扫描完16列(相当于位码循环移动16次)即显示出一个完整的图像。(2)竖直方向(y方向)扫描,即逐行扫描方式(简称行扫描方式):此时用一个p口输出决定哪一行能亮(相当于位码),另一个p口输出列码(行数据,行数据为将列数据的点阵旋转90度的数据)决定该行上哪些led灯亮(相当于段码)。能亮的行从上向下扫描完16行(相当于位码循环移位16次)即显示一帧完整的图像。本设计应用的是第一种的扫描方法,即水平方向(x方向)扫描。每一个字由16行16列的点阵形成显示,即每个字均由256个点阵来表示,我们可以把每一个点理解为一个像素。一般我们使用的1616的点阵宋体字库,即所谓的1616,是每一个汉字在纵横各16点的区域内显示的。汉字库从该位置起的32字节信息记录了该字的字模信息。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。我们以水平方向(x方向)扫描显示汉字的“江”为例来说明其扫描原理,每一个字由16行16列的点阵组成显示,如图下的,如果用8位的at89s51的单片机来控制,由于单片机的总线为8位,一个字需要拆分成两个部分。一般我们把它分解成上部分和下部分,上部分由8*16的点阵组成,下部分也由8*16的点阵组成。在本例中单片机首先显示的是左上角的第一列的部分,即第0列的p00p07口。方向为p00到p07,显示汉字“江”的时候,p00到p04都是灭的,p05亮,即二进制00001000,转换为16进制为08h,如图2.11所示。上半部分第一列完成之后,继续扫描下半部分的第一列,为了接线的方便,我们仍设计成由上往下的扫描方式,即从p27向p20方向扫描,从上图可以看到,这一列所有的都不亮,所以代码为00000000,16进制为00h,然后单片机转向上半部的第二列,除了p05亮,其他的都不亮,即为00000100,16进制为04h,这一列扫描完成之后继续进行下半部分的扫描,除了p21亮,其他的为不亮,为二进制00100000,即16进制20h。2.2 本章小结 通过本章的的学习,能正确的理解led的显示方式,为后续的硬件和编程打好理论基础。3 系统硬件介绍3.1 单片机介绍单片机(microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器cpu、数据存储器ram、程序存储器rom、定时器/计数器和多种i/o接口电路。8051单片机的基本结构见图2。图2 8051单片机的基本结构8051系列的内部结构可以划分为cpu、存储器、并行口、串行口、定时器/计数器、中断逻辑几部分。(1)中央处理器8051的中央处理器由运算器和控制器构成,其中包括若干特殊功能寄存器(sfr)。算术逻辑单元alu能对数据进行加、减、乘、除等算术运算;“与”、“或”、“异或”等逻辑运算以及位操作运算。alu只能进行运算,运算的操作数可以事先存放到累加器acc或寄存器tmp中,运算结果可以送回acc或通用寄存器或存储单元中,累加器acc也可以写成a。b寄存器在乘法指令中可以用来存放一个乘数,在除法指令中用来存放除数,运算后b中为部分运算结果。alu主要用于完成二进制数据的算术和逻辑运算,并通过对运算结果的判断影响程序状态字寄存器psw中有关位的状态。 程序状态字psw是个8位寄存器,用来寄存本次运算的特征信息,用到其中七位。psw的格式如下所示,其各位的含义如表1。表1程序状态字pswcy:进位标志。在进行加法或减法运算时,若运算结果的最高位有进位或借位,cy=1,否则cy=0,在执行位操作指令时,cy作为位累加器。ac:辅助进位标志。在进行加法或减法运算时,若低半字节向高半字节有进位或借位, ac=1,否则ac=0,ac还作为bcd码运算调整时的判别位。f0:用户可设定的标志位,可置位/复位,也可供测试。rs1和rs0:工作寄存器组选择,如表2所示。表2 rs1和rs0工作寄存器组选择rs1rs0工作寄存器组片内ram地址00第0组 00h07h 01第1组08h0fh 10第2组10h17h 11第3组18h1fh ov:溢出标志。当两个带符号的单字节数进行运算,结果超出-128+127的范围时,ov=1,表示有溢出,否则ov=0表示无溢出。 p:奇偶校验标志。每条指令指行完毕后,都按照累加器a中“1”的个数来决定p值,当“1”的个数为奇数时,p=1,否则p=0。 psw中的d1位为保留位,对于8051来说没有意义,对于8052来说为用户标志,与f0相同。 控制器包括程序计数器pc、指令寄存器、指令译码器、数据指针dptr、堆栈指针sp、缓冲器以及定时与控制电路等。控制电路完成指挥控制工作,协调单片机各部分正常工作。程序计数器pc:当一条指令按pc所指向的地址从程序存储器中取出之后,pc的值会自动增量,即指向下一条指令。堆栈指针sp:用来指示堆栈的起始地址。80c51单片机的堆栈位于片内ram中,而且属于“上长型”堆栈,复位后sp被初始化为07h,使得堆栈实际上由08h单元开始。指令译码器:当指令送入指令译码器后,由译码器对该指令进行译码,cpu根据译码器输出的电平信号使定时控制电路产生执行该指令所需要的各种控制信号。数据指针寄存器drtr:它是一个16位寄存器,由高位字节dph和低位字节dpl组成,用来存放16位数据存储器的地址,以便对片外64kb的数据ram区进行读写操作。片内ram有256个字节,其中00h7fh地址空间是直接寻址区,该区域内从00h1fh地址为工作寄存器区,安排了4组工作寄存器,每组都为r0r7,在某一时刻,cpu只能使用其中任意一组工作寄存器,由程序状态字psw中rs0和rs1的状态决定。(2)存储器组织8051单片机在物理上有三个存储空间:片内数据存储器ram 、片外数据存储器ram 、程序存储器rom 。程序存储器rom地址空间为64kb,片外数据存储器ram也有64kb的寻址区,在地址上是与rom重迭的。8051单片机通过不同信号来选通rom或ram。当从外部rom中取指令时,采用选通信号psen,而从外部ram中读写数据时则采用读rd和写wr信号或来选通,因此不会因地址重迭而发生混乱。 片内ram的20h2fh地址单元为位寻址区,其中每个字节的每一位都规定了位地址。每个地址单元除了可进行字节操作之外,还可进行位操作。片内ram的80hffh地址空间是特殊功能寄存器sfr区,对于51子系列在该区域内安排了21个特殊功能寄存器,对于52子系列则在该区域内安排了26个特殊功能寄器,同时扩展了128个字节的间接寻址片内ram,地址也为80ffh,与sfr区地址重迭。8051的存储器组成结构如图3所示。图3 8051的存储器组成结构(3)管脚说明vcc:供电电压。gnd:接地。p0口(p0.0p0.7):该端口为漏极开路的8位准双向口,它为外部低8位地址线和8位数据线复用端口驱动能力为8个lsttl负载。p1口(p1.0p1.7):它是一个内部带上拉电阻的8位准双向i/o口,p1口的驱动能力为4个lsttl负载。p2口(p2.0p2.7):它为一个内部带上拉电阻的8位准双向i/o口,p2口的驱动能力也为4个lsttl负载。在访问外部程序存储器时,作为高8位地址线。p3口(p3.0p3.7):为内部带上拉电阻的8位准双向i/o口,p3口除了作为一般的i/o口使用之外,每个引脚都具有第二功能。p3口也可作为at89c51的一些特殊功能口,如下所示:p3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 /int0(外部中断0)p3.3 /int1(外部中断1)p3.4 t0(计时器0 外部输入)p3.5 t1(计时器1 外部输入)p3.6 /wr(外部数据存储器写选通)p3.7 /rd(外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一些控制信号。时钟电路引脚xtal1和xtal2: xtal1:接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部ttl时钟时,该引脚必须接地。 xtal2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部ttl时钟时,该引脚为外部时钟的输入端。地址锁存允许ale: 系统扩展时,ale用于控制地址锁存器锁存p0口输出的低8位地址,从而实现数据与低位地址的复用。外部程序存储器读选通信号psen:psen是外部程序存储器的读选通信号,低电平有效。程序存储器地址允许输入端ea /vpp: 当ea为高电平时,cpu执行片内程序存储器指令,但当pc中的值超过0fffh时,将自动转向执行片外程序存储器指令。当ea为低电平时,cpu只执行片外程序存储器指令。复位信号rst:该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。3.2零件介绍3.2.1发光二极管普通发光二极管的正向饱和压降为, 正向工作电流为maled的特性:1极限参数的意义(1)允许功耗pm:允许加于led两端正向直流电压与流过它的电流之积的最大值。超过此值,led发热、损坏。 (2)最大正向直流电流ifm:允许加的最大的正向直流电流。超过此值可损坏二极管。 (3)最大反向电压vrm:所允许加的最大反向电压。超过此值,发光二极管可能被击穿损坏。 (4)工作环境topm:发光二极管可正常工作的环境温度范围。低于或高于此温度范围,发光二极管将不能正常工作,效率大大降低2 电参数的意义(1) 正向工作电流if:它是指发光二极管正常发光时的正向电流值。在实际使用中应根据需要选择if在0.6ifm以下。 (2) 正向工作电压vf:参数表中给出的工作电压是在给定的正向电流下得到的。一般是在if=20ma时测得的。发光二极管正向工作电压vf在1.43v。在外界温度升高时,vf将下降。 (3)v-i特性:发光二极管的电压与电流的关系 在正向电压正小于某一值(叫阈值)时,电流极小,不发光。当电压超过某一值后,正向电流随电压迅速增加,发光。由v-i曲线可以得出发光管的正向电压,反向电流及反向电压等参数。正向的发光管反向漏电流ir10a以下。3.2.2译码器74hc595的介绍8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。 1 特点 8位串行输入 8位串行或并行输出 存储状态寄存器,三种状态 输出寄存器可以直接清除 100mhz的移位频率2 输出能力 并行输出,总线驱动 串行输出;标准 中等规模集成电路3 应用 串行到并行的数据转换。4 描述 595是告诉的硅结构的cmos器件, 兼容低电压ttl电路,遵守jedec标准。 595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。 数据在schcp的上升沿输入,在stcp的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(ds),和一个串行输出(q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能oe时(为低电平),存储寄存器的数据输出到总线。 5 参考数据符号参数条件typ单位hchcttphl/tplh传输延时shcp到q7stcp到qnmr到q7cl=15pfvcc=5v161714212019nsnsnsfmaxstcp到shcp最大时钟速度10057mhzcl输入电容notes 13.5 3.5pfcpdpower dissipation capacitance per package.notes2115 130 pfcpd决定动态的能耗,pdcpdvccf1+(clvcc2f0) f1输入频率,cl输出电容 f0输出频率(mhz) vcc=电源电压6 引脚说明符号引脚描述q0q715, 1, 7并行数据输出gnd8地q79串行数据输出mr10主复位(低电平)shcp11移位寄存器时钟输入stcp12存储寄存器时钟输入oe13输出有效(低电平)ds14串行数据输入vcc16电源 7 功能表 输入输出功能shcpstcpoemrdsq7qnllncmr为低电平时紧紧影响移位寄存器llll空移位寄存器到输出寄存器hllz清空移位寄存器,并行输出为高阻状态lhhq6nc逻辑高电平移入移位寄存器状态0,包含所有的移位寄存器状态移入,例如,以前的状态6(内部q6”)出现在串行输出位。lhncqn移位寄存器的内容到达保持寄存器并从并口输出lhq6qn移位寄存器内容移入,先前的移位寄存器的内容到达保持寄存器并输出。 h高电平状态 l低电平状态上升沿下降沿z高阻nc无变化无效当mr为高电平,oe为低电平时,数据在shcp上升沿进入移位寄存器,在stcp上升沿输出到并行端口。3.2.3译码器74hc138的介绍 cd74hc138 ,cd74hc238和cd74hct138 , cd74hct238是高速硅栅cmos解码器,适合内存地址解码或数据路由应用。74hc138 作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统,在 高性能存贮器系统中,用这种译码器可以提高译码系统的效率。将快速赋能电路用于高速存贮器时,译码器的延迟时间和存贮器的赋能时间通常小于存贮器的典型存取时间,这就是说由肖特基钳位的系统译码器所引起的有效系统延迟可以忽略不计。hc138 按照三位二进制输入码和赋能输入条件,从8 个输出端中译出一个 低电平输出。两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器,扩展成24 线译码器不需外接门;扩展成32 线译码器,只需要接一个外接倒相器。在解调器应用中,赋能输入端可用作数据输入端。 74hc138引脚图1,2,3 a0-a1 地址输入端4,5 /e1,/e2 输入使能端(低电平有效)6 e3 输入使能端(高电平有效)8 gnd 接地端15, 14, 13, 12, 11, 10, 9, 7/y0 - /y7输出端(低电平有效)16 vcc 电源 74hc138功能表3.3复位电路的分析复位信号rst高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。复位的实现通常用2种方式:开机上电复位和外部手动复位,本设计用的是外部手动复位。电路图6如下:图6 单片机复位图图7 单片机最小应用系统原理图注:该最小系统由按键复位reset电路、晶体振荡电路以及i/o接口电路组成。硬件电路设计本系统硬件部分主要由:51最小系统、16*16点阵模块、列控制模块、行控制模块这几个模块组成。各模块的原理图如下:我们运用的是将四个8*8的点阵焊接成为一个16*16的点阵屏16*16点阵模块列控制模块行控制模块51最小系统3.4振荡电路单片机的定时控制功能是由片内的时钟电路和定时电路来完成的,而片内的时钟产生有两种方式:一种是内部时钟方式;一种是外部时钟方式,如图3-3(a)、(b)所示。 图3-3 hmoc型mcs51单片机时钟产生方式(a) 内部振荡器方式 (b)外部振荡器方式采用内部时钟方式时,如图3-3(a)所示。片内的高增益反相放大器通过xtal1、xtal2外接作为反馈元件的片外晶体振荡器(呈感性)与电容组成的并联谐振回路构成一个自激振荡器,向内部时钟电路提供振荡时钟。振荡器的频率主要取决于晶体的振荡频率,一般晶体可在1.212mhz之间任选,电容c1、c2可在530pf之间选择,电容的大小对振荡频率有微小的影响,可起频率微调作用。采用外部时钟方式时,如图2-4(b)所示。外部振荡信号通过xtal2端直接接至内部时钟电路,这时内部反相放大器的输入端xtal1端应接地。通常外接振荡信号为低于12mhz的方波信号。本电路选用的是内部振荡器方式,如图3-3(a)所示。选用内部振荡器比选用外部时钟电路简单并且易于实现。最重要的是此电路易于调试,而且精度高。3.5 驱动电路3.5.1 驱动器的基本结构 图3-7 74ls04的内部结构本文采用的驱动器是74ls04(也就是六反相器),内部结构框图如图3-7所示。此集成片的内部结构非常简单,内部由6个非门构成,主要达到驱动的作用。因显示器是共阳极的,需要一定的电流才能达到显示的作用,而单片机输出为低电平,不能直接对显示器进行驱动,需要驱动电路,也就是六个非门对单片机输入的信号进行反相后,得到所需的高电平,提供给显示器,使显示器能够正常工作,因此达到了驱动的作用。3.5.2驱动控制原理用于发布消息、显示汉字的点阵式led显示屏通常由若干块led点阵显示模块组成;用于显示汉字、图形的8*8单色led显示点阵模块,每块有64个led器件。为了减少引脚且便于封装,各种led显示点阵模块都采用阵列形式排布,即在行列线的交点处接有显示led器件。因此,led点阵显示模块的显示驱动只能采用动态驱动方式,每次最多只能点亮一行led(共阳形式led显示点阵模块)或一列led(共阴形式led显示点阵模块)。通过单片机总线操作控制来完成对每一个led点阵显示模块内每个led显示点的亮、暗控制操作。以此类推,可实现整屏led点阵的亮、暗控制,从而实现led显示屏汉字或图象的显示控制操作。 由此可知,选用此驱动电路,可以很方便的达到所需要的驱动电流,使显示器能够正常发光。同时,使整个电路简单化,易于实现。3.6显示电路在数字系统和装置中,经常需要把数字、文字和符号等的二进制编码,翻译成人们习惯的形式直观的显示出来,以便于查看和对话。在计算机中,汉字以内码的形式进行表示、交换、处理。需要显示时,由内码转换成区位码,利用区位码在字库中提取要显示汉字的字模,然后根据字模信息在屏幕上以画点的方法显示出来 。用led点阵模块代替计算机屏幕,则每个led对应字模中的一个位,在控制器的控制下,让led根据字模信息亮或灭,就可显示汉字。3.7本章小节本章主要对芯片作了介绍,对其内存单元作了详细说明,并对系统硬件(实验板)的结构框图和各功能电路作了说明,以及这些电路在本设计中的用途。泸州职业技术学院毕业论文 系统软件设计4 软件设计4.1单片机延时子程序延时程序在单片机编程中使用非常广泛,也很重要,在本毕业设计的程序中用到了延时子程序,所以在此详细的叙述一下。在弄清延时程序指令的用法之前,要清楚的了解延时程序的基本概念,机器周期和指令周期的区别和联系、相关指令的用法等。 我们知道程序设计是单片机开发最重要的工作,而程序在执行过程中常常需要完成延时的功能。例如在本设计中,行向的扫描要控制每行的扫描时间,还有所有的字移动有一定的时间间隔,而在所有的字移动一遍结束的一瞬间到下一遍移动开始的一瞬间要有延时,这时的延时可以和移动的时间相同以保持移动的连贯性,也可以不同作为每次从头开始的停顿,在上述就可以通过延时程序来完成。 1. 机器周期和指令周期 (1)机器周期是指单片机完成一个基本操作所花费的时间,一般使用微秒来计量单片机的运行速度,51单片机的一个机器周期包括12 个时钟振荡周期,也就是说如果51 单片机采用12mhz 晶振,那么执行一个机器周期就只需要1s;如果采用的是6mhz 的晶振,那么执行一个机器周期就需要2 s。 (2)指令周期是指单片机执行一条指令所需要的时间,一般利用单片机的机器周期来计量指令周期。 在51 单片机里有单周期指令(执行这条指令只需一个机器周期),双周期指令(执行这条指令只需要两个 机器周期),四周期指令(执行这条指令需要四个机器周期)。除了乘、除两条指令是四周期指令,其余均 为单周期或双周期指令。也就是说,如果51 单片机采用的是12mhz 晶振,那么它执行一条指令一般只需 12 微秒的时间;如果采用的是6mhz 晶振,执行一条指令一般就需24微秒的时间。以12mhz晶振为例,指令周期、机器周期与时钟周期的关系是: 指令周期:cpu执行一条指令所需要的时间称为指令周期,它是以机器周期为单位的,指令不同,所需的机器周期也不同。 时钟周期:也称为振荡周期,一个时钟周期晶振的倒数。 mcs-51单片机的一个机器周期=6个状态周期=12个时钟周期。 mcs-51单片机的指令有单字节、双字节和三字节的,它们的指令周期不尽相同,一个单周期指令包含一个机器周期,即12个时钟周期,所以一条单周期指令被执行所占时间为12(1/12000000)=1s。 了解以上概念后,那么可以依据单片机器件手册中89c51的指令执行周期和其所用晶振频率来完成需要精确延时时间的延时程序。 2. 延时指令 在单片机编程里面并没有真正的延时指令,从上面的概念中我们知道单片机每执行一条指令都需要一 定的时间,所以要达到延时的效果,只须让单片机不断地执行没有具体实际意义的指令,从而达到了延时 的效果。 (1)数据传送指令 mov 数据传送指令功能是将数据从一个地方复制、拷贝到另一个地方。 如:mov r7,#80h ;将数据80h 送到寄存器r7,这时寄存器r7 里面存放着80h,就单这条 指令而言并没有任何实际意义,而执行该指令则需要一个机器周期。 (2)空操作指令 nop 空操作指令功能只是让单片机执行没有意义的操作,消耗一个机器周期。 (3)循环转移指令 djnz 循环转移指令功能是将第一个数进行减1 并判断是否为0,不为0 则转移到指定地点;为0 则往下执行。 如:djnz r7,kk ;将寄存器r7 的内容减1 并判断寄存器r7 里的内容减完1 后是否为0,如果 不为0 则转移到地址标号为kk 的地方;如果为0 则执行下一条指令。这条指令需要2个机器周期。 循环转移指令(djnz )除了可以给定地址标号让其跳转外,还可以将地址标号改成$,这样 程序就跳回本指令执行。例如: djnz r7,$ ;r7 内容减1 不为0,则再次执行本指令;为0 则往下执行,当r7 的值改为10 时,则执行完该条程序所需的时间为2*10=20 s。利用以上三条指令的组合就可以比较精确地编写出所需要的延时程序。4.2点阵的移动以下以1616点阵为例介绍点阵的移动。要显示一个字符,该字符的点阵数据可以列向(纵向)16点组字,又可以行向(横向)16点组字。无论哪一种组字方法,都既可以显示字符的水平方向的移动,又可以显示竖直方向的移动。4.2.1显示字符的左右移动(1)列扫描方式左移动:列向组字显示字符水平方向的移动(左滚动) 在这里有两个方法: 方法1:延长数组法。将原来字符点阵数组的16个数据重复一遍延长,点阵数组的数据个数为32个。每扫描仪帧取8个数据显示,下一帧取数要在数组中后移一个数取数。循环一遍扫16帧。可以假想有两块1616的点阵模块(共32帧)水平平行排列,用一个恰好能罩住8列点阵的中空方框去罩这个点阵,第1(第1帧)罩住最左边数起第一列开始的16列,就扫描显示这16列;第2次(第2帧)使方框右移一列,罩住做左边数起第2列开始的16列,就扫描显示这16列;这样每扫描完一帧使方框右移一列,最后第16次(第16帧)时,罩住左边数起的第16列开始的16列,就扫描显示这16列。如此完成16帧画面的扫描显示,也就完成了整个一次移动循环扫描、之后反复循环,即可呈现显示字符沿水平向左移动的图像,如图2.13所示。 图2.13 方框图法左右移动示意图因为是列向组字(列扫描方式,点阵数据为行码,上边为地位下面为高位),希望显示移动的一个字符,第1次扫描从行码的点阵数组中取第116个数据,送行码输出口,对应于这8个数据,同时用列码输出口输出列码,分别控制第116列。扫描完前16个数据之后,第2次扫描从点阵数组中取第214个数据(第17个数据与地1个数据同),送行码输出口,对应于这16个数据,同时用列码输出口输出列码,仍分别控制扫地116列。第3次扫描从点阵数组中取第318个数据(第18个数据码与地2个数据码相同)扫描;如此实现字符向左移动。以上完成一个图形移动的方法,也可以看成是移动16个不同的字形。如图2.13所示,首先扫描第一个字型,同样是16行,16次扫描,16次显示;完成一个字型的扫描以后,再扫描第二个字型;完成第二个字型的扫描之后,再扫描第三个字型依此类推,即可产生该文字的左移的感觉。 图2.13字形法左右移动示意图假设如果原本某个汉字的字型(第一个字型),其编码为:00h,10h,20h,30h,40h,50h,60h,70h,80h,90h,0a0h,0b0h,0c0h,0d0h0e0h,0f0h;第二个字型的编码为:10h,20h,30h,40h,50h,60h,70h,80h,90h,0a0h,0b0h,0c0h,0d0h0e0h,0f0h, 00h,也就是把第一个字型的编码中,第1行显示数据,变为第2行显示数据;第2行显示数据,变成第3行显示数据;第3行显示数据,变成第4行显示数据;第4行显示数据,变成第5行显示数据以此类推。当第一个字型扫描显示完成之后,就进行这样的动作调整,以产生第二个字型的编码。同样的,当第二个字型扫描完成之后,就进行这样的调整动作,以产生第三个字型的编码。这个调整动作时先将16个编码根据序填入存储器,例如第1行编码存入20h,第二行编码存入21h要进行左移调整时,则先将20h地址的数据转移到36h地址,再将21 h地址的数据转移到20 h地址,将22 h地址的数据转移到21 h地址,将23 h地址的数据转移到22 h地址,将24 h地址的数据转移到23 h地址,将25 h地址的数据转移到24 h地址,将26 h地址的数据转移到25 h地址,将27 h地址的数据转移到26 h地址,将28 h地址的数据转移到27h地址方法2:数组数据“循环左移法” (适合用c语言编写,在此仅作了解)。注意,不是把二进制数据按位循环左移,而是把数组中的数据按其在数组中的位置循环左移。具体的方法入下。原字符点阵数组中的16个数据不延长,但下一帧取的16个数据,是把上一帧的16个数据的位置(先后顺序)“循环左移”一次,即原来第2个移到第1个,原来第3个移到第2个原来第1个移到第16个。实现数组数据循环左移的方法有:第一,遍一个“数组数据循环左移子程序”,该子程序每执行一次可把数组中的额数据循环左移一次,主程序中先调用一次该子程序,时数组中的数据循环左移这一次,然后再从数组中取数据显示。当数组中的额数据个数较多时,片内ram将不够大,必须将数组定义在片外ram中。第二,不用子程序,而是用变量判断控制实现数组数据的循环左移。(2) 行扫描方式左移:行向组字显示字符水平方向的左移。如果是行向组字(行扫描方式,点阵数据为列码,左边为敌位右边为高位),希望显示向左移动的一个字符,第1次扫描从列码的点阵数组中取第116个数据,送到列码输出口,对应的8个数据,同时用行码输出口输出行码,分别控制扫描第116行。扫描完成这16个数据之后,第2次扫描的第16个数据,应将原来第1次扫描的16列码每一个都循环右移一位(如果是显示右移则应循环左移),再进行扫描。如此,每进行下一次扫描,把上一次扫描的16个列码都循环
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025标准版合同协议样本
- 建材商场合同范本
- 2025年个体承运快递服务合同
- 2025物流公司合同范本
- 品牌整合合同范本
- 2025写字楼餐厅外包合同范本
- 咨询房屋转让合同范本
- 平房防水劳务合同范本
- 2025技术合同网络平台服务使用许可合同
- 货运合同范本简单版
- 2025年秋季开学第一课《翻越你的浪浪山》课件
- 住所经营场所使用证明
- 联想AIO超融合解决方案
- 锡焊机理与焊点可靠性分析
- 北京市工业污染行业生产工艺调整退出及设备淘汰目录(2022年版)
- 3.盖立春-课堂教学行为研究的“元问题”研究
- 机电工程施工监理管理、检验和交工评定用表
- GB/T 33982-2017分布式电源并网继电保护技术规范
- 光电及光化学转化原理与应用电化学全册配套课件
- 压力性损伤预防及处理课件
- 【2020】高中英语人教版必修一词汇 词性转换
评论
0/150
提交评论