当前位置:文档之家› 单片机C语言实验指导书(18课时)

单片机C语言实验指导书(18课时)

单片机C语言实验指导书(18课时)
单片机C语言实验指导书(18课时)

单片机及应用实验指导书

(C语言篇)

扬州环境资源职业技术学院

应用电子教研室

2011-02-18

目录

实验一单片机系统开发软件的使用 (1)

实验二LED广告灯的设计 (10)

实验三数码管显示原理及应用实现 (14)

实验四按键识别的设计 (18)

实验五简易频率计的设计 (30)

实验六数字式电压表的设计 (34)

实验七简易波形发生器的设计 (41)

实验八点阵LED显示设计 (44)

实验九液晶显示器显示电路设计 (46)

实验一单片机系统开发软件的使用

一、实验目的

1. 会利用keil C51软件对单片机C程序进行编译;

2. 会利用protues软件绘制电路原理图并实现仿真;

3. 会用keil C51软件对源程序进行编译调试及与Protues软件联调,实现电路仿真

二、原理说明

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,该软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。编译后生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势,C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进和扩充。

Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows 操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路.该软件的特点是:

①实现了单片机仿真和SPICE电路仿真相结合。

②支持主流单片机系统的仿真。

③提供软件调试功能。

④具有强大的原理图绘制功能。

三、实验设备

计算机及其相关的设备

四、实验内容

1、用keil C51软件编辑编译一段C程序,实现打印的Keil C51 欢迎界面:

“Hello I am KEIL,I will be your friend.”

程序清单:

# include "reg51.h" // 包含头文件

# include "stdio.h"

void main (void) // 主函数

{

SCON=0x52;

TMOD=0x20;

TH1=0xf3;

TR1=1; // PRINTF函数所必须

printf (“Hello I am KEIL.\n ”);

printf (“I will be your friend.\n ”);

while(1);

}

软件操作:

①、运行keil C51编辑软件,软件界面如图所示

②、建立一个新的工程项目

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

③、保存工程项目

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

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

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

④、新建源程序文件

在下图中单击“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芯片中,完成软件程序到代码的转换。

2、用Proteus仿真软件,实现单片机最小系统的简单应用。

要求:P1口控制8个发光二极管LED循环点亮。

电路原理图如图所示

单片机中常用的元件在下表中查找

五、实验注意事项

1、Keil C51软件在使用调试中会出现由于录入出现的各种错误和程序本身语法错误,要学会自己排除错误。

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

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

六、思考题

如何编写程序

七、实验报告

1.画出单片机最小系统电路图

4. 心得体会及其他。

实验二LED广告灯的设计

一、实验目的

1、能根据设计任务要求编制程序流程图,理解程序对发光二极管的控制原理;

2、会利用protue绘制流水广告灯电路原理图;

3、会用keil C51软件对源程序进行编译调试及与protues软件联调,实现电路仿真

二、原理说明

流水广告灯就是使依次排列的各个LED发光。用8051的I/O口做输出口,接入发光二极管,通过控制I/O电平的变化,实现需要的显示效果。

任务要求:

编写程序,使发光二级管循环点亮,时间间隔为0.2s。即刚开始时D1点亮,延时0.2s 后,接着是D2点亮,接着依次点亮D3、D4、D5、D6、D7、D8,然后再点亮D7、D6、D5、D4、D3、D2、D1,重复循环。

硬件电路分析:

该电路采用的是共阳接法,要使LED点亮,则P1口的对应端子输出低电平,即P1.0=0时,D1亮。一般情况下,驱动LED的电流约10mA左右,而LED本身的压降为2V。当P1.0输出为低电平时,输出为0V,则流经D1的电流为,为了在仿真实验中让LED更亮一些,在这里取限流电阻为100Ω。相反,当P1.0输出为高电平时,输出电压为5V,则流经D1的电流为0mA,D1不亮(熄灭),即P1.0=1时,D1不亮(熄灭)。

发光二极管LED介绍:

通常红色(贴片)二极管LED:电压1.6V—2.4V,电流2—20mA,在2—5mA亮度有所变化,,5mA以上亮度基本无变化,可以求出电阻阻值大概在150---1.5K之间变化三、实验设备

同实验一。

四、实验内容

1、点亮第一个LED

2、从左到右的流水灯

3、左右来回循环的流水灯

4、花样流水灯

程序:

点亮第一个D1发光二极管

#include //52系列单片机头文件

sbit led1=P1^0; //声明单片机P1口的第一位

void main() //主函数

{

led1=0; /*点亮第一个发光二极管*/

while(1);

}

点亮第1、3、5、7发光二极管

#include //52系列单片机头文件

void main() //主函数

{

P1=0xaa;

While(1);

}

让D1二极管以亮1S、灭1S的方式进行闪烁的程序(亮灭时间相同)

#include //52系列单片机头文件

#define uint unsigned int //宏定义

sbit led1=P1^0; //声明单片机P1口的第一位

uint i,j;

void main() //主函数

{

while(1) //大循环

{

led1=0; /*点亮第一个发光二极管*/

for (i=1;i>0;i--) //延时

for (j=110;j>0;j--);

led1=1; /*关闭第一个发光二极管*/

for (i=1000;i>0;i--) //延时

for (j=110;j>0;j--);

}

}

让D1二极管以亮200ms、灭800ms的方式进行闪烁的程序(亮灭时间不相同)#include //52系列单片机头文件

#define uint unsigned int //宏定义

sbit led1=P1^0; //声明单片机P1口的第一位

void delayms(uint); //声明子函数

void main() //主函数

{

while(1) //大循环

{

led1=0; /*点亮第一个发光二极管*/

delayms(200); //延时200毫秒

led1=1; /*关闭第一个发光二极管*/

delayms(800); //延时800毫秒

}

}

void delayms (uint xms)

{

uint i,j;

for (i=xms;i>0;i--) //即延时约xms毫秒

for (j=110;j>0;j--);

}

任意变化广告灯的设计

#include "reg52.h" //包含头文件

#define uchar unsigned char // 设置变量类型

uchar discode[8]={0x7e,0xbd,0xdb,0xe7,0xdb,0xbd,0x7e,0xff};

/*定义显示花样数据的数组*/

void delay02s (void) // 延时时间

{

unsigned char i,j,k;

for(i=2;i>0;i--)

for(j=200;j>0;j--)

for(k=250;k>0;k--);

}

void main(void) // 主函数

{

uchar i; // 定义变量

while(1)

{

for(i=0;i<8;i++) // 循环8次

{

P1=discode[i]; //将数组discode中的第i个数据取出来,赋给P1口输出

delay05s();

}

}

}

?利用C51自带的库函数_crol_,以间隔500ms,实现所有LED以流水灯的方式显示。#include //52系列单片机头文件

#include

#define uint unsigned int //宏定义

#define uchar unsigned char

void delayms (uint); //声明子函数

uchar aa;

void main() //主函数

{

aa=0xfe; //赋初值11111110

while(1) //大循环

{

P1=aa;

delayms(500); //延时500毫秒

aa=_crol_(aa,1); //将aa循环左移1位后再赋给aa

}

}

void delayms (uint xms)

{

uint i, j;

for (i=xms;i>0;i--) //i=xms 即延时约xms毫秒

for (j=110;j>0;j--);

}

五、实验注意事项

1.、调试程序要注意格式,理解用C语言编写的条理性。

六、思考题

1. 要让八个LED模拟成雨滴(从大到小)的现实效果,程序如何编写

2. 在考虑编写这些广告灯的花样还有其他的什么方法。

七、实验报告

心得体会及其他。

实验三数码管显示原理及应用实现

一、实验目的

★知识目标

1.了解7段LED数码管的结构及其工作原理;

2. 掌握单片机对数码管的静态、动态显示控制方式;

3. 应用单片机进行计数控制的原理。

★能力目标:

1. 能根据设计任务要求编制不同进制计数器的程序流程图,理解程序对数字电子时钟的控制原理;

2. 会利用电路仿真软件绘制简易数字电子时钟的电路原理图;

3. 会用keil C51软件对源程序进行编译调试及与protues软件联调,实现电路仿真。

二、原理说明

数码管是通过对其不同的管脚输入相对的电流使其发亮从而显示出数字,可以显示时间、日期、温度等可以用数字代替的参数。

1、单个数码管

2、多位数码管

三、实验设备

计算机及相关设备

四、实验内容

1、一位数码管电路图硬件(共阴数码管)要求循环显示0—9十个数字。

程序:

//单只数码管循环显示0—9

#include

#include

#define uchar unsigned char

#define uint unsigned int

Uchar code DSY_code[ ]={

0xc0,0xf9,0xa4,0xb0,0x99,0x92,

0x82,0xf8,0x80,0x90,0xff};

V oid Delayms(uint xms) //延时

{

uint I,j;

for(i=xms,i>0,i--)

for(j=xms,j>0,j--) ;

}

void main() //主程序

{

uchar i=0;

P2=~DSY_code[i];

i=(i+1)%10;

Delayms(500) }

2、多位数码管硬件电路图(共阳数码管)

程序

①、8只数码管滚动显示单个数

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar code DSY_code[ ]={

0xc0,0xf9,0xa4,0xb0,0x99,

0x92,0x82,0xf8,0x80,0x90};

void Delayms(uint xms) //延时

{

uint I,j;

for(i=xms,i>0,i--)

for(j=xms,j>0,j--) ;

}

void main() //主程序

{

uchar I,k=0X80;

while(1)

{

for (i=0;i<8;i++)

{

P2=0Xff;//关闭显示

k=_crol_(k,1);

P0=DSY_code[i];//发送段码

P2=k;//发送数码管位码

Delayms(300);

}

}

}

②、8只数码管动态显示多个不同字符#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar code DSY_code[ ]={

0xc0,0xf9,0xa4,0xb0,0x99,

0x92,0x82,0xf8,0x80,0x90};

void Delayms(uint xms) //延时

{

uint I,j;

for(i=xms,i>0,i--)

for(j=xms,j>0,j--) ;

}

void main() //主程序

{

uchar k,m=0X80;

P0=0XFF;

P2=0X00;

while(1)

{

for (K=0;K<8;K++)

{

P2=m;//位码

m=_crol_(k,1);

P0=DSY_code[k+1];//发段码

delayms(2);

}

}

}

五、实验注意事项

调试程序时候注意出现的语法错误

六、思考题

1、从0---59的加一计数显示(动态)设计

2、任意进制计数器的设计

七、实验报告

1、心得体会及其他。

实验四按键识别的设计

一、实验目的

★知识目标:

1、掌握单片机的键盘的组成硬件电路;

2、掌握单片机最小系统的组成及相关电路的工作原理;

3、掌握单片机键盘扫描原理。

★能力目标:

1. 掌握键盘的去抖的原理及处理的方法。

二、实验原理

单片机应用系统中,键盘主要用于向计算机输入数据、传送命令等,是人工干预计算机的主要手段。键盘要通过接口与单片机相连,分为编码键盘和非编码键盘两类。

单片机原理及应用实验指导书

单片机原理及应用实验指导书 湖南人文科技学院 二00一年三月

实验一I /O口输出实验—LED流水灯实验 一、实验目的 1、掌握单片机最小系统的构成; 2、掌握I/O口的使用及驱动能力的概念; 3、熟悉移位指令和软件延时程序。 二、实验设备与器件 1、计算机1台 2、PROTEUS单片机教学实验箱FB-EDU-P51A 三、实验原理 如下图所示,用单片机控制LED的亮与灭,在实验图中将MCU的P1口与LED的阴极相连,当P1口给低电平时,LED发亮,当P1口给高电平时,

四、实验内容 1、利用51单片机及8个发光二级管等器件,构成一个流水灯单片机系统。 2、用Keil C51软件创建程序 3、对程序进行编译与链接,建立实验程序并编译,加载hex文件,仿真; 4、实验板验证 (1)用ISP下载hex程序到CPU (2)按连接表连接电路 (3)检查验证结果 五、实验报告 在预习报告的基础上写出详细实验过程;画出实验原理图,写出单片机控制程序,写出调试步骤与仿真方法,观察实验现象,得出实验结果,并分析实验结果的正确性。 六、预习要求 1、单片机最小系统的构成 2、单片机I/O口的使用以及软件延时程序的编写。 七、实验参考程序 ORG 00H START: MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A ;循环左移 DJNZ R2,LOOP ;判断移动是否超过8 位, 未超过继续循环 LJMP START DELAY: MOV R5,#20 ;延时程序,延时0.2s D1: MOV R6,#20

单片机实验指导书

《单片机原理与应用》 实验指导书 注意: 1、做实验前必须预习 2、带教材和实验指导书 理工大学 自动化学院自动化系

实验仪的使用 本实例是仿真INTEL的8031单片机,来循环点亮P1口的发光二极管(低电平有效)。程序是用汇编语言来编写。下面介绍相应的操作步骤: 1、运行桌面“星研集成软件”,画面如下: 2、建立源文件 执行 [主菜单?文件?新建],(或者点击图标)打开窗口。 选择存放源文件的目录,输入文件名,注意:一定要输入文件名后缀。对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。比如:.ASM文件,使用A51来对它编译。本实 例文件名为xunhuan.asm 。窗口如下: 按“确定”即可。然后即出现文件编辑窗口: 输入源程序,参照实验一源程序。 .专业DOC.

这样一个源文件就建立好了。 3.编译、连接文件 首先选择一个源文件,然后可以编译、连接文件了。对文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、HEX文件)。编译、连接文件的方法有如下二种:(1)使用[ 主菜单?项目?编译、连接 ]或[主菜单?项目?重新编译、连接]”。(2)点击图标或来“编译、连接”或“重新编译连接”。编译、连接过程中产生的信息显示在信息窗的“建立”视中。编译没有错误的信息如下: 若有错误则出现如下信息框: 有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位于出错行上。 这时用户可以作相应的修改,直到编译、连接文件通过。 4.调试 编译、连接正确后,可以开始调试程序。进入调试状态方法有: a)执行[ 主菜单?运行?进入调试状态] b)点击工具条的进入后的窗口如下:

单片机原理及其接口技术实验报告

单片机原理及其接口技术实验指导书 实验1 Keil C51的使用(汇编语言) 一.实验目的: 初步掌握Keil C51(汇编语言)和ZY15MCU12BD型综合单片机实验箱的操作和使用,能够输入和运行简单的程序。 二.实验设备: ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。 三.实验原理及环境: 在计算机上已安装Keil C51软件。这个软件既可以与硬件(ZY15MCU12BD型综合单片机实验箱)连接,在硬件(单片机)上运行程序;也可以不与硬件连接,仅在计算机上以虚拟仿真的方法运行程序。如果程序有对硬件的驱动,就需要与硬件连接;如果没有硬件动作,仅有软件操作,就可以使用虚拟仿真。 四:实验内容: 1.掌握软件的开发过程: 1)建立一个工程项目选择芯片确定选项。 2)加入C 源文件或汇编源文件。 3)用项目管理器生成各种应用文件。 4)检查并修改源文件中的错误。 5)编译连接通过后进行软件模拟仿真。 6)编译连接通过后进行硬件仿真。 2.按以上步骤实现在P1.0输出一个频率为1Hz的方波。 3.在2的基础上,实现同时在P1.0和P1.1上各输出一个频率同为1Hz但电平状态相反的方波。 五:程序清单: ORG 0000H AGAIN:CPL P1.0 MOV R0,#10 ;延时0.5秒 LOOP1:MOV R1,#100 LOOP2:MOV R2,#250 DJNZ R2,$ DJNZ R1,LOOP2 DJNZ R0,LOOP1 SJMP AGAIN END 六:实验步骤: 1.建立一个工程项目选择芯片确定选项 如图1-1所示:①Project→②New Project→③输入工程名test→④保存工程文件(鼠标点击保存按钮)

单片机原理实验指导书(2012.10)

《单片机原理》实验指导书 计算机科学与技术系2012年8月

目录 第一部分单片机仿真实验 (1) 实验一:流水灯实验 (1) 实验二:中断实验 (4) 实验三:定时器中断实验 (6) 实验四:串行口实验 (9) 实验五:矩阵式键盘输入识别 (13) 实验六:LCD循环显示设计 (19) 第二部分单片机硬件实验............................错误!未定义书签。第一章试验箱系统概述 ...................................错误!未定义书签。 一、系统地址分配........................................... 错误!未定义书签。 二、系统接口定义........................................... 错误!未定义书签。 三、通用电路简介........................................... 错误!未定义书签。第二章实验指导...............................................错误!未定义书签。实验七P1口亮灯和P1口加法器实验........... 错误!未定义书签。实验八简单I/O口扩展(选作).................. 错误!未定义书签。实验九8255控制交通灯................................ 错误!未定义书签。实验十128*64LCD液晶显示 .......................... 错误!未定义书签。

第一部分单片机仿真实验 实验一:流水灯实验 一、实验目的: 通过对P3口地址的操作控制8位LED流水点亮,从而认识单片机的存储器。 二、实验原理图 实验参考电路图如下: 三、参考实验程序 //流水灯实验 #include //包含单片机寄存器的头文件 sfr x=0xb0; //P3口在存储器中的地址是b0H,通过sfr可定义8051内核单片机 //的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1口的

《单片机》课程实验教案

《单片机》课程实验教案 实验一流水灯实验 实验目的: 1、熟悉仿真软件PROTEUS的使用方法。 2、掌握利用PROTEUS软件进行单片机系统设计与仿真的过程。 3、掌握发光二极管的控制方法。 实验原理: 利用P1口的通用I/O口功能,P1口做输出口,通过程序向P1口传送数据,用8只发光二极管分别显示P1.7~P1.0各管脚的电平状态,编写程序实现暗点以1HZ频率由低位到高位循环。 P1口接发光二极管的阴极,P1口的管脚输出低电平时对应的发光二极管点亮,实验电路如图所示。 1、从 (1)AT89S51:单片机; (2)RES、RX8:电阻、8排阻; (3)LED-GREEN:绿色发光二极管; (4)CAP、CAP-ELEC:电容、电解电容; (5)CRYSTAL:晶振。 2、放置元器件。 3、放置电源和地。 4、连线。 5、元器件属性设置。 6、电气检测。 实验设备及软件系统: 1、电脑;

2、MA TLAB软件。 实验步骤: 1、画流程图。 2、编写汇编程序。 3、通过菜单“source→Add/Remove Source Files…”新建源程序文件:DSJ1.ASM。 4、通过菜单“source→DPJ1.ASM”,打开PROTEUS提供的文本编辑器SRCEDIT,在其中编辑源程序。 5、程序编辑好后,单击按钮存入文件DSJ1.ASM。 6、源程序编译汇编、生成目标代码文件。 7、通过菜单“source→Build All”编译汇编源程序,生成目标代码文件。若编译失败,可对程序进行修改调试直至汇编成功。 8、加载目标代码文件。 9、全速仿真。 单击按钮,启动仿真。暗点以1HZ频率由低位到高位循环移动。 10、仿真调试。 (1)带断电仿真。

单片机实验指导书

实验一KEIL 51软件实验 实验目的: 1、掌握KEIL集成开发环境的使用 2、掌握算术运算程序 实验设备:计算机、KEIL51软件 实验内容: 编程实现把片人RAM30H单元和40H单元两个16字节数相加,结果放于30H单元开始的位置处。在KEIL51编译、连接、仿真调试。 实验步骤: 一、运行KEIL51软件,出现图1所示KEIL 51主界面。 图1 KEIL 51主界面 首先用Project菜单下的New Project命令建立项目文件,过程如下。 (1) 选择Project菜单下的New Project命令,弹出如图2所示的Create new Project对话框。 图2 Create New Project对话框 (2) 在Create New Project对话框中选择新建项目文件的位置(最好一个项目建立一个文件夹如E:\project), 输入新建项目文件的名称,例如,项目文件名为example,单击【保存】按钮将弹出如图3所示的Select Device for Target ‘Target 1’对话框,用户可以根据使用情况选择单片机型号。Keil uVision2 IDE几乎支

持所有的51核心的单片机,并以列表的形式给出。选中芯片后,在右边的描述框中将同时显示选中的芯片的相关信息以供用户参考。 图3 Select Device for Target ‘Target 1’对话框 (3) 这里选择atmel公司的AT89c51。单击【确定】按钮,这时弹出如图4所示的Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框,C语言开发选择【是】,汇编语言开发选择【否】。 单击后,项目文件就创建好了。项目文件创建后,在主界面的左侧的项目窗口可以看到项目文件的内容。 这时只有一个框架,紧接着需向项目文件中添加程序文件内容。 图4 Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框 二、给项目添加程序文件 当项目文件建立好后,就可以给项目文件加入程序文件了,Keil uVision2支持C语言程序,也支持汇编语言程序。这些程序文件可以是已经建立好了的程序文件,也可以是新建的程序文件,这里我们新建的汇编程序文件后再添加。 (1) 选择文件菜单上的new命令,出现新建文本窗口,如图5所示。

《单片机原理及应用》实验指导书.

单片机原理及应用实验指导书 罗钧付丽编 重庆大学光电工程学院 2010年5月 目录 实验规则 (2 实验一单片机监控程序实验(4学时 (3 附1.1:LAB2000P实验仪 (9 附1.2:验证实验程序 (10 附1.3:K EIL的使用步骤参考 (17 实验二 A/D转换实验 (3学时 (21 附2.1:验证实验程序 (24 实验三 D/A转换实验 (2学时 (25

附3.1:DA转换实验程序 (27 实验四单片机系统综合实验( 3学时 (28 附4.1:实验仪中的温度传感器电路 (30 附4.2:直流电机和步进电机控制接口电路 (31 实验规则 为了维护正常的实验教学次序,提高实验课的教学质量,顺利的完成各项实验任务,确保人身、设备安全,特制定如下实验规则: 一、实验前必须充分预习,完成指定的预习内容,预习要求如下: 1.认真阅读本实验指导书,分析掌握本次实验的基本原理; 2.完成各实验预习要求中指定的内容; 3.明确实验任务。 二、实验时,认真、仔细的写出源程序,进行调试,有问题向指导老师举手提问; 三、实验时注意观察,如发现有异常现象(电脑故障或实验箱故障,必须及时报告指导老师,严禁私自乱动。 四、实验过程中应仔细观察实验现象,认真记录实验数据、波形、逻辑关系及其它现象,记录的原始结果必须经指导教师审阅签字后,方可离开。 五、自觉保持实验室的肃静、整洁;实验结束后,必须清理实验桌,将实验设备、工具、导线按规定放好,并填写仪器设备使用记录。 六、凡有下列情况之一者,不准做实验: 1.实验开始后迟到10 分钟以上者;

2.实验中不遵守实验室有关规定,不爱护仪器,表现不好而又不服从教育者; 七、实验后,必须认真作好实验报告,在规定时间里必须交给实验指导老师,没交实验报告者,视为缺做一次实验。实验报告要求必须包括: 1.写出设计实验程序; 2.总结实验步骤和实验结果; 八、一次未做实验,本实验课成绩视为不及格。 以上实验规则,请同学们自觉遵守,并互相监督。 实验一单片机监控程序实验(4学时 实验预习要求: 1.按照附3学习使用Keil软件。 2.熟悉键盘和显示器接口及工作原理。 3.根据实验原理,读懂验证实验程序,并写出设计性实验源程序。 4.思考题: (1从附1.2监控程序可以看出:六位数码管显示的数据存放在单片机哪个位置? (2参考图1.1A与监控程序,键盘上若数字键7被按下,单片机怎样判断该键被按下? 一、实验目的 1.掌握8031系统中,键盘和显示器的接口方法。 2.掌握键盘扫描和LED八段码显示器的工作原理。

单片机实验指导书

《单片机原理实验指导书》 2013年03月

单片机实验是学习单片机理论的重要实践环节。其目的在于通过试验来验证和研究单片机理论,增强感性认识, 以促进认识的深化,培养学生科学的分析能力,使学生掌握单片机试验的操作方法和基本技能;培养学生严肃认真和实事求是的科学作风,锻炼科学实验的能力。 为了培养学生独立分析问题和解决问题的能力;培养学生的动手操作能力;为了更有效的完成每项实验,要求学生在实验前必须作充分预习。除复习与实验有关的理论,还要认真研究实验指导书,了解实验目的、内容、弄清实验原理,掌握编程步骤、调试程序的方法。 本指导书是根据数控专业实验教学大纲的要求以及我校单片机实验室的现状编写的。

前言 keil51软件使用简要说明---------------------------------------------------4 实验一数据传送类指令实验----------------------------6 实验二算术指令实验-----------------------------------9 实验三逻辑指令实验-----------------------------------------------------11 实验四控制转移和子程序调用实验-----------------------------------13 实验五典型程序设计-----------------------------------------------------14 实验六定时/计数器及中断实验---------------------------18 keil51使用简要说明

单片机原理及应用实验报告

单片机原理实验报告 专业:计算机科学与技术 学号: :

实验1 计数显示器 【实验目的】 熟悉Proteus仿真软件,掌握单片机原理图的绘图方法 【实验容】 (1)熟悉Proteus仿真软件,了解软件的结构组成与功能 (2)学习ISIS模块的使用方法,学会设置图纸、选元件、画导线、修改属性等基本操作 (3)学会可执行文件加载及程序仿真运行方法 (4)理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制【实验步骤】 (1)观察Proteus软件的菜单、工具栏、对话框等基本结构 (2)在Proteus中绘制电路原理图,按照表A.1将元件添加到编辑环境中(3)在Proteus中加载程序,观察仿真结果,检测电路图绘制的正确性 表A.1

Switches&Relays BUT BUTTON 【实验原理图】 【实验源程序】 #include sbit P3_7=P3^7; unsigned char x1=0;x2=0 ; unsigned char count=0; unsigned char idata buf[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(int time) { int k,j;

for(;time<0;time--) for(k=200;k>0;k--) for(j=500;j<0;j--); } void init() { P0=buf[x1]; delay(10); P2=buf[x2]; delay(10); } void main() { init(); while(1) { x1=count/10; x2=count%10; P0=buf[x1]; delay(10);

Freescale单片机实验指导书2016

Freescale单片机实验指导书 物理与电子工程学院

目录 实验一飞思卡尔嵌入式实验系统入门—GPIO控制实验 (3) 实验二串口通信(SCI)实验 (6) 实验三键盘中断及LED数码块实验 (11) 实验四定时器输入捕捉与输出比较功能实验............................................. 错误!未定义书签。实验五AD转换与PWM综合实验 .............................................................. 错误!未定义书签。

实验一飞思卡尔嵌入式实验系统入门—GPIO控制实验 一、实验目的: 熟悉CodeWarrior集成开发环境及飞思卡尔嵌入式实验开发系统 掌握AW60的GPIO结构及控制方法 掌握CodeWarrior工程结构及创建汇编工程 熟悉汇编指令及应用汇编语言编程方法 二、实验内容 1.运用CodeWarrior新建工程,进行工程程序编辑、编译、下载、调试 2.利用飞思卡尔嵌入式实验开发系统根据实验需要进行硬件连接 3.根据连接在PTD口上的两个拨动开关的状态,控制接中PTB口上的八个LED处在以下四种不同状态:八个LED亮—灭循环;四个灯交替亮—灭;一个LED左移流水灯;两个LED右移流水灯。 实验接线原理图

图1-1 I/O 口实验接线图 三、实验步骤 1.将飞思卡尔嵌入式实验开发系统实验箱接上电源,写入器BDM 接头插接入核心卡BDM 座,USB 头接入PC 机USB 口。 2.PC 机上启动CodeWarrior ,新建工程LED.mcp(注意设置工程保存路径) 3.观察工程文件结构,查看相应文件。 4.在main.asm 中编辑工程主文件 5.编辑相关子程序 6.编译,如果有错误修改,直至编译通过 7.链接、下载,调试观察LED 灯现象 四、思考题 1.CodeWarrior 建立工程有什么工程框架文件,这些文件的作用? 2.嵌入式开发系统有哪些主要元器件? 3.如果采用模块化设计方法,将系统初始化、LED 灯控制、延时程序等各自形成文件, GND PTB 口 Vcc

单片机原理实验指导书

实验一LED 流水灯 一、实验目的 1. 学习单片机并口的使用方法。 2. 学习延时子程序的编写和使用。 3. 学习集成开发环境MedWin的安装与使用。 4. 学习STC单片机在线下载软件STC-ISP的使用。 二、实验内容 所谓流水灯就是4 个发光二极管(LED)轮流点亮,周而复始。实验板上以P3口作输出口,接有四只发光二极管,当单片机的引脚输出为低电平时发光二极管点亮,为高电平时息灭。编写程序,使4 个发光二极管循环点亮,时间间隔约0.5 秒。 三、实验电路连线 实验板上与本实验有关的硬件如下图所示。4 个LED上串联4 个限流电阻,以防止其电 流过大而烧坏。单片机的主时钟为11.0592MHz。 四、实验说明 1、P3 口是准双向口,它作为输出口时与一般的双向口使用 方法相同。由准双向口结构可知当P1 口用作输入口时必须先对它 置“1”。若不先对它置“1”,读入的数据是不正确的。输出时需 要接上拉电阻,P3 口内部有弱上拉,若将外围电路设计为低有效, 高无效,则无需再外接上拉电阻。 2、为使每次点亮一个LED,应使P3.4~P3.7 4 个端口中有 一个为低,其余均为高,延时一段时间后再点亮另一个LED。 3、编写for 循环构成的软件延时子程序,在MedWin 下模拟 执行,根据MedWin 显示的执行时间,调整循环变量的终值,使延时时间约0.5秒,在晶振频率为11.0592MHz情况下,循环终值约27000。程序如下: void delay(void) { unsigned int i,j,k,l; for(i=0;i<=27000;i++) {j++; k++;l++;}; } #include void main (void) { unsigned char i,c[4] = {0xef,0xdf,0xbf,0x7f};// 从左往右流水 i = 0; while(1) { P3 = c[i & 3]; i++; 11 delay(); } } 五、思考 1、如何使点亮的LED 从右往左移动? 2、如何使点亮的LED 从两边往中间移动?

单片机课程设计指导书

单片机原理及应用课程设计指导书 一、课程设计目的 《单片机原理及应用》是一门技术性,应用性、实践性很强的学科。课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的和任务就是配合单片机的教学和平时实验,以达到巩固消化课程的内容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。 二、课程设计要求 1、每个学生可以从下面的课程设计题目中任选一个(也可以根据自己的兴趣选题,但选题必须是和单片机应用有关的其他控制或测试系统,同时要通过指导老师确认),选题后按任务书的要求查阅资料,完成系统的总体设计和各个模块的设计。具体实现可以用Proteus仿真,也可以用硬件。 2、进入实验室以后应根据前面的设计在2周内独立完成仿真和调试任务。课程设计过程中,要认真记录资料来源、出现的问题和解决方法。 3、不同的学生如果选题相同,相互之间可以相互探讨,但杜绝抄袭。如果发现,按零分计算。 4、设计完成后学生要按要求认真撰写课程设计报告,并于设计完成后一周内交指导老师评阅。同时准备设计测试和答辩。

三、时间安排 1、13周之前完成分组和选题,并根据选题向指导老师要任务书 2、14周根据任务书的设计要求,查阅相关的资料,完成系统总体方案设计及各模块的软硬件设计 3、15周进入实验室进行仿真、调试,并馔写设计报告,并于16周周一交给指导教师,并准备系统测试和答辩。 四、设计作品提交 1、课程设计报告书 2、proteus仿真程序(对于用proteus仿真的学生) 3、硬件实物及单片机源程序文件 五、设计报告的撰写 1、设计报告采用统一的格式,封面包括:课程设计名称、班级、姓名、学号、设计时间,具体参考设计摸板。 2、设计报告书写规范,系列分以下几个部分进行书写: 1、绪论:介绍设计的背景和意义 2、系统总体方案设计:给出系统设计硬件框图,说明实现的基本原理 3、硬件系统设计:针对框图中的硬件模块,分别介绍选择的具体元器件型号,并介绍这些器件的性能及和单片机的连接图,最后画出详细的这个系统硬件原理图。 4、系统软件设计:根据设计的功能划分模块,画出主程序和主程序的软件流程图。 5、系统调试及仿真 写出调试方法和运行结果 6、设计总结 六、课程设计内容及提示

单片机实验指导书

§4 单片机应用系统实验 §4.1 软件实验(使用软件仿真设置) 软件实验一数据传送实验 一、实验内容: 1.编写程序,将内部RAM中30H-5FH中的数据设置为55H。 2.编写程序,将内部RAM中30H-5FH中的内容传送到90H开始的内部RAM 中去。 3.编写程序,将内部RAM中30H-5FH中的内容传送到200H开始的外部RAM 中去(注意实际系统中为扩展的内部RAM)。 二、实验目的与要求: 1.学习与掌握针对不同区域RAM的操作方法。 2.学习与掌握指针的使用与循环程序的编写方法。 3.学习与掌握如何查看各个部分存储器的内容。 三、实验说明: 对于不同区域的RAM操作需要使用不同的寻址方式与指令。对于内部RAM 的低128字节,可以使用直接寻址也可以使用间接寻址;对于内部RAM的高128 字节,只能使用间接寻址;对于外部RAM,只能使用指针DPTR进行间接寻址。 对于数据块的操作一般使用循环程序完成。 编写程序并编译(build)检查语法错误。编译通过后进入调试环境,单步执行 程序检查程序的正确性。最后连续执行程序并检查RAM内容是否正确。 注意主程序的最后应该加一条SJMP $ 指令,以避免由于连续执行时无法停机 四、实验程序流程图: 五、思考题:如果源与目的数据块 均为外部RAM

软件实验二数据分类与校验实验 一、实验内容: 1.编写程序,将内部RAM中30H-5FH中的数据设置为1-48。 2.编写程序,将内部RAM中30H-5FH中的奇数传送到90H开始的内部RAM 中去。 3.编写程序,将内部RAM中30H-5FH中的数据按照奇校验设置最高位。二、实验目的与要求: 1.学习与掌握判断数据奇偶性的方法。 2.学习与掌握分支程序的编写方法。 3.学习与掌握如何给存储器中的数据增加校验位。 三、实验说明: 汇编语言中判断数据的奇偶性很简单,数据的最低位为1为奇数,否则为偶数。分支处理是程序设计中的基本技巧,是根据某一条件是否成立执行或不执行规定操作的方法。数据的奇偶校验不是判断数据的奇偶性,而是判断数据中有奇数个1还是偶数个1。如果是奇校验,则增加校验位后的数据应该具有奇数个1。 编写程序并编译(build)检查语法错误。编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序并检查RAM内容是否正确。 (传送奇数) 五、思考题: 1.如果只传送正数或负数应该如何编程? 2.如果只传送大于某个规定数值的数据应该如何编程?

单片机原理与接口技术实验指导书

《单片机原理与接口技术》实验指导书 主编李鹏、张杰 西南科技大学制造科学与工程学院 2013年3月

制造科学与工程学院 目录 实验一I/O接口实验 (3) 实验二中断系统实验 (5) 实验三定时器/计数器实验 (8) 实验四串行通信实验 (10) 2

西南科技大学实验指导书 3 实验一 I/O 接口实验 一、 实验目的 了解单片机片内4个8位I/O 端口的使用,掌握I/O 端口的应用及C51的编程方法。 二、 实验仪器和设备 1. 单片机实验板 一台 2. 计算机 一台 三、 实验简介 1. 实验内容 上下来回循环点亮八个发光二极管。 2. 实验线路及其连接 图1-1 发光二极管与P1口的连接电路 3. 实验程序参考流程图

制造科学与工程学院 图1-4程序流程图 四、实验步骤 1. 检查实验板连线是否正确 2. 用USB线连接单片机实验板和PC,利用USB接口对实验板供电 3. 用keil软件编写并调试程序,在程序无误的时候编译成hex文件,使用串口线与电脑的串口相连,运行串口下载工具STC-ISP,下载程序到单片机中。 4.观察发光二极管的闪烁状态,是否与实验要求相符。若不符,请修改程序,直到达到实验需求。 五、实验报告 实验类型为验证型实验,要求学生在实验过程中掌握单片机的输入输出接口技术、单片机的编程方法,为后续实验打下坚实的基础。 本次实验报告的内容主要是: 1. 实验目的:本次实验主要达到的要求及目的 2. 实验设备:本次实验的主要设备 3. 实验内容:本次实验的硬件原理图(要求用Protel或Proteus画出原理图)及原理图的说明、程序流程图及详细说明、实验程序等 4. 实验具体步骤:连接线路、输入程序、调试程序、观察结果、修改程序 5. 实验程序上机验证:写出运行后得到的结果,并分析与预习中的结果是否相同 6. 心得体会:本次实验中遇到的问题、解决方法及收获 六、预习要求 1. 复习单片机输入输出接口技术相关内容。 2. 预习本次实验内容,画出流程图、编写程序 4

51单片机电子时钟课程设计实验报告

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号:2012197213 2012118029 班级:自动化1211 指导老师:阮海容

目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位(例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。 7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。 11)完成课程设计报告。 基本要求 1)实现最基本要求的1~10部分。 2)键盘输入可以控制电子时钟的走时/调试。 3)设计键盘输入电路和程序并调试。 4)掌握键盘和显示配合使用的方法和技巧。 提高发挥部分

西南科技大学单片机原理实实验四及代码

2.1实验四中断实验 一、实验目的 加深对MCS-51单片机中断系统基础知识的理解。 二、实验设备 Keil C单片机程序开发软件。 Proteus仿真软件 DP51-PROC单片机综合实验仪。 三、实验容和步骤 容: 利用外部中断输入引脚(以中断方式)控制步进电机的转动。要求:每产生1次中断,步进电机只能步进1步。 实验程序: 使用INT0的中断服务程序控制步进电机正向步进;使用INT1中断服务程序控制步进电机反向步进。 设计思路: ①主程序在完成对INT0和INT1的设置后,可进入死循环(等待中断请求)。 ②为便于实验观察和操作,设INT0和INT1中断触发方式为边沿。 ③步进电机的转动控制由外部中断的服务程序来实现。 ④当前步进电机的相位通电状态信息可以使用片RAM中的一个字节单元来存储。 设计参考: ①主程序需要设置的中断控制位如下: IT0和IT1 外部中断触发方式控制0=电平1=边沿(下降沿) EX0和EX1 外部中断允许控制0=屏蔽1=允许 PX0和PX1 中断优先级级别控制0=低级1=高级 在同级别(PX0=PX1)时INT0的优先级高于INT1 EA 中断允许总控制0=屏蔽1=允许 ②外部中断服务程序的入口地址: 0003H 外部中断0 0013H 外部中断1 预习: 1)编写好实验程序。 2)根据编写的程序和实验步骤的要求制定调试仿真的操作方案。 实验单元电路:

1) 步进电机驱动电路。 步进电机共有4相,当以A →B →C →D →A →B …的顺序依次通电时,电机就会正转,若按相反的顺序依次通电,电机就会反转。每顺序切换一相(1步),电机旋转18°,切换的频率决定电机的转速(切换的频率不能超过电机的最大响应频率)。根据图2.4中的电路,当BA (插孔)输入为高时,对应的A 相通电。 2) SW 电路 开关SW X 拨在下方时,输出端SWX 输出低电平,开关SW X 拨在上方时,输出端SWX 输出高电平。其中SW1和SW3具备消除抖动电路,这样,SW1或SW3每上下拨动一次,输出端产生单一的正脉冲(上升沿在前,下降沿在后)。 3) LED 和KEY 电路 步骤: 1) 在S : \ STUDY \ Keil 文件夹中新建Ex04文件夹(该文件夹用于保存本次实验的所 有容),通过网上邻居将服务器上本次实验共享文件夹下的所有文件拷贝到S : \ STUDY \ Keil \ Ex04文件夹中。 2) 在Keil C 中创建一个新工程,新工程保存为S : \ STUDY \ Keil \ Ex04\Ex04.uv2, 然后选择单片机型号为Generic 中的8051。 3) 设置工程选项,将工程选项设置如下: 图2.5 单脉冲电路原理图 +5V +5V 图2.4 步进电机驱动电路原理图 LED1 LED8 +5V 图2.6 LED 和KEY 电路 +5V

单片机实验指导书

实验一8051简单编程与调试实验目的 通过简单小程序的输入和调试,熟悉并掌握Keil 的使用。学会Proteus与Keil的整合调试。 实验基本要求 建立三个项目,分别输入存储块清零、二进制BCD码及二进制ASCII码转换的汇编源程序,并进行仿真调试。画出实验程序的流程框图。 实验步骤 采用Keil Cx51 开发8051单片机应用程序一般需要经过下面几个步骤: 1、在 Vision2集成开发环境中创建一个新项目(Project),并为该项目选定合适的单片机CPU器件。 在菜单栏中选择“Project”→“New Project”,弹出“Create New Project”对话框,选择目标路径,在“文件名”栏中输入项目名后,单击“保存(S)”按钮,弹出“Selecte Device for Target”对话窗口。在此对话窗口的“Data base”栏中,单击“Atmel”前面的“+”号,或者直接双击“Atmel”,在其子类中选择“AT89C51”,确定CPU类型。如图所示。 点击“确定”按钮后,弹出如下的对话框

如果是进行汇编语言编程选择“否”。 2、利用μVision2的文件编辑器编写C语言(或汇编语言)源程序文件,并将文件添加到项目中去。一个项目可以包含多个文件,除源程序文件外还可以有库文件或文本说明文件。 在μVision2的菜单栏中选择“File”→“New”命令,新建文档,然后在菜单栏中选择“File”→“Save”命令,保存此文档,这时会弹出“Save As”对话窗口,在“文件名(N)”一栏中,为此文本命名,注意要填写扩展名“.asm”。单击“保存(S)”按钮,这样在编写汇编代码时,Keil会自动识别汇编语言的关键字,并以不同的颜色显示,以减少输入代码时出现的语法错误。程序编写完后,再次保存。 在Keil中“Project Workspace”子窗口中,单击“Target 1”前面的“+”号,展开此目录。在“Source Group 1”文件夹上单击鼠标右键,在右键菜单中选择“Add File to ‘Group Source 1’”,弹出“Add File to Group”对话窗口,在此对话窗口的“文件类型”栏中,选择“Asm Source File”,并找到刚才编写的.asm文件,双击此文件,将其添加到Source Group 中,此时“Project Workspace”子窗口如图所示。

单片机实验指导书

单片机实验 实 验 指 导 书 2017年2月

单片机实验报告 (自动化XX级) 实验名称 学生 联系方式 学号 院系工学院电气与信息工程系专业自动化 指导教师 填写日期

实验一数据传送 一、实验目的 1.进一步熟悉仿真器的使用方法。 2.练习设计简单的程序。 3.掌握8051片RAM和片外RAM的数据传送方法,从而了解这两部分存贮器的特点。 二、实验容 将8051部RAM 40H~4FH置初值00H~0FH,然后将40H~4FH容传送到外部RAM的4800H~480FH,再将4800H~480FH传回部RAM的50H~5FH。设置断点B1、B2、B3每运行到断点时检查相应的CPU现场和存贮单元的容。 三、实验准备 1、认真阅读本实验指导。 2、读懂下面的程序: #include #include char data *p40 ,*p50 ; char xdata *p4800; char i, j, k; void main( ) { p40=0x40; p50=0x50; p4800=0x4800; for(i=0;i<16;i++) { *p40=i; p40=p40+1; } //B1 p40=0x40; for(j=0;j<16;j++) { *p4800=*p40; p40=p40+1; p4800=p4800+1; } // B2 p4800=0x4800; for(k=0;k<16;k++) { *p50=*p4800; p50=p50+1;

p4800=p4800+1; } } //B3 3、画出如下要测的数据表格: 四、实验步骤 1、向机器输入程序。 2、运行程序至第一个断点B1,检查40H~0FH单元容及指针p40的容。 3、运行程序至第二个断点B2,检查4800H~480FH单元容及指针p40,p4800的容。 4、运行程序至第三个断点B3,检查50H~5FH单元容及累加器及指针p50的容。 五、实验报告要求 1、写出C语言源程序和对应的汇编语言指令及注解的程序清单。 2、将测得的数据填入表格,并和理论分析的结果相比较。 3、说明8031CPU对部存贮器和外部扩展RAM存贮器各有哪些寻址方式? 4、如果要读外部程序存储器0x4800中的容,该如何访问? 5.实验心得。(必须)

《单片机系统设计》实验报告

短学期实验报告 (单片机系统设计) 题目: 专业: 指导教师: 学生姓名: 学号: 完成时间: 成绩:

基于单片机的交流电压表设计 目录 1系统的设计要求 (2) 2系统的硬件要求 (2) 2.1真有效值转换电路的分析 (2) 2.2放大电路的设计 (3) 2.3A/D转换电路的设计 (3) 2.4单片机电路的分析 (4) 2.5显示电路 (4) 3 软件设计 (5) 3.1 软件的总流程图 (5) 3.2 初始化定义与定时器初始化流程图 (5) 3.3 A/D转换流程图 (6) 3.4 数据处理流程图 (6) 3.5 数据显示流程图 (7) 4 调试 (7) 4.1 调试准备 (7) 4.2 关键点调试 (7) 4.3 测试结果 (8) 4.4 误差分析 (8) 5结束语 (8) 5.1 总结 (9) 5.2 展望 (9) 附录1 总原理图 (10) 附录2 程序 (10) 附录3 实物图 (14)

基于单片机的交流电压表设计 ****学院 ****专业 姓名 指导老师:******* 1 设计要求 (1)运用单片机实现真有效值的检测和显示。 (2)数据采集使用中断方式,显示内容为有效值与峰值交替进行。 2 硬件设计 本系统是完成一个真有效值的测量和显示,利用AD737将交流电转换成交流电压的有效值,用ADC0804实现模数转换,再通过单片机用数码管来显示。系统原理框图如图2-1所示。系统框图由真有效值转换电路、放大电路、A/D 转换电路、单片机电路、数码管显示电路五部分。 图2-1 原理框图 2.1 真有效值转换电路 真有效值转换电路主要是利用AD737芯片来实现真有效值直流变换的,即将输入的交流信号转换成直流信号的有效值,其原理图如图2-2所示。 图2-2 真有效值转换电路 由于AD737最大输入电压为200mV, 所以需要接两个二极管来限制输入电压,起到限幅的作用。如图中D1、D2,由IN4148构成,电容C6是耦合电容,电阻R1是限流电阻。 2.2 放大电路设计 放大电路主要是利用运放uA741来进行放大,电路原理图如图2-3所示。 A/D 转换 单片机 电路 显示 电路 转换 电路 交流 信号 放大 电路

单片机原理和应用实验指导书

《单片机及使用系统设计》实验指导书 12 / 13 年第一学期 姓名:_____________ 学号:_____________ 班级:_____________ 指导教师:_____________ 计算机信息工程学院 计算机科学和工程系 2009年8月修订

目录 实验一P1口输入输出实验 (1) 实验二定时器实验 (3) 实验三外部中断实验 (5) 实验四串行口实验 (7) 实验五键盘显示实验 (9)

实验一P1口输入输出实验 一、实验目的 掌握单片机I/O口的使用,掌握数据输入输出程序编制的方法。 二、实验环境 硬件平台:TX-1C单片机学习板。 软件平台:keil软件 三、实验内容和要求 P1口循环点亮8个发光二极管 四、实验预习和准备 参考相关书籍,掌握TX-1C单片机学习板原理图。 五、实验过程和结果 #include #include unsigned char x=0xfe; void delay(long time) { while(time>0) time--; } void main() {while(1) { P1=x; delay(37620); x=_crol_(x,1); }} 六、实验小结和体会 通过本实验,懂得如何安装kell软件以及实验仿真板,懂得KEIL C51单片机仿真软件的调试,初步了解并熟悉实验板上单片机I/O口和LED灯的电路结构,能通过软件修改程序实现仿真板上不同灯的亮灭情况,并希望通过多次试验对

它有更多的了解。 实验二定时器实验 一、实验目的 掌握单片机定时器使用及其编程方法。 二、实验环境 硬件平台:TX-1C单片机学习板。 软件平台:keil软件 三、实验内容和要求 P1口循环点亮8个发光二极管,循环间隔为2S。 四、实验预习和准备 参考相关书籍,掌握TX-1C单片机学习板原理图。五、实验过程和结果 #include #include #define uchar unsigned char uchar x=0xfe; uchar count=0; void sysinit() { TMOD=0x01; TH0=0x4C;TL0=0x00; TR0=1;ET0=1; EA=1; } void Timer0() interrupt 1 { count++;

相关主题
文本预览
相关文档 最新文档