版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、如有你有帮助,请购买下载,谢谢!11页单片机原理及其应用(电子专业使用)南京城市职业学院工程技术系二。八年四月第一部分实验环境及工具介绍本次实验使用uVision2集成开发环境和Top200锐程器。下面分别简要介绍其使用方法。文章部分引自磁动力工作室站长明浩编写的单片机C语言教程和赵亮、侯国锐编著的单片机C语言编程与实例。第一课建立您的第一个项目开始程序运行Keil uVision2几秒后,出现如图11的屏幕。日Y曰1-幺 SOFTWARE/ntegrationIDE forMicrocontrollerThis program is protected by U.S. and interna
2、tional copyright laws图1 1启动时的屏幕接着按下面的步骤建立您的第一个项目:(1)新建工程。点击Projec俅单,选择弹出的下拉式菜单中的 New Project, 如图12。接着弹出一个名为“ Create New Project的对话框,如图13,先选 择一个合适的文件夹准备来存放工程文件,如“ C51”是新建的文件夹。在“文 件名”中输入您的第一个程序项目名称,这里我们用"test","保存"后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名,以后我们可以直接点击此文件以 打开先前做的项目。我们建议:今后每新
3、建一个工程都要在适当的磁盘位置新建一个文件夹用来保存工程文件,以方便管理,并养成良好的习惯。图 1 2 New Project 菜单图13文件窗口(2)选择单片机。紧接着,Keil C51提示您选择CPU器件。8051内核单 片机最早是由鼎鼎大名的Intel公司发明的,后来其他厂商如 Philips、Atmel、 Winbond等先后推出其兼容产品,并在8051的基础上扩展了许多增强功能。在 这里我们选择Atmel公司的AT89S51。此时屏幕如图14所示。图1 4选取芯片接下来弹出一个如图1-5所示的对话框。该对话框提示您是否要把标准 8051 的启动代码添加到工程中去。Keil C51既支
4、持C语言编程也支持汇编语言编程。 如果打算用汇编语言写程序,则应当选择“否(N)” ;如果打算用C语言写程序, 一般也选择“否(N)”,但是,如果用到了某些增强功能需要初始化配置时,则 可以选择“是(Y)”。在这里,我们选择“否(N)”,即不添加启动代码。图1 - 5选择是否要添加启动代码至此,一个空的Keil C51工程建立完毕。(3)首先我们要在项目中创建新的程序文件或加入旧程序文件。 点击图16中1 的新建文件的快捷按钮,在2中出现一个名为“Text n”(其中n表示序号)的文 档,或通过菜单File New或快捷键Ctrl+N来实现。Fie Edit View Project Debu
5、g Peripherals Tools SV1ffl 高官欣 |Tar6et IF :_i Target ISource Group 1图1 6新建程序文件点击图1 6中的3保存新建的程序,也可以用菜单File SavelE快捷键Ctrl+S 进行保存。因是新文件所以保存时会弹出如图1 7的文件操作窗口,我们把第一 个汇编语言编写的程序命名为test1.asm,保存在项目所在的目录中。注意:扩展名“.asm”不可省略。图1-7保存新建的源程序文件(4)添加源程序文件到工程中。现在,一个空的源程序文件“testl.asmf已经建立,但是这个文件与刚才新建的工程之间并没有什么内在联系。我们需要把它
6、添加到工程中去。单击Keil C51软件左边项目工作窗口 “ Target 1”上的“ + ”, 将其展开。然后右击“ Source Group 1”文件夹,会弹出如图1-8所示的选择菜 单。单击其中的“ Add Files to Group 'Source Group 1'项,将弹出如图1-9所示 的对话框。图18把文件加入到项目文件组中图1 9选择文件请在文件类型下拉列表中选择 Asm source巾le源文件,再选择刚刚保存的文 件 “test1.asmi',按ADD按钮(请不要多次点击“ Add”按钮),最后按“ Close”按钮,程序文件已加到项目中了。这时可
7、以点击Source Group1文件夹图标左边的“ +”展开后查看(5)现在开始输入源程序。先最大化“ test1.asM源程序窗口,然后请按实验一程序清单输入程序代码入口程序ORG 0000H;程序执行开始地址LJMP START;跳到标号STAR例行; 主程序START: MOV P1,#01111111B;点亮最下面的 LED,即 P1_7 口低电平LCALL DELAY50MOV P1, #BLCALL DELAY50MOV P1, #BLCALL DELAY50MOV P1,#BLCALL DELAY50MOV P1, #BLCALL DELAY50MOV P1, #BLCALL D
8、ELAY50MOV P1, #BLCALL DELAY50MOV P1, #BLCALL DELAY50MOV P1, #BLCALL DELAY50 AJMP START 延时子程序,;延时50毫秒;点亮下面第二个 LER即P1_6 口低电平;延时50毫秒;LED依次点亮(以下省略);延时50毫秒;延时50毫秒;延时50毫秒;延时50毫秒;延时50毫秒;延时50毫秒;完成第一次循环点亮,延时约0.25秒;延时50毫秒;反复循环12M晶振延时约 50毫秒DELAY50:MOVR4,#5L3:MOVR2,#20L1:MOVR3,#248DJNZR3 ,$DJNZR2 ,L1DJNZR4 ,L3R
9、ETEND(6)单击 Keil C51 工具栏的 “ * ” 图标,弹出名为 “ Options for Target 'Target 1'”的对话框。单击“ Output”标签页,选中“ Create HEX File”项,然后“确 定”。参见图1-10。图1-10编译环境设置(7)我们先来看图1 11,图中1、2、3都是编译按钮,不同是1是用于编译单个 文件;2是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这 时再点击是不会再次重新编译的;3是重新编译,每点击一次均会再次编译链接 一次,不管程序是否有改动。在3右边的是停止编译按钮,只有点击了前三个中 的任一个
10、,停止按钮才会生效。5是菜单中的它们。这个项目只有一个文件,你 按123中的一个都可以编译。在4中可以看到编译的错误信息和使用的系统资源情 况等,以后我们要查错就靠它了。单击工具栏的按钮“ 倒”编译当前源程序 编译结果会显示在输出窗口 4内。如果是“0 Error(s), 0 Warning(s).”就表示程序 没有问题了(至少是在语法上不存在问题了)。如果存在错误或警告,双击错误, 在源程序的错误行前会出现修改后,再编译,直到通过为止。PP- test - tlisionZFile Edit View Project Debug PeripheralNew Project.Import p
11、Vision I Project''Open ProjectJose Project£ile ExtensionSj Books.Target 1E 15ourc困t售| Fil8厚2£1 Bui Id tareJj conpilinj 1 inking. Program S: "test" - t4Targets Group与 File5. Select Device For Targe Rernove ItemOptions For Target TarClear Group and File 0(ffl Build target Q
12、磔j Rebuild all target Fies Translate D:MyDm或工 盘 Stop build图1 11编译程序(8)编译后的结果会生成Intel HEX格式的程序文件“ testl.heX',如图1-12 该文件可以被专门的芯片烧写工具(例如 Top2004编程器)载入并最终烧录到 具体的芯片中。芯片安装到自己的电路板上,通电,就可以运行里面的程序了。E Files 固Build terget 1 Target 1( compiling test 1.c.1inking. s_lz里二_ 一超上白:堂口上一 KdqtmsQ wed曰=11 口口;creatinc
13、f hex file from "test",.,"test" - 0 Error(s), 0 Warning(s).Build 人-Curnmmiid 入 Find . Files' /图112编译信息窗口第二课在Keil C51下调试程序Keil C51的调试功能非常强大,本章我们先做一个初步了解,等以后再慢 慢体会。现在仍然以实验一 LED闪烁发光程序为例,来具体了解如何进行仿真 操作。2.1 进入仿真状态如果程序编译通过,就可以仿真了。在仿真之前,有一项参数最好配置一下, 仍然按“太”图标进入编译环境设置,找到“ target ”下的“
14、Xtal (MHz) ”项, 填入合适的晶振频率,比如12。最后点击“确定”。进入仿真状态很简单,直接点击工具栏红色的“图标。2.2 认识各个仿真窗口1 .源程序窗口Keil C51调试界面的中间是源程序窗口。黄色箭头“ 匕”所指为当前即将执行的代码。以深灰色标记的程序行是可以执行的代码(当然,在调试过程中未必一定要去执行)。以浅灰色标记的程序行不可作为代码来执行,它们是注释、 空行、标号或ROM数据表。以绿色标记的程序行表示曾经执行过的代码。2 .寄存器窗口Keil C51调试界面的左边是寄存器窗口。 8051的工作寄存器(R0R7)和 系统寄存器(a、b、sp、dptr、PC、psw)都列
15、出来了。Value栏显示的是寄存 器的当前数值。如果在调试过程中某个寄存器的值有变化,则会用蓝色的背景标记。单击psw寄存器左边的“ + ”,展开后还可以看到其每一位的情况。3 .汇编窗口单击工具栏的“凰”图标,源程序窗口会自动切换成汇编窗口。在汇编窗 口里,我们可以看到每条指令的存储地址和编码等信息。再次单击“ 色”,回到源程序窗口。4 .存储器窗口单击工具栏的“ 口”图标,将显示出存储器窗口。 51单片机的存储器分为多个不同的存储空间,如果要观察代码存储器,就在地址栏“Address:"内输入“C:地址”,例如:C:0080H;如果要观察外部数据存储器,就输入“ X:地址”;如果
16、要观察内部数据存储器,则可以输入“ I:地址”。拖动存储器窗口右边的滚 动条还可以观察输入地址附近的存储单元。存储器窗口有“ Memory #1Memory #4”共4个观察子窗,您可以用来分别观察代码存储器、内部数据存储器和外部数据存储器。存储器的内容是可以修改的。用鼠标右击打算要修改的存储单元,选择 “ModifyMemory at 项,弹出修改对话框,可以随意修改存储单元的内容。5 .变量观察和堆栈窗口单击工具栏的“屋1 ”图标,将显示变量观察和堆栈窗口 (Watch & Call StackWindow)。在Locals标签页,会自动显示局部变量的名称和数值。在 C语言程 序的
17、函数中,每一对花括号“ ”内定义变量都是局部变量,能够自动显示。在“Watch”标签页内,先用鼠标点击一次“type F2 to edit”,再按功能键“F2”, 输入所要观察的局部或全局变量的名称,回车后就能显示出当前数值。在“Call Stack”标签页内,可以实时地观察到堆栈的使用情况。6 .3程序的运行控制Keil C51能够实现程序单步和全速运行,具体由工具栏上的按钮来实现:复位按钮“弱”:单击此图标,能够使程序复位,程序将从地址 C:0000H 处执行。全速运行“力”:单击此图标,能够使程序全速运行。停止运行“”:该图标原来是灰色(不可操作),在进入全速运行状态 后会变成红色。如果
18、要停下来,则可以按此图标。单步进入“不” :按此图标可以实现程序的单步执行。 在遇到函数调用时, 会跟踪进入函数体。单步跳过“讲”:也是单步执行,但是遇到函数时,视作“1条指令”来执行,不会跟踪进入。单步跳出“ *” :在调试C语言程序时,如果希望从某个函数中提前返 回,则可以按此图标。执行到光标” :用鼠标单击某条可执行的代码(深灰色标记的程序行) 然后按此图标,则程序开始全速执行,当遇到光标所在的行时,会自动停 下来。如果单击不可执行的程序行(有浅灰色标记),试图让程序执行到 该行,是不允许的,“ "”图标也会立即变成灰色,不让你操作。设置/清除断点“刊” :Keil C51支持
19、断点设置功能。单击需要设置断点 的行,再单击此图标,我们会看到该行被一个红色的小方块标记。当程序 全速运行时遇到断点,便会自动停下来。Keil C51允许在同一个程序里设置多个断点。清除某个断点的方法是,将光标停在该行上,再按一次“删” 图标。另外一种设置/清除断点的快捷方法是,用鼠标在目标程序行的空白 处双击,您不妨试一试。消除所有断点“命”:如果设置了多个断点,想一并清除,则可以按此图 标。7 .4外围设备访问Keil C51的一大特色是在仿真调试时支持对外围设备的访问。单击菜单“ Peripheral ,会弹出外围设备菜单。在 Peripherals菜单里列出 了标准51的外围设备(相对
20、于CPU内核而言):中断、I/O端口、用行口和定 时器等。现在执行菜单“Peripherals | I/O-Ports | Port 1 ,弹出P1端口的界面。在位0 7中,用,表示高电平,无,表示低电平。执行菜单“ Peripherals | Timer | Timer 0”,弹出定时器T0的界面。参见图2.1。弹出的外围设备菜单是可以操作的,不妨试试。图2-1外围设备中的P1和T0对话框8 .5进入调试模式单击开启关闭调试模式按钮段,实验一中,我们使用Peripherals菜单 选 择I/O-Ports P1,打开P1调试窗口,再按运行键 短,这时就可以看到P1中不 断循环状态,空为“ 0
21、”,打钩为“1” 。是不是不难呀?这样就完成了您的第一个项目。最后我们要停止程序运行回到文件编辑模式中,就要先按停止按钮 华,再按开启 关闭调试模式按钮 段o 然后我们就可以进行关闭KEIL等相关操作了。到此为止,我们已经初步学习了 一些KEIL uVision2的项目文件创建、编译、运行和软件仿真的基本操作方法。 其中一些功能的应用,如观察端口值、内部RAM、ROM值等有待大家不断地实 践。File Edit View Proiect Debug Peripherals Tools SVCS Window Help道学电电I车年4 % %席聃国3 #4®叵(画|回国| )则眄射箭
22、甲g我中小力|中彭欣 帙窝瞪昌口区)1=1 Files亨一 心日_ I 口1 X I丰匚.:二匚 UT-F:L1工二#include <stdic.h> void nain(void)电 SCON = 0k50; /串一Twnr = Ov7n /声昌 testl. c 昌Serial #1Serial #1Hello World IHello Vorld!-Hello Uorld!Hello World!Hello World!Hello World!Ur-.1 1 - T,T 1 4 i身工口 ad ”D 7“/图1 11调试运行程序Fils Edit View Project
23、DebugPenpherJsTools懵 ggG0If J I jri毛三+ Ftest - fiiision2Tai之 D:nyDataYSelect Device for Target 'Target 1'Options for Target 'Target 1'Open File 您I Rebuild target I.M.I Build targetTranslate FileX Stop 电i旧Add Files to Group largetSj Groups Files, Remove Item111图21项目功能菜单g Files 苧 单 J B
24、uild target 1 Target 11-J compiling test1.c,1 inking .PjrogEam S : _ 超七旦二3口一 JL 苍一野上亘:Q god旦二1口口;creatiiicr hex file from "test","test" - 0 Error(s), 0 Warning(s)»Build 人 Comm 日nd 入 Fin Jin Fil 已 s / 一图3 3编译信息窗口至此,您可以把编译好的文件烧到了芯片上。如何烧写片子,请看第三课。第三课 TOP2004®用USB编程器的使用TOP2
25、004通用编程器直接采用USB接口通讯和供电,可以工作在 Win98SE/Me/2000/XP操作系统,无须外接电源,编程速度快,支持 2.5V6.5V 器件,软件升级灵活。一、编程器软件的安装:1、请务必断开编程器,不要连接编程器2、运行配套光盘中TOPWIN目录内的SETUP.EXE文件,按照提示进行安装 3、最后按确认”重启电脑4、电脑重启完成后,用配套的USB电缆连接编程器,电脑会提示 找到新硬件” 按照提示自动搜索软件,一直完成 USB初始化安装5、光盘中TOPWIN10.EXE是中文界面的编程器软件,可以进行安装6、运行 开始程序TOPWIN软件会出现 正在初始化USB接口,需要3
26、10 秒”的界面,随后进入专用编程软件7、如果因为安装次序不正确引起的或者其他原因造成安装失败,可以点击:我 的电脑一右键 属性”一硬件一设备管理器一JUNGO中有黄色感叹号的选中按 DEL删除,然后再重复以上16步骤即可。这是编程器的专用软件界面: 二、读写芯片的步骤:1、将51芯片插入插座,注意方向2、运行编程器软件3、型号选择ATMEL89S514、读写擦除显示正常结束5、读写读器件工作区显示全FF 退出5、装载选择文件(*.hex)在工作区显示装载的文件的十六进制代码6、读写写器件显示写入完成退出7、完成,取出芯片,放入实验板验证。第二部分单片机实验实验一:P0、P1、P2 口的输入、
27、输由实验、实验要求1、熟悉语言编辑工具、单片机编程器的使用。2、通过实验,加深对 P0、P1、P2 口的了解。3、学习利用P1 口作输出口,外接发光二极管及编程驱动。4、学习利用P2 口作开关输入口及控制输出口,外接开关及编程驱动5、学习利用P0 口作输出口,外接数码显示管的方法。、实验目的1、掌握单片机最小系统的设计。2、学习P0、P1、P2 口的使用方法。3、学习发光二极管、键盘、数码显示管、蜂鸣器的运用。4、学习延时子程序的编写和使用。、实验内容1、仔细研究实验原理图,有条件的学生可以自己购买器件焊接实验板。(1)起振电路:使用芯片内部时钟,外接石英晶体12MHz和微调电容30pF(2)
28、复位电路:复位电路由22uF的电容和1kQ的电阻组成。(3)当EA信号为高电平时,则对ROM的读操作是从内部程序存储器开始。2、单片机的P1 口做输出口,外接8只LED,编写程序,使LED循环点亮。3、P2.0P2.2 P2.6、P2.7 口做输入口,外接开关;编写程序读取 P2.0P2.2P2.6、P2.7 口开关状态,并将开关状态在 P1.0P1.7口发光二极管上显示出来。19。4、P0 口接一对共阴数码显示管,编写程序使数码显示管循环显示数字DELAY:MOVR0,#202个DELAY1:MOVR1,#2482个DJNZR1,$2个DJNZR0,DELAY12个RET5、延时子程序的编写
29、及延时计算 延时时间的设计: 2+2X248=498 »20X(498+2)+2 =10002算延时200 ms,贝U使用R3 义 10 msDELAY:MOVR3,#20D1:MOVR4,#20D2:MOVR5,#248DJNZR5,$DJNZR4,D2查指令表可知,MOV, DJNZ指令均需用两个机器周期,而一个机器周期的 时间长度为12+12MHz = 1微秒,所以该段程序执行时间为:20 X( 2 + 2X248 ) +2 + 2 = 10002 us = 10.002 ms由上可知,R0 = 20 , R1 = 248 延时 10 ms ; R0 =10 , R1 = 24
30、8 延时 5 ms ;=200 ms , R3 = 20。延时子程序如下:如有你有帮助,请购买下载,谢谢!DJNZ R3, D1 RET 四、实验电路及程序框图 四、实验器材清单电 源:12V稳压电源1台;电源插座1只;LM7805稳压管1只;470uF电解电容2只;0.1uF瓷片电容2只。晶振电路:12M晶振1只;30PF电容2只。复位电路:1K电阻1只,22uF电容1只。控制部分:AT89S51单片机1个。数码管:1K提拉排阻1只;2位连体数码管1只。流水灯:LED发光二极管8只;限流电阻560? X 8只。蜂鸣器:S8550PNP型驱动三极管1只;1K分压电阻1只;5v蜂鸣器1开关:微动
31、开关4只;4路DIP开关1只。五、实验说明1、P2 口是准双向口。它作为输出口时与一般双向口使用方法相同。由准双向口 结构可知当P2 口作为输入口时,必须先对它置高电平使内部MOS管截止。因为内部上拉电阻阻值是 20k?40k?,故不会对外部输入产生影响。若不先对它 置高,且原来是低电平,则 MOS管道通,读入的数据是不正确的。2、认识数码管:本次实验使用的是共阴数码管,公共端是“1 “、“6",公共端置"0”, 则显示段置“1“就亮。“1"控制左面的数码管;"6"控制右面的数码管。正面看数 码管的引脚对应数据线的关系为:对应数据线D7D6D5
32、D4D3D2D1D0对应显示段efr dp 1gcdba0CF110011111030000001125D010111 10135B01011011493100100115DA11r 0111011016DE11011110743010000118DF1101111P 19DB11011011实验板上的7段数码管09数字的共阴显示代码为:0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH六、参考程序1、P1 口循环点灯(1)程序流程框图入口程序 *点光Pl_7 口的灯 延时50遥秒d古11页点光Pl_6 口的灯如有你有帮助,请购买下载,谢谢!LCALLDE
33、LAY50; 延时 50 毫秒MOVP1,#B; 点亮下面第二个LED ,即 P1_6 口低电平LCALLDELAY50; 延时 50 毫秒MOVP1,#B;LED 依次点亮 (以下省略)LCALLDELAY50; 延时 50 毫秒MOVP1,#BLCALLDELAY50; 延时 50 毫秒MOVP1,#BLCALLDELAY50; 延时 50 毫秒MOVP1,#BLCALLDELAY50; 延时 50 毫秒MOVP1,#BLCALLDELAY50; 延时 50 毫秒MOVP1,#BLCALLDELAY50; 延时 50 毫秒MOVP1,#B; 完成第一次循环点亮 , 延时约 0.25 秒LC
34、ALLDELAY50; 延时 50 毫秒AJMPSTART; 反复循环;点亮最下面的LEQ即P1_7 口低电平START: MOV P1,#01111111B; 程序执行开始地址;跳到标号STAR例行主 程 序 ORG 0000HLJMP START; 延时子程序,12M晶振延时约50 毫秒 DELAY50:MOV R4,#5L3:MOV R2,#20L1:MOV R3,#248DJNZ R3 ,$DJNZ R2 ,L1DJNZ R4 ,L3RETEND2、P2.0P2.2 及 P2.6、P2.7 口开关状态显示( 1) 程序流程框图( 2) 汇编语言编写程序ORG 0000HSTART: MOV P2,#FFH;读引脚初始化 , 同时灭灯MOV A,P2;读入 P2 口数据O
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版首付款分期购房借款合同样本3篇
- 2025年度木地板翻新与保养服务合同4篇
- 2025年新型节能厨房电器研发与销售合作协议4篇
- 2025年度个人分红协议书包含金融科技分红条款4篇
- 二零二五年度新型木托盘租赁及信息化管理服务合同4篇
- 2025年度上市公司合规管理法律顾问合同
- 二零二五年度同居解除协议及共同财产分割与子女监护责任合同
- 二零二五年度团员个人事迹合同管理法律顾问服务合同
- 2025年度酒店客房保洁服务承包经营与质量监控协议
- 二零二五年度自媒体合伙人合同版:网络直播平台主播签约合同
- 湖北省石首楚源“源网荷储”一体化项目可研报告
- 医疗健康大数据平台使用手册
- 碳排放管理员 (碳排放核查员) 理论知识考核要素细目表四级
- 撂荒地整改协议书范本
- 诊所负责人免责合同范本
- 2024患者十大安全目标
- 会阴切开伤口裂开的护理查房
- 实验报告·测定鸡蛋壳中碳酸钙的质量分数
- 部编版小学语文五年级下册集体备课教材分析主讲
- 电气设备建筑安装施工图集
- 《工程结构抗震设计》课件 第10章-地下建筑抗震设计
评论
0/150
提交评论