微智科技网
您的当前位置:首页单片机Keil C51和PROTEUS实验指导书

单片机Keil C51和PROTEUS实验指导书

来源:微智科技网
目 录

实验一 单片机仿真开发系统的使用 ···································································· 2

1.1 Keil C51 集成开发环境介绍 ··································································· 2 1.2 用Proteus仿真软件 ················································································ 6 1.3 实现单片机最小系统的简单应用。 ··························································· 8 实验二 显示及驱动电路设计用 ··········································································· 10 实验三 简单输入/输出实验 ················································································ 12 实验四 外部中断的运用 ···················································································· 14 实验五 单片机内部定时/计数器实验 ···································································· 15 实验六 串行口通信设计 ···················································································· 17 实验七 直流电机控制 ······················································································· 18 实验八 步进马达控制 ······················································································· 19

实验一 单片机仿真开发系统的使用

1.1 Keil C51 集成开发环境介绍

①、运行keil C51编辑软件,软件界面如图1-1所示 ②、 建立一个新的工程项目

单击Project菜单,在弹出的下拉菜单中选中New Project选项

③、保存工程项目

a、选择要保存的文件路径,输入工程项目文件的名称,如保存的路径为C51文件夹,工程项目的名称为C51,如图所示,单击保存

b、为工程项目选择单片机型号

在弹出的对话框中选择需要的单片机型号,如图所示,这里选择51核单片机中使用较多的S51,选定型号后,单击确定,出现如图所示的开发平台界面

④、 新建源程序文件

在下图中单击“File”菜单,选择下拉菜单中的New选项,新建文件后得到如图的界面:

⑤、 保存源程序文件

单击“File”菜单,选择下拉菜单中的Save选项,在弹出的对话框中选择保存的路径及源程序的名称,如图所示。此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时必须键

程序录入区域 入正确的.扩展名。注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。然后,单击“保存”按钮

⑥、为工程项目添加源程序文件 在编辑界面中,单击“Target”前面的“+”,再在“Source Group”上单击右键,得到如图所示的对话框,选择“Add File to Group’ Source Group 1’”,弹出如图所示的对话框,选中要添加的源程序文件,单击“Add”,得到如图所示的界面,同时,在“Source Group 1”文件夹中多了一个添加的“Text1.c”文件。

注意扩展名

⑦、 输入源程序源程序输入完成后保存,得到如图所示的界面。程序中的关键字以不同的颜色提示用户加以注意,这就是事先保存待编辑的文件的好处,即Keil c51会自动识别关键字

⑧、 编译调试源程序

在上图中,单击Project菜单,在弹出的下拉菜单中选中Built Target选项,再单击Debug菜单,在弹出的下拉菜单中选中Start/Stop Debug Session选项, 编译成功后,再单击Debug菜单,在弹出的下拉菜单中选中Go选项,进行源程序调试。如图所示。

⑨、查看分析结果

单击Debug菜单,在弹出的下拉菜单中选中Stop Running选项, 单击View菜单,在弹出的

下拉菜单中选中Serial Windows #1 选项,可以看到程序运行的结果,如图所示:

⑩、生成Hex代码文件

将编译调试成功的源程序生成可供单片机加载的Hex代码文件,单击Project菜单,在弹出的下拉菜单中选中Options for Target’ Target 1’选项,在弹出的对话框中单击Output选项,选中其中的“Create HEX File”项。其他选项可以不考虑,如图所示:

到此,一个完整的工程项目就在Keil C51软件上就编译完成

把生成的.HEX代码烧写到8051芯片中,完成软件程序到代码的转换。

必须选中 1.2 用Proteus仿真软件

U13938373635343332P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7XTAL11922pC1各类单片机及其他芯片 晶振、电池、保险等 1、Keil C51软件在使用调试中会出现由于录入出现的各种错误和程序本身语法错误,

X118CRYSTALXTAL2RSTATS519100R100R100R100R100R100R100R22pR2R3R4R5R6R7R8R9100R电路原理图如图所示

要学会自己排除错误。

五、实验注意事项

1011121314151617P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.712345678Optoelectronics Analog ICs Capacitors Resistors Switches&Relays Miscellaneous 10kMicroprocessor ICs 2122232425262728P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15C329PSEN30ALE31EAR110uD8D7D6D5D4D3D2D1

2、在进行Keil C51软件编译时,要注意软件参数设置。

C23、在进行Proteus软件仿真时,要注意与Keil C51软件之间互调设置。

各类光电显示元件 各类模拟电子元件 各类电容元件 各类电阻元件 单片机中常用的元件在下表中查找

系 列 各类开关及按钮 元 件 1.3 实现单片机最小系统的简单应用。

要求:P1口控制32个发光二极管LED循环点亮。 一、实验目的

1.熟悉PROTEUS单片机仿真软件的使用。 2. 熟悉Keil C51软件的使用

3.掌握单片机I/O口输出的控制方法。 二、实验设备(仪器) PC 微机一台 三、实验内容

1.按照Keil C51 集成开发环境的要求,建立一段P0~P3口作为输出端口的程序,然后进行编译并进行软件仿真。

2.运用PROTEUS绘制原理图,控制P0~P3输出端口,以控制32位LED流水灯的造型,参考电路如下。 LED-REDD1D2P01P00LED-RED1RP2234567100D3P02LED-REDU119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27P30P31P32P33P34P35P36P37D4D5P03LED-REDD6P04LED-RED18LED-YELLOWD17P10LED-YELLOWD18P119XTAL2D7P05LED-REDRSTD8P06LED-REDRP11234567RESPACK-8LED-YELLOWD19P12LED-YELLOWD20P13LED-YELLOWD21P14LED-YELLOWD22P15LED-YELLOWD23P16293031PSENALEEAD33P07LED-REDD9LED-GREENP20LED-GREEND10P21LED-GREEND11P22LED-GREEND12P231234567RESPACK-8P101P112P123P134P145P156P167P178P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7ATC51RP3LED-YELLOWD24P17P24LED-GREEND13P37P36P35P34P33P32P31D25D26D27D28D29D30D31D32P30LED-GREEND14P25LED-GREEND15P26LED-GREEND16P27LED-BLUELED-BLUELED-BLUELED-BLUELED-BLUELED-BLUELED-BLUELED-BLUE98765432RESPACK-81RP4 四、实验步骤

1.单片机I/O 接口原理图的设计,当单片机P0~P3口某位为低电平时,对应的LED会亮,反

之熄灭。

2.打开Keil C51 集成开发环境,建立一个工程并设计相应程序,完成对P0~P3口进行赋值控制LED灯的亮灭,并在空白部分填加注释。

3.对程序并进行编译、调试,观察、分析实验现象。 五、预习要求

1.预习8位LED点亮实验例程,理解其程序,掌握LED的工作原理,其工作特性如图1-1所示。

图1-1 LED 的工作特性

2.Keil C 软件的调试方法及相关硬件设置。

3. PROTEUS软件元件库调用及电路设计, LED驱动电路的连接如图1-2所示。

图1-2 LED端口驱动电路

六、实验报告要求

1.描述32位LED闪烁程序并添加注释。

2.把设计的PROTEUS仿真图,写入实验报告。

3.思考题:请思考并描述调试工具中单步调试、运行、步入、步出的区别。

实验二 显示及驱动电路设计用

一、实验目的

1.熟悉7段LED数码管、继电器、蜂鸣器等输出设备的结构及其工作原理,编写其驱动。 2. 熟悉Keil C51软件的使用,熟悉PROTEUS单片机仿真软件的使用。

3.掌握单片机I/O口输出的控制方法,掌握单片机对数码管的静态显示控制方式。 二、实验设备(仪器) PC 微机一台 三、实验内容

1.按照Keil C51 集成开发环境的要求,设计1位7段LED数码管显示和继电器控制的程序。 2.运用PROTEUS绘制原理图,设计与程序一致的输出控制电路,以控制7段LED数码管和继电器,实现数码管倒计时到0时,继电器吸合并驱动蜂鸣器发声。 四、实验步骤

1.单片机I/O 接口原理图的设计,驱动7段LED数码管显示电路,控制继电器\\蜂鸣器发声电路或发光二极管闪烁电路,参考电路如下。

U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718XTAL2R1R2R3R4R5R6R7220R220R220R220R220R220R220R9RST293031PSENALEEARL1R8220ROZ-SH-105D12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7ATC51D1LED-GREENR9220R 2.打开Keil C51 集成开发环境,建立一个工程并设计相应程序,完成对数码管、继电器和蜂鸣器的控制,并在空白部分填加注释。

3.对程序并进行编译、调试,观察、分析实验现象。 五、预习要求

1.掌握数码管、继电器、蜂鸣器等输出设备的结构及其工作原理,预习7段LED点亮实验例

程,理解其程序。

1单个数码管 ○

2继电器 ○

图2-1 数码管结构原理图

图2-2 1P和2P继电器结构原理图

3蜂鸣器 ○

图2-3 蜂鸣器驱动电路

2.Keil C 软件的调试方法及相关硬件设置。 3. PROTEUS软件元件库调用及电路设计。 六、实验报告要求

1.描述数码管、继电器驱和蜂鸣器动程序并注释。 2.把设计的PROTEUS仿真图,写入实验报告。 3.心得体会及其他。

实验三 简单输入/输出实验

一、实验目的

1.掌握单片机的键盘的组成硬件电路。 2.掌握按键去抖动的方法。

3.掌握条件转移的程序设计方法。 二、实验设备(仪器) PC 微机一台 三、实验内容 1.判别有无键按下。

2. 键盘扫描取得闭合键的键值。

3. 判断闭合键是否释放,如没释放则继续等待。 4. 将闭合键的键值保存,同时转去执行该闭合键的功能。 四、实验步骤

1.参考原理图1如图3-1所示。

图3-1 原理图

2.打开Keil C51集成开发环境,设计按键处理程序,上电时P2所接灯熄灭,P0口所接灯点亮,K1键按下P0口所接灯一盏灯亮并上移,K2键按下P0口所接灯一盏灯灯下移,K3键按下P2口所接灯一盏灯亮并上移,K4键按下P2口所接灯一盏灯灯下移,在程序空白处填加注释。 3. 参考原理图2如图3-2所示。

C122pFU1X112M18XTAL219XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617D1R2220C222pFD2R3220R110k9RSTC310uF293031PSENALEEAD3R4220D4R5220K1K2K3K412345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7ATC51K1,K2按下时LED亮,松开时灭K3,K4按下时LED亮,再次按下时灭 4.打开Keil C51集成开发环境,设计按键处理程序,,P0口所接灯熄灭,K1,K2键按下LED灯亮,松开时灭,K3,K4键按下LED灯亮再次按下时灭,在程序空白处填加注释。 五、预习要求

1.对教材中例程分析并按实验要求加以补充修改。 2.Keil C 软件的调试方法及相关硬件设置。 3. PROTEUS软件元件库调用及电路设计。 六、实验报告要求

1.设计键盘处理程序并添加注释。

2.把设计的PROTEUS仿真图,写入实验报告。

3.思考题:什么是按键去抖,为什么按键程序需要进行去抖动处理,一般按键去抖的硬件处理方法和软件处理方法分别是怎样的。

实验四 外部中断的运用

一、实验目的

1.学习并掌握外中断的使用。 2.学习中断处理程序的编程方法。 二、实验设备 PC 微机一台 三、实验内容

1.使用单脉冲作中断源,每按一次按钮,响应一次外部中断; 2. 实现中断的嵌套功能,设置其优先级; 四、实验步骤

1.本实验电路如下所示。

U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718ABCDEFGXTAL2R1100RR2R3100RR4100RR5100R100RR6R7100R100R9RST293031PSENALEEAR8R9100RR10100RR11100RR12R13R14100R100R100RABCDEFG100RR16R17R18R19100RR20R21R22100R100R100R100R100R12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7ATC51R15100R23100

五、预习要求

1.中断控制寄存器的定义。

2.外中断的初始化过程,入口地址等相关知识。 3.熟悉并分析实验例程。 4.完成预习报告。 六、实验报告要求

1.编写程序并加上注释;

2.把设计的PROTEUS仿真图,写入实验报告。

6.思考题: 单片机外中断两种触发方式的区别,各适用于何种情况。

实验五 单片机内部定时/计数器实验

一、实验目的

1.学习并掌握单片机定时器中断的使用。 2.掌握定时器中断溢出时间的计算。 3.了解单片机定时器各工作模式的区别。 二、实验设备(仪器) PC 微机一台 三、实验内容

1. 连线并编制程序。使用定时器1中断,按方式1工作,得到1S的定时;按方式2工作,得到4ms的定时。 2.初始化程序

包括定时器初始化和中断系统初始化。主要对IP,IE,TCON,TMOD 的相应位进行正确的设置,并将时间常数送入定时器中。由于只有定时器中断,IP不必设置。 3.设计中断服务程序和主程序

中断服务程序除了要完成计时工作外,还要实现动态显示。 四、实验步骤

1.电路设计,参考电路如下。

U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617R1010018XTAL2D1LED-RED9RST293031PSENALEEAseg0R9seg111kR81k12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7ATC51R1R2R3R4R5R6R7100R100R100R100R100R100R100R 2. 软件设计:扩展单个按键,使其具有“开启/停止/清零”的功能,开启:可以实现0—99S的计时,停止:能显示记录的时间,清零:具有清除当前记录重新记录数据。 五、预习要求

1.预习单片机定时器的工作方式及中断处理方法。

seg0seg12.掌握定时器初始化方法。

3.预习实验例程:定时器/计数器的输入脉冲周期与机器周期一样,为振荡器频率的1/2。本实验中时钟频率为12M,现要采用中断方法来实现1秒延时,要在定时器1中设置一个时间常数,使其每隔0.05 秒产生一次中断,CPU响应中断后R0中计数值减一,令(R0)=14H,即可实现1 秒的延时。 时间常数可按下法确定:

机器周期=12/晶振频率=12/12=1uS

定时器需设初值为X,则(2^16﹣X)*1=50000uS 求出X=15536

转化为十六进制:X=3CB0H,故初始值为:TH1=3CH,TL1=B0H 六、实验报告要求 1.编写程序并注释;

2.把设计的PROTEUS仿真图,写入实验报告。

3.思考题: 简述单片机定时器的几种方式的区别,利用内部定时器实现延时与利用软件延时有什么区别。

实验六 串行口通信设计

一、实验目的

1.学习并掌握单片机串行口中断的使用。 2.掌握单片机串行口各工作模式的区别。 3.了解运用定时器设置波特率。 二、实验设备(仪器) PC 微机一台 三、实验内容

1. 设计串行口数据传输电路;

2.编制程序,完成串行口数据的交换;

3. 扩展单个按键,使其具有按键后交换信息的功能; 四、实验步骤

1.电路设计,参考电路如下。

U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617RXTX12345678RN116151413121110910029303119U2XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617TXRX12345678RN216151413121110910018XTAL218XTAL29RST9RST293031PSENALEEAPSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7ATC5112345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7ATC51 2. 软件设计,上电运行,数码管显示主机号,按键后交换主机号。。 五、预习要求

1.预习单片机串行口的工作模式

2. 串行口通信查询处理方法和中断处理方法。 3.预习实验例程; 六、实验报告要求 1.编写程序并注释;

2.把设计的PROTEUS仿真图,写入实验报告。 3.思考题: 如何实现单工通信;

实验七 直流电机控制

一、实验目的

1.学习并掌握直流电机的使用。

2.掌握单片机对直流电机运行状态的控制。 二、实验设备(仪器) PC 微机一台 三、实验内容

1. 设计直流电机控制电路;

2.编制程序,完成直流电机运行状态的控制;

3. 扩展按键,使其具有按键后改变直流电机的运行状态; 四、实验步骤

1.电路设计,参考电路如下。

U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617RP11234567RESPACK-818XTAL29RST293031PSENALEEA减速加速94VSOUT1OUT2OUT3OUT4GND8L29812345678P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7ATC52SRCFILE=LCD.hexU2231314正转/反转开始/停止571012611115IN1IN2IN3IN4ENAENBVCCSENSASENSB 2. 软件设计,扩展按键实现开始/停止、正转/反转、加速、减速等功能。 五、预习要求

1.预习单片机驱动直流电机的电路; 2.预习实验例程; 六、实验报告要求 1.编写程序并注释;

2.把设计的PROTEUS仿真图,写入实验报告。 3.思考题: 使用达林顿管如何控制直流电机;

实验八 步进马达控制

一、实验目的

1.学习并掌握步进电机的使用。

2.掌握单片机对步进电机运行状态的控制。 二、实验设备(仪器) PC 微机一台 三、实验内容

1. 设计步进电机控制电路;

2.编制程序,完成步进电机运行状态的控制;

3. 扩展按键,使其具有按键后改变步进电机的运行状态; 四、实验步骤

1.电路设计,参考电路如下。

U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718XTAL2R12k9RSTR22k293031PSENALEEA反转正传P101P112p123p1345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7ATC51U2p101p112p123p1345671B2B3B4B5B6B7BCOM1C2C3C4C5C6C7C916151413121110A-A-BBAVCC-A+88.8B-BVCCULN2003A 2. 软件设计,扩展按键实现开始/停止、正转/反转、加速、减速等功能。 五、预习要求

1.预习单片机驱动步进电机的电路;

2.预习实验例程; 六、实验报告要求 1.编写程序并注释;

2.把设计的PROTEUS仿真图,写入实验报告。

3.思考题: 不同相数的步进电机控制有什么区别;

因篇幅问题不能全部显示,请点此查看更多更全内容