搜档网
当前位置:搜档网 › 单片机程式烧录步骤

单片机程式烧录步骤

单片机程式烧录步骤
单片机程式烧录步骤

1.首先将编程器插入电脑的USB接口内,这时编程器上电源指示灯红灯和绿灯亮。表示可

以进行芯片读写了。

2.双击该图标打开烧录软件,显示出主程序窗口。

3.点击工具栏该图标,执行后弹出对话框窗口

用鼠标点击MPU---ATMEL---AT89C51,可以逐级展开树形列表,最后找到要选择的单片机的型号,并点击OK确定,退出选择窗口,回到主程序窗口。

4.在主程序窗口,点击“Placement”页面,可以看到AT89C51在锁紧插座上的位置图,

如下图所示:

扳手位置

将芯片放入插槽内,并将扳手压下,将芯片压紧。

5.选择工具图标,用于在缓冲区中显示打开的已存文件,执行后弹出文件窗口:

选择自己需要的文件名后NYB0201K,点击开启旧档选项,出现对话框,确认文件格式。

点击OK,该文件即按要求装入缓冲区。显示如下:

6.点击图标,开始写缓冲区数据到芯片内,写毕会在报告栏显示。若烧录正常将显示如下画面。

如果写出错,会在报告栏显示出错内容。

烧录成功后,将扳手扳起,取出芯片即可。如果连续烧录多片,将重新插入新的芯片,扳下扳手锁紧座,直接点击图标即可。其他步骤不需要重新设置。

如何使用BSL方式给MSP 单片机烧录程序

如何使用BSL方式给MSP430单片机烧录程序 一,使用两个软件:IAR(EW430)和MSP430BSL.exe 二,IAR软件用于编程和编译;BSL软件负责载入烧录。三,在IAR中编程操作: IAR Systems是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,迄今已有27年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括:带有C/C++编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。 国内普及的MSP430开发软件种内不多,主要有IAR公司的Embedded Workbench for MSP430(简称为EW430)和AQ430。 目前IAR的用户居多。IAR EW430软件提供了工程管理,程序编辑,代码下载,调试等所有功能。并且软件界面和操作方法与IAR EW for ARM等开发软件一致。因此,学会了IAR EW430,就可以很顺利地过渡到另一种新处理器的开发工作。 IAR新建工程步骤 Step1:选择主菜单的File >New>Workspace命令,然后开启一个空白工作区窗口 Step2:选择主菜单Project>Create New Project>选择Empty project。点击OK。最好新建一个文件夹,用于放置所有的生成文件。选择保存路径后,点击保存,新工程建立完毕 Step3:file>new>file>编辑代码>save>文件名可以自己起,但后面一定要加 ”.c” ,保存为C文件 Step4: 右击工程名,将写好的程序添加进去Add>Add Files,也可以用Add>Add“main.c”添加入工程。 Step5: 右击工程名,点击Option>General Options>Device>选择MSP430F149 Step6: 继续设置Linker>Output>文件名.txt(这步很关键)>fomat>

51单片机实验程序

3 3 3 用查表方式编写y=x1 +x2 +x3 。(x 为0~9 的整数) #include void main() { int code a[10]={0,1,8,27,64,125,216,343,512,729}; //将0~9 对应的每位数字的三次方的值存入code中,code为程序存储器,当所存的值在0~255 或-128~+127 之间的话就用char ,而现在的值明显超过这个范围,用int 较合适。int 的范围是0~65535 或-32768~32767 。 int y,x1,x2,x3; //此处定义根据习惯,也可写成char x1,x2,x3 但是变量y 一定要用int 来定义。 x1=2; x2=4; x3=9; //x1,x2,x3 三个的值是自定的,只要是0~9 当中的数值皆可,也可重复。 y=a[x1]+a[x2]+a[x3]; while(1); //单片机的程序不能停,这步就相当于无限循环的指令,循环的内容为空白。 } //结果的查询在Keilvision 软件内部,在仿真界面点击右下角(一般初始位置是右下角)的watch 的框架内双击“double-click or F2 to add”文字输入y 后按回车,右侧会显示其16 进制数值如0x34,鼠标右键该十六进制,选择第一行的decimal,可查看对应的10 进制数。 1、有10 个8 位二进制数据,要求对这些数据进行奇偶校验,凡是满足偶校验的 数据(1 的个数为偶数)都要存到内RAM50H 开始的数据区中。试编写有关程序。 #include void main() { int a[10]={0,1,5,20,24,54,64,88,101,105}; // 将所要处理的值存入RAM 中,这些可以根据个人随意设定,但建议不要超过0~255 的范围。 char i; // 定义一个变量 char *q=0x50; // 定义一个指针*q 指向内部0x50 这个地址。 for(i=9;i>=0;i--) //9~0 循环,共十次,也可以用for(i=0;i<10;i++) { ACC=a[i]; //将a[i] 的值赋给累加器ACC if (P==0) //PSW0 位上的奇偶校验位,如果累加器ACC 内数值1 的个数为偶数那么P 为0,若为奇数,P 为1。这里的P 是大写的。 { *q=a[i]; q++; // 每赋一个值,指针挪一个位置指向下一个。 } } while(1); //同实验一,程序不能停。 }

DSP程序烧写步骤

一、连接好DSP电源及仿真器(设备管理器中能检测到仿真器) 二、点击桌面图标

三、选择对应的仿真器和DSP(图中已经选好了,直接保存并退出) “确认”

四、进入仿真界面,此时系统与目标板还未连接 在“Debug”中选择“Connect”将系统与目标板连接

五、如图,右键“Projects”,载入工程文件 工程文件目录为文件目录为C:\CCStudio_v3.3\MyProjects\DSP2812M_examples\DPS2812M_KEYBOARD (图中,点击后直接进入工程目录,此时直接选中.pjt文件并打开即可)

六、打开后界面如下: 注意:工程中的“F2812.cmd”文件(如下图所示)为烧写程序时用的cmd文件,编译及调试程序时用的cmd文件为“F2812_EzDSP_RAM_lnk.cmd”,两者均在目录C:\CCStudio_v3.3\MyProjects\DPS2812M_common\cmd下,如下图中所示:

“F2812.cmd”文件和“F2812_EzDSP_RAM_lnk.cmd”文件所在目录如下: 如果从调试程序到烧写程序或者相反过程,都需要更换cmd文件,更换后一定要先编译cmd 文件后才能避免出现问题 七、烧写程序 烧写程序即是将编译及调试正确的程序(.out文件)烧写到Flash中,本实验烧写的是DPS2812M_KEYBOARD.out文件,其目录为C:\CCStudio_v3.3\MyProjects\DSP2812M_examples\DPS2812M_KEYBOARD\Debug 选择“Tools”下的“F28xx on-chip flash programmer”,如下图:

51单片机考试常见试题简答 题

简答题部分 1、什么叫堆栈? 答:堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"后进先出"的结构方式处理的。实质上,堆栈就是一个按照"后进先出"原则组织的一段内存区域。 2、进位和溢出? 答:两数运算的结果若没有超出字长的表示范围,则由此产生的进位是自然进位;若两数的运算结果超出了字长的表示范围(即结果不合理),则称为溢出。 3、在单片机中,片内ROM的配置有几种形式?各有什么特点? 答:单片机片内程序存储器的配置形式主要有以下几种形式:(1)掩膜(Msak)ROM型单片机:内部具有工厂掩膜编程的ROM,ROM中的程序只能由单片机制造厂家用掩膜工艺固 化,用户不能修改ROM中的程序。掩膜ROM单片机适合于 大批量生产的产品。用户可委托芯片生产厂家采用掩膜方法 将程序制作在芯片的ROM。 (2)EPROM型单片机:内部具有紫外线可擦除电可编程的只读存储器,用户可以自行将程序写入到芯片内部的EPROM 中,也可以将EPROM中的信息全部擦除。擦去信息的芯片 还可以再次写入新的程序,允许反复改写。 (3)无ROM型单片机:内部没有程序存储器,它必须连接程序存储器才能组成完整的应用系统。 无ROM型单片机价格低廉,用户可根据程序的大小来选择外接 程序存储器的容量。这种单片机扩展灵活,但系统结构较复 杂。 (4)E2ROM型单片机:内部具有电可擦除叫可编程的程序存储器,使用更为方便。该类型目前比较常用 (5) OTP(One Time Programmable)ROM单片机:内部具有一次可编程的程序存储器,用户可以在编程器上将程序写入片 内程序存储器中,程序写入后不能再改写。这种芯片的价 格也较低。 4、什么是单片机的机器周期、状态周期、振荡周期和指令周期?它们之间是什么关系? 答:某条指令的执行周期由若干个机器周期(简称M周期)构成,一个机器周期包含6个状态周期(又称时钟周期,简称S周期),而一个状态周期又包含两个振荡周期(P1和P2,简称P周期)。也就是说,指令执行周期有长有短,但一个机器周期恒等于6个状态周期或12个振荡周

单片机如何运行程序

单片机如何运行程序 知道了单片机通过I/O口与外设打交道,也知道了单片机的程序与数据如何保存,到底单片机是如何运行程序的?原来单片机和其他微机一样,也拥有一个中央处理器(CPU),它是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。它在单片机中的核心地位见图2.10所示。它通过单片机的内部总线,将单片机内部的各个部分:程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等联系在一起,内部总线有三种:数据总线,专门用来传送数据信息,地址总线专门用来传送地址信息,选中各操作单元,控制总线专门用来传送CPU各种控制命令,以便CPU统一指挥协调工作。完成程序所要执行的各种功能。CPU执行程序一般包括两个主要过程:第一,就是从程序存储器中取出指令,指令的地址由PC指针提供,在前面我们已经知道,PC指针在CPU取指后会自动加一,所以PC指针总是指向下一个将要取出的指令代码或操作数。这样,就能保证程序源源不断往下执行。第二,就是执指过程,取出的指令代码首先被送到CPU中控制器中的指令寄存器,再通过指令译码器译码变成各种电信号,从而实现指令的各种功能。 4.怎样保证CPU工作? 现在我们知道了单片机怎样取指、执指,即怎样运行程序了。那么怎样才能保证CPU有序的工作?这就必须提到单片机的两个非常重要的外围电路:单片机的时钟电路和复位电路。在单片机上面有两个引脚,分别是它的第18、19脚,其功能如下。

Pin19:时钟XTAL1脚,片内振荡电路的输入端。 Pin18:时钟XTAL2脚,片内振荡电路的输出端。 89S51的时钟有两种方式,一种是片内时钟振荡方式,但需在18和19脚外接石英晶体和振荡电容,振荡电容的值一般取10p~30p。另外一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。如图2.11 当时钟电路起振后,产生一定频率的时钟信号,单片机的CPU在时钟信号的控制下,就能一步一步完成自己的工作。通常我们必须了解以下几种周期。 【振荡周期】:单片机外接石英晶体振荡器的周期。如外接石英晶体的频率若为12MHz,这其振荡周期就是1/12微秒。 【状态周期】:单片机完成一个最基本的动作所需的时间周期。如扫描一次定时器T0引脚状态所需要的时间。一个状态周期=2个振荡周期。 【机器周期】:单片机完成一次完整的具有一定功能的动作所需的时间周期。如一次完整的读操作或写操作对应的时间。一个机器周期=6个状态周期。 【指令周期】:执行完某条指令所需要的时间周期,一般需要1~4个机器周期,如MUL AB指令是四机器周期指令。一个指令周期=1~4个机器周期。 单片机工作时,除了需要时钟支持外,还必须有一个初始状态,即单片机的复位状态。在单片机外部引脚第9脚,就是专门给单片机提供复位脉冲的。 Pin9:RESET/Vpd复位信号复用脚,当89S51通电,时钟电路开始工作,在RESET 引脚上出现24个时钟周期以上的高电平,系统即初始复位。

如何将程序代码烧录进STC单片机

不能用keil作下载,它应该只是一个程序编辑和调试用的吧,用keil生成hex 文件。下载时用专门的下载软件找到生成的那个hex文件就可以下载了。,有专门的单片机烧写软件的。那个软件的名字叫STC-ISP V391(你可以下载个更高版本的)的,你的开发板里面应该自带下载软件的啊! 如果你用的下载下是USB转串口的线的话,你需要安装一个USB转串口驱动才能下载程序。网上搜一下就可以了。如果有光盘的话就在光盘里面找,里面肯定有的。 如何将程序代码烧录进STC单片机 先安装<STC单片机编程工具>软件到计算机中,然后进行下面的操作。 以下是烧录程序的主要界面。烧录过程非常简单,操作也非常简单。图中红色的五个大数字就表示了整个过程。简简单单的五步就可以了(实际上只需4步)。 启动本烧录程序后,第一步就是选择烧录器件。本烧录软件支持STC全系列的51单片机芯片,因此,第一步必须选择相对应的型号。由于本实验板选用的单片机芯片就是本烧录

软件首次启动默认的型号,所以,本项一般都不需要选择。 另外,“AP Memory”是指该芯片的内存大小和起止地址,根据器件型号自动更改,不必理会。 选择了器件型号,第二步就应该选择将要被烧录的HEX机器码文件。HEX文件由单片机开发环境输入、编辑代码,最后编绎产生。

至于如何产生HEX文件,很多资料也都有介绍,本板光盘中有详细的说明,并且提供了多套开发软件(每套都能用)。通过对照自学完全可以很快掌握操作。并且,本实验板光盘也提供了多种单片机开发环境供大家学习研究。 本光盘中提供了一些例子程序,大家可以点“open file”按钮,弹出以下窗口(源程序也有,但这里不显示),先选择一些例子程序烧录实验。 选好了文件后,大家可以发现“文件校验和”中的数据发生了变化,大家可以通过留意这个数据是否变化来确定打开文件是否成功,或者文件刷新是否有更改。 当然,文件打开后,会显示在右边的数据区,大家也可以观查右边数据区是否有更改。不过,当数据太多时,更改的地方又很少时,观查“文件校验和”会更快更准确。 选好了器件,选好了文件,第三步就可以设置串口和串口通信速度了。串口是一个九针的插座,老式的鼠标口就是串口。为了让通信可靠,我们可以适当的选低一些的速度,这个串口线较长时非常重要。 烧录过程中,如果出现失败,可以考虑将串口通信速度降低再试,这是由于机器配置以及当地环境因素决定的,当环境干扰过大时,必需选低一点的波特率(即通信速率)。烧录成功与失败,可以从信息区的提示看出。 选择并设置好串口后(一般不需更改),进入第四步,而这一步基本上不用更改。设置时钟倍频主要是为了提高工作速度,设置时钟增益是为了降低电磁幅射。这些,对于高级工程人员和最终产品会很有用,对于初学者来说,只当没有看见就行了。 第五步是最后一步,点击“Download/下载”,就可以进入烧录状态。 特别说明:点击“Download/下载”之前实验板的电源开关必须关闭,使单片机彻底断电,点击“Download/下载”之后才可以使单片机上电,完成程序的烧录。 注意:点击“Re-Download/重复下载”也可以,这常用于大批量的编程,不必每次都去点“Download/下载”。出现以下图状态时,给实验板通电就可以完成编程过程(如果实验板已经通电,则必须关掉电源1秒钟再次通电)。

程序烧录工艺

程序烧录工艺 一、目的:规范模块烧录操作程序,使烧录过程标准化。 二、烧录设备: 硬件 计算机一台 烧录驱动板一块 计算机与烧录驱动板连线一根 烧录线一根 软件 USB转串口驱动软件(已安装)一套 烧录程序(已安装)一套 模块程序 三、烧录过程 1.连接方法如图1所示 图1 2.打开计算机,使计算机处于正常工作状态,用鼠标双击桌面DIR K150 烧录程序图标,运行烧录程序; 3.进入图2界面

图2 在红圈内显示具体COM口序号时,连接正常,如果红圈内显示COMX并弹出图3窗口时,应检查连线是否正常牢固连接,USB转串口驱动软件有没有运行,检查完毕,点击“文件”→“选择串口”→“输入串口编号”→“x”→点击“ok”,如图4,当界面返回到图2状态,红圈内出现串口数值时,进入下一道工序。 图3

图4 4.载入模块程序,操作方法如图5所示。点击“载入”→“查找范围”→“模块程序”→“打开”,进入图6界面。 图5

图6 5.模式设置:点击“设置”→在下拉窗口中选择“ICSP模式(I)”,界 面如图7所示。 图7 6.配置位设置:点击图8红圈“配置位”→弹出图9窗口,将掉电监测选 择为“开”如图10→点击“ok”,返回图7界面。

图8 7.将烧录线与模块相连,正确方法如图1所示,点击“”→ 选择弹出窗口图11中的“擦除”→并点击“ok”→点击弹出窗口图 12中的“”→点击弹出窗口图13中的“ok”返回图7界面。 图9 图10

图11 图12 图13 8.点击“”→选择弹出窗口图13中的“”→点击 新弹出窗口图14中的“”→进入图15中的界面,等待10秒左右,当弹出图16界面时,点击“”返回图7界面。 9.该模块板程序烧录完成,去除模块板连线,放入合格品箱内,烧录不成 功的,做好不合格标记,放在不合格处,维修后,重新烧录。 敏旺科技品质保证部 2014-4-21

51单片机多任务运行

51单片机多任务运行 最近发现有的幺弟在对系统的内核感兴趣,加上我也是部分内核的初学者,突然来兴,便用了两天写了一个简单的内核。这个内核简单得不能再简单了,加上空格行、大括号和详细的注解只有246行,还带了4个点亮LED的任务。至今为止我所见最简单的内核~~~ 就跟这个内核取个“多任务分时处理内核”吧!这个内核和ucos系统思想有很大的差异,但是能够帮助我们学习理解ucos系统,能够帮我们了解51的内部结构,以及大多数的单片机运行处理数据的原理~~~ 好废话就不说啦!希望我们能互相学习共同进步 1、先来讲讲原理: 首先,我们看书时会知道51单片机在执行中断的时候,会有以下几个步骤和几种情况。 根据KEIL的编译惯例(这个编译惯例你可以在编完程序后点仿真,里面有个后缀为.src 的文件,这个文件里面是一句C对应一句汇编,你就可以知道你编译的C代码它是怎么处理的,能帮助你学习汇编哦~~~),通常把进入中断后的所使用的通用寄存器组根据情况选择压栈。也就是说,中断前后使用的寄存器组可能不一样,中断前可能使用0,中断中可能使用1。如果使用的同一组寄存器,为了保存现场,KEIL就PUSH现场数据,然后POP 就行啦。但是keil很多时候不是你想象中那样,你叫它怎样他就怎样编译。所以在程序中嵌入了少量的汇编。 其实,嵌入汇编是很简单的事情。 只要在C代码中加入#pragma asm 和#pragma endasm并在他俩的中间加入汇编就行。别忘了还要在工程文件中添加C51S.LIB,这个文件在KEIL/C51/LIB中,这个文件也很重要,不然编译会出现警告,记得把文件类型选择为全部文件,不然看不见它。 接下来说说KEIL的中断汇编。在C51中,中断到来时,CPU响应中断保存当前PC 指针地址压栈SP所指地址。然后将PC指针指向中断向量地址,在中断向量地址中只有一句汇编程序:LJMP XX 意思是跳转到某地址。因为中断后只有8个寄存器,但是你的代码量远远不只有8个寄存器能装下的。这也就是说,响应中断后,先跳转到硬件规定的地址,再由那个地址跳转到中断程序入口。 然后,PC指针跳转到中断程序地址,开始从SP所指地址压栈ACC,B,DPH,DPL,PSW,按理说还需要压栈R0~R7,但KEIL一般是通过换通用寄存器来实现的(也就是改变RS1和RS0来实现的)。也就说KEIL根本不压栈R0~R7。 这个怎么能行,当然不行!不保存我们就不能完全的返回先前压栈的任务啦!好吧,那我们就只有手动保存压栈,这样不就行了,简单吧! 所以我们来帮它。已经通过前面知道它在进入中断的时候已经把中断前的PC指针压栈到中断前SP所指的地址了,所以进入中断后,实际在SP中断前所指地址中已经按顺序压栈了PC低8位,PC高8位,ACC,B,DPH,DPL,PSW总共7个数据,SP是向上增长的,也就是说每压一次堆栈SP+1。然后再把我们的R0~R7寄存器压入堆栈,这不就行啦,就保护现场所需的全部数据,就算有时R0~R7寄存器用不上我们也得加进去,为了为了保证正确的返回现场。 因此我们保存一次数据就需要7+8=15字节的堆栈,每个任务的起始地址保存一次,中间临时要保存一次,共需要15+15=30字节的堆栈。所以定义程序空间为现场保存空间为 0~29。名字叫:unsigned char TASK_STACK[TASK_MAX][30];//程序现场保存数组。TASK_MAX是程序个数,因为每一个程序都需要保存两次,每次15个变量来保存现场,并且51是8位的单片机所以用unsigned char。 然后就是程序现场保存数组的初始化使每个数据都是0。 首先,根据响应中断后的压栈顺序,知道了数组0位和1位保存的是中断前程序的地

51单片机的看门狗

“看门狗”概念及其应用 在由单片机构成的系统中,由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统便无法继续工作,这样会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗”(watch dog)。 加入看门狗电路的目的是使单片机可以在无人状态下实现连续工作,其工作过程如下:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过单片机的程序控制,使它定时地往看门狗芯片的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,给看门狗引脚送电平的程序便不能被执行到,这时,看门狗电路就会由于得不到单片机送来的信号,便将它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,从而单片机将从程序存储器的起始位置重新开始执行程序,这样便实现了单片机的自动复位。 通常看门狗电路需要一个专门的看门狗芯片连接单片机来实现,不过这样会给电路设计带来复杂,STC单片机内部自带有看门狗,通过对相应特殊功能寄存器的设置就可实现看门狗的应用,STC89系列单片机内部有一个专门的看门狗定时器寄存器,Watch Dog Timer 寄存器,其相应功能见下个知识点。 看门狗定时器寄存器(WDT_CONTR) STC单片机看门狗定时器寄存器在特殊功能寄存器中的字节地址为E1H,不能位寻址,该寄存器用来管理STC单片机的看门狗控制部分,包括启停看门狗、设置看门狗溢出时间等。单片机复位时该寄存器不一定全部被清0,在STC下载程序软件界面上可设置复位关看门狗或只有停电关看门狗的选择,大家根据需要可做出适合自己设计系统的选择。其各位的定义如表4.2.1所示。 表1看门狗定时器寄存器(WDT_CONTR)

51单片机中断系统程序实例

51单片机中断系统程序实例(STC89C52RC) 51单片机有了中断,在程序设计中就可以做到,在做某件事的过程中,停下来先去响应中断,做别的事情,做好别的事情再继续原来的事情。中断优先级是可以给要做的事情排序。 单片机的学习不难,只要掌握学习方法,学起来并不难。什么是好的学习方法呢,一定要掌握二个要点: 1. 要知道寄存器的英文全拼,比如IE = interrupt中断 不知道全拼,要去猜,去查。这样就可以理解为什么是这个名称,理解了以后就不用记忆了。 2. 每个知识点要有形像的出处 比如看到TF0,脑子里马上要形像地定位到TCON寄存器的某位 看到ET0, 马上要形像地定位到IE寄存器的第2位 https://www.sodocs.net/doc/c45828165.html,/tuenhai/独家揭秘:形像是记忆的最大技巧。当人眼看到某个图时,是把视觉信号转化成电信号,再转化成人能理解的形像。当我们回忆形像时,就是在重新检索原先那个视觉信号,并放大。在学习过程中,不断练习检索、放大信号,我们的学习能力就会越来越强。 写程序代码时,也要把尽量把每行代码形像化。 51单片机内中断源 8051有五个中断源,有两个优先级。与中断系统有关的特殊功能寄存器有IE(中断允许寄存器)、IP(中断优先级控制寄存器)、中断源控制寄存器(如TCON、SCON的有关位)。51单片机的中断系统结构如下图(注意,IF0应为TF0):

8052有6个中断源,它比8051多一个定时器/计数器T2中断源。 8051五个中断源分别是: (1)51单片机外部中断源 8051有两个外部中断源,分别是INT0和INT1,分别从P3.2和P3.3两个引脚引入中断请求信号,两个中断源的中断触发允许由TCON的低4位控制,TCON的高4位控制运行和溢出标志。 INT0也就是Interrupt 0。在这里应该看一下你的51单片机开发板的电路原理图。离开形像的记忆是没有意义的。读到上面这句,你应该回忆起原理图上的连接。任何记忆都转化为形像,这是学习的根本原理,我们通过学习单片机要学会这种学习方法,会让你一辈子受益无穷。 TCON的结构如下图: (a)定时器T0的运行控制位TR0

51单片机入门 程序下载(程序烧写)

51单片机入门程序下载(程序烧写) 串口 串行接口简称串口,也称串行通信接口,是采用串行通信方式的扩展接口。 我们比较熟悉的USB接口,全名通用串行总线(Universal Serial BUS),就属于串口。 串行接口按电气标准及协议来分还包括UART、RS232、RS422、RS485等。 老式的台式计算机和部分笔记本上则有RS232串口,这里RS232指的是RS232电平的串口。后来由于这种串口使用很少、速度较慢、体积较大而逐渐在笔记本甚至台式机上被淘汰了。而51单片机等中含有UART串口,UART这里指的是TTL电平的串口。 UART与RS232区别主要在于其电平定义不同。TTL电平是5V的,而RS232是负逻辑电平,它定义+5~+12V为低电平,而-12~-5V为高电平。 标准串口即RS232串口(通常指COM接口),如图。

由于USB接口与单片机的TTL串口无法直接连接,一般通过转换芯片来连接。连接到USB接口的转换芯片一般需要在电脑上安装驱动。

USB转RS232串口(常用转换芯片为CH341,价格10-20元) RS232转TTL(电平转换芯片MAX232)

USB转TTL串口(常称为USB转TTL升级小板,USB-TTL转接板,常用转换芯片为PL2303,价格6-10元)

USB - RS232串口 - TTL串口转接板

USB-RS232电路图 通常成品学习板上都是USB接口或者RS232串口+USB接口。一方面USB接口负责给单片机供电,另一方面,USB转TTL或RS232转TTL已经集成的学习板上。 51单片机程序的烧写 我们最常见的51单片机是美国Atmel公司生产的AT系列单片机和中国宏晶公司生产的STC系列单片机。早期的AT89C51系列(89后面是字母C)单片机,下载程序时需要使用专门的烧写器烧写进去,单片机烧写程序时必须从电路上取下来,非常麻烦。后来退出了支持ISP(In System Programming)在线编程的AT89S51系列单片机,只需连接几根线即可烧写程序,也不需取下单片机。 标准10芯ISP插头

CCS3.3程序烧录过程

CCS3.3程序烧录步骤 编写: 1. 概述 此文档用于说明使用TI公司CCS3.3软件烧录主控插件DSP28335芯片程序的过程,请细致阅读此文档并按照文档描述的步骤进行程序烧录,非正确的的烧录步骤可能会导致28335芯片的锁死。 2. 需要的工具 电脑(预装CCS3.3工程软件); 仿真器SEED-XDS510PLUS; 3. 程序烧录步骤 1)主控机箱断电,将仿真器SEED-XDS510PLUS小心的插至主控板的DSP烧录脚(两排共14针,其中1针被剪断,仿真器对应位置的孔也被堵死);仿真器另一端插至电脑的 USB口。 2)双击桌面图标CCStudiov3.3,或者通过“开始----程序----Texas Instruments----Code Composer Studio 3.3”打开CCS软件,图标如下图1所示 图1 CCS3.3桌面图标图2 CCS设置图标注意:如果是首次使用CCS3.3需要通过Setup CCStudiov3.3对CCS进行设置,配置过程如下:a)双击桌面图标Setup CCStudiov3.3进入设置界面,桌面图标如图2所示;b)CCS配置界面如图3所示,在中间框内Family选择“C28xx”,在Plat…中选择“SEEDXDS510PLUS”,在筛选出来的系列中单击选择“F28335 SEEDXDS510 PLUS Emulator”,点击左下角“Add”按钮,可以发现左侧出现DSP和芯片信息;c)点击“Save & Quit”;d)提示对话框会询问是否启动Code Composer Studio,选择“是”可直接启动Code Composer Studio。 图3 CCS配置界面

51单片机烧写程序说明

Step 1: Keil 软件的安装 1?选中文件夹中的 C51V900安装程序并打开,如图: QE C SIY?/ flHL340 门 JwjCifinfll 蚤聞下載 2?在安装对话框里一直选择 Next ,直到Finish 完成Keil 的安装。 Step 2:安装USB 转串口线的驱动程 序 的安装 1.选中并打开文件夹中的 HL-340安装程序 生稈序下養 2?点击INSTALL 即可自动完成安装 Step 3: Keil 工程的建立 1.打开桌面上的 Keil 图标.,建立一个新工程单击 【Project 】菜单中的【New 卩Vision Project 】,如下图:

选择工程保存的位置,建议最好新建一个文件夹用来保存此工程文件,方便以后管理。 3. 选择单片机型号:打开 Atmel ^^XS 目录,选择子目录下的 AT89C52,点击0K,在 弹出的新对话框中选择否(N )。 2. U :迫看下棊 *奇乐 Prcject ?计其机? DATA (Esj ? mine ?爭匿3:斗突 仏N 他屋(Cr) j mg ir-1 」DATA (E ) L-i, BACKUP (F :)

sht|Ang5h|flf*g|bBBg v |l^ ■ “ 匚囲昂凹CC)二 j TOCHi(D4 j D*1A dBMKW 的 .KI NSTON (HI * * 5. 回到编辑界面,单击【Target 】前面的“ +”号,然后在【Source Group 1】选项上单 "oOSEtj C51 Diti b?? — U H Ddei d&d Li mb (1X511 hsieM H 6LSI 厂 Ext As-icnrtJa 曲嗨 1 '| i^tc^d cf A3' Cvt^riptan: ^T&&C51E52 .\r45C51C2 .^rS9CS1lC2 AT3SCE1IE2 AT53C51R3Z AT5SC51RS AT?C 创片餐 AFMCSIIRO2 V?SC51R^2 VB^SISMDI ■T35C51SND2 F L II^' S:etis 24MHz corrrelh- wtr 1.0 Lines 3 TimmAZflijrtwi, ¥ lm>rn4H/2 Pnwty Lev*k UAfi' ? iojid- M^mu> j)cx 8K Svte ; FI JS I I Mti iiur., 12$球曲OrMip 卍W 4. 单击【File 】菜单中的【NeM 菜单项,或者Ctrl+N 可新建一个文件 Textl □ TfrJrtl 单击工具栏的图标 或者Ctrl+S ,在弹出的保存对话框输入文件名, 注意必须在文件 名后加上“ .C ”作为保存的文件类型(例如 shuangshuangbang.c ),然后保存。 P d-E =j ■- DATA 1]E :J ? Fir ?秆盒亶鼻亢 .笙WF

单片机烧写程序说明

Step 1:Keil软件的安装 1.选中文件夹中的C51V900安装程序并打开,如图: 2.在安装对话框里一直选择Next,直到Finish完成Keil的安装。 Step 2: 安装USB转串口线的驱动程序的安装 1.选中并打开文件夹中的HL-340安装程序 2.点击INSTALL即可自动完成安装 Step 3:Keil工程的建立 1.打开桌面上的Keil图标,建立一个新工程单击【Project】菜单中的【New μVision Project】,如下图:

2.选择工程保存的位置,建议最好新建一个文件夹用来保存此工程文件,方便以后管理。 3.选择单片机型号:打开Atmel目录,选择子目录下的AT89C52,点击OK,在 弹出的新对话框中选择否(N)。

4.单击【File】菜单中的【New】菜单项,或者Ctrl+N可新建一个文件Text1, 单击工具栏的图标或者Ctrl+S,在弹出的保存对话框输入文件名,注意必须在文件名后加上“.c”作为保存的文件类型(例如),然后保存。 5.回到编辑界面,单击【Target】前面的“+”号,然后在【Source Group 1】选项上单

击右键,弹出下图所示菜单。然后选择【Add Files to Group ‘Source Group1’】菜单项,如下图: 6.在弹出的对话框中选中刚才保存的“”文件并单击【Add】,再单击【Close】,如图: 7.单击左侧【Source Group 1】前面的“+”号,这时可以注意到【Source Group 1】文 件夹中多了一个子项【】,这时源代码文件就与工程关联起来了,这时在右边的“”代码编辑窗口把伟哥的代码复制过来即可,如图:

PZ-ISP STC-ISP 程序烧录步骤

程序烧录步骤 1,USB , 安装驱动程序,驱动程序在“学习光盘”中,具体安装方法参 考配套“使用说明书”https://www.sodocs.net/doc/c45828165.html,B COM 驱动安装完后,请检查的端口号。 当前为COM1 3.\\-FlashMagic 文件路径:学习光盘烧录工具,程序烧录时,要满足下面各参数的设置情况,选种“”选项卡,请按图设置PZ ISP PZ ISP .exe .exe 打开-烧录软件。https://www.sodocs.net/doc/c45828165.html,B COM 与的口一致 2.STC 请选择系列单片机 3.500-999此处最佳设置范围 4.选择扩展名为的程序文件×××().HEX 5.点击“下载”完成烧录程序串口最好不要默认 在COM3上 注意: 如果插上某个USB 口出现“连接超时”或串口不能正常使用 时,请换一个USB 口试试 此软件目前不支持系统,用户请用官方软件烧程序VISTA VISTA STC STC-ISP 6T/12T 模式切换 对于XP 系统驱动程序日期务必是2003-7-16否则就会造成无法烧录 程序。安装光盘中的驱动程序时, 必须完全卸载同类型不同版本的驱 动程序。 安装完后,请在“设备管理器”中 确认驱动程序日期。 注意使用时,短接的实现自动下载为了保障开关的使用寿命,请使用自动 下载方式。 J0Auto ,电源

此款软件也是普中科技公司另一款自动下载软件()此款软件使用更方便、更简洁。只需要选择MCU 型号和要烧录文件,开发仪在端口中名字是推荐使用此款软件。 最大地兼容所有PL2303驱动:Prolific USB-to-Serial Comm Port 注意使用时,短接的实现自动下载为了保障开关的使用寿命,请使用自动 下载方式。 J0Auto ,电源 如果出现此提示,说您的电脑上驱动 程序不是兼容性最好的版本,从而降 低了下载速度.但不影响正常使用. 。 建议安装光盘中驱动程序安装时注意:用安装软件自带“移除”功能 来卸载掉你电脑中原来的驱动程序,否则无 法卸载干净。然后重新安装光盘中配的驱动。

51单片机精确延时程序大集合

51单片机精确延时程序大集合 以下程序说是精确延时,实际上都不对。调用一次差个几微秒、几百微秒,一天下来差好几分钟。加我的QQ群有精确版本哦,不同频率的晶振都适用。群:38397759 2008-04-24 12:10:26, 在论坛上看到不少不错的延时程序,整理如下共同分享: 精确延时计算公式: 延时时间=[(2*第一层循环+3)*第二层循环+3]*第三层循环+5 ;延时5秒左右 DELAY5S:PUSH 04H;2个机器周期 PUSH 05H;2个机器周期 PUSH 06H;2个机器周期 MOV R4,#50;1个机器周期 DELAY5S_0:MOV R5,#200;1个机器周期 DELAY5S_1:MOV R6,#245;1个机器周期 DJNZ R6,$;2×245=490个机器周期 DJNZ R5,DELAY5S_1;这条2个机器周期,这层循环包含R5×(490+1) +2×R5=98600个机器周期 DJNZ R4,DELAY5S_0;这条2个机器周期,这层循环包含R4×(98600+1) +2×R4=4930150个机器周期 POP 06H;2个机器周期 POP 05H;2个机器周期 POP 04H;2个机器周期 RET;2个机器周期 ;(共2+2+2+1+4930150+2+2+2+2=4930165个机器周期) ;513微秒延时程序 DELAY: MOV R2,#0FEH;1个机器周期 JUZINAIYOU: DJNZ R2,JUZINAIYOU;2×R21即2×245 RET;2个机器周期 ;(实际上是493个机器周期)

;10毫秒延时程序 DL10MS: MOV R3,#14H DL10MS1:LCALL DELAY DJNZ R3,DL10MS1 RET ;(缺DELAY) ;0.1s延时程序12MHz DELAY: MOV R6,#250 DL1: MOV R7,#200 DL2: DJNZ R6,DL2 DJNZ R7,DL1 RET ;延时1046549微秒(12MHz) ;具体的计算公式是: ;((((r7*2+1)+2)*r6+1)+2)*r5+1+4 = ((r7*2+3)*r6+3)*r5+5 DEL : MOV R5,#08H DEL1: MOV R6,#0FFH DEL2: MOV R7,#0FFH DJNZ R7,$ DJNZ R6,DEL2 DJNZ R5,DEL1 RET ;1秒延时子程序是以12MHz晶振 DELAY:MOV R1,#50 del0: mov r2,#91 del1: mov r3,#100 djnz r3,$ djnz r2,del1 djnz r1,del0 Ret ;1秒延时子程序是以12MHz晶振为例算指令周期耗时 KK: MOV R5,#10 ;1指令周期×1 K1: MOV R6,#0FFH ;1指令周期×10

单片机结构与开发设计流程图

模块一单片机结构及开发设计流程 课题一单片机结构 1、画出89C51单片机的引脚排列图。 2、画出89C51单片机的引脚功能图。 3、画出89C51单片机的基本组成框图。 4、叙述89C51单片机各部分的具体组成情况。 课题二单片机工作条件 1、画出51系列单片机部时钟和外部时钟电路接线图。 2、画出51系列单片机上电复位和按键复位电路接线图。 3、画出51系列单片机工作条件接线图。 课题三单片机输入/输出端口结构 1、画出51系列单片机P0、P1、P 2、P3口位结构图。 2、叙述51系列单片机P0~P3口使用注意事项。 课题四单片机开发设计流程 1、用Protel软件画出按键左移亮灯电路原理图。 2、用Protel软件设计出按键左移亮灯电路印制电路板图。 3、制作按键左移亮灯电路板。 4、连接仿真器。 5、运行仿真软件,输入按键左移亮灯程序,编译、调试及仿真运行程序。 6、连接编程器。 7、运行编程器软件,将调试通过的按键左移亮灯程序目标代码写入89C51单片机。 8、将经过编程的89C51单片机插入电路板上的单片机IC插座中,脱机运行,观察电路运 行情况。 模块二单片机指令系统及汇编语言程序设计 课题一程序设计基础 1、简述单片机存储器总体分配情况。 2、简述单片机片数据存储器结构。 3、简述单片机七种寻址方式。

4、简述单片机不同存储器空间的寻址方式。 5、回答下列指令的寻址方式: (1)MOV A, #6AH (2)MOV A, #0E#H (3)MOV A, 3FH (4)MOV A, 7BH (5)MOV A, R1 (6)MOV A, R3 (7)MOV A, R0 (8)MOV A, R1 (9)MOVX A, DPTR (10)MOVC A, A+DPTR (11)MOV A, A+PC (12)JZ 50H (13)SETB 01H 课题二延时程序 1、将本课题任务二中的R3的值改为01H、02H和08H,观察亮灯的间隔时间有何变化? 2、将本课题任务二中的RL A指令改为RR A指令,观察亮灯的顺序有何变化? 3、将本课题任务二中的亮灯数据初值改为03H、07H和55H,观察亮灯规律有何变化? 4、设计一延时5S的延时程序,并替代任务二中的延时程序,观察亮灯间隔时间。 5、设单片机振荡频率为6MHz,试精确计算下列延时子程序的延时时间。 DEL: MOV R7, #0FAH DEL1: MOV R6, #0F8H NOP DEL2: DJNZ R6, DEL2 DJNZ R7, DEL1 6、设单片机振荡频率为12MHz,试估算下列延时子程序的延时时间。 MOV R5, #20 K1: MOV R6, #250 K2: DJNZ R6, K2 DJNZ R5, K1

51单片机汇编时间片程序

;******************************************************************* ********* ;本时间片系统的原理是利用51单片机的T0定时一个中断,切换用户的任务轮流执行, ;用户的任务写法和一般的一样,此处用2个流水灯和一个按键程序做实例 ;**************程序步骤**************** ;1定义一个全局变量用于存储任务号,另一个存储任务数 task_name equ7ch task_amount equ7bh ;2定义任务的堆栈区数组,由于任务的切换需要占用15个字节,所以每个任务的堆栈区大小要看程序的使用情况而定, ;如果按照任务有3级深度设计,则堆栈区的大小为15+6=21个字节 ;tsp*_a都只有一级深度,18个字节够用 tsp0_a equ30h;31,32,33,34,35,36,37,38,39,3a,3b,3c,3d,3e,3f,40,41, tsp1_a equ42h;43,44,45,46,47,48,49,4a,4b,4c,4d,4e,4f,50,51,52,53, tsp2_a equ54h;55,56,57,58,59,5a,5b,5c,5d,5e,5f,60,61,62,63,64,65, tsp3_a equ66h;67,68,69,6a,6b,6c,6d,6e,6f,70,71,72,73,74,75,76,77, ;3定义一个数组,用于保存每个任务的栈顶,数组的长度等于任务数 sp_a equ78h;79,7a, ;哈哈,内存区快用完了,还好位寻址区还有空间,当然如果是52就够用了 ;4定义一个数组,用于存储每个任务的标志位,因为有的任务有运行的先后之分,也就是有条件运行,在这里是这样 ;处理的,只有任务的标志位为零时,在任务调度时才能运行,例如要设计一个按键程序,只有先运行按键检测程序 ;后,相应的显示的程序才能运行。我们可以这样处理,在按键程序中给显示程序的一个标志位置1,按键程序结束后将 ;显示程序的标志位置0,这个数组最好设置在位寻址区(20h),长度等于任务数 tnt_a equ20h;21,22,23, org0000h ljmp clear;清理内存 org000bh ljmp IntTime0;时间片中断 org0030h ;***********主程序********** main: mov task_amount,#3;3个任务

相关主题