在单片机开发过程中,从硬件设计到软件设计几乎是开发者针对本系统特点亲自完成的。这样虽然可以降低系统成本,提高系统的适应性,但是每个系统的调试占去了总开发时间的2/3,可见调试的工作量比较大。单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。本文结合作者在单片机开发过程中体会,讨论硬件调试的技巧。
当硬件设计从布线到焊接安装完成之后,就开始进入硬件调试阶段,调试大体分为以下几步。
1 硬件静态的调试
1.1排除逻辑故障
这类故障往往由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。
1.2排除元器件失效
造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。
1.3排除电源故障
在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V~4.8V之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。
2 联机仿真调试
联机仿真必须借助仿真开发装置、示波器、万用表等工具。这些工具是单片机开发的最基本工具。
信号线是联络8031和外部器件的纽带,如果信号线连结错误或时序不对,那么都会造成对外围电路读写错误。51系列单片机的信号线大体分为读、写信号线、片选信号线、时钟信号线、外部程序存贮器读选通信号(PSEN)、地址锁存信号(ALE)、复位信号等几大类。这些信号大多属于脉冲信号,对于脉冲信号借助示波器(这里指通用示波器)用常规方法很难观测到,必须采取一定措施才能观测到。应该利用软件编程的方法来实现。例如对片选信号,运行下面的小程序就可以检测出译码片选信号是否正常。
MAIN:MOVDPTR,#DPTR
;将地址送入DPTR
MOVXA,@DPTR
;将译码地址外RAM中的内容送入ACC
NOP;适当延时
SJMPMAIN;循环
执行程序后,就可以利用示波器观察芯片的片选信号引出脚(用示波器扫描时间为1μs/每格档),这时应看到周期为数微秒的负脉冲波形,若看不到则说明译码信号有错误。
对于电平类信号,观测起来就比较容易。例如对复位信号观测就可以直接利用示波器,当按下复位键时,可以看到8031的复位引脚将变为高电平;一旦松开,电平将变低。
总而言之,对于脉冲触发类的信号我们要用软件来配合,并要把程序编为死循环,再利用示波器观察;对于电平类触发信号,可以直接用示波器观察。
下面结合在自动配料控制系统中键盘、显示部分的调试过程来加以说明。本系统中的键盘、显示部分都是由并行口芯片8155扩展而成的。8155属于可编程器件,因而很难划分硬件和软件,往往在调试中即使电路安装正确没有一定的指令去指挥它工作,也是无法发现硬件的故障。因此要使用一些简单的调试程序来确定硬件的组装是否正确、功能是否完整。在本系统中采取了先对显示器调试,再对键盘调试。
㈡ 基于单片机AT89C51彩灯控制的文献综述怎么写呀,要1500字以上呢
单片机课程设计: 彩灯控制器的设计
浏览次数:1188次悬赏分:100 | 解决时间:2009-1-10 13:56 | 提问者:lw56340184
课题: 彩灯控制器的设计
1、 内容与要求
利用MCS-51系列单片机作为彩灯控制器的主控制器芯片,用LED作为端口监视器件。
2、设计要点及基本功能
(1)8路输出端口,每一个端口输出给外接的显示驱动装置提供控制信号;
(2)输出方式有多种:
a、闭合展开显示(灯1、8亮,其余熄灭;延时10ms,灯2、7亮,其余熄灭;延时10ms,灯3、6亮,其余熄灭;延时10ms,灯4、5亮,其余熄灭;延时10m,灯3、6亮,其余熄灭;延时10ms,灯2、7亮,其余熄灭;依次循环。)
b、8个LED依次循环显示。(8~1循环)
c、依次来回显示(1~8,8~1来回显示)
3、基本步骤
(1)分析题意,确定设计方案
(2)选择单片机型号
(3)设计单元电路、选择元器件、计算参数、并进行实验验证
(4)编写程序
(5)软、硬件调试件调试
4、设计报告要求:
(1)封面
(2)内容提要
(3)目录
(4)正文
①概述所设计题目的意义、本人所做的工作及系统的主要功能;
②硬件电路设计及描述
③软件设计流程及描述
④软、硬件调试过程及方法描述
⑤源程序代码
(5)课程设计体会
(6) 主要参考文献、资料问题补充:
关你屁事```
你他妈未必就什么都懂?
㈢ 用89S52单片机构件建一个彩灯控制系统,系统用P1口外接8个发光二极管。
用89S52单旦运片机构件建一个彩灯控制系统,系统用P1口外接8个发光二极管,没有键按下时,8支彩灯每隔0.5s全亮全灭一次。
按K1时,8支彩灯从左至右循环点亮。
按K2时,8支彩灯从右至左循环点亮。
按K3时,8支彩灯先右循环点亮后左循环点亮。
同时按下K1和K2时塌塌,8支彩灯从中间向外循环点亮。
同时按下K2和K3时,8支彩灯从两端向内循环点亮。
同时按下K1和K3时,8支彩灯从左到右依次点亮后从右到左依次熄灭,反复循环。
同时按模衫梁下三个键时,0、2、4、6、1、3、5、7循环点亮。
㈣ 基于51单片机的led彩灯设计。 9个灯(红绿蓝三色)。按键控制 c语言程序
首先要查看电路的连接,看看输入连接到单片机的哪个引脚(比如p1.0),led灯连接到哪个引脚(比如p2.0)。然后看是高电平有效还是低电平有效(也就是高电平时led灯亮,还是低电平时led灯亮)。
如果是高电平灯亮的话,程序如下:
p2.0=p1.0;
㈤ 用单片机设计彩灯控制器设计
8路彩灯也可以呀电路图很简单照课本抄
程序如下
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN:
MOV TMOD,#21H;设定T0为16位定时模式T1为8位自动重装计数模式
SETB TR0;开定时器
SETB TR1
MOV R7,#4;设置N路彩灯这里设置为4路
MOV R6,#4
MOV R5,#4
MOV A,#00H
LOOP:
MOV P1,A;从做到右逐次点亮
RL A
INC A
ACALL MAIN0;调用延时
DJNZ R7,LOOP
MAIN1:MOV A,#0FFH
MOV P1,A
RR A
SUBB A,#08H;各路彩灯在这里设置立即数不同
ACALL MAIN0
DJNZ R6,MAIN1
MAIN2:MOV A,#00H
MOV P1,A
CPL A
ACALL MAIN0
DJNZ R5,MAIN2
LJMP MAIN
MAIN0:MOV DPTR,#15536;设定T0定时50ms的初值
MOV TL0,DPL
MOV TH0,DPH
MOV TL1,#236;设定t1计数20次即20*50ms=1s
MOV TH1,#236
JNB TF0,$;?0ms未到等待
CLR TF0;?0ms到清除标志位
CPL P3.5
JNB TF1,MAIN0;20次未到继续计数
CLR TF1
RET
这个写的急没调试如果不可以下面的顺序要自己调也就是先闪烁再逐个点亮熄灭延时都是一秒……
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV P1,#0FFH
MOV A,#0FFH
MOV R4,#8
MOV R3,#9
MAIN1:
CPL A
MOV P1,A
LCALL AA
DJNZ R4,MAIN1
MAIN2:
RL A
INC A
MOV P1,A
LCALL AA
DJNZ R3,MAIN2
MOV R3,#9
MAIN3:
RR A
MOV P1,A
DEC A
LCALL AA
DJNZ R3,MAIN3
LJMP MAIN
AA:
MOV R7,#2
AA1:MOV R6,#250
AA2:MOV R5,#250
AA3:
NOP
NOP
DJNZ R5,AA3
DJNZ R6,AA2
DJNZ R7,AA1
RET