版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、全开放式单片机教学实验系统的设计目 录一.设计题目:全开放式单片机教学实验系统的设计2二.设计要求22.1设计要求22.2主要技术特性2三.全开放式单片机教学实验系统的设计作用与目的2四.所用设备及软件4五.全开放式单片机教学实验系统的设计方案45.1全开放式单片机教学系统的工作状态45.2各功能电路程序实现原理分析65.2.1地址驱动及译码电路工作原理65.2.2键盘与显示电路工作原理65.2.3存储器电路工作原理75.2.4展槽电路工作原理85.3 8031单片机性能介绍8六.全开放式单片机教学实验系统的硬件设计106.1地址驱动及译码电路设计106.2存储器电路设计126.2.1存储器置
2、数功能136.2.2块移动功能146.2.3.EEPROM写入功能146.3 键盘与显示电路设计156.3.1显示电路156.3.2键盘电路166.4 PC总线扩展槽电路16七.全开放式单片机教学实验系统的软件设计167.1系统软件设计的主要内容167.2系统的流程设计167.2.1系统主程序流程图177.2.2寄存器读/写处理流程图217.2.3用户开始、停止系统程序流程图22八.实验调试结果238.1仿真工具238.2系统调试方法以及运行效果24九.设计中的问题及解决方法24十.心得体会25十一.参考文献26十二.附录27附录1:全开放式单片机教学实验系统的结构电路原理图27附录2:程序清
3、单30一.设计题目:全开放式单片机教学实验系统的设计二.设计要求2.1设计要求 设计由单片机控制的全开放式教学实验系统。电路分为地址驱动及译码电路、存储器电路、键盘与显示电路、扩展槽电路等。2.2主要技术特性(1)中央处理单元为MCS-51系列单片机(2)晶体振荡器频率6MHZ. (3)该系统有两片8KB的RAM存储器(6264),一片8KB的EPROM存储器(2764)。(4) 系统的监控程序固化在2764内。(5) 显示器有6个LED数码管构成,通常左边4位显示存储地址或寄存器代号,右边两位显示相对应的数据。(6) 地址总线、数据总线和部分IO控制型号都和计算机的PC总线兼容,用于PC机
4、的一些IO接口板可与该系统直接连接(7) 设置了29个键的键盘,包括16个数字键,12个命令建和一个复位键。三.全开放式单片机教学实验系统的设计作用与目的单片机具有成本低、体积小、可靠性高、具有高附加值、通过更改软件就可以改变控制对象等优点,单片机越来越成为电子工程师设计产品时的首选器件之一。因此拥有一块单片机开发板对单片机学习具有着极其重要的意义。但是单片机学习效果的优劣直接取决于单片机的选择,C51系列单片机内部具有128字节RAM、5个中断源、32条I/O口线、2个16位定时器、4KB的程序存储器、一个全双工异步串行口。本开发板选择具有ISP在线编程功能的S51单片机,该单片机不需要烧写
5、器,可在开发板上ISP在线编程,具有广泛的应用前景。本课题设计的S51单片机开发板,具有一般开发板通用结构,并基于硬件进行相关软件设计。利用程序开发语言开发程序并实现ISP在线下载到单片机,无需配置单独的下载器。单片机使用ISP在线下载程序,加快了程序设计者调试的进度,使设计者所设计的程序尽快得到验证。通过对开发板上的模块进行实验,可以提高针对不同硬件进行编程的能力,同时通过实验现象对所用的硬件也有了更深一步的认识,因此该开发板具有一定的实用价值和现实意义。 开发板系统的扩展和配置应遵循以下设计原则: (1)系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以便进行二次
6、开发; (2)硬件结构应结合应用软件方案一并考虑。硬件结构与软件方案会产生相互影响,考虑的原则是:软件能实现的功能尽可能由软件实现,以简化硬件结构。但必须注意,由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间;(3)系统中的相关器件要尽可能做到性能匹配。如选用CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应尽可能选择低功耗产品; (4)可靠性及抗干扰设计是硬件设计必不可少的一部分,它包括芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等;(5)单片机外围电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作不可靠,可通过增设线驱动器增强驱动能力或减少芯片功耗来降低总线
7、负载; (6)尽量朝“单片”方向设计硬件系统。系统器件越多,器件之间相互干扰也越强,功耗也增大,也不可避免地降低了系统的稳定性。(7)尽可能选择典型电路,并符合单片机常规用法。为硬件系统的标准化、模块化打下良好的基础;四.所用设备及软件 名称数值个数单片机仿真器或程序固化设置1PC机1803116264及相似芯片若干键盘28C1,C2100f,0.1uf若干七段数码管6电阻若干万用表174LS138274LS08,4若干五.全开放式单片机教学实验系统的设计方案5.1全开放式单片机教学系统的工作状态1、待命状态0 在该状态下,数码管显示“HB51”,并且最左的“H”是闪动的。在系统接通电源自动复
8、位或按下RESET键后都可使该系统处于待命状态0。在大多数情况下,按MON键也可使HB-51B进入待命状态0。2、待命状态1 在该状态下,数码管显示16位数字,数字中间没有间隔,且第一位会不断闪动。在待命状态0时按下数字键便进入待命状态1.此外,执行用户程序时遇到断点、单步执行、用MON键中止程序等都会使HB-51B进入待命状态1。3、存储器读/写状态 在数码管上显示6位数字,第5位或第6位数字不断闪烁。4、寄存器读/写状态 显示5位数字,第1位与第2位数字之间有空格(不显示),后4位数字中有一位不断闪动。闪动的数字起到光标的作用,表示若再次按数字键,它就被该键所标的数字代替。 在监控程序的管
9、理下,除复位键以外,其他键都有自动连续的功能,持续按键0.8秒以上,就会产生连续按键的效果。 在任何时刻按下复位键RESET,都会迫使HB-51B进入初始状态(与上电自动复位作用相同),即进入待命状态0。下两种情况不出现光标:在待命状态1而数码管上显示的数字不够6位,即右边有空格(不显示的位)时,光标的位置实际在空格上,所以这是观察不到光标。十进制/十六进制数字转换时,新送入的数字总是处于最后一位,原有的数字向左移动一位,所以不必再设光标。若系统原来处于待命状态0,则按下任一数字键后,就是系统进入待命状态1,待命状态1是显示数字,待命状态0是显示“HB-51B”,这是两者最明显的区别,持续按下
10、任一数字键在0.8秒以上,HB-51B将进入连续按键功能,会连续向数码管上写(显示)该数字。在任何时候按下MON键,均可迫使HB-51B进入待命状态0。用MON键可进行下操作:清除已送入数码管的数字:退出其他操作状态,例如退出存储器读写状态,寄存器读写状态等:强迫中止用户程序的执行。除了最后一种操作外,按下MON键均可使计算机返回待命状态0.在用户程序执行时,按下MON键可立刻停止用户程序的执行,并在数码管上显示中断的程序地址以及当前累加器A内容,使系统处于待命状态1。再按一次MON键才返回到待命状态0。在程序终止时,用户程序所有CPU寄存器的内容都被送入用户程序映像区保护起来,通过寄存器读写
11、命令,可查看各寄存器的内容。按MON键不会影响用户存储区,寄存器的内容及已设置的断点。5.2各功能电路程序实现原理分析如图5-1 系统模块组成框图模块组成框图如图5-1所示,电路分为地址驱动及译码电路、存储器电路、键盘与显示电路、扩展槽电路等 。其中主要的芯片是8031。5.2.1地址驱动及译码电路工作原理(1)地址驱动及译码电路工作原理单片机教学系统的地址驱动及译码电路工作原理图,在图中还给出了系统的控制核心8031CPU。P0是低8位地址与8位数据的分时复用口,使用74LS373(U2)可将两者分离。从U2的Q端输出低8位地址A0A7,P2口输出的高8位地址中的低5位经74LS3
12、67(U16)驱动,得到A8A键盘与显示电路工作原理 16个数字键分别表示0F16个十六进制数。寄存器也用数字键表示,十六个数字键分别代表CPU中的通用寄存器(或寄存器对)和3个扩展功能专用寄存器,寄存器的名称标在数字键的上方。12个命令键及复位键的功能如下:(1) FUNC/DEL:扩展功能/删除一字节;(2) XRAM/INS:数据存储器扩展/插入一个字节;(3) HEX/GTBP:十六进制切换/断电查询;(4) DEC/STBP:十六进制数切换/断点设置;(5) MEM/SEEK:存储器读/写/数据串查找;(6) REG/OFST:寄存器读/写/偏移量计算;(7) USR
13、A/LAST:用户定义启动地址/读/写上一个字节;(8) USER/NEXT:用户定义/读/写下一个字节;(9) EXEC:连续执行程序;(10) SCAL:单步调用;(11) STEP:单步执行;(12) MON:返回监控;(13) RESET:系统硬件。5.2.3存储器电路工作原理 存储器是具有“记忆”功能的设备,它用具有两种稳定状态的物理器件来表示二进制数码“0”和“1”,这种器件称为记忆元件或记忆单元。记忆元件可以是磁芯,半导体触发器、MOS电路或电容器等。位(bit)是二进制数的最基本单位,也是存储器存储信息的最小单位,8位二进制数称为一个字节(byte)。当一个数作为一个整体存入或
14、取出时,这个数叫做存储字。存储字可以是一个字节,也可以是若干个字节。若干个忆记单元组成一个存储单元,大量的存储单元的集合组成一个存储体(MemoryBank)。为了区分存储体内的存储单元,必须将它们逐一进行编号,称为地址。地址与存储单元之间一一对应,且是存储单元的唯一标志。应注意存储单元的地址和它里面存放的内容完全是两回事。存储器在计算机中处于不同的位置,可分为主存储器和辅助存储器。在主机内部,直接与CPU交换信息的存储器称主存储器或内存储器。在执行期间,程序的数据放在主存储器内,各个存储单元的内容可通过指令随机访问,这样的存储器称为随机存取存储器(RAM)。另一种存储器叫只读存储器(ROM)
15、,里面存放一次性写入的程序或数据,仅能随机读出。RAM和ROM共同分享主存储器的地址空间因于结构、价格原因,主存储器的容量受限。为满足计算的需要而采用了大容量的辅助存储器或称外存储器,如磁盘、光盘等。存储器的特性由它的技术参数来描述。(1)存储容量:存储器可以容纳的二进制信息量称为存储容量。主存储器的容量是指用地址寄存器(MAR)产生的地址能访问的存储单元的数量。如N位字长的MAR能够编址最多达2N个存储单元。一般主存储器(内存)容量在几十K到几M字节左右;辅助存储器(外存)在几百K到几千M字节。(2)存储周期:存储器的两个基本操作为读出与写入,是指将信息在存储单元与存储寄存器(MDR)之间进
16、行读写。存储器从接收读出命令到被读出信息稳定在MDR的输出端为止的时间间隔,称为取数时间TA;两次独立的存取操作之间所需的最短时间称为存储周期TMC。半导体存储器的存储周期一般为100ns-200ns(3)存储器的可靠性:存储器的可靠性用平均故障间隔时间MTBF来衡量。MTBF可以理解为两次故障之间的平均时间间隔。MTBF越长,表示可靠性越高,即保持正确工作能力越强。(4)性能价格比:性能主要包括存储器容量、存储周期和可靠性三项内容。性能价格比是一个综合性指标,对于不同的存储器有不同的要求。对于外存储器,要求容量极大,而对缓冲存储器则要求速度非常快,容量不一定大。因此性能/价格比是评价整个存储
17、器系统很重要的指。5.2.4展槽电路工作原理扩展插槽是主板上用于固定扩展卡并将其连接到系统总线上的插槽,也叫扩展槽、扩充插槽。扩展槽是一种添加或增强电脑特性及功能的方法。例如,不满意主板整合显卡的性能,可以添加独立显卡以增强显示性能;不满意板载声卡的音质,可以添加独立声卡以增强音效;不支持USB2.0或IEEE1394的主板可以通过添加相应的USB2.0扩展卡或IEEE1394扩展卡以获得该功能等等。 5.3 8031单片机性能介绍(1)主电源引脚Vss和Vcc Vss接地 Vcc正常操作时为+5伏电源(2)外接晶振引脚XTAL1和XTAL2 XTAL1内部振荡电路反相放大器的输入端,是外接晶
18、体的一个引脚。当采用外部振荡器时,此引脚接地。 XTAL2内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。(3)控制或与其它电源复用引脚RST/VPD,ALE/ , 和 /Vpp RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。 ALE/ 正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的 )周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或
19、用于定时目的。但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲,ALE 端可以驱动(吸收或输出电流)八个LSTTL电路。 对于EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲( 功能) 外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间, 在每个机器周期内两次有效。 同样可以驱动八LSTTL输入。 /Vpp 、 /Vpp为内部程序存储器和外部程序存储器选择端。当 /Vpp为高电平时,访问内部程序存储器,当 /Vpp 为低电平时,则访问外部程序存储器。对于EPROM型单片机,在EPROM编程期间,此引脚上加21伏EPROM编程电源(Vpp)。图5-2 803
20、1引脚图其中:P0.0P0.7:通道0,它是8位漏极开路的双向I/O通道,当扩展外部存贮器时,这也是低八位地址和数据总线,在编程校验期间,它输入和输出字节代码,通道0吸收/发出二个TTL负载。P1.0P1.7:通道1是8位拟双向I/O通道,在编程和校验时,它发出低8位地址。通道1吸收/发出一个TTL负载。P2.0P2.7:通道2是8位拟双向I/O通道,当访问外部存贮器时,用作高8位地址总线。通道2能吸收/发出一个TTL负载。P3.0P3.7:通道3准双向I/O通道。通道3能吸收/发出一个TTL负载,P3通道的每一根线还有。六.全开放式单片机教学实验系统的硬件设计6.1地址驱动及译码电路设计(1
21、)地址驱动及译码电路工作原理单片机教学系统的地址驱动及译码电路工作原理图,在图中还给出了系统的控制核心8031CPU。P0是低8位地址与8位数据的分时复用口,使用74LS373(U2)可将两者分离。从U2的Q端输出低8位地址A0A7,P2口输出的高8位地址中的低5位经74LS367(U16)驱动,得到A8A12.图中下方是地址切换电路,使用地址切换电路可视复位(包括上电自动复位)后系统的监控程序从8000H地址开始执行,而不是从000H地址开始执行,这样用户程序就可以安排在000H地址开始。地址切换的原理是,当按下S1键时U6的1脚为低电平,2脚为高电平,该信号是同时也是RST,将使单片机复位
22、,U6的4脚变为低电平,电容C2开始通过R3放电,经过一段时间后使U6的5脚电平变低,U6的6脚变为高电平,经过二输入或非门U10D后,P2.7被屏蔽,U10的13脚为低电平,从而U6的8脚(A15)位高电平;释放按键S1时,U6的2脚为低电平,U6的4脚为高电平,CPU开始从0地址取指令,但由于电容C2上电压不能突变,因此U6的6脚仍为高电平,U6的8脚(A15)也保持高电平,所以实际的取值地址为8000H。随着C2的充电,U6的5脚电压越来越高,当达到74LS04的翻转闸值时,U6的6脚变为低电平,取消对P2.7的屏蔽,从而使A15与P2.7一致。为了使程序能从8000H开始顺序向下执行,
23、在8000H中需放置一条长跳转指令。6-1图 地址驱动及译码电路的原理图地址译码部分由两个3-8译码器74LS138构成,采用二级译码方法。参加译码的是最高的3条地址线A13A15(P2.5P2.7),将64KB空间分为八分,每份8KB,见表一.从表中可以看出,每个仿真ROM区都有两个地址,例如第一仿真ROM区的地址可以为000H1FFFH,也可以为A000HBFFFH。CS7用来扩展输入输出口,用CS7作为第二级译码电路的控制信号,对A10A12进行译码,实际效果是对CS7所对应的8KB空间进一步平均,分为8部分,每部分为1KB,见表二图中RD1信号的逻辑为RD1=RD+P2.7,EWR信号
24、的逻辑为WR1=WR+P2.7,信号的逻辑为ERD=RD+P2.7,EWR信号的逻辑为EWR=WR+P2.7,所以当访问的地址在8000H以前时,ERD和EWR才有效,当访问的地址在8000H以后时,WR1和RD1才有效。表一 第一级译码的地址分配地址线A15A13有效的片选线地址范围用途0 0 0CS00000H1FFFH选择第一仿真ROM区(6264)0 0 1CS12000H1FFFH选择第二仿真ROM区(6264或2764)0 1 0CS24000H1FFFH未用0 1 1CS36000H1FFFH未用1 0 0CS48000H1FFFH选择监控程序ROM区(2764)1 0 1CS5
25、A000H1FFFH选择第一仿真ROM区(6264)1 1 0CS6C000H1FFFH选择第二仿真ROM区(6264或2764)1 1 1CS7E000H1FFFH扩展输入输出表二 第二级译码的地址分配地址线A15A13有效的片选线地址范围用途0 0 0PS0E000HE3FFH数码管显示输出0 0 1PS1E000HE7FFH数码管显示位输出0 1 0PS2E000HEBFFH未用0 1 1PS3E000HEFFFH未用1 0 0PS4F000HF3FFH未用1 0 1PS5F000HF7FFH未用1 1 0PS6F000HFBFFH未用1 1 1PS7F000HFFFFH未用6.2存储器
26、电路设计图6-2给出了单片机教学实验系统的存储器单元电路的原理图。系统中共使用了3片存储器,分别是第一仿真ROM区,8KB空间,可使用RAM芯片6264第二仿真的ROM区,也是8KB空间,可使用RAM芯片6264;监控程序区,8KB空间,系统中使用EPROM芯片2764.在两个仿ROM区,尤其是第二仿真ROM区,也可以输入固化有通用子程序的EPROM芯片。第一仿真ROM区的片选信号是CS0和CS5的与信号(图中的U7A),所以其地址是0000H1FFFH和A000HBFFFH;第二仿真ROM区的片选信号是CS1和CS6的与信号(图中的U7B),所以其地址是2000H3FFFH和C000HDFF
27、FH;程序存储器区的片选信号是CS4,其地址是8000H。每个存储器芯片的输出允许端OE都接PSEN和RD1的信号(图中的U7C),写允许端WE接WR1端亦即程序间和数据空间统一编址。结合译码电路可知,当将仿真ROM作为数据空间进行读、写时,只能采用大于8000H的地址,而作为程序空间访问时无此限制,图中还给出了用P1.0P1.5驱动6个LED指示灯电路,可用来模块交通信号灯的实验。图6-2 存储器单元电路原理图6.2.1存储器置数功能0/FUNC功能用来将程序存储区中的某一区域填充为同一个数,而1/FUNC功能用来外部数据存储区中的某一区域填充为同一个数。例如利用这两个命令对某一存储区清零或
28、FFH等。以0/FUNC功能对程序存储区指数命令为例,使用数字0作为功能代号FUNC键配使用。在使用0/FUNC功能前,需先将预置数存储区的首地址放入BYTE寄存器中高位字节中。即SOUR:程序存储区置数首位地址DEST:程序存储区置数末地址BYTE:高位字节存放要置的参数在待命状态0(显示HB-51B)时,先放下0键,再按下FUNC键,置数即启动,完成后返回待命状态0.例如,把2000H到3F00H的程序存储区清零。执行指数命令前,先预置参数,SO=2000H,DEST=3F00H,BYTE=0000H,具体操作过程见表6616.2.2块移动功能程序块移动功能是2/FUNC,它是把长度为N的
29、数据块,从程序存储区地址上重叠,则源数据块的被覆盖。功能相对应的数据块与移动后的数据块在存储区上地址有重叠,则源数据块的数据功能是3/FUNC,它是把长度为N的数据块从外部数据储存区的某一处转移到另一出,操作过程相同。在使用本功能之前,需将源数据块首地址装入SOUR寄存器,目的数据块首地址放入DEST寄存器,块长存入BYTE寄存器,即:SOUR:元数据块首地址DEST:目的数据块首地址BYTE:块长度在待命状态0(显示HB-51B),先按下2(或3)键,然后按下FUNC键,传送过程即启动,完成后返回待命状态0.例如,将本机的2K字节,0000H开始的程序段转移到地址为2000H的区域。这是参数
30、是:BYTE=0800H,SOUR=0000H,DEST=2000H。具体操作示例见6626.2.3.EEPROM写入功能当用户在HB-51B中调试好程序时,由于系统本身不能保持用户的程序,掉电后程序会丢失。为了方便用户,专门增加了扩展功能4.他可是用户把自己已调试好的程序写入EEPROM芯片2864A中,不会因光机而丢失程序。在进行4/FUNC功能之前也需要将程序源地址首地址送入SOUR寄存器,目的数据块首地址送入DSET寄存器,程序长度放入BYTE寄存器。即SOUR:源数据块首地址DEST:目的数据块首地址 BYTE:块长度4/FUNC功能在传送字节过程中,同时显示传送的目的地址及其内容。
31、而且会自动检查所传送的程序是否完全正确,当检查出目的地址的程序与源地址的程序有出入的时候,扩展功能4就会显示错误的目的地址及其内容,等待用户修改。6.3 键盘与显示电路设计图6-3给出了HB-51B单片机教学实验系统的键盘与显示电路部分的原理图。下面分别介绍工作原理。图6-3 键盘及显示电路原理图6.3.1显示电路 系统的显示电路使用6只共阴极数码管,采用动态扫描方式显示。系统扩展两个输出口,分别用做段和位输出。两个输出口均由透明锁存器74LS373构成,端输出口 (图中的U13)的地址为E000H-E3FFH,编程时取E000H;位输出口(图中的U14)的地址为E400H-E7FFH,编程时
32、取E400H。显示过程是首先将要显示数字的数码锁存到段输出口,使显示的a-g段为高电平,将要显示的数码送到锁存器,使对应的位驱动管(VT1-VT6)导通,数码管的COMduane接地,从而在正确的位置上显示出数字;延时一段时间后,切换显示下一位,这样各个数码管就别轮流点亮。由于人眼的视觉暂留现象,只要扫描速度足够高,就可以看到6个数码管被同时点亮。6.3.2键盘电路 系统的键盘输入采用行列扫描方式,在键盘矩阵中共有28个按键,其中数字键16个,命令键12个。系统扩展了一个输出口和一个输入口,分别用来作为扫描键盘的行输出和键盘的列输入。扫描键盘的列输入由74LS244扩展组成(图中的U12),其
33、地址为E800H-EBFFH,编程时取E800H。 列输入只有5条,故可在数据线的最高3位设置不同的识别码,以区分不同的开发系统。为了能随时回到监控状态,系统的程序运行调试键的列输入还接至非INT1。6.4 PC总线扩展槽电路 为了使系统具有一定的扩展性,在HB-51B单片机教学实验系统中设计了PC总线扩展槽电路,其接线图如图6-4所示。图6-4 PC总线扩展槽的接线图七.全开放式单片机教学实验系统的软件设计7.1系统软件设计的主要内容系统软件设计由:显示子程序编程,键盘扫描子程序编程,数字键处理子程序编程,自动连续按键子程序编程等。7.2系统的流程设计在上电自动复位或手动复位后,由于采用了上
34、述地址切换技术,使CPU开始从8000H执行主程序。主程序在完成必要的初始化、显示“HB-51”的提示符之后,开始扫描键盘,如果输入的数字键,就改变数码管的显示内容;如果是命令键,则转至不同的命令处里程序。7.2.1系统主程序流程图7-1图 主流程图(1) 显示子程序 显示子程序的作用是将显示缓冲区中的数据送到6位数码管进行显示。70H75H为显示缓冲,其中70H对应于最低一位数码管,75H对应于最高一位数码管。程序从最高位向最低位扫描显示每一位数字段码,每一位停留时间6ms,所有6位数码管扫描一遍后子程序返回,显示子程序的程序的程序清单如下: ORG 80E0HDISP: MOV R1, #
35、75H MOV R2, #20H MOV A, R2DISP1: MOV DPTR, #0E400H MOV DPTR, A MOV A, R1 ADD A, #11H MOVC A, A+PCDISP2: MOV DPTR, #0E400H MOV DPTR, A MOV R3, #00H DJNZ R3, $ CLR A MOVX DPTR, A DEC R1 MOV A, R2 RRC A MOV R2, A JNC DISP1 RET DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;07 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8
36、F DB 00H,76H,40H,73H,3EH,3DH; 黑, H , -, P, U, G DB 5CH,38H,50H ;o, L, r(2)键盘扫描子程序键盘扫描子程序实现键盘的扫描,当没有按键下时,返回键值为10H;在其他情况下返回000F,分别代表数字键0F,返回11H1CH,代表不同的命令键。键盘扫描子程序的程序清单如下: ORG 80E0HDISP: MOV R1, #75 MOV R2, #20H MOV A, R2 DISO1: MOV DPTR, #0E400H MOV DPTR, A MOV A, R1 ADD A, #11H MOVC A, A+PC DISP2: M
37、OV DPTR, #0E000H MOVX DPTR, A MOV R3, #00H DJNZ R3, $ CLR A MOVX DPTR, A DEC R1 MOV A, R2 RRC A MOV R2, A JNC DISP1 RET DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;07 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8F DB 00H,76H,40H,73H,3EH,3DH; 黑, H , -, P, U, G DB 5CH,38H,50H ;o, L, r(3)数字键处理子程序数字键处理子程序的调用需要特殊的格式为:AC
38、ALL NUMBDB 70H, 75H 调用指令下面的DB伪指令定义的两个字节,分别为闪动光标的首、末位置。数字处理子程序的功能是将当前输入数字送达到闪动光标,并向下一位置调整闪动光标,若光标已达到末位置,则将其调整是首位置。数字键处理子程序的程序清单如下: ORG 8170H NUMB: MOV R0, 78H MOV R0, A CLR A POP DPH POP DPL MOVC A, A+DPTR CJNE A, 00H,NUMB2 INC DPTR CLR A MOVC A, A+DPTR MOV 78H, A NUMB1: INC DPTR PUSH DPL PUSH DPH RE
39、T NUMB2: INC DPTR DEC 78H SJMP NUMB1(4)自动连续按键子程序当扫描到键盘上某键被按下时,程序要进行消抖处理,经过连续几次扫描后确定其被其按下时,才输出其键值。若按下某一键不放,过一段时间后就进入自动连续按键功能,程序以较高的频率输出按键值。该子程序中77H存储上次键值,76H存储按键计数值。盖子层序的程序清单如下: ORG 80B0H DSKS: ACALL DISP ACALL KBS MOV R2, A XRL A, 77H MOV 77H, R2 MOV R2, 76H JZ DSKS MOV 76H, #83H MOV R2, 76H DSKS1:
40、DEC R2 MOV A, R2 XRL A, #80H JZ DSKS3 MOV A, R2 ORL A, R2 JZ DSKS3 MOV A, #10H MOV 76H, R2 RET DSKS2: MOV R2, #08H DSKS3: MOV A, 77H MOV 76H, R2 RET(5)光标闪动子程序HB-51B用某位数码管的闪动光标,新输入的数据只修改当前光标位置的值。入口参数78H单元用来给光标的闪动位置。程序采用分时在显缓冲区中放入空格与显示数据的方法来实现视觉上光标闪动。光标闪动子程序的程序清单如下: ORG 8080H BLINK: MOV R6, #20H MOV R
41、0, 78H MOV A, R0 MOV R7, A MOV A, #10H MOV R0, A BLK1: ACALL DSKS CJNE A, #10H,BLK4 DJNZ R6, BLK1 MOV A, R7 MOV R0,A BLK2: MOV R6, #50H BLK3: ACALL DSKS CJNE A, #10H,BLK5 DJNZ R6, BLK3 SJMP BLINK BLK4: MOV R6, A MOV A, R7 MOV R0, A MOV A, R6 BLK5: RET7.2.2寄存器读/写处理流程图在这种读写状态下,数码管上显示4个数字,第1位和第2位数字代表BA
42、M或SFR的地址,中间两位不显示,最右边的两位数字表示RAM或SFR的内容,光标在数码管第5位。若要对寄存器的内容进行改写,可按下所需要的数字键,光标所在位置的数字即被发现更改,而光标随即右移一位,若移到了最右端,则重新返回第5位。按下NEXT或LAST键,可查访更改下一个或上一个寄存器的内容。持续按LAST或NEXT键时间在0.8秒以上时,可实现快速查找寄存器。图7-2 寄存器读/写处理流程图7.2.3用户开始、停止系统程序流程图为了帮助用户更好调试程序,提高调试程序的效率,HB-51B提供三种运行用户程序方式:单步执行,宏单步和连续执行。相应的命令键为STEP,SCAL,EXEC。单步键S
43、TEP和宏单步键SCAL在待命状态0,待命状态1和存储器读写状态时均有效。在待命状态0,从0地址开始执行程序;在待命状态1,则按键数码管上的地址单步执行;在存储器读写状态,按现行地址执行。按STEP键,HB-51B将依据上述三种情况,执行一条用户指令,继而显示PC和A累加器的内容,进入待命状态1,等待下一个命令。按下MON键,返回到待命状态0.单步及宏单步命令不会影响已设置的断点。连续执行键EXEC在待命状态1和存储器读写状态0时,按下EXEC键,HB-51B将从当前用户PC地址开始执行程序;在待命状态1(送入数字后状态),则按键数码管上的地址执行程序;在存储器读写状态,按数码管上的现行地址执
44、行程序。在其他状态,EXEC无效。(1) 在开始用户程序执行之前系统程序流程图图7-3 在开始用户程序执行之前系统程序流程图(2) 在停止用户程序执行之后系统程序流程图图 7-4在停止用户程序执行之后系统程序流程图八.实验调试结果 8.1仿真工具1.Protel仿真软件有了protel、Multisim、proteus、psice等一系列的软件的存在,就此便可以以虚代实、以软代硬,独立建立一个完善的虚拟实验室。代替了在实验室和教室里的以实物进行实践的方式,可以在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等。其中,Protel软件提供多达30多个元
45、件库,元件涉及到数字和模拟、交流和直流等,有RAM、ROM、键盘、部分SPI器件、部分IC器件,编译方面支持Keil和MPLAB等编译器。此外,Proteus软件还有图形显示功能,可以将线路上变化的信号以图形的方式实时地显示出来在用Proteus进行仿真和程序调试时,可以从工程的角度直接看程序运行和电路工作的过程和结果。同时可以仿真PIC、AVR、51系列等常用的MCU,并提供周边设备的仿真,例如示波器、373、led等。 2.KEIL编译软件Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有
46、明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势,与汇编相比,C语言有明显的优势,用过汇编语言后再使用C来开发,体会更加深刻。8.2系统调试方法以及运行效果1.根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计
47、法,所以方便对各电路模块功能进行逐级测试:地址驱动及译码电路的调试,键盘及显示电路的调试,存储器单元电路的调试等,最后将各模块组合后进行整体测试。2.打开KEIL软件,调出程序进行编译,生成HEX文件。编译后没有错误就可以生成hex文件用于单片机仿真。3.此系统的仿真效果很好,能实现设计要求和目的所规定的内容。九.设计中的问题及解决方法 进入调试状态后应该在关键的地方设置断点然后按步运行,同时观察参数的变化,通过变化来判断程序运行的过程即可找出程序中混乱的部分,进行改正,这需要对软件熟练的掌握和对语言程序的很好的理解,实验板搭建成功后,我们就进入了程序的设计和调试阶段,开始编写程序时很顺利,但
48、是后来在调试过程中出现了很多的错误,比如定时器准确度的设置,子程序的调用问题,最困难的就是对没步程序执行顺序的分析,由于程序中一些语句的错误理解和执行顺序的判断失误,让我掉进了误区,耽误了很长时间,最后在同学的帮助下终于找到了错误的关键点,更正成功了。看来对程序的调试能力我还需要加强,程序的调试需要耐心,而且需要熟练掌握软件的跟部分功能。十.心得体会 本系统被广泛教学单位使用,设计比较简单。经过一学期的学习,使我对单片机有了初步的认识,了解了一些软件编程的技巧。 经过这次的课程设计,使我学会了课堂上学不到的知识,颇有一番感受,对于单片机更加的了解了,对各种器件的使用方法更加熟悉,学会了电路的基本设计思路和原理,掌握单片机设计步骤,知道这门课程在工作中的重要性。由于知识点不够精
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社保处档案室管理制度
- 采石场档案管理制度
- 物业住户档案管理制度
- 东村小学档案管理制度
- 残疾证档案管理制度
- 干部人事档案八大制度
- 心血管病档案管理制度
- 档案安全制度建立健全
- 档案库房管理制度讲解
- 档案馆进馆消毒制度
- 少儿培训机构策划书
- 吟诵古诗课程设计
- (正式版)QC∕T 625-2024 汽车用涂镀层和化学处理层
- 中国慢性冠脉综合征患者诊断及管理指南2024版解读
- 第30讲 ZD6转辙机课件讲解
- (正式版)SHT 3551-2024 石油化工仪表工程施工及验收规范
- Unit7CareersLesson1EQIQ课文长难句分析课件-高中英语北师大版2019选择性
- 城镇道路工程施工与质量验收规范cjj
- YY0778-2018《射频消融导管》标准变化解读
- 船舶货运保险理赔答疑手册
- YS/T 248.1-2007粗铅化学分析方法 铅量的测定 Na2 EDTA滴定法
评论
0/150
提交评论