单片机的软件调试过程开发过程中硬件调试有哪些技巧

原文地址:
单片机开发过程中,有一个好的调试系统可以极大地提高开发效率。举个例子,做平衡系统时调节PID参数,你会选择 修改参数–&编译–&烧录–&运行–&修改…,还是做一个功能可以一边运行一边修改参数呢?调试的方法有多种,在这就来分别谈一下我在开发过程中使用过的几种调试方案。这里的调试方案也是一种交互方案,但此方案不是为了交互而设计,重在快速地搭建、方便地使用、高效地调试,换句话说长得丑无所谓。
我们做调试工具追求的是什么
做调试系统无非是为了两点:
实时显示一些必要信息。实时修改,其实也就是可以实时接收指令。
为了提高开发效率,我们进一步希望:
调试系统搭建起来方便快捷,最好可以统一标准,方便移植。
我们不希望在调试系统上花费太多工作量,不要太复杂,尽量轻量级。直观显示,看得清楚。方便输入,操作快捷。
几种调试方案
1、加入屏和按键
最直接的方法就是在嵌入式系统中加入屏和按键,做出一个界面,显示信息和接收按键指令。
【优点】跟随系统,不需要依赖其他设备,可以随时随地调试。
添加了硬件。硬件的设计和焊接还是需要花费一些精力的。构建界面同样也要花费不少精力。显示信息有限。
加入的屏通常显示内容比较少,会受到一些限制。按键功能有限。
加入的按键通常也不会太多,并且如果我们考虑到长按、组合键等操作的话构建程序也是比较复杂的。
肯定不能算轻量级,功能有限,可移植性差,花费精力多,屏需要额外费用。
唯一的优点就是跟随系统,没有其他依赖。
所以如果不是非要随时调试的话不建议用这种方法,单纯为了调试来说代价还是比较大的。
2、串口+上位机
单片机自己不负责显示,它把数据发送出去,由上位机显示;也不负责按键检测,由上位机负责并接收上位机指令。
单片机和上位机之间需规定好通信协议。
通信方式可以是串口也可以是其他,上位机可以是图形也可以是命令行。
对单片机来说做到了一定的轻量级。只需要考虑发送数据和接收指令的协议。对于比较复杂的功能,好的上位机,尤其是图形化的上位机可以很方便地调试。
需要设计通信协议,双方都要位通信协议写代码。这需要花费一定的精力。制作上位机需要花费较多的精力,并且上位机不通用。
由于上位机在电脑上,有丰富的显示和控制资源,做出一个好的上位机可以极其方便地提高效率。
但制作上位机要花费大量精力。
所以,如果上位机是作为产品发布,是值得花精力去做的;但如果仅仅是为了调试时用一下,不值得这样做。
到这里有没有注意到,其实我们是想找到一个通用的”显示器”,能够方便地把信息显示出来。 显示器是已经做好的,不需要我们再做什么,通信协议尽可能简单,最好能直接输出。 后面我们会找到这么一个好东西。
3、用树莓派
用树莓派进行关键计算,我们关心的数据都在树莓派的程序里。
由于树莓派里运行linux系统,在其连接网络后,我们可以用局域网里电脑的终端登陆树莓派,在树莓派的程序里直接打印接口显示出来。
在命令行下打印数据并不一定是一行一行地输出,也可以控制光标在指定位置输出,构建出一个简单的界面。这里不做介绍,具体可搜索”控制台编程”。
命令行下接收键盘操作也不一定非要输入字符再回车,程序里可以直接监测键盘。
总之在命令行中是可以构建出一个类似于 显示屏+按键 组合的”设备”的。
终端就相当于是一个现成的、通用的显示屏,任意可登陆ssh的终端都可使用。程序里直接打印输出!这真是太方便的,c语言中一个printf即可,相当于是一个极其简单的通信协议。
贵!一个小小的智能车都要塞个树莓派,树莓派价格都够好多个智能车了。树莓派本身是重量级。虽然程序本身是方便了,但使用之前需要配置树莓派,虽然一个树莓派只要配置一次。树莓派本身硬件功能有限,有些功能树莓派不能直接完成,还是需要借助单片机,并和单片机通信。
比如记录车轮旋转的正交编码器,stm32有专门的硬件模块完成,树莓派没有,如果树莓派想要记录车轮旋转的话还是需要借助stm32,并且设计如何获取stm32记录的数据。
对于调试这一方面来说,树莓派是非常方便的,输出、输入都是直接完成。
所以如果你的项目值得用树莓派,那调试是非常方便的;如果不需要用树莓派,光是为了调试方便而使用是不建议的,请考虑上面3个缺点。
虽然树莓派本身不一定最合适,但我们找到了方向——终端。
4、串口+通用终端工具
单片机能不能用终端呢?答案是肯定的。
有多种终端工具可以通过串口使用,比如windows自带的超级终端,linux和osx下命令行里的minicom,以及夸三个平台的图形化终端secureCRT。
这些终端工具的功能简单来说就是:1、当某个按键按下立刻发送该按键的键码出去,比如按下p键发送字符’p’。2、接收串口数据并显示出来。
这些终端工具的协议是相同的,可以认为是通用的显示器和键盘。单片机可以发送一些特殊字符串完成一些特殊操作,比如清屏、控制光标位置。利用这些功能可以构建出简单的界面。
这些操作功能已经封装成了函数,会在本文后面给出。一般会先在单片机中实现printf功能,实现之后在程序中用printf即可直接在终端工具中显示信息。
实现printf功能的方法在这里不介绍,具体可上网查找,工作量并不大。其实就是重定义一个函数,使printf函数通过指定串口输出字符串。串口通过蓝牙模块可快速实现无线传输。
单片机端轻量级,上位机端无工作量。
具体来说单片机端要做的事情有:初始化串口,重定向printf,通过特殊字符串控制光标构建界面。上位机端通用,单片机端显示相关的代码方便移植。
本文后文会给出显示相关的库函数。硬件扩展几乎没有。
对比第1种方案,需要一台电脑。其他方面都具有很大优势。
此方案是单片机开发调试的理想选择。
下面会介绍如何在终端工具里构建出界面。
如何构建终端工具里的控制台界面
1、构建界面用到的特殊字符串
光标移到行首
“\033[2J”
清屏后光标还在原来位置
“\033[H”
光标复位,回到左上角(1行1列)
“\033[%d;%dH”, y, x
设置光标到y行x列
终端中的行和列都是从1开始数的
“\033[%dA”, y
光标上移y行
“\033[%dB”, y
光标下移y行
“\033[%dD”, x
光标左移x列
“\033[%dC”, x
光标右移x列
“\033[?25l”
在secureCRT中测试无效
“\033[?25h”
在secureCRT中测试无效
2、封装好的库函数
使用这个库函数的前提是:
1、主函数完成了串口初始化,串口功能正常使用。
2、重定向了printf函数,printf函数可通过串口输出字符串。
disp.h文件:
#ifndef __DISP_H__
#define __DISP_H__
/* 在主函数已经完成串口初始化,并且重定向printf函数之后,
这里提供一些列函数用于操作终端工具显示,可在终端工具里构建界面。 */
#include &stm32f10x_lib.h&
void disp_clean(void);
void disp_cursor_reset(void);
//复位光标位置,回到左上角(1行1列)
void disp_gotoxy(int x, int y);
//跳转到y行x列,x和y都是从1开始数。
void disp_cursor_up(int y);
void disp_cursor_down(int y);
void disp_cursor_left(int x);
void disp_cursor_right(int x);
void disp_cursor_hide(void);
//隐藏光标,在secureCRT中测试无效。
void disp_cursor_show(void);
//显示光标,在secureCRT中测试无效。
disp.c文件:
#include &disp.h&
#include &uart.h&
#include &stdio.h&
void disp_clean(void)
printf("\033[2J");
void disp_cursor_reset(void)
//复位光标位置,回到左上角
printf("\033[H");
void disp_gotoxy(int x, int y)
//跳转到y行x列
printf("\033[%d;%dH", y, x);
void disp_cursor_up(int y)
printf("\033[%dA", y);
void disp_cursor_down(int y)
printf("\033[%dB", y);
void disp_cursor_left(int x)
printf("\033[%dD", x);
void disp_cursor_right(int x)
printf("\033[%dC", x);
void disp_cursor_hide(void)
//隐藏光标
printf("\033[?25l");
void disp_cursor_show(void)
//显示光标
printf("\033[?25h");
更多内容请访问:
单片机作业调试过程
一次单片机最小系统的调试
开源QT写的串口调试上位机(带波形显示)
没有更多推荐了,豆丁微信公众号
君,已阅读到文档的结尾了呢~~
试论单片机应用系统硬件调试技巧
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
试论单片机应用系统硬件调试技巧
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口单片机的调试装置
在单片机系统中,程序存储器通常是可擦可编只读存储器习匹旧M。在调试软件时,为了便于修改程序,最好用读写存储器R人M暂时代替,并且配备对丑人M进行读写的硬件和软件。另外,为了观察程序的执行情况,需要有单步运行和断点运行的功能,并且能检查和修改单片机内部寄存器的状态。这就是本装里的墓本功能。 开发装里的硬件结构如图1所示,它包括一合IP801单板机,4 KB的R人M,两扇数据总线门,两扇地址总线门和一些门电路。R人M由两片6U6组成,为TP801单板机和MC日48单片机所公用。通向叨P801一侧的数据总线门采用能双向传输的三态输出8总线收发器切冰场,使TPS以对公共RAM既能读又能写。通向单片机一侧的数据总线门采用三态输出定向传输门L吕2必(5),因为单片机只需对公共R人M进行读出。两扇地址总线门LS244(1)(2)和L82妞(8)·卿的百脚由Tp801的PB4进行控制,实现对公共R人M区使用权的切换。当P卫以为O时,两片6116...&
(本文共2页)
权威出处:
引言随着人们对发动机性能的要求逐步提高,对冷却系统的性能也提出了更高的要求[1-3]。电子风扇具备独立于发动机转速自主运行,冷却能力连续平滑可调及按需冷却等特点,能够使发动机工作于最佳的温度状态,实现发动机节能高效运行的效果,该系统具有广阔的应用前景[4-6]。目前电子风扇控制器一般都具备:温度信号采集、风扇电机调速、传感器及电机等部件故障自诊断、CAN总线通讯及状态显示等功能[7-8]。这些功能需要相应的硬件电路及软件算法实现,当电子风扇控制器生产完毕,需要一套调试装置检测其硬件电路及软件功能;此外,电子风扇控制器进行控制策略优化时,需要将调试装置产生的模拟信号送入控制器,控制器输出的信号也需要通过调试装置进行测试和显示。由上可知,电子风扇控制器出厂测试及控制策略优化时,都需要一套调试装置模拟电子风扇控制器输入信号的各种状态,分析电子风扇控制器的输出信号,并能够测试电子风扇控制器的显示及通讯等功能是否正常。鉴于此,本论文根据上...&
(本文共6页)
权威出处:
1前言 自动控制系统在调试过程中通常会遇到很多关于参数 整定的问题(如常见的PID参数整定等)。这些参数的最终整 定情况将直接影响系统的性能指标.而对于这些参数,在调 试过程中如果没有一种方便有效的整定方法就很难把系统调 到最优状态。 2调试装置的提出 在早期的控制系统(下文以速度闭环控制系统为例说 明)中,调节器大部分由模拟线路实现。系统的各种参数只 能通过调节电位计,更换电阻、电容等方法来调整。由于操 作的不便利以及器件的离散性和系统本身各参数之间的相互 影响等原因,系统的调试比较困难,也不容易把参数整定到 最佳值.调参数有时需要更换元器件,因此也不能实现完全 在线参数整定。随着数字调节器的应用,相应的参数整定也 有了新的思路和方法。在许多工程实践当中,由于条件限制 和成本考虑,数字控制器作为核心控制部件只用于完成控制 模型和逻辑功能的实现,与外部的操控接口界面很单一,只 是上电、断电、模拟量给定等一些简单输入,输出则只能看...&
(本文共2页)
权威出处:
0引言在空间一些电磁环境比较恶劣的情况下,像RAM这种利用双稳态进行存储的器件,往往会在强干扰下发生翻转,使原来存储的“0”变为“1”,或者“1”变为“0”,造成了严重的后果。因此,现在通常采用PROM存储芯片,利用其一旦烧录后不可更改的特性,作为星载计算机等关键设备的存储芯片,用以抵抗太空环境恶劣的电磁干扰。但是,随着我国航天工业的发展,传统的PROM存储芯片容量小、烧录后不可更改等特点,已经不能满足我国航天工业对星载程序存储芯片的需求。因此对新型星载程序存储器的需求格外强烈。1核心电子元器件目前,在卫星的应用中,程序存储器都采用PROM芯片。但PROM只能依靠进口,例如目前卫星常用的大容量PROM存储器,采用美国UTMC公司的UT28F256,容量只有32K字节,价格昂贵。某些卫星姿轨控计算机,设计要求为96K字节程序空间,双机需要12片,每片约8000美金,则只在程序存储器需要的成本就约9.6万美金。此外,该芯片的烧录过程...&
(本文共2页)
权威出处:
在8098单片机智能仪表的开发过程中,往往要外扩展程序存储器。当程序容量小于16K时,一般选用EPROM27128芯片。然而,由于8098程序开始执行的地址不是0000H,所以A13地址线不能与27128直接联接。一般的联接方法如图1所示。138译码器Y。地址为0000H~1FFFH,一般作外部RAM或1/O口。图1Y1;地址为2000H~3FFFH-8K,Y2地址为4000H~5FFFH-8K。将又Y1、Y2相与,就可选27128的全部空间(16K),其中分上、下8K,分别由A0~A13内部译码。但是,8098程序从2000H地址开始执行,而这一地址正是A13为“...&
(本文共1页)
权威出处:
随着大规模集成电路技术的产生和迅速发展,使电子计算机越来越微型化。单片微型计算机(简称单片机)的出现则给现代工业测控领域带来了一次新技术革命。单片机技术的开发和应用水平已逐步成为一个国家工业发展水平的标志之一。在单片机家庭的众多成员中,MCS片机更适合51系列单片机以其优越的性能、成熟的技术、高可靠性、众多的开发工具及资料而在测控领域得到广泛的应用。在MCS51系列单片机中尤以8031单片机更适合我国的情况。只有正确的使用8031单片机进行应用系统的设计和开发,才能真正使其强大功能得到发挥,反之就会给单片机应用系统的开发带来不良的后果,下面我们将对单片机控制中的一个重要概念进行讨论,从而得出一个确切的结论。由于MCS51系列单片机中的8031单片机无内部程序存储器,因此在系统中必须扩展外部程序存储器。在仅扩展1片外部程序存储器的情况下,可将8031的EA——引脚直接与低电位相接,则8031单片机可使用该外部程序存储器。而在许多应...&
(本文共2页)
权威出处:
1设计思想MC-51系列单片机对程序存储器的基本寻址能力最大为64kb,这时共需要16根地址线,其中低8位由PO口提供,高8位由P2口提供。若欲寻址更大的存储空间,直接的方法是增加地址线,每增加一条,寻址空间扩大一倍。但是由于单片机的I/O资源有限,靠增加地址线来扩展存储空间,势必会削弱单片机的I/O功能。笔者介绍的是一种在不增加地址线的前提下,通过向8751单片机的内部EPROM写人几条简单指令,来实现外部程序存储器超64kb的扩展方法。其基本思想是将8751单片机的4kb内部EPROM和要扩展的各64kb(实际上只用60kb)外部程序存储区,看成是一种“文件目录”和“文件”的关系,其中内部EPROM中的程序段视为“目录”,扩展的每个64kb外部程序存储区中的程序段视为“文件”。要想执行某一64kb外部程序存储区中的程序段,可通过运行内部EPROM中的几条指令来选通相应的外程序存储区,当执行完该外程序存储区中的程序后,地址指针...&
(本文共2页)
权威出处:
扩展阅读:
CNKI手机学问
有学问,才够权威!
xuewen.cnki.net
出版:《中国学术期刊(光盘版)》电子杂志社有限公司
地址:北京清华大学 84-48信箱 大众知识服务
京ICP证040431号&
服务咨询:400-810--9993
订购咨询:400-819-9993
传真:010-中国·深圳市龙岗区坂田环城南路坂田国际中心C2栋815
当前位置:>>>>正文
单片机开发过程中硬件调试技巧
点击次数:455次&&&&&&&&更新时间:
在开发过程中,从硬件设计到软件设计几乎是开发者针对本系统特点亲自完成的。这样虽然可以降低系统成本,提高系统的适应性,但是每个系统的调试占去了总开发时间的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属于可编程器件,因而很难划分硬件和软件,往往在调试中即使电路安装正确没有一定的指令去指挥它工作,也是无法发现硬件的故障。因此要使用一些简单的调试程序来确定硬件的组装是否正确、功能是否完整。在本系统中采取了先对显示器调试,再对键盘调试。(1)显示器部分调试为了使调试顺利进行,首先将8155与LED显示分离,这样就可以用静态方法先测试LED显示,分别用规定的电平加至控制数码管段和位显示的引脚,看数码管显示是否与理论上一致。不一致,一般为LED显示器接触不良所致,必须找出故障,排除后再检测8155电路工作是否正常。对8155应进行编程调试时,分为两个步骤:第一,对其进行初始化(即写入命令控制字,最好定义为输出方式)后,分别向PA、PB、PC三个口送入#0FFH,这时可以利用万用表测试各口的位电压为3.8 V左右,若送入#00H,这时各口的位电压应为0.03 V;第二,将8155与LED结合起来,借助开发机,通过编制程序(最好采用“8”字循环程序)进行调试。若调试通过后,就可以编制应用程序了。(2)键盘调试一般显示器调试通过后,键盘调试就比较简单,完全可以借助于显示器,利用程序进行调试。利用开发装置对程序进行设置断点,通过断点可以检查程序在断点前后的键值变化,这样可知键盘工作是否正常。以上讨论了借助简单工具对单片机硬件调试的方法,这些方法如果利用得好,就可以大大缩短单片机的开发周期。转自: 玩转单片机  单片机开发过程中的硬件调试步骤
14:20:56编辑:什么鱼 关键字:&&&&
在中,从硬件设计到软件设计几乎是开发者针对本系统特点亲自完成的。这样虽然可以降低系统成本,提高系统的适应性,但是每个系统的调试占去了总开发时间的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属于可编程器件,因而很难划分硬件和软件,往往在调试中即使电路安装正确没有一定的指令去指挥它工作,也是无法发现硬件的故障。因此要使用一些简单的调试程序来确定硬件的组装是否正确、功能是否完整。在本系统中采取了先对显示器调试,再对键盘调试。
(1)显示器部分调试为了使调试顺利进行,首先将8155与LED显示分离,这样就可以用静态方法先测试LED显示,分别用规定的电平加至控制数码管段和位显示的引脚,看数码管显示是否与理论上一致。不一致,一般为LED显示器接触不良所致,必须找出故障,排除后再检测8155电路工作是否正常。对8155应进行编程调试时,分为两个步骤:第一,对其进行初始化(即写入命令控制字,最好定义为输出方式)后,分别向PA、PB、PC三个口送入#0FFH,这时可以利用万用表测试各口的位电压为3.8 V左右,若送入#00H,这时各口的位电压应为0.03 V;第二,将8155与LED结合起来,借助开发机,通过编制程序(最好采用“8”字循环程序)进行调试。若调试通过后,就可以编制应用程序了。
(2)键盘调试一般显示器调试通过后,键盘调试就比较简单,完全可以借助于显示器,利用程序进行调试。利用开发装置对程序进行设置断点,通过断点可以检查程序在断点前后的键值变化,这样可知键盘工作是否正常。
以上讨论了借助简单工具对单片机硬件调试的方法,这些方法如果利用得好,就可以大大缩短单片机的开发周期。
关键字:&&&&
来源: dqjsw
引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
关注eeworld公众号快捷获取更多信息
关注eeworld服务号享受更多官方福利
/*&名称:51单片机实现LED流水灯(数组方式和位运算方式)说明:今天又重新开始系统的学习51了,LED就算个开端吧。&要注意两点:&1、sfr和sbit是C语言扩展出来的关键字。其中sfr用于对特殊功能寄存器进行声明,sbit用于对某些特殊功能寄存器的某位进行声明。这里和宏定义很相似,但是不能用宏定义进行替换,对于前者是因为51单片机的寄存器存在于内部空间0x80-0xFF,这空间属于直接寻址,51特殊功能寄存只能直接寻址,不能间接寻址。如果用宏定义的话,在翻译成汇编时就会认为是通过总线访问对应的外部地址了。对于后者,sbit是定义一个标志位,也叫位变量。而类似于#define key1 P3
/*&名称:51单片机之按键实验&说明:键盘是计算机最基础、最重要的输入设备之一。对于键盘来说,其工作任务大体可以分为以下三项:&(1)、按键识别。即判断有无按键按下。&(2)、求键值。判断哪个键被按下。&(3)、执行相应的操作。&在这里,实验所用到的键盘为独立键盘和矩阵键盘。对于独立键盘,它的每个按键需要占用一个IO口。一般来说,按键一端接地,另一端接IO口。当按键按下时,线路被导通,IO口被拉低,即状态为‘0’。所以在使用是我们一般把对应IO口置成高电平,然后不断检测此IO口是否被拉低,从而判断按键是否按下。&对于矩阵键盘来说,它用较少的IO口完成较多个按键
/*&名称:51单片机之数码管显示实验&说明:对于数码管来说,其本质上可以理解为按照一定规则组合的多个二极管。其使用只需按照特定规则显示对应的二极管即可。要稍微注意一点的就是多个数码管的显示分为静态显示和动态显示。静态显示就是每个二极管显示的内容是一样的,通过片选信号来决定是哪个二极管该显示。动态数码管,即利用人眼的视觉停留效果,快速扫描,快速显示每个数码管的内容,使得每个数码管看起来好像是一起显示的一样。&本实验编写了几个数码管显示的简单程序。在此不做赘述了。*/#include &reg52.h&#define uchar unsigned char//共阳极段码(a在高位,dp在低位
宏晶STC很多系列的单片机片内都集成了EEPROM存储器(其实是Data Flash),方便用户使用,想得真周到!今天写了个小程序,测试了一下,工作正常。下面就上我自己写的源程序。本人在STC89C52RC单片机上试验成功。首先是stcEEPROM.h头文件内容:/*When & & & & Who & & Remarks----------------------------------2011-Oct-06 &黄长浩 &初始版本&*/&#ifndef __STCEEPROM_H__#define
;&&&&&& [Bus Signal]&&TX, RX, CK&&&&USART支持同步模式,因此USART 需要同步始终信号USART_CK(如STM32 单片机),通常情况同步信号很少使用,因此一般的单片机UART和USART使用方式是一样的,都使用异步模式。在博主目前的项目中使用通信主要是通过RS485协议来进行通信,RS485通信是工业上非常常见的半双工异步通信典型通信协议,特征是通信的设备都挂载到主线上,使用差分信号来判断收发,且同一时刻只能进行一个功能(收信息或者发信息)那么在博主这边的软件处理方式如下;首先要
AD采集最好要满足的条件:采样频率不小于被采集信号最高频率的两倍,则采样输出信号就可以无失真的重新啊还原输入信号,通常的实际应用中,采样频率为采集最高频率的5-10倍。AD芯片的数据输出方式有串行和并行两种方式,对于AVR单片机来说A/D芯片和AVR单片机接口是需要考虑的一些问题:(1)模拟信号输入的连接:单端输入时,VIN+引脚直接与信号输入连接,VIN-接地。差分输入时,单端输入正信号,VIN+引脚直接与信号连接,VIN-引脚接地。单端输入负信号,VIN-引脚与信号连接,VIN+引脚接地。(2)数据输入线与系统总线的连接:有可控制的三态输出门时候可以直接和系统总线连接,没有输出门的时候要通过I/O口进行连接。(3)启动信号
热门资源推荐
最新单片机文章
最新视频课程
何立民专栏
北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。
相关热搜器件

我要回帖

更多关于 单片机调试过程 的文章

 

随机推荐