MCS-51单片机实验源程序

MCS-51单片机实验源程序
MCS-51单片机实验源程序

MCS-51单片机实验源程序

仅供参考。没有最好,只有更好!希望大家设计出更好的程序来。

软件实验一求一组数据的最大(小)值

/*软件实验的目的:熟悉单片机常用的基本程序(算法),调试时观察变量(含数组)值的变化,从而理解程序的功能,了解变量(含数组)在单片机存储器中的具体位置。*/

int a[]={-1,2,-30,40,-500,600,-7000,8000,-32750,32765}; //任意给出10个int型数(围:-32768~+32767),放在数组a中

void main()

{

unsigned char i;

int max,min;

max=min=a[0]; //max,min先取该组数据的第一个

for(i=1;i<10;i++)

{

if(a[i]>max) max=a[i];

if(a[i]

}

while(1); //没有什么要做了,则用该语句作为main函数的结尾,无限循环

}

附调试截图:

注意:由于是纯软件实验(单片机没有进行实际的输入与输出),有些变量要声明为全局

会被Keil软件编译时优化掉(即:一些语句没有真正生变量(如上面的数组a),否则可能

..

成执行代码),导致无法观察到正确结果。

软件实验二二进制(十六进制)数转换为BCD数

//按流程图,编写程序如下:

#define uchar unsigned char

void main()

{

uchar x=0xA5; //设二进制数为1010 0101,在Keil中只能用十六进制0xA5或十进制165(不能直接用二进制形式)

uchar a[3];

a[2]=x/100;

x=x%100;

a[1]=x/10;

x=x%10;

a[0]=x;

while(1);

}

//或者用for循环语句,先取出个位

#define uchar unsigned char

void main()

{

uchar x=0xA5;

uchar i,a[3];

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

{

a[i]=x%10;

x=x/10;

}

while(1);

}

软件实验三二进制(十六进制)数转换为ASCII码

//将0-9、A-F的ASCII码做成表格(数组)放到程序存储器ROM中

#define uchar unsigned char

uchar code ascii[]={"0123456789ABCDEF"}; //ASCII码表放ROM中

/*上句赋值也可写成{0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39, 0x41,0x42,0x43,0x44,0x45,0x46} */

/* 还可写成{48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70} */

/* 还可写成{'0','1','2','3','4','5','6','7','8','9','A','B','C','D', 'E','F'} */

void main()

{

uchar x=0x5A; //设二进制数为0101 1010,在Keil中只能用十六进制0x5A或十进制90(不能直接用二进制形式)

uchar cc,a[2];

cc=x & 0x0f; //取x的低4位1010(即A)

a[0]=ascii[cc]; //查表,a[0]存x低4位对应十六进制数(即A)的ASCII码

cc=(x>>4)& 0x0f; //取x的高4位0101(即5)

a[1]=ascii[cc]; //查表,a[1]存x高4位对应十六进制数(即5)的ASCII码

while(1);

}

硬件实验一并行口输入、输出

//P2做输出口,接8只LED,编写程序,使LED循环点亮(流水灯)

#include

#include //部函数_crol_,_cror_等的头文件

void Delay(unsigned int x) //延时函数,在12MHz晶振下,延时约x ms {unsigned char i;

while(x--)

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

}

void main()

{

char a=0xfe;

while(1)

{

P2=a;

Delay(500); //在12MHz晶振下,延时约500ms

a=_crol_(a,1); //循环左移,_cror_为循环右移

}

}

//P3.2和P3.3做输入口,分别接两个拨动开关到GND;P2.7~P2.4做输出口,接4只LED,用来指示两个开关的闭合状态组合

#include

void main()

{

char a;

while(1)

{

a=P3; //读入P3口状态

a=a&0x0C; //a中只保留P3.3、P3.2的值,其余位清零

if(a==0x0C) P2=0x7F; //P3.3=1开,P3.2=1开,则P2.7=0亮

if(a==0x08) P2=0xbF; //P3.3=1开,P3.2=0合,则P2.6=0亮

if(a==0x04) P2=0xdF; //P3.3=0合,P3.2=1开,则P2.5=0亮

if(a==0x00) P2=0xEF; //P3.3=0合,P3.2=0合,则P2.4=0亮

}

}

//用一个共阳七段数码管循环显示0-9和A-F,每个数显示0.5s

#include

sbit P1_0=P1^0;

char code TABLE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //共阳数码管段码(放在程序存储器ROM中)

void Delay(unsigned int x) //延时函数,在12MHz晶振下,延时约x ms

{unsigned char i;

while(x--)

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

}

void main()

{ char j;

P1_0=0; //位选信号

while(1)

{

for(j=0;j<16;j++)

{

P0=TABLE[j];

Delay(500);

}

}

}

硬件实验二外部中断

//通过外部中断0(下降沿触发),启动或关闭流水灯,即上电复位时不亮,按一次INT0(P3.2)引脚的按钮,流水灯开启,再按一次,灯熄灭

#include

#include //部函数_crol_,_cror_等的头文件

bit LED=0; //位变量LED用于记录流水灯的状态,0为关闭,1为开启

void Delay(unsigned int x) //延时函数,在12MHz晶振下,延时约x ms

{unsigned char i;

while(x--)

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

}

void INT0_srv(void) interrupt 0 //INT0中断号为0

{

Delay(10); //延时10ms,去抖动

if(INT0==0) LED=!LED; //每次中断时切换LED开启或关闭

}

void main()

{

char a=0xfe;

IT0=1; //下降沿触发

EX0=1; //允许INT0中断

EA=1;

while(1)

{

if(LED) //开启

{

P2=a;

Delay(500); //在12MHz晶振下,延时约500ms

a=_crol_(a,1); //循环左移,_cror_为循环右移

}

else //关闭

{P2=0xff;}

}

}

//通过外部中断0(低电平触发),启动或关闭流水灯,即上电复位时不亮,按一次INT0(P3.2)引脚的按钮,流水灯开启,再按一次,灯熄灭

单片机实验

实验一P1口亮灯实验 实验目的 ⑴学习P1口的使用方法; ⑵学习延时子程序的编写。 实验预备知识 ⑴P1口对准双向口,每一位都可独立地定义为输出线或输入线。 ⑵本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。 实验内容 P1作为输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 程序流程 实验电路 实验步骤 P1.0~P1.7用插针连至L1~L8,运行程序后,观察发光二极管闪亮移位情况。 思考 改变延时常数,使发光二极管闪亮时间改变。 修改程序,使发光二极管闪亮移位方向改变。

实验二 P3.3口输入,P1口输出 实验目的 掌握P3口P1口简单使用。 实验内容 P3.3口输入一脉冲,P1口按位加一方式点亮发光二极管。程序流程 实验电路

实验步骤 ⑴P3.3用插针连至K1,P1.0~P1.7用插针连至L1~L8。 ⑵编译、装载、连续运行。 ⑶开关K1每拨动一次,L1~L8发光二极管按位加一点亮。 思考 修改程序,使发光二极管左移方式点亮。

实验三工业顺序控制(中断控制) 实验目的 掌握工业顺序控制程序的简单编程:中断的使用。 实验预备知识 在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些继续生产过程,按某种顺序有规律地完成预定的动作,对这类继续生产过程的控制称顺序控制,倒注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。 实验内容 MCS-51的P1.0~P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,低电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,高电平启动。P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警声音输出,设定6道工序只有一位输出,第七道工序三位有输出。 程序流程

基于MCS-51单片机的热量计

摘要 热量计在我们生活中最实际的应用应该是民用住宅的暖气计量了而我国现有的按使用面积收费的方式存在着许多不合理的因素。为解决这一问题,本论文介绍了一种新型的热量计,该热量计是基于51系列单片机,主要由流量传感器、温度传感器、单片机三部分组成。本文详细阐述了热量计的硬件和软件设计,并简要介绍了相应的抗干扰措施。 热量计可以精确的对实际热量的耗损进行测量,是实施城市供热体制改革,推行按热量计费的关键设备,对热量计消耗智能计算,以用户实际耗用热量为计量收费依据。如果将热量计作为供暖公司向每一位住户收费的依据和手段,是容易被百姓们所接受和推崇的,而且由于热量与费用直接相关,也加强了住户的节能意识。用热量计进行计量更为科学、合理,既方便用户,又便于管理。 关键词:热量计;单片机;温度传感器;流量传感器 Abstract

Calorimeter in our lives should be the most practical application of measurement of residential heating and use of the area by our existing way of charging, there are many irrational factors. To solve this problem, this paper introduces a new type of calorimeter, the calorimeter is based on the 51 series, mainly by the flow sensor, temperature sensor, microcontroller three parts. This paper describes the calorimeter hardware and software design, and briefly describes the corresponding anti-jamming measures. Calorimeter can accurately on actual measurement of heat loss is to implement the urban heating system, the implementation of key equipment by heat billing for consumption calorimeter intelligent computing to user's actual calorie consumption metering and charging basis. If the calorimeter as heating companies charge to every household basis and means, people who are likely to be accepted and respected, and because of the heat and the costs are directly related, but also strengthened the household energy awareness. Measured with a calorimeter more scientific and reasonable, not only user-friendly, and easy to manage. Keywords: Calorimeter; SingleChip Microcomputer; Temperature sensor; Flow sensors

单片机原理及应用习题答案 第三版

第一章习题参考答案 1-1:何谓单片机?与通用微机相比,两者在结构上有何异同? 答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路与相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。 单片机与通用微机相比在结构上的异同: (1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度与精度的进一步提高。例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度与精度也相对要低一些。例如,现在的单片机产品的CPU 大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。 (2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量与CPU对数据的存取速度。现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术与段、页等多种管理模式。单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。 (3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠标、打印机、硬盘、光盘等)。用户通过标准总线连接外设,能达到即插即用。单片机应用系统的外设都就是非标准的,且千差万别,种类很多。单片机的I/O接口实际上就是向用户提供的与外设连接的物理界面。用户对外设的连接要设计具体的接口电路,需有熟练的接口电路设计技术。 另外,单片机的微处理器(CPU)、存储器、I/O接口电路集成在一块芯片上,而通用微机的微处理器(CPU)、存储器、I/O接口电路一般都就是独立的芯片 1-4 IAP、ISP的含义就是什么? ISP:In System Programable,即在系统编程。用户可以通过下载线以特定的硬件时序在线编程(到单片机内部集成的FLASH上),但用户程序自身不可以对内部存储器做修改。 IAP:In Application Programable,即在应用编程。用户可以通过下载线对单片机进行在线编程,用户程序也可以自己对内部存储器重新修改。 1-6 51单片机与通用微机相比,结构上有哪些主要特点? (1)单片机的程序存储器与数据存储器就是严格区分的,前者为ROM,后者为RAM; (2)采用面向控制的指令系统,位处理能力强; (3)I/O引脚通常就是多功能的; (4) 产品系列齐全,功能扩展性强; (5) 功能就是通用的,像一般微处理机那样可广泛地应用在各个方面。 1-7 51单片机有哪些主要系列产品? (1)Intel公司的MCS-51系列单片机:功能比较强、价格比较低、较早应用的单片机。 此系列三种基本产品就是:8031/8051/8751; (2)ATMEL公司的89系列单片机:内含Flash存储器,开发过程中可以容易地进行程

MCS-51系列单片机实验设备存在的缺陷及设计方案

MCS-51系列单片机实验设备存在的缺陷及设计方案 摘要:本文讨论了国内几款MCS-51 系列单片机实验设备存在的缺陷,同时也提出了自己的设计方案,为新一代设备的问世提供参考,单片机实验设备中以MCS-51 为核心的产品最多。 关键词:单片机实验设备缺陷设计 引言 目前,虽然单片机家族的成员种类繁多,但MCS-51 系列单片机依旧占领着工业测控和自动化工程应用的主要市场,是国内单片机应用领域中的主流,这一客观事实决定了全国各大高校的单片机类教材仍以MCS-51系列单片机为主, 同时MCS-51 单片机教学和实验设备也得到了相当迅速的发展。 一、现有实验设备状况和特点 1、上海杭虹公司生产的ADEK单片机实验系统价格十分 昂贵,约为五千元左右,且需外接一个稳压电源,体积也相当庞大。开发环境仅支持汇编语言编程,不支持C语言。 2、浙江启东计算机有限公司生产的DAIS80958B+实验系统,技术相对比较成熟,功能也较多,但价格仍要在三千元以上,体积也比较庞大。开发环境也存在局限性。使用时灵活性差。

但它们只有仿真功能,是真正意义上的仿真设备,没有任何外围电路,而且每台价格在一千八百元左右,相对比较昂贵。 二、各种实验设备的共同问题 1、功能接口陈旧且价格昂贵实验系统上只是由一些传统的与教材同步的实验项目,一些综合性的、设计性的实验项目过于古老而失去的实际价值。在功能接口的数量上也相对较少,不利于系统结构的简化和扩展。在此种情况下,系统设备的整体价格仍旧保持在几千元以上,可以说其性价比很差。对于高校一般设备单位价值在500 元以上,专用设备单位价值在800 元以上,使用期限在一年以上,并在使用过程中基本保持原有物质形态的资产被称为固定资产。据统计,多数高校的单片机实验设备作为固定资产,使用期限一般为5-10 年之间,其中期限为8 年的占50%以上。对于当今电子行业的飞速发展可想而知,实验设备的经济价值与实用价值已经产生了矛盾,而且随着时间的推移正在逐步加深。 2、体积庞大 设备体积庞大意味着实验台面积要跟着增加,保存和管理均需占用很大空间,且在外观上也会失去美观。几大厂商的产品占用实验台面积基本上远超过一张A3 纸,每台设备的保存空间大约也要在 0.05 立方米左右(按长*宽*高=0.6米*0.4 米*0.2 米=0.048 立方米计算),如果一间实验室按配置40 套实验设备计算,保存空间

中山大学左明老师单片机实验七共20页

实验七 D/A与A/D转换 一、实验目的 1、学习D/A转换的基本原理和D/A转换芯片DAC0832的性能及篇程方法 2、了解单片机系统中扩展D/A转换芯片的基本方法 3、学习A/D芯片ADC0809的转换性能及编程方法 4、了解A/D芯片与写单片机的接口方法 5、通过实验掌握单片机进行数据采集的方法 二、实验说明 1、D/A转换是把数字量转换成模拟量的变换。从D/A输出的是模拟信号。实验程序一是通过在D/A的输入端送入有一定规律的数字量,在输出端产生锯齿波、三角波、正弦波的波形,通过示波器观察来直观地了解D/A的转换功能。 要把一个数据通过0832输出,要经过两次锁存。典型的程序如下: MOV DPTR,#PORT MOV A,#DATA MOVX @DPTR,A INC DPTR MOVX @DPTR,A 2、A/D转换是把模拟量转换成数字量的变换。启动A/D采样转换只需要两条指令: MOV DPTR,#PORT MOVX @DPTR,A

三、实验内容 内容一:利用DAC0832编程产生锯齿波、三角波、正弦波。三种波形轮流显示 一、连线方法:0832的CS0832接CS0。输出DAOUT接示波器探头,示波器探头地线接实验板地线 二、代码 ;D61.ASM ORG 4000H LJMP MAIN ORG 401BH LJMP DELAY PORT EQU 0CFA0H ORG 4100H MAIN: MOV TMOD,#10H SETB EA SETB ET1 MOV TL1,#0AFH MOV TH1,#3CH SETB TR1 DISP: MOV R1,#50H

基于MCS-51单片机的可调频率方波发生器课程设计报告

摘要 本实验是基于PHILIPS AT89C51 单片机所设计的,可以实现键位和数字动态显示的一种频率可调方波发生器。通过键盘键入(10HZ-9999HZ)随机频率,使用七段数码管显示,每一个数码管对应一个键位。单片机对各个键位进行扫描,确定键位的输入,然后数码管显示输入的数值,方波发生器输出以数码管显示的数值为频率的方波。 关键词:单片机七段数码管键盘电路频率可调方波发生器

一、目的和功能 1.1 目的: 设计一种频率范围限定且可调的方波发生器,志在产生特定频率的方波。 1.2功能: 假设键盘是4*4的键盘,当键盘输入范围在10hz-9999hz的数字,单片机控制数码管显示该数值,并把该数值当做方波发生器的输入频率,单片机控制该方波发生器以该数值作为频率显示方波,从而得到我们想要频率的方波。 二、硬件设计 2.1 硬件设计思想 键盘的数字和键位关系固定,通过键盘输入产生频率,通过LED数码管显示出来,每一个数码管对应一个键位。基本设备是基于PHILIPS AT89C51单片机,外围设备采用的是4个七段数码管,PHILIPS A T89C51单片机,1个OSCILLOSCOPE 方波发生器,16个Button,若干电阻,电源电池。 2.2 部分硬件方案论述 2.2.1 七段数码管扫描显示方式的方案比较 方案一:静态显示方式:静态显示方式是指当显示器显示某一字符时,七段数码管的每段发光二极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。

单片机原理及应用习题答案 第三版

第一章习题参考答案 1-1:何谓单片机?与通用微机相比,两者在结构上有何异同? 答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路和相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。 单片机与通用微机相比在结构上的异同: (1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的进一步提高。例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度和精度也相对要低一些。例如,现在的单片机产品的CPU大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。 (2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量和CPU对数据的存取速度。现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术和段、页等多种管理模式。单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。 (3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠

单片机实验二、MCS-51单片机并行端口实验

大连理工大学实验报告 实验时间:2014年6月30日星期1时间:10:00~ 11 :40 实验室(房间号):420实验台号码:班级:姓名: 指导教师签字:成绩: 实验二 MCS-51单片机并行端口实验 一、实验目的和要求 1.目的:进一步熟悉、掌握KEIL软件和DP-51PROC综合试验系统的使用。掌握单片机并行端口的编程和使用方法。 2.要求:编制简单的程序,利用P1口的8位端口使用排线与LED1~LED8按顺序连接,使用一条单独连线将P 3.2与SW1连接,编制一个P1口的输出程序,实现8个LED灯依次点亮的流水灯效果。 二、实验算法 本程序属于无限循环结构,循环中通过判断P3.2的电平来决定彩灯的右移还是左移。主程序中主要变量是A,P3.2,P1,其中A作为数据移动寄存器,P3.2作为按键输入口,为高电平右移A,低电平则左移A,P1由A传送数据,外接LED1~8,实现彩灯移动现象。由于不加延时的循环在时钟频率作用下是很快的,现象是所有的灯一直是亮的状态。,解决这个问题就是在程序里面加延时函数。 三、实验流程图

四、程序清单 ORG 8000H LJMP START ORG 8100H START: MOV SP,#60H SETB P3.2 MOV A,#0FEH LED: JB P3.2,RIGHT RL A AJMP RUN RIGHT: RR A RUN: MOV P1,A CALL DELAY AJMP LED DELAY: PUSH 01H PUSH 02H MOV R1,#00H DELAY1: MOV R2,#00H DJNZ R2,$ DJNZ R1,DELAY1 POP 02H POP 01H RET END 五、实验结果与分析 实验现象:拨动开关闭合,彩灯左移;拨动开关断开,彩灯右移。无问题。 实验中,我们通过控制开关SW1能够控制彩灯移位的方向,SW1=1,即将P3.2口置一,理论上使小灯循环右移;SW1=0,即将P3.2口置零,理论上小灯应循环左移,但是由于实验仿真系统中的LED灯的高位和低位位置刚好相反,导致我们操作时看到的结果正好相反,但实际上实验是成功的。 六、实验体会和建议 通过本次单片机的并行输入输出端口实验,我对Keil仿真调试软件的操作更为熟练;也对单片机的P1等端口的应用有了更清楚的认识,同时学会了分支程序的设计,JB指令的方便和实用性。 七、主要仪器设备

单片机实验7学习资料

单片机实验7

实验七直流数字电压表设计 姓名:田坤学号:200912512 专业:电子信息科学与技术 1.实验目的: 掌握LED动态显示和A/D 转换接口设计方法。 2.实验原理: 实验电路原理图如图A..94所示。图中显示器采用4位共阴极数码管,并按动态显示方式接线。A/D转换结束标志采用查询法检查,启动信号由软件模拟产生,时钟信号由Proteus的DClock信号发生器产生,频率为5kHz。电位器的输出电压送到A/D转换器中转换,转换结果以十进制形式显示在数码管上。调节电位器可使数码管的显示值发生相应变化。 图A.94 实验7的电路原理图 3.实验内容: (1)、学习使用Proteus软件,掌握原理图绘图方法; (2)、学习使用Keil C软件,掌握C51程序编写与调试方法;(3)、理解动态显示与A/D转换工作原理,完成单片机电压采集与显示程序的编写与调试。 4.实验步骤: (1)、在Proteus中绘制电路原理图,按照表A.9将元件添加到编辑环境中; (2)、在Keil中编写C51程序,并使之编译通过;

(3)、在Proteus中加载程序,观察仿真结果。 5.实验要求: 提交的实验报告中应包括电路原理图、含注释内容的源程序及实验结果分析。 表A.9 实验7的元器件清单 1)源程序如下: #include // 头文件 #include unsigned int tmp; //定义一个整形中间变量 sbit START=P2^5; //定义ADC0808启动位 sbit ad_busy=P2^6; //定义ADC0808转换结束标志位 sbit OE=P2^7; //定义ADC0808输出使能标志位 sbit P2_0=P2^0; //定义四个数码管 sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; char led_mod[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //LED字模

单片机实验指导书

实验一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公司的A T89c51。单击【确定】按钮,这时弹出如图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所示。

基于MCS51单片机步进电机的控制系统设计与实现

学校代码:11509 学号:1005073029 Hefei University 毕业设计(论文) BACH ELOR DISSERTATI ON 论文题目:基于MCS51单片机步进电机的控制系统设计与实现学位类别:工学学士 学科专业: 10级自动化2班 作者姓名: 导师姓名: 完成时间: 2014年5月12日

基于MCS51单片机步进电机的控制系统设计与实现 中文摘要 步进电机最早出现在十九世纪初期,经过一段时期的发展步进电机被广泛应用在各个领域,因为其具有良好的控制作用。所以对步进电机控系统进一步的探索有着更为深远的意义。 本设计是基于单片步进电机的控制系统,硬件设计采用STC89C52单片机为控制核心;选取ULN2003作为驱动器提供脉冲频率,驱动步进电机运转;通过键盘的加减速按钮、正反转按钮和停止按钮来控制步进电机的速度、方向和停止,最后通过测试传感器将这几个参数显示在12864液晶显示器上。软件设计采用KEIL软件工具进行C语言编写,通过各个模块端口的定义,编写出了步进电机加减速控制和正反转的程序,最后通过各模块程序调试对硬件电路施行控制。 本设计以经济实用为原则,通过软硬件结合的设计,实现了对步进电机转动速度和方向的有效控制。该系统具有控制性好,设计成本低等优点。 关键字:STC89C52;步进电机;控制系统;测速传感器

Stepper motor control system design and implementation based on MCS51 microcontroller ABSTRACT The stepping motor was invented in the early 1800s, after a long period of development of the stepper motor is widely used in various fields, because it has good control effect. Therefore, the study of the stepper motor control system has a very important significance. This design is stepper motor control system based microcomputer, hardware design uses STC89C52 microcontroller as the control core; select ULN2003 as driver provides pulse frequency drive stepper motor rotation; through acceleration and deceleration button keyboard,forward and reverse button and stop buttons to control the stepper motor speed, direction and stops, Then these several parameters was displayed on the LCD monitor 12864 by the speed sensor. Software design using KEIL software tools for C language, defined each module port, and write a stepper motor control acceleration and deceleration and reversing the process. finally to control the hardware circuit through debugging. The design principle of economical and practical, through combination of software and hardware designed to achieve the effective control of the stepper motor rotation speed and direction. The system has good controllability and low coat. Keywords: STC89C52; stepper motor; control systems; speed sensor

单片机实验考核题目及答案

---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------

MCS-51单片机实验

当前位置:网络教学综合平台 > 电子科学与信息技术学院 > <<微机原理与接口技术>> 《微机原理与接口技术》 《微机原理与接口技术》课程教学大纲 (通信工程05级) 课程中文名称:微机原理与接口技术 课程英文名称:Principles of Microcomputer and Interfacing Technology 课程类别:专业课,必修 课程编号: 071210T202 课程归属单位:贵州大学电子科学与信息技术学院 修定时间:2005 年8月 一、课程的性质、任务 1、课程的性质 本课是电子、通信工程类专业的专业基础课限选课程。 本课程以单片机系统为主线,使学生获得单片机应用系统设计的基本理论、基本知识与基本技能,掌握单片机应用系统接口设计、软件编码、调试方法,了解单片机在通信、测控等电子技术应用领域的应用,培养学生的动手能力,初步具备应用单片机系统开发产品的能力。 2、课程要求 通过本课程的学习使学生: 1)熟悉MCS-51单片机的硬件基本原理 2)掌握MCS-51系列单片机的指令系统和汇编语言的程序的编写调试方法。3)掌握MCS-51系列单片机扩展RAM、ROM和I/O的方法,掌握MCS-51单片机常用接口的设计和应用。 3、课程适用专业与学时、学分 授课对象:通信工程05级。 授课学时:总学时72,其中理论教学54,实验18学时。 学分:4 4、先修课程 计算机概论,电路分析,电子技术,数字逻辑,高级语言程序设计等。

5、推荐教材及主要教学参考用书 推荐教材: 胡汉才.单片机原理及其接口技术(第2版),清华大学出版社,2004年。书号:978730207737-4 教学参考书: 1、何立民. 单片机初级教程—原理与应用,北京航空航天大学出版 社,2000年。 2、何立民. 单片机中级教程—原理与应用,北京航空航天大学出版 社,2000年。 3、李朝青. 单片机原理及接口技术,北京航空航天大学出版社,1994 年。 4、薛均义. MCS51/96系列单片微型计算机及其应用,西安交通大学 出版社,2001年。 5、刘乐善. 微型计算机接口技术及应用,华中科技大出版社,书号:7560922104 6、周佩玲等. 16位微型计算机原理.接口及其应用(修订版),中国科学技术大学出版社,2005 7、姚凯学、孟传良.单片机原理与应用,重庆大学出版社,2000年 6、教学方法 ●教学方式:以课堂讲授为主,实验为辅;以多媒体课件为主, 板书为辅。 ●考核方式:期末总成绩=期末考试成绩(70%)+学习表现和平 时成绩(20%)+实验考查成绩(10%)。 二、各章教学内容和要求 第1章、单片机概述 1. 基本要求 了解:单片机的结构特点、发展历史、应用领域以及系列产品。 熟悉:MCS-51单片机的内部组成及信号引脚,8051的存储器结构,并行输入、输出口电路结构,时钟电路、时序及指令序列以及MCS-51单片机的工作方式。 2.重点和难点: 难点:(1)MCS-51单片机的内部结构原理; (2)MCS-51单片机的引脚功能; (3)内部存储器的组成和特殊功能寄存器的功能。 第2章 MCS-51指令系统与汇编语言程序设计 1. 基本要求: 了解:MCS-51指令格式、寻址方式以及指令的执行过程。 熟悉:MCS-51的指令系统――数据传送类指令、算术运算类指令、逻辑运算及移位类指令、控制转移类指令和布尔变量操作类指令。 掌握:MCS-51汇编语言程序设计步骤;要求具备独立设计简单程序、分支程序、循环程序和子程序能力。 2.重点和难点: 重点:MCS-51的指令系统、常用指令的用法;汇编语言程序设计和调试。

基于MCS51单片机的压力测量 系统的设计与实现

基于MCS51单片机的压力测量 系统的设计与实现 班级; 学号: 姓名: 指导老师:

摘要 以STC-51单片机为核心,应用变阻式应变片测量压力并通过ADC0809的转换,经过单片机处理后在数码管模块显示的智能压力测量系统。是变阻式应变片和51单片机相结合的一个很典型的应用,本系统包括信号采集及转换电路、单片机最小系统、显示模块三个最基本的核心模块。外围扩展了键盘模块、蜂鸣器报警模块,用以调节系统的测量和显示范围。 经试验证明,系统能正常工作且误差在允许误差范围内,符合所有技术指标。 1.方案设计 通过应变片,将机械形变变为电压信号,再通过三级集成放大电路把信号放大,之后,ADC0809把模拟信号转化为数字信号,输入到单片机中,通过按键的控制,将电压的信号输出以数码管的形式显示出来,如果电压信号超出报警上线,蜂鸣

器就发出报警信号。 2.硬件系统设计与分析 (1)应变片与信号放大器的电路分析 应变片运用的是电阻式应变片,原理是吸附在基体材料上的应变电阻随机械性形变而产生电阻变化的现象,即它可以将被测件上的应变变化转化成一种电信号。桥式电路的输入信号是0~10v,经过电路后,输出的电压经过集成运放电路放大后,输入到A/D的In0口,完成信号的输入与传 (2)AD转换分析 A/D转换器是将模拟信号转化为数字信号,start与ale信号接到51到单片机的的p2.6接口,完成信号的输出,而clock接口接到74ls74d的2q接口, D0~D7接到单片机的p1.0~p1.7接口. (3)单片机最小系统分析

单片机的RST是复位接口,刚开始时是低电平,闭合s1开关,接通电源,获得高电平,完成复位。Xtal1与xtal2是晶振电路,为单片机提供工作频率,为12m。P0.0~p0.7接到74hc573的段锁存器,完成数码管的段选择,p2.4~p2,7接到位锁存器,完成数码管的位选择。 (4)按键分析 (5)数码管分析

51单片机实验报告

51单片机实验报告

实验一 点亮流水灯 实验现象 Led灯交替亮,间隔大约10ms。实验代码 #include void Delay10ms(unsigned int c); void main() { while(1) { P0 = 0x00; Delay10ms(50); P0 = 0xff; Delay10ms(50); } }

void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } 实验原理 While(1)表示一直循环。 循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。接着循环,直至关掉电源。延迟函数是通过多个for循环实现的。 实验2 流水灯(不运用库函数) 实验现象 起初led只有最右面的那一个不亮,半秒之后从右数第二个led

也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程 #include #include void Delay10ms(unsigned int c); main() { unsigned char LED; LED = 0xfe; while (1) { P0 = LED; Delay10ms(50); LED = LED << 1; if (P0 == 0x00) { LED = 0xfe; } } } void Delay10ms(unsigned int c)

MCS-51单片机实验基础知识介绍

MCS-51单片机实验基础知识介绍 一、MCS-51单片机(51子系列) (2) 1.基本结构 (2) DIP封装管脚描述 (2) 存储器 (3) 输入/输出口 (4) 中断系统 (4) 定时器/计数器(T/C) (5) 2.寻址方式 (5) 3.指令系统(3大类共111条) (6) 指令系统介绍要点 (7) 助记符、操作数形式,对标志位的影响 (7) 数据传送(两个操作数、源操作数不变) (8) 数据传送(堆栈操作) (8) 数据传送(交换) (9) 算术运算 (9) 逻辑运算 (10) 控制程序转移 (10) 4.汇编语言程序编程 (11) 简单例程 (11) 伪指令 (12) 指令格式 (13) 程序基本格式 (13) 中断服务子程序格式 (14) 5.源程序编译→机器语言目标程序 (14) 二.EXP-51实验板 (15) 三. 接口方法 (16) 实验2 ADC/DAC (17) 实验3 键盘与数码显示接口 (17) 实验4 串行口通信 (18) 四. 单片机开发系统 (19) 1.单片机的开发 (19) 2.单片机开发工具、AEDK (19) 3.单片机开发系统组成 (20) 4.AEDK使用方法简介 (21) 5.程序编辑/调试主要步骤 (21)

一、MCS-51单片机(51子系列) 1.基本结构 DIP封装管脚描述

存储器 包括程序存储器(内/外64K)、内RAM和专用寄存器(SFR) 内部RAM128字节 工作寄存器区1-3,由程序状态字(PSW)的RS1/RS0两位定义。 专用寄存器(不包括PC) 专用寄存器复位状态:除Pn(n=0,3)寄存器和SP寄存器外,其它皆为00H

单片机实验模版

单片机实验模版 本科实验报告 课程名称:单片机综合设计学院(系): 专业:电子 班级: 学号: 学生姓名: 2018 年月日

实验项目列表 注意:独立完成预习报告和实验操作。 专业:班级:学号: 学生签字: 联系:

《单片机原理及应用实验》报告填写要求依照《大连理工大学本科实验报告规范(试行)》提出的各项要求,现规定《单片机原理及应用实验》报告填写要求如下: 一、每次实验前必须完成预习报告。注意:预习报告中的回答问题必须手写,且由 学生本人签名。第一次实验时,课前将预习报告与《实验项目列表》一同交给 实验老师。每次实验时,课前提交预习报告,没有完成预习报告者不得进行实 验。 二、每一个实验项目均须撰写一份实验报告,最后按顺序装订、上交。 三、实验报告内容: 1、实验目的和要求:写明实验的目的和任务要求; 2、实验原理和内容:与实验内容相关的算法描述、程序的结构类型,与实验相关的 接口模块功能描述。 3、算法流程:使用流程图对算法进行描述。流程图应当逻辑正确、简单清晰。流程 图能够采纳打印或手工绘制。 4、使用protel等工具绘制实验系统电路图(也可手工绘制)。系统电路图应正确、 工整。系统电路中应包含单片机以及单片机工作时所必需的外围相关器件(晶 体、上电复位电路等); 5、程序清单:程序清单一律采纳打印的方式,源程序文件的格式要整齐、规范(语 句的标号、指令及注释应在不同列中)。在程序的关键语句上加注释。相关子程 序要在凝视中进行功能说明; 6、实验结果与分析:明确地写出最后结果(是否实现设计要求等),对实验中所遇 到的问题以及解决的方法加以描述; 7、实验体会、建议:通过实验所体会的收成。针对实验内容、教学方法、考核方法 等提出需要解决的问题,提出改进建议; 8、全部文字叙述内容要求简明扼要,思路清晰、用词规范; 9、要紧仪器设备:记录要紧仪器的名称、型号(包括实验运行软件名称)等 10、实验时刻:报告中应标明实验的日期(年、月、日;星期;组号)。 四、要求实验报告字迹工整,文字简练,数据齐全,图表规范,运算正确,分析充分、具体、定量。

C51单片机实验报告

实验报告册 课程名称:单片机原理与应用B 指导老师:xxx 班级:xxx 姓名:xxx 学号:xxx 学期:20 —20 学年第学期南京农业大学工学院教务处印

实验目录实验一:指示灯/开关控制器 实验二:指示灯循环控制 实验三:指示灯/数码管的中断控制 实验四:电子秒表显示器 实验五:双机通信

姓名:学号:班级:成绩: 实验名称:指示灯/开关控制器 一、实验目的: 学习51单片机I/O口基本输入/输出功能,掌握C语言的编程与调试方法。 二、实验原理: 实验电路原理图如图所示,图中输入电路由外接在P1口的8只拨动开关组成;输入电路由外接在P2口的8只低电平驱动的发光二极管组成。此外,还包括时钟电路、复位电路和片选电路。 在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。 三、软件编程原理为; (1)8只发光二极管整体闪烁3次

亮灯:向P2口送入数值0; 灭灯:向P2口送入数值0FFH; 闪烁3次:循环3次; 闪烁快慢:由软件延时时间决定。 (2)根据开关状态控制灯亮或灯灭 开关控制灯:将P1口(即开关状态)内容送入P2口;无限持续:无条件循环。 四、实验结果图: 灯泡闪烁:

按下按键1、3、5、7:

经检验,其余按键按下时亦符合题目要求。 五、实验程序: #include"reg51.h" void delay(unsigned char time) { unsigned int j=15000; for(;time>0;time--) for(;j>0;j--); } void main(){ key,char i; for(i=0;i<3;i++) { P2=0x00; delay(500); P2=0xff; delay(500) } while(1) { P2=P3;

相关文档
最新文档