高校内部C语言单片机实验讲义.doc
《高校内部C语言单片机实验讲义.doc》由会员分享,可在线阅读,更多相关《高校内部C语言单片机实验讲义.doc(50页珍藏版)》请在三一文库上搜索。
1、微机原理与应用实验讲义刘涛 陈亮中国计量学院信息学院目 录实验1:keil开发环境介绍单片机内部存储器调用操作1实验2:清零、拆字、拼字程序及数据区传送子程序7实验3:P1口亮灯实验、P1口转弯灯实验9实验4:单片机定时器实验11实验5:单片机计数器实验13实验6:单片机串行口实验14实验7:工业顺序控制实验18实验8:8255PA口控制PB口、8255控制交通灯20实验9:单片机键盘输入、数码管显示实验22实验10:单片机D/A转换实验30实验11:单片机总线控制1602液晶32实验12:单片机设计简易计算器36实验1:keil开发环境介绍单片机内部存储器调用操作一、实验目的1.进行keil
2、开发环境的熟悉和调试;2.能够初步进行一个简单程序的调试二、实验设备及器材启东单片机综合实验箱,计算机等三、实验内容熟悉keil的开发环境,并进行一个简单的程序调试,在keil的串行调试窗口显示“Hello World!”四、实验步骤使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。KEIL uVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有
3、很强大的功能。因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。(安装的方法和普通软件相当这里就不做介绍了)图11启动时的屏幕接着按下面的步骤建立您的第一个项目:(1)点击Project菜单,选择弹出的下拉式菜单中的New Project,如图12。接着弹出一个标准Windows文件对话窗口,如图13,用法技巧也不是这里要说的,以后的章节
4、中出现类似情况将不再说明。在文件名中输入您的第一个C程序项目名称,这里我们用test,只要符合Windows文件规则的文件名都行。保存后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。图12New Project菜单 图13文件窗口(2)选择所要的单片机,这里我们选择常用的Ateml公司的AT89C51。此时屏幕如图14所示。AT89C51有什么功能、特点呢?不用急,看图中右边有简单的介绍,稍后的章节会作较详细的介绍。完成上面步骤后,我们就可以进行程序的编写了。(3)首先我们要在项目中创建新的程序文件或加入旧程序文件。如果你没有
5、现成的程序,那么就要新建一个程序文件。在KEIL中有一些程序的Demo,在这里我们还是以一个C程序为例介绍如何新建一个C程序和如何加到您的第一个项目中吧。点击图15中1的新建文件的快捷按钮,在2中出现一个新的文字编辑窗口,这个操作也可以通过菜单FileNew或快捷键Ctrl+N来实现。好了,现在可以编写程序了,光标已出现在文本编辑窗口中,等待我们的输入了。第一程序嘛,写个简单明了的吧。下面是经典的一段程序:i nclude i nclude void main(void)SCON = 0x50; /串口方式1,允许接收TMOD = 0x20; /定时器1定时方式2TCON = 0x40; /设
6、定时器1开始计数TH1 = 0xE8; /11.0592MHz 1200波特率TL1 = 0xE8;TI = 1;TR1 = 1; /启动定时器while(1)printf (Hello World!n); /显示Hello World图14选取芯片图15新建程序文件 这段程序的功能是不断从串口输出Hello World!字符,我们先不管程序的语法和意思吧,先看看如何把它加入到项目中和如何编译试运行。(4)点击图15中的3保存新建的程序,也可以用菜单FileSave或快捷键Ctrl+S进行保存。因是新文件所以保存时会弹出类似图13的文件操作窗口,我们把第一个程序命名为test1.c,保存在项目
7、所在的目录中,这时你会发现程序单词有了不同的颜色,说明KEIL的C语法检查生效了。如图16鼠标在屏幕左边的Source Group1文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。我们?quot;Add File to Group Source Group 1弹出文件窗口,选择刚刚保存的文件,按ADD按钮,关闭文件窗,程序文件已加到项目中了。这时在Source Group1文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。图16把文件加入到项目文件组中 (5)C程序文件已被我们加到了项目中了,下面就剩下编译运行了。这个项目我们只是用做学习新建程序项目和
8、编译运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用于芯片烧写的HEX文件,如何设置生成HEX文件就请看下面的第三课。我们先来看图17吧,图中1、2、3都是编译按钮,不同是1是用于编译单个文件。2是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的。3是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。在4中可以看到编译的错误信息和使用的系统资源情况等,以后我们要查错就靠它了。6是有一个小放大镜的按钮,这就是开启关闭调试模式的按钮,它也存在于菜单DebugSta
9、rtStop Debug Session,快捷键为Ctrl+F5。图17编译程序(6)进入调试模式,软件窗口样式大致如图18所示。图中1为运行,当程序处于停止状态时才有效,2为停止,程序处于运行状态时才有效。3是复位,模拟芯片的复位,程序回到最开头处执行。按4我们可以打开5中的串行调试窗口,这个窗口我们可以看到从51芯片的串行口输入输出的字符,这里的第一个项目也正是在这里看运行结果。这些在菜单中也有,这里不再一一介绍大家不妨找找看,其它的功能也会在后面的课程中慢慢介绍。首先按4打开串行调试窗口,再按运行键,这时就可以看到串行调试窗口中不断的打?quot;Hello World!。这样就完成了您
10、的第一个C项目。最后我们要停止程序运行回到文件编辑模式中,就要先按停止按钮再按开启关闭调试模式按钮。然后我们就可以进行关闭KEIL等相关操作了。到此为止,初步学习了一些KEIL uVision2的项目文件创建、编译、运行和软件仿真的基本操作方法。其中一直有提到一些功能的快捷键的使用,的确在实际的开发应用中快捷键的运用可以大大提高工作的效率,建议大家多多使用,还有就是对这里所讲的操作方法举一反三用于类似的操作中。 图18调试运行程序 实验2:清零、拆字、拼字程序及数据区传送子程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。二、实验内容(1)把2000H-20FFH的内容清零。(2)把2
11、000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。(3)把2000H、2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成个字节。(4)把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。三、程序框图(2)拆字程序框图(1)清零程序框图(4)数据区传送程序框图(3)拼字程序框图四、实验步骤(1)用连续或单步方式运行程序,检查2000-20FF中执行程序前后的内容变化。(2)用连续或单步方式运行程序,检查20002002H中内容变化情况。(3)单步或用断点
12、方式运行程序,检查2002H内容变化情况。(4)在R2、R3中输入源首址(例如0000H),R4、R5中输入目的地址(例如2000H), R6、R7中输入字节数(例如1FFFH),运行程序,检查0000-1FFFH中内容是否和2000-3FFFH中内容完全致。实验3:P1口亮灯实验、P1口转弯灯实验一、实验目的(1)学习P1口的使用方法;(2)学习延时子程序的编写。二、实验设备及器材启东单片机综合实验箱,计算机等三、实验内容(1)P1口亮灯实验:P1作为输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。P1口对准双向口,每一位都可独立地定义为输出线或输入线。本实验中延时子程序采用指令循
13、环来实现,机器周期(12/6MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。(2)P1口转弯灯实验:P1.0开关接5V时,右转弯灯闪亮,P1.1开关接5V时左转弯灯闪亮, P1.O、P1.1开关同时接5V或接地时,转弯灯均不闪亮。四、程序框图图2-1 p1口亮灯实验程序框图图2-1 p1口转弯灯实验程序框图五、实验电路图2-3 P1口亮灯实验电路图图2-4 P1口转弯灯实验电路图六、实验步骤(1)P1口亮灯实验:P1.O-P1.7用插针连至L1-L8,运行程序后,观察发光二极管闪亮移位情况。(2)P1口转弯灯实验:P1.0接K1 P1.1接K2 P1.4-P1.7
14、接L1 L5 L9 L13连续运行本程序,应看到转弯灯正确闪亮,在用单步方式调试本程序时需修改延时子程序,(例可把延时程序第一个字节改成返回指令22H),以便观察。七、思考改变延时常数,使发光二极管闪亮时间改变。修改程序,使发光二极管闪亮移位方向改变。实验4:单片机定时器实验一、实验目的熟悉51定时/计数功能,掌握初始化编程方法。二、实验设备及器材计算机、实验箱或自制实验板三、实验内容把定时器0外部输入的脉冲进行计数,并送显示器显示。四、程序框图五、实验电路五、实验步骤P3.4依次接T0-T7或单步脉冲输出孔,执行程序,观察数码管上计数脉冲的速度及个数。 实验5:单片机计数器实验一、实验目的学
15、习51单片机内部定时计数器使用方法。二、实验设备及器材计算机、实验箱或自制实验板三、实验内容51单片机内部定时计数器T0,按计数器模式工作于方式1,对P34(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。四、实验电路连线P10 - LED0 P11 - LED1 P12 - LED2 P13 - LED3 P14 - LED4 P15 - LED5 P16 - LED6P17 - LED7 - T0(P34)单次脉冲五、实验说明本实验中内部计数器起计数器的作用。外部事件计数脉冲由T0(P34)脚引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个
16、机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。开始设置T0工作方式(方式1、计数模式)开始计数计数,输出计数值六、参考程序框图实验6:单片机串行口实验一、实验目的1.掌握8051串行口方式0工作方式及编程方法。2.掌握利用串行口扩展I/O通道的方法。二、实验设备及器材启东单片机综合实验箱,导线,数码管,74ls164等。三、实验内容利用8051串行口和串行输入并行输出移位寄存器74LS164,扩展一个8位输出通道,用于驱动一个数码显示器,在数码显示器上循环显示8031串行口输出的09这1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高校 内部 语言 单片机 实验 讲义
链接地址:https://www.31doc.com/p-2080527.html