返回
单芯片应用实习报告范文

单芯片应用实习报告范文

时间:2013-6-13 13:16:24  [下载该文章]  [会员注册]
班级:二技电一甲姓名:林桀民学号:ad89017相关知识mcs51是intel公司所设计的8051系列单芯片总名称在mcs51这个大家族里较具知名度的编号有805187518031实际上这些不同编号的单芯片都使用相同的核心cpu与指令及只是在制造ic时给予不同的周边设计分别赋予这些ic一个特别编号主要功能:mcs51系列单芯片的主要功能列举如下专为控制应用所设计的8位cpu有完整的单位元逻辑运算指令,具有布尔运算能力有32条(4个port)双向且每条都可以被单独寻址的i/o内部有两个16位timer/counter有一个通信用的全双工uart(串行i/o)可接受5个中断源且有2层优先权的中断结构内部有时脉震荡器(最高频率可到12mhz)内部有4k的程序内存(rom),128byte数据存储器(ram)可在外部扩充到64k程序内存(eprom)可在外部扩充到64k数据存储器(ram)8051内部结构方块图8051接脚图与功能(40):若系统读取外部程序,接低电位/ea/vpp/psen高电位动作,系统重置,pc回到0000hreset(9脚)串行通讯输出/入(p3.0,p3.1)rd/td外部中断输入(p3.2,p3.3)int0/1计时计数器的输入(p3.4,p3.5)t0/t18位i/o端口,外接内存可做地址线p2.0~p2.7地址闩锁致能信号ale/prog外部数据的读取/写入(p3.7,p3.8)rd/wr8位i/o端口,p1.0~p1.78位i/o端口,外接内存做数据地址线p0.0~p0.7时脉反相放大器输出/入端,接石英振荡器tal1/2(19/18脚)电源(5v)/接地vcc(40脚)/vss(20脚)功能接脚8051基本电路图:基本电路中有振荡电路及开机重置电路振荡电路:8051芯片内部有一个振荡器,可以当作cpu的时脉,再设计时脉源时,若使用芯片内部的振荡器,只要在18、19脚两脚间接振荡频率范围3.5m~12mhz的石英振荡晶体或陶质共振器,并各自接20pf~50pf的电容。重置电路:任何微电脑系统均有硬件重置功能,硬件重置主要用来确保cpu在开机时从程序的预定起始地址开始执行及当系统当机时使系统能重新开始,8051的重至信号输入脚为第9脚,此输入脚为高电位动作,且高电位至少要维持2个机械周期也就是24个振荡周期。开机时rst脚电位为高电位促使系统重置,利用电容充电效应使rst接脚电位降成低电位,8051完成重置动作固定到程序内存地址0000h开始执行。8051内存介绍:8051的内存包含程序内存(rom)和数据存储器(ram)两种,他们分别有不同的用途,程序内存的作用是在储存所要执行的程序,而数据存储器用来存放在程序执行过程中所产生的数据,由于8051读取程序内存有专用控制线psen,所以程序内存和数据存储器二者选址时完全独立不相干。程序内存(rom)结构:89c51的4k程序内存中,有下列几个重要地址,若没有用到,就作一般程序内存使用,单芯片系统程序储存在程序内存(rom),一般8051/52提供4~8kbytes程序内存。使用者将编辑好的程序,经过组译(assembler)、连结(link)后,烧录到单芯片的rom。如果采用89c51芯片,可重复烧录多次,每次烧录可将前一次烧录的程序自动清除。若采用8031芯片,由于本身没有内建rom,所以必须采外部扩充内存timer0中断服务程序地址000bhtimer1中断服务程序地址001bhuart串行通讯服务程序地址0023h功能地址int1外部中断服务程序地址0013hint0外部中断服务程序地址0003hreset程序开始执行地址0000h程序内存配置图单芯片数据存储器(ram)结构:8051的数据存储器是随机存取的,使用者随时读取或写入数据,通常是用来当程序执行时存放数据的缓存器。scon/sbuf1byte2(98h/99h)psw/acc1byte2(d0h/e0h)特殊缓存器(sfr)128byte80h~ffh功能长度地址tcon/tmod/tl/th6byte(88h~8dh)使用者直接寻址可设定sp建立堆栈区80byte30h~7fh个别位数据寻址8bittimes1620h~2fhr0~r7四个缓存器库8bytetimes400h~1fh数据存储器(ram)是单芯片在执行程序时,储存处理数据的地方。一般8051/52提供128~256bytes数据存储器。其中又可将它们区分为下列几项功能的缓存器与内存区:n[00~1fh]的32个字节可分为四个缓存器库,分别为rb0、rb1、rb2、rb3。每个缓存器库有8个缓存器,分别为r0、r1、r2、r3、r4、r5、r6、r7。n[20~2fh]的16位(2bytes)可做直接位寻址,例如setb20h.0、clr20h.1。n[30~7fh]80个字节的内存区又称为使用者ram,可以直接寻址存取资料,同时也可以由使用者透过设定sp,自定堆栈数据区。n[80~ffh]的128个字节数据,8031/8051芯片没有提供。在8031/8052芯片可做间接寻址数据区,或是可直接寻址的状态缓存器(sfr)使用。其中包括p0、p1、p2、p3端口的对应缓存器,以及稍候我们作uart通讯功能会用到的scon串行控制缓存器、与定时器/计数器控制缓存器。熟悉这些内存的结构,对撰写单芯片程序会有很大的帮助。读者想自行撰写或修改单板微电脑的系统监督程序,最好能下点工夫,将这些内存的功能与结构做充分的了解。中断向量地址:由于这些内部程序内存的地址都与中断有关,所以我们也称这些地址为中断向量,在撰写程序时,若程序本身没有利用到中断的功能,则以下七个特别的地址可视为一般程序内存地址来处理,但是若程序中使用到某个中断时,则该中断对应的地址,就必须保留,因为,只要该中断发生时,接下来被执行的就是位于该地址的指令,下列这些地址是各种中断服务程序的进入点。功能地址中断串行埠中断向量0023huart计时计数中断timer2向量002bhtimer2计时计数中断timer1向量001bhtimer1计时计数中断timer0向量000bhtimer0外部中断int1向量0013hint1外部中断int0向量0003hint0系统重置启始地址0000hreset单芯片指令集:数据寻址指令:累加器,缓存器,直接,间接内存寻址与i/o端口间的数据转移。算术运算指令:数据做加(add)、减(sub)、乘(mul)、除(div)运算,或加一(inc),减一(dec)等运算。逻辑运算指令:数据做and(anl)、or(orl)、or(rl)运算,与rr、rl、rrc、rlc位旋转功能。布尔代数运算指令:位数据的清除与设定,如setb,clr。或位数据的运算anlc,bit.等。程序流程控制:循环,呼叫子程序(call),中断,条件判断的跳跃。如jmp,jz,cjnz,djnz,ret.等指令。范例应用:名称:单开关控制灯号变化,以指拨开关以控制程序流向,造成灯号的变化动作要求:接于阜脚p2.7上之指拨开关拨至on位置时,p2.7阜脚为低电压,接于p0之8个led灯不停的作霹雳灯之动作,直制止拨开关拨至off位置时,p2.7为高电位,led灯号变成奇偶位置不停地交互亮灭。电路图:程序:org00hstart:jbp2.7,loop2;检查p2.7,若为1则跳至loop2,否则往下执行loop1:movdptrtable;设定表格之起始为止于dptrmovr3,07h;设定表格数据之地址组数于r3mova,00h;设定偏移量起始地址值0于a缓存器l1:jbp2.7,loop2;在loop1循环中,依据dptr及amovr0,a;依序由表格取出七个字节数据送movca,a+dptr传至p0作霹雳灯动作且检查p2.7之变movp0,a;化,以决定是否跳出loop1循环movr5,5acalldelaymova,r0incadjnzr3,l1ajmploop1;无条件跳出loop1loop2:mova,55h;在l2循环中,不停的作奇偶灯交互换互亮灭的动作并检查p2.7之变化,已决定是否跳出l2循环l2:jnbp2.7,loop2movp0,amovr5,5acalldelayrla,ffhajmpl2delay:movr3,38h;子程序,延迟时间=r520msd1:movr6,f9hdjnzr6,djnzr7,d1djnvr5,delayrettable:db7eh,0bdh,0dbh,07eh;霹雳灯之表格数据db0dbh,0bdh,7ehend

>

相关推荐