单片机硬件实验教程
单片机实验步骤(1)

实验一:IO实验1—流水灯一、实验程序//********************************************************************************* //程序:ex1.c//功能:采用循环结构实现的流水灯控制程序//实验箱上D1区J52接P1//********************************************************************************* #include<reg52.h> /*包含头文件REG51.H*/#define uchar unsigned char /*宏定义后方便书写*/#define uint unsigned int /*宏定义后方便书写*/#define LED P1 /*定义8个LED接至P1口*/void DelayMS(uint x); //延时函数声明void LED_Down(uint x); //单只LED依次灯下移点亮函数声明void LED_Up(uint x); //单只LED依次灯上移点亮函数声明void main() //主程序{while(1){LED_Down(3); //单只LED依次灯下移点亮三圈LED_Up(3); //单只LED依次灯上移点亮三圈}}//********************************************************************************* //函数名:LED_Down//函数功能:单只LED依次灯下移点亮//形式参数:uint x;下移点亮x圈//********************************************************************************* void LED_Down(uint x){uchar i,j;for(i=0;i<x;i++) //单只LED依次灯下移点亮x圈{LED=0xfe; //最上边的LED亮for(j=0;j<8;j++){DelayMS(250); //延时函数调用LED=(LED<<1)|0x01; //下移1位后,将LSB设为1,点亮下一个LED}}}//********************************************************************************* //函数名:LED_Up//函数功能:单只LED依次灯上移点亮//形式参数:uint x;上移点亮x圈//********************************************************************************* void LED_Up(uint x){uchar i,j;for(i=0;i<x;i++) //单只LED依次灯上移点亮x圈{LED=0x7f; //最下边的LED亮for(j=0;j<8;j++){DelayMS(250); //延时函数调用LED=(LED>>1)|0x80; //上移1位后,将MSB设为1,点亮上一个LED}}}void DelayMS(uint x) //延时函数{uint j,k; //定义无符号字符型变量j和kfor(k=0;k<x;k++) //双重for循环语句实现软件延时for(j=0;j<120;j++); //循环体为空循环}二、实验内容:1、基本内容(1)认真理解并读懂程序,将所给程序在KEIL中编译,产生HEX文件;(2)将程序烧写到实验箱中的单片机中;(3)连接实验箱中的硬件:(4)运行程序,在实验箱中实现程序功能。
单片机实验指导书

单片机实验指导书一、实验介绍单片机是一种集成电路,能够完成各种控制和计算任务。
本实验指导书将引导您进行单片机实验,以帮助您了解单片机的基本原理和应用。
在本实验中,您将学习如何搭建实验环境、编写程序以及进行各种实验操作。
二、实验准备1. 实验设备和材料:- 单片机开发板- USB数据线- 适配器- 数字电路元件(如LED、电位器等)2. 软件准备:- 单片机开发软件(如Keil、IAR EWARM等)- 编程软件(如C语言编辑器)- USB驱动程序三、实验步骤1. 搭建实验环境:- 将USB数据线连接单片机开发板和计算机。
- 通过适配器给单片机开发板供电。
- 检查驱动程序是否正确安装。
2. 编写程序:- 打开单片机开发软件,并创建一个新的工程。
- 选择适当的单片机型号和编程语言。
- 编写程序代码,实现所需功能。
- 编译程序并下载到单片机开发板。
3. 实验操作:- 根据实验要求连接相应的电路元件。
- 调试程序,确保程序能正确运行。
- 运行实验并观察结果。
四、实验注意事项1. 请确保您具备基本的电路和编程知识。
2. 在操作实验设备和元件时,请小心谨慎,避免发生触电等事故。
3. 如果遇到问题,请及时咨询实验指导人员或相关专家。
五、实验示例以下是一个简单的实验示例,用于演示如何控制LED灯的亮度:实验电路连接:将一个LED灯连接至单片机开发板的一个GPIO口。
程序代码:#include <reg51.h>sbit LED = P1^0;void delay(unsigned int time){unsigned int i,j;for(i=0;i<time;i++)for(j=0;j<120;j++);}void main(){while(1){LED = 1; // 点亮LEDdelay(200); // 延时200msLED = 0; // 熄灭LEDdelay(200); // 延时200ms}}六、实验总结通过本次实验,我们学习了搭建实验环境、编写程序以及进行单片机实验操作的基本步骤和注意事项。
单片机硬件实验报告

《单片机导论》课程硬件实验实验报告院系:光电信息工程学系专业:姓名:学号:一、硬件实验一(一)实验1-11、实验内容与要求编写程序,使发光二极管从左到右轮流循环点亮(用软件延时)2、实验使用的硬件模块及原理功能①流水灯模块硬件系统:②功能原理:3、程序流程及主要程序①程序流程:②主要程序:4、实验结果与讨论发光二级管从左到右依次循环电亮。
(二)实验1-21、实验内容与要求采用独立式键盘,当任一个K(K0-K7)键按下时,点亮相应的LED(LED0-LED7)。
2、实验室用的硬件模块及原理功能①独立键盘硬件模块:②原理功能:3、程序流程与主要程序①程序流程:②主要程序:4、实验结果与讨论利用独立键盘控制相应的发光二极管,每按下一个键盘,相应的二极管点亮。
(三)实验1-31、实验内容与要求编写能发出“哆”到“西”的程序,每个音均为一拍。
2、实验室用的硬件模块及原理功能①蜂鸣器硬件模块:②原理功能:3、程序流程与主要程序修改了例程欢乐颂的音频-节拍表,得到以下程序:4、实验结果与讨论利用已有的欢乐颂例程,修改最后的音频-节拍表,即得到每个音一拍的do、re、mi、fa、so、la、si。
二、硬件实验二(一)实验2-11、实验内容与要求编程使静态数码管以1s间隔循环显示9—0,循环2次后,使数码管的a bc d e f 6个段,依次点亮并循环,每个段点亮的时间为0.5秒。
(用软件延时或定时器定时)2、实验室用的硬件模块及原理功能3、程序流程与主要程序①程序流程:②主要程序:4、实验结果与讨论静态数码管循环显示9—0,每个1s,循环两次。
后使数码管的a b c d e f 6个段,依次点亮并循环,每段0.5s。
(二)实验2-21、实验内容与要求编写十字路口交通灯控制程序。
要求:东西向车道亮红灯时,南北向车道亮绿灯,东西向人行道亮红灯,南北向人行道亮绿灯,时间为5s;两个方向的车道均为黄灯,人行道均亮红灯亮,时间为2s;红绿灯显示交换方向;两个方向的车道均为黄灯,人行道均亮红灯亮,时间为2s,如此循环反复。
单片机实验说明

单片机实验操作方法与步骤说明第1次实验一、如何编写程序及翻译机器码?二、如何输入机器码和运行程序?1. 复位<MON> 、<STOP>(蓝色按钮)、<RESET>(红色按钮)2. 输入机器码左边4位数码管是地址,右边4位数码管是该地址中的内容。
(1) 先复位,光标停在左边的数码管(2) 输入四位地址后(3) 再按<ME>键,光标跳到右边两位数码管,输入机器码(4) 按<NX>键,可输入下一字节机器码按<LS>键,可输入上一字节机器码若需要重新输入地址,则复位,按<MON>键3. 执行程序(1) 先复位(2) 输入首地址(3) 按<EXEC>则连续执行到第一个设置的断点处停止。
(4) 按<STEP>则执行一条指令后停止。
(5) 按<MON>或<STOP>或<RESET>可停止程序运行。
4. 设置断点和清除断点机器码输入完毕后,复位,让光标停在左边,则可设置断点。
(1) 输入断点指令的第一个字节的地址,输入<SB>键,则设置了一个断点。
(2) 若输入<CB>键,则清除一个断点。
5. 查看寄存器内容和存储器内容(1) 寄存器例如,查看寄存器A的内容,可按如下操作:<A> <RG>例如,查看寄存器R1的内容,可按如下操作:<R1> <RG>(2) 内部数据存储器RAM(00H—FFH)<XX> <RG>其中<XX>为2位16进制数。
(3) 外部数据存储器RAM<XXXX> <RW>其中<XXXX>为4位16进制数。
(4) 程序存储器<XXXX> <ME>上面都可用<NX>或<LS>查看上一个或下一个地址的内容。
51单片机实验手册

51单片机实验手册一、概述51单片机是一种经典的8位微控制器,具有广泛的应用领域。
本实验手册旨在提供详细的实验指导,帮助初学者快速入门,并为进一步的学习提供基础。
二、实验准备在进行51单片机实验之前,我们需要准备以下材料:1. 一块51单片机开发板2. USB数据线或者串口线3. 电脑及编程软件4. 面包板及对应的连接线5. 红、绿、蓝LED以及相应的电阻三、实验一:LED闪烁LED闪烁是最基础的实验之一,通过控制51单片机的I/O口状态,使LED灯交替亮灭。
1. 连接电路将51单片机的VCC引脚连接到正极,GND引脚连接到负极,将LED的长脚连接到P1.0引脚,短脚连接到GND引脚。
2. 编写程序使用C语言编写如下程序:```c#include <reg52.h>void main() {while(1) {P1 = 0x00; // P1置低电平,LED灯熄灭Delay(1000); // 延时1秒P1 = 0xFF; // P1置高电平,LED灯点亮Delay(1000); // 延时1秒}}void Delay(unsigned int t) {while (t--);}```3. 烧录程序将编写好的程序通过编程软件下载到51单片机中。
4. 运行实验将USB数据线或串口线连接到51单片机开发板和电脑,将开发板上的开关打开,观察LED灯的闪烁情况。
四、实验二:数码管显示通过控制51单片机的I/O口状态,驱动数码管显示数字。
1. 连接电路将51单片机的VCC引脚连接到正极,GND引脚连接到负极,将数码管的A、B、C、D、E、F、G引脚分别连接到P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6引脚。
2. 编写程序使用C语言编写如下程序:```c#include <reg52.h>unsigned char code segment[] = { // 数码管段码表0x3F, // 数字00x06, // 数字10x5B, // 数字20x4F, // 数字30x66, // 数字40x6D, // 数字50x7D, // 数字60x07, // 数字70x7F, // 数字80x6F // 数字9};void main() {unsigned int i;while(1) {for(i = 0; i < 10; i++) {P1 = segment[i]; // 依次在数码管上显示数字0-9 Delay(1000); // 延时1秒}}}void Delay(unsigned int t) {while (t--);}```3. 烧录程序将编写好的程序通过编程软件下载到51单片机中。
单片机实验第一次课PPT课件

New Project菜单
保存文件窗口
11
选取芯片:
ATMEL公司AT89C51
12
点击:是
并打开STARTUP.A51文件,找到一句:
CSEG AT 0 修改为:CSEG AT 8000H 并保存
13
1—新建文本 2--文本编辑窗口 3--保存文本
在文本编辑窗口输入编写的程序,并保存为后缀名为.C的文 件类型,路径和工程文件相同。
7
步骤三:编写程序
#include “id)
{
unsigned char i,j,k;
for(i=0;i<20;i++)
for(j=0;j<20;j++)
for(k=0;k<248;k++);
}
void main()
{
while(1)
{P1=0;
delay02s();
21
谢谢大家
荣幸这一路,与你同行
It'S An Honor To Walk With You All The Way
演讲人:XXXXXX
时 间:XX年XX月XX日
22
单片机原理及应用实验
1
实验一: I/O口控制实验
范例:P1口控制8个LED灯,使这一组灯以一定时间 间隔闪烁;
间隔时间可以通过“软件延时”实现。
2
实现步骤:
1、根据题目要求,构思电路原理图; 2、在实验箱上,确定系统连线; 3、编写程序; 4、在仿真软件中调试、运行程序,在 实验箱上观察实验现象。
P1=1;
delay02s();
}}
8
步骤四:软件仿真程序
单片机实验步骤

单片机实验步骤一、 Keil C51集成软件使用步骤1、在D :盘根目录下新建一个空文件夹,文件夹名为学生学号,例如:D:\200811510012、打开Keil C51 集成软件,可以双击桌面上的图标3、建立工程点击菜单Project → 选择New Project … → 弹出以下对话框4、然后弹出以下对话框——选择单片机芯片型号5、把本次实验的汇编源程序复制到刚才在D :盘建立的空文件夹里,例如本次实验为“实验十 广告灯实验”,翻开实验手册第28页,可以看到本次实验的源文件名为“ZYADV .ASM ”,该文件在“C:\Keil\单片机实验程序”路径下。
(1)选择D 盘下的空文件夹路径 (2)填入“工程名”,可根据源文件命名 (3)点击“保存” (1)选择“Atmel ”公司 (2)选择“89C51”芯片型号 (3)点击“确定”6、将汇编源文件添加到当前工程项目中7、进入源代码编辑界面(2)选择“Add Files to Group’Source Group 1’”(1)在“Source Group”处单击鼠标右键(3)选择“D:\2008115001”路径(4)选中“ZY ADV.ASM”文件(5)点击“Add”(1)点击“加号”(2)双击“ZY ADV.ASM”编辑界面由三个窗口构成:左侧为工程窗口;右侧为编辑窗口;下方为输出窗口。
如果在源程序中存在语法错误,输出窗口中会出现错误提示信息。
如果源程序语法完全正确后,点击Debug → Start/Stop Debug Session进入软件模拟的仿真窗口,如下图所示:8、编译连接后进行硬件仿真在进行硬件仿真之前,还需对工程属性进行某些设置。
选择“Project → Options for Target ‘Targetl’”,(1)选择“Output”标签(3)选择“Debug”标签(2)选择“Creat HEX”(4)硬件仿真选项。
MCS-51单片机应用实验教程课程设计

MCS-51单片机应用实验教程课程设计1. 简介MCS-51单片机是一种高性能、低功耗单片机,广泛应用于各个领域。
本文主要介绍MCS-51单片机应用实验教程课程设计内容,以帮助初学者了解MCS-51单片机的应用。
2. 实验环境•Keil C51编译器•STC89C52RC单片机•电路板和外围器件•PC3. 实验内容3.1 实验1:LED流水灯LED流水灯是MCS-51单片机入门实验,可以让学生熟悉MCS-51单片机基本指令和寄存器的使用,以及加深对位运算的理解。
实现方法:通过MCS-51单片机的IO口和位运算实现8个LED灯的流水效果。
3.2 实验2:数码管显示数码管是一种常见的数字显示器件,通过数码管的显示,可以实现对数字的显示和闪烁等效果。
该实验可以让学生了解MCS-51单片机的定时器和中断服务程序的使用,以及对数码管的控制。
实现方法:通过MCS-51单片机的定时器,按照一定的时间间隔对数码管进行显示和闪烁。
3.3 实验3:按键控制LED灯按键开关是电子产品常用的一种输入方式,通过按键的不同状态可以控制LED等输出设备的开关。
该实验可以让学生了解MCS-51单片机的IO口的输入状态读取和控制。
实现方法:通过MCS-51单片机的IO口读取按键输入状态,通过位运算控制LED灯的开关。
3.4 实验4:外部中断实现按钮控制LED灯外部中断是MCS-51单片机的一种重要功能,通过外部中断可以实现对按钮的响应,进而实现对LED等设备的控制。
该实验可以让学生进一步了解MCS-51单片机的外部中断服务程序的使用和IO口管理。
实现方法:通过MCS-51单片机的外部中断输入,响应按键状态,并通过位运算控制LED灯的开关。
3.5 实验5:定时器PWM控制LED灯亮度通过调节LED灯的亮度,可以达到调节电子产品亮度的效果。
该实验可以让学生了解MCS-51单片机的定时器的PWM输出功能,以及通过PWM实现对LED等设备的亮度调节。
SW-51PROC硬件实验说明

SW-51PROC单片机综合实验系统操作说明一、硬件设备的连接1、51-TRACER仿真器:1)晶体选择:从左到右分别是4,11.0592,12,24MHZ,用户可以根据需要选择其一,注意只能也必须选择其一(把对应的开关拨向ON 的位置),否则可能工作不正常。
1、2、3、4开关设置,3拨向上,表示选择12MHZ主频。
2)USB接口线,USB插头线接PC机的USB接口,同时起到通信和供电的功能。
另一端插入仿真器的插孔;3)左侧的40根扁平电缆插头接仿真器的插座上;4)40根扁平电缆线的另一头为双列直插式的插座,接到实验仪的单片机插座上,锁上。
注意扁平电缆的红边朝上。
5)电源线一头插在220V插座上,另一头插在综合实验仪左侧的电源插座上;(当接通USB接口后,实验仪的指示灯不亮时要接上外接220v电源)2、接线时必须:拔下接到PC机的USB接口线,关掉电源,方可修改连线,即必须断电接线!!!!!二、调试程序前软件的设置1、建立新工程,选择CPU Atmel公司的AT89S52。
2、右击“目标1”,选择为目标“目标1”设置选项,打开设置对话框。
(1)在对话框中选“项目”选项卡,设置时钟频率为12MHz。
如下图所示。
(2)在对话框中选“输出”选项卡,将“产生HEX文件”选上。
如下图所示。
(3)在对话框中选“调试”选项卡,选择“使用”单项选择中的下拉选项中的“keil monitor-51 driver”。
如下图所示(4)单击“设置” 在“Port ”的下拉选项中选择的“COM3”,再将“Stop Program Execution whit ”下方的选项“Serial Interrupt ”前打钩,而后按“OK ”,最后按“确定”。
如下图所示。
三、结束调试方法软件方法:单击“停止”按钮和“停止调试按钮”。
硬件方法:1、按一下仿真器侧面的reset按钮一下;(注意要控制按下时间,否则脱机运行)注意:两个reset按钮,作用相同(一个为备份),按说明书:短按一下,绿灯闪一下,喇叭响一下,则系统复位。
单片机实验指导书

目录实验一P1口输入、输出实验 (2)实验二继电器控制实验 (8)实验三音频控制实验 (11)实验四程序调试 (14)实验五5LED静态串行显示实验 (16)实验六6LED动态扫描显示实验 (21)实验七查询式键盘实验 (28)实验八阵列式键盘实验 (36)实验九计数器实验 (47)实验十定时器实验 (49)实验十一外部中断实验 (54)实验一P1口输入、输出实验一、实验目的1、学习P1口的使用方法2、学习延时子程序的编写和使用二、实验说明P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。
三、实验内容及步骤实验(一):用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。
1、使用单片机最小应用系统1模块。
关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加P1_A.ASM源程序,进行编译,直到编译无误。
4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。
发光二极管单只从右到左轮流循环点亮。
实验(二):用P1.0、P1.1作输入接两个拨断开关,P1.2、P1.3作输出接两个发光二极管。
程序读取开关状态,并在发光二极管上显示出来。
1、用导线分别连接P1.0、P1.1到两个拨断开关,P1.2、P1.3到两个发光二极管。
2、添加 P1_B.ASM源程序,编译无误后,运行程序,拨动拨断开关,观察发光二极管的亮灭情况。
向上拨为熄灭,向下拨为点亮。
四、流程图及源程序1.流程图2.源程序:(一)实验一ORG 0000HLJMP STARTORG 0030HSTART: MOV A, #0FEHMOV R2,#8OUTPUT: MOV P1,ARL AACALL DELAYDJNZ R2,OUTPUTLJMP STARTDELAY: MOV R6,#0MOV R7,#0DELAYLOOP:;延时程序DJNZ R6,DELAYLOOPDJNZ R7,DELAYLOOPRETEND(二)实验二KEYLEFT BIT P1.0 ;定义KEYRIGHT BIT P1.1LEDLEFT BIT P1.2LEDRIGHT BIT P1.3ORG 0000HLJMP STARTORG 0030HSTART: SETB KEYLEFT ;欲读先置一SETB KEYRIGHTLOOP: MOV C,KEYLEFTMOV LEDLEFT,CMOV C,KEYRIGHTMOV LEDRIGHT,CLJMP LOOPEND五、思考题(1)对于本实验延时子程序Delay: MOV R6,0MOV R7, 0DelayLoop:DJNZ R6,DelayLoopDJNZ R7,DelayLoopRET如使用12MHz晶振,粗略计算此程序的执行时间为多少?六、电路图实验二继电器控制实验一、实验目的1、学习I/O端口的使用方法2、掌握继电器的控制的基本方法3、了解用弱电控制强电的方法二、实验说明现代自动控制设备中,都存在一个电子电路的互相连接问题,一方面要使电子电路的控制信号能控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方面又要为电子线路和电气电路提供良好的电气隔离,以保护电子电路和人身的安全。
单片机实训报告实验步骤

一、实验目的1. 掌握单片机的基本工作原理和硬件结构。
2. 熟悉单片机的编程方法,提高编程能力。
3. 学习单片机的调试技巧,提高调试效率。
4. 通过实际操作,培养动手能力和团队合作精神。
二、实验仪器与设备1. 单片机实验开发板2. 编译器(如Keil、IAR等)3. 仿真软件(如Proteus、Multisim等)4. 连接线、电源、示波器等辅助设备三、实验步骤1. 熟悉单片机实验开发板(1)观察开发板的硬件结构,了解各个模块的功能和连接方式。
(2)熟悉开发板上的按键、LED、串口、I2C、SPI等接口。
2. 编写程序(1)根据实验要求,设计程序功能。
(2)选择合适的编程语言(如C语言、汇编语言等)。
(3)使用编译器编写程序代码,并进行语法检查。
3. 程序调试(1)使用仿真软件(如Proteus)对程序进行仿真调试。
(2)观察程序运行结果,检查程序是否存在错误。
(3)根据仿真结果,修改程序代码,直至程序正常运行。
4. 硬件连接(1)根据程序功能,连接开发板上的相关硬件模块。
(2)确保连接正确,避免短路或接触不良。
5. 实验运行(1)打开电源,启动单片机。
(2)观察程序运行情况,验证程序功能是否实现。
(3)根据实验要求,调整程序参数或硬件配置,优化程序性能。
6. 数据采集与记录(1)使用示波器等设备,采集实验过程中的数据。
(2)记录实验数据,为后续分析提供依据。
7. 结果分析(1)对实验数据进行整理和分析,评估程序性能。
(2)总结实验过程中的经验教训,提出改进措施。
8. 实验报告撰写(1)整理实验过程,包括实验步骤、实验数据、实验结果等。
(2)分析实验结果,总结实验经验教训。
(3)撰写实验报告,要求格式规范、内容完整。
四、实验注意事项1. 确保实验环境安全,避免触电、短路等事故。
2. 严格遵守实验操作规程,避免损坏实验设备。
3. 注意程序调试过程中的细节,提高调试效率。
4. 实验过程中,积极思考,勇于创新,提高动手能力。
单片机整套实验及程序

单片机整套实验及程序引言单片机作为嵌入式系统开发的核心技术之一,广泛应用于各个领域,在教育、科研和工业生产中占有重要地位。
本文将介绍单片机整套实验及程序设计的相关内容,通过实际操作和编程实践,帮助读者更好地理解和掌握单片机的基本原理和应用。
实验一:LED闪烁实验LED闪烁实验是单片机入门实验的重要一环。
通过这个实验,我们可以了解到单片机引脚的输入输出特性、编程语言的基本结构以及简单的电路连接方法。
实验目的•掌握单片机引脚的输入输出特性;•了解单片机编程语言的基本结构;•学会使用电路连接方法。
实验材料•单片机开发板;•电阻、LED灯、杜邦线等电子元件。
实验步骤1.连接电路:将单片机的一个GPIO引脚连接到一个电阻,再将电阻的另一端连接到LED的正极,LED的负极连接到地线。
2.编写程序:使用C语言或汇编语言编写LED闪烁的程序。
程序的核心是通过控制GPIO引脚的高低电平来控制LED的亮灭。
3.烧录程序:将编写好的程序烧录到单片机中。
4.调试程序:通过观察LED的亮灭情况,判断程序是否运行正常。
程序示例(C语言)下面是一个使用C语言编写的LED闪烁程序示例:#include <reg51.h>void delay(unsigned int time) {while(time--);}void mn() {while(1) {P1 = 0xFF; // 将P1口设置为高电平delay(10000);P1 = 0x00; // 将P1口设置为低电平delay(10000);}}实验结论通过LED闪烁实验,我们成功地掌握了单片机引脚的输入输出特性、编程语言的基本结构以及简单的电路连接方法。
这为之后的实验和项目开发奠定了重要的基础。
实验二:数码管显示实验数码管是一种常见的数字显示设备,它广泛应用于计时器、计数器、温度显示等场景。
通过数码管显示实验,我们可以学习如何控制数码管的显示和编程。
实验目的•学会使用单片机输出控制信号控制数码管的显示;•理解数码管的工作原理;•掌握数码管编程的方法。
MCS51_单片机实验指导书

实验1 汇编语言简单试验---Keil C51的使用一、实验目的:熟悉Keil C51 集成开发环境的使用方法,初步掌握Keil C51基本的操作和使用,能够输入、编译和仿真调试简单的程序。
二、实验内容:在Keil C51 集成开发环境编写程序,实现P1.0口单灯闪烁的功能(假设P1.0口所接发光二极管低电平点亮),编写程序后在Keil C51 集成开发环境完成编译和仿真,实现全速运行、单步运行、并学会设置断点、查看相关寄存器等操作。
三、实验设备:安装Keil C51的计算机一台。
四、实验步骤:(参考教材第11章)1)建立一个工程项目选择芯片确定选项。
执行Keil C51软件的菜单“Project | New Project…”,弹出一个名为“Create New Project”的对话框。
先选择一个合适的文件夹准备来存放工程文件,最后,为工程取名,并保存。
如图1-1所示,紧接着,Keil C51提示您选择CPU器件。
在这里可以选择Atmel公司的AT89S52。
图1-1 Keil C51 工程的建立2)编写(或加入)汇编源文件或C 源文件,并添加到工程中。
执行菜单“File | New…”,出现一个名为“Text n”(其中n表示序号)的文档。
如图1-2所示。
执行菜单“File | Save”,弹出一个名为“Save As”的对话框。
将文件名改为你事先起好的名称,然后保存。
注意:扩展名“.ASM或.c”不可省略。
单击Keil C51软件左边项目工作窗口“Target 1”上的“+”,将其展开。
然后右击“Source Group 1”文件夹,会弹出如图 1.7所示的选择菜单。
单击其中的“Add Files to Group 'Source Group 1'”项,将源程序文件添加到工程中。
然后编写如下程序源文件,并再次保存。
ORG 0000HMAIN: CLR P1.0 ;(1)点亮LEDMOV 30H,#255LCALL DELAY ;(2)调用延时子程序SETB P1.0 ;(3)熄灭LEDMOV 30H,#200LCALL DELAY ;(4)调用延时子程序AJMP MAIN ;(5)返回MAIN处执行DELAY:MOV R7,30H ;(6)延时程序D1:MOV R6,#250 ;(7)D2:DJNZ R6,D2 ;(8)R6存放内循环次数DJNZ R7,D1 ;(9)R7存放外循环次数RET ;(10)END3)设置参数单击“Option”选项,在“Output”标签页,选中“Create HEX File”项,然后“确定”。
单片机原理实验

单片机原理实验一、实验目的本实验旨在帮助学生深入了解单片机原理,并通过实践掌握单片机的基本工作原理和应用。
二、实验设备本实验所需设备及材料如下:1. 单片机开发板2. USB数据线3. 电脑(已安装单片机开发软件)4. 电路连线板5. LED灯若干6. 电阻若干7. 杜邦线若干三、实验步骤1. 将单片机开发板和电脑通过USB数据线连接起来,确保开发板的供电和通信正常。
2. 准备一个简单的电路连线板,将LED灯和电阻连接起来,组成一个简单的电路。
3. 打开电脑上的单片机开发软件,在软件中选择合适的开发环境和单片机型号。
4. 根据实验要求,编写相应的程序代码,控制LED灯的亮灭。
5. 将编写好的程序下载到单片机开发板中,启动程序,观察LED灯的变化。
四、实验结果分析通过以上实验步骤,我们可以通过编写简单的程序代码控制单片机的输出,从而控制实验用的LED灯的亮灭。
实验结果如预期一样,我们可以通过改变代码中的逻辑关系和时序控制实现不同的效果。
五、实验应用掌握了单片机的原理和编程技巧后,我们可以将单片机应用于各种电子设备的控制。
比如智能家居系统、电子产品的自动控制、传感器系统的数据采集和处理等。
单片机的应用范围非常广泛,我们只需要根据实际需求进行相应的硬件连接和程序编写即可实现我们想要的功能。
六、实验总结通过本次实验,我们对单片机的原理有了更深入的了解,并通过实践掌握了单片机的基本工作原理和应用方法。
通过编写简单的程序代码,我们成功地控制了LED灯的亮灭,并了解了单片机的应用潜力和扩展性。
实验过程中需要注意安全,确保实验设备的正常运行。
同时,需要更多的实践和学习,才能在单片机的应用领域中取得更多的成果。
七、参考资料1.《单片机原理与应用》2.《嵌入式C语言程序设计》以上是本次单片机原理实验的实验过程和结果分析,通过实践加深对单片机原理的理解,并实现基本的控制功能。
希望本实验能够帮助读者更好地掌握单片机的原理和应用,为日后进一步的学习和实践奠定基础。
山东大学单片机实验 (硬件实验)

信息科学与工程学院2016-2017学年第二学期实验报告课程名称:单片机原理与应用实验名称:4.1声光报警实验4.58255并行I/O口扩展及交通灯信号控制实验4.77279键盘扫描及动态LED显示实验山东大学·微处理器原理与应用·实验报告实验报告【实验源程序】实验4.1:按键声光报警实验源程序:#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit bell=P1^1; //P1.1口位赋值给铃声sbit led=P1^0; //P1.0口位赋值给灯sbit key0=P1^2; //P1.2口位赋值给按键uint count;/**************************主程序**********************************/ void main() //按键按下后就触发中断{ EA=1; //开放中断EX0=1; //允许外部中断0中断IT0=0; //外部中断0设置为电平触发方式while(1); //循环执行}void delay(uint count) //延时1ms{uint x,y;for(x=count;x>0;x--)for(y=120;y>0;y--);}void show(uint count){ uint i;for(i=0;i<=count;i++){led=0;bell=0; //开灯响铃delay(500); //延时0.5sled=1;bell=1; //关灯灭铃delay(500);}}void s_timer0() interrupt 0 using 0{EA=0; //屏蔽所有中断请求show(count); //调用灯铃子程序count++; //每按一次键,记一次数delay(50);if(count>=10) //到10清零按键数count=0;EA=1; //开放中断}实验4.5:8255 并行I/O 扩展及交通信号灯控制实验#include<reg51.h>#include<stdio.h>#include <absacc.h> // 可使用其中定义的宏来访问绝对地址#define uchar unsigned char#define uint unsigned int#define PA XBYTE[0x7FFC] //PA指代外部数据存储器7FFCh的地址#define COM XBYTE[0x7FFF] //由P0 P2口联合输出地址sbit P30=P3^0;sbit P31=P3^1;uint temp,shi,ge,t;uchar a;void show(uint temp);void delay();void delays();void init_8255();void init_8255(){COM=0x80; // c = out, a = out,b = out}void delay() //延时500MS子程序{uint i,j;for(i=500;i>0;i--)for(j=120;j>0;j--);}void delays() //延时1S子程序{uint i,j;for(i=1000;i>0;i--)for(j=120;j>0;j--);}/***************************主程序*****************************/ void main(){init_8255();TMOD=0x01; //设定工作模式1EA=1; //开放中断ET0=1; //允许T0中断TF0=0; //定时器0溢出标志位while(1){a=0x26; //变量a赋初值for(temp=25;temp>19;temp--) //绿灯倒计时25s{a=a-1;PA=0x69; //东西绿灯亮show(a); //调用数码管显示子程序delays(); //延时1s}a=0x1a; //变量a赋值for(temp=19;temp>9;temp--) //倒计时{a=a-1;PA=0x69; //东西绿灯亮show(a);delays();}a=0x0a;for(temp=9;temp>0;temp--){a=a-1;PA=0x69;show(a);delays();}for(t=5;t>0;t--) //绿灯闪烁5s{a=0; //当计时值为0时闪烁show(a);PA=0xeb; //东西绿灯灭delay(); //延时0.5sPA=0x69; //东西绿灯亮delay(); //延时0.5s}a=0x26;for(temp=25;temp>19;temp--) //绿灯倒计时25s {a=a-1;PA=0x96; //南北绿灯亮show(a);delays();}a=0x1a;for(temp=19;temp>9;temp--){a=a-1;PA=0x96;show(a);delays();}a=0x0a;for(temp=9;temp>0;temp--){a=a-1;PA=0x96;show(a);delays();}for(t=5;t>0;t--) //绿灯闪烁5s{a=0; //当计时值为0时闪烁show(a);PA=0xbe; //南北绿灯灭delay(); //延时0.5sPA=0x96; //南北绿灯亮delay(); //延时0.5s}}}void show(uint a) //显示子程序{SCON=0x00; //工作模式0SBUF=a; //将变量a的值送给缓存寄存器while(!TI) //等待发送是否完成TI=0; //中断标志位清零}实验4.7:7279 键盘扫描及动态LED 显示实验#include <reg51.h> //*** 函数定义*** #include<stdio.h>#define uchar unsigned char#define uint unsigned int#define RESET 0xa4 // 复位指令#define RL 0xa1 //左移指令#define DECODE1 0xc8 //译码方式1#define READ 0x15 //读键盘指令void delay1(void); // 长延时void delay2(void);void write7279(uchar, uchar); // 写入到7279uchar read7279(uchar); // 从7279读出void send_byte(uchar); // 发送一个字节uchar receive_byte(void); // 接收一个字节ucharkeyma[]={0x1b,0x13,0x0b,0x03,0x1a,0x12,0x0a,0x02,0x19,0x11,0x09,0x01,0x18,0x10,0x08 ,0x00};//*** 变量及I/O口定义***sbit cs=P1^0; // cs 连接于P1.0sbit clk=P1^1; // clk 连接于P1.1sbit dio=P1^2; // dio 连接于P1.2sbit key=P1^3; // key 连接于P1.3void main(){uchar anjian,i,num;send_byte(0xa4); //全部复位指令while(1){if(key==0){ //如果按键按下send_byte(0x15); //读键盘指令anjian=receive_byte(); //接收键盘数据for(i=0;i<16;i++){if(anjian==keyma[i]){num=i;break;}}send_byte(0xa1);write7279(0xc8,num);while(key==0);}}}void write7279(uchar cmd, uchar num) {send_byte (cmd);send_byte (num);}uchar read7279(uchar command){send_byte(command);return(receive_byte());}void send_byte( unsigned char out_byte) {unsigned char i;cs=0; //芯片使能delay1();for (i=0;i<8;i++) //分8次移入数据{if (out_byte&0x80)//先传高位{dio=1;}else{dio=0;}clk=1;delay2();clk=0;delay2();out_byte=out_byte*2;//数据左移}dio=0;}uchar receive_byte(void){uchar i, in_byte;dio=1; //设置传输口打开delay1();for (i=0;i<8;i++)//分8次读入数据高位在前{clk=1;delay2();in_byte=in_byte*2; //数据左移if (dio){in_byte=in_byte|0x01;}clk=0;delay2();}dio=0;return (in_byte);}void delay1(void){uchar i;for (i=0;i<0x30;i++);}void delay2(void){uchar i;for (i=0;i<8;i++);}。
单片机实验教案

实验一集成开发环境keil c51的使用与调试Keil C51 u Vision2 是德国Keil公司开发的基于Windows环境的8051软件开发平台,它集项目管理、源程序编辑、程序调试于一体,是一个强大的集成开发环境。
u Vision2 支持Keil的各种8051工具,包括:C编译器,宏汇编译器、连接/定位器及Object-hex转换程序,可以帮助用户快速有效的实现嵌入式系统的设计与调试。
1.1硬件安装1、连接51CPU板,在实验箱右下角有三个插座:J1、J2、J3,用来连接51CPU板,在51CPU板上有一个小拨码开关:J18,是单片机的EA脚,是用来选择读片内还是片外ROM的,拨向左边为读片内ROM;拨向右边为读片外ROM。
2、KEIL仿真器与实验箱的连接:将KEIL仿真器40芯的排线连到51CPU板的40芯插座上,仿真器的USB连接线连到微机的USB口。
3、八段数码管右上角的两个拨码小开关是用来设置工作模式的,将两个拨码小开关同时拨向右边是选择51单片机工作模式,此时应拨向右边。
1.2新建一个项目文件首先点击Keil uVision2 ,进入uVision2界面。
点击工具栏Project选项中的New Project,准备开始建立自己的项目。
输入工程文件名称,并选择保存工程文件的目录。
为项目文件选择一个目标器件(如ATMEL89C51),如图所示。
用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择“为目标‘目标1’设置选项”如下图所示。
在“为目标‘目标1’设置选项”中,点击“调试”菜单,在此菜单中可选择是使用硬件仿真,还是软件仿真,连接实验箱做实验时选择硬件仿真,点击硬件仿真选项后面的[设置]选项,在此对对话框中选择串口和波特率,串口根据所连电脑来决定。
波特率为38400。
点击“文件/新建”创建源程序文件并输入程序代码。
软件仿真硬件仿真选择串口 选择波特率在文本框中输入原程序,如下图所示点击“文件/保存“对程序进行保存用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择添加文件到原代码组,如下图所示在弹出的添加文件框中,选择需要添加到项目中的文件点击编译连接的图标,对项目文件进行编译点击“调试/启动/停止调试”进入调试界面在调试界面中可以对程序进行单步或者全速运行的调试若要查看内存中的数据,点击“视图/存储器窗口”在此地址框中,输入不同的指令查看内部数据如果需要查看一些内部数据,在菜单栏点击[视图/存储窗口]。
厦门理工学院单片机实验 硬件实验一 P1口输入、输出实验

机械工程系微机原理与接口技术实验报告书实验名称:P1口输入、输出实验年级专业及班级:姓名:学号:指导教师:刘建春评定成绩:教师评语:实验时间: 2011 年 10 月 31 日硬件实验一 P1口输入、输出实验一、实验要求1. P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2. P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。
编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。
二、实验目的3. 学习P1口的使用方法。
4. 学习延时子程序的编写和使用。
三、实验电路及连线四、实验说明a) P1口是准双向口。
它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口用为输入口时,必须先对它置“1”。
若不先对它置“1”,读入的数据是不正确的。
b) 8051延时子程序的延时计算问题,对于汇编语言程序查指令表可知MOV ,DJNZ 指令均需用两个机器周期,在6MHz 晶振时,一个机器周期时间长度为12/6MHZ ,所以该段程序执行时间为:(256×255+2)×2×12÷6 ≈ 261msDelay : MOV R6,#0HMOV R7, #0HDelayLoop : DJNZ R6,DelayLoopDJNZ R7,DelayLoop RET五、实验框图(B) P1口输入输出程序框图(A) P1口循环点灯程序框图五、实验框图(B)P1输入输出程序框图(A)P1口循环点灯程序框图六、实验程序实验一程序#include<reg51.h>#include<intrins.h>void delay();void main(){unsigned char LED;LED = 0x01;P1 = LED;while(1){delay();LED = _crol_(LED,1); //循环右移1位,点亮下一个LED 此函数位库函数P1= LED;}}void delay(){unsigned char i,j;for(i=0;i<255;i++){for(j=0;j<255;j++){_nop_();}}}实验二程序#include<reg51.h>#include<intrins.h>#define uchar unsigned char sbit P1_0 = P1^0;sbit P1_1 = P1^1;sbit P1_2 = P1^2;sbit P1_3 = P1^3;void delay(uchar i){uchar j,k;for(j=i;j>0;j--)for(k=125;k>0;k--) _nop_; }void main(){/*******设置初始值************/P1_0 = 1;P1_1 = 1;P1_2 = 0;P1_3 = 0;/******************/ while(1){P1_2 = P1_0;P1_3 = P1_1;delay(255);}}。
单片机初学者实验指导书

实验一:单片机调试软件安装和ISP下载软件的安装与下载实验内容与要求:1、学会USB取电线和串行口USB-232 ISP线的物理连接。
2、USB转232串口(H340驱动)USB设备驱动程序安装,STC串口下载软件STC-ISP V38A的安装。
3、学会利用STC-ISP V38A下载软件将事先准备好的HEX文件烧写入STC89C52RC单片机芯片,观察实验结果。
4、撰写实验报告,并说明观察到的实验结果实验讲义:一、学会USB取电线和串行口USB-232 ISP线的物理连接1、将USB方口取电方口一头连接入实验班方口母座,另一头接电脑USB,见下图蓝方框USB转232串口线,9芯一头接实验班RS232母座,另一头接电脑USB,见下图红色方框二、USB转232串口(H340驱动)USB设备驱动程序安装连接好以后。
会出现,下图安装提示选择从列表或指定位置安装,选择下一步会出现如下图提示选择,在搜索中包括这个位置,点击浏览,会出现浏览文件窗口,如下图点击右侧树形结构,将“+”展开,选择USB转串口线驱动文件夹下面的R340文件夹,点击确定。
下面将返回“找到新硬件向导”窗口如下图。
选择下一步。
USB转RS232驱动程序安装完成。
方口USB不需要安装驱动。
下面在桌面右键单击我的电脑,在弹出的菜单中,选择”管理”,如下图在出现的计算机管理界面中,展开左侧的目录,选择,“系统工具”下面的“设备管理器”,在右侧窗口中,展开“端口”,出现USB-SERIAL (COM5),(注意COM5只是随机的,会根据你插入USB设备的情况而改变,也有可能是COM1 COM3)双击USB-SERIAL (COM5),出现下面“USB-SERIAL (COM5)属性”窗口选侧“端口设置”,看到每秒位数为9600(注USB-SERIAL (COM5)属性只做查看用,它提供了两个信息,通信口为COM5,每秒位数为9600,这在后面下载程序的时候需要用到)三、学会利用STC-ISP V38A下载软件将事先准备好的HEX文件烧写入STC89C52RC单片机芯片在文件夹中找到,并打开“stc-isp-v3.8a非安装版”文件夹找到STC-ISP V38A,双击鼠标左键运行它。
单片机硬件实验一

单片机硬件实验一实验目的学习P1口使用方法,学习延时子程序的编写和使用,学习输入/输出端口的控制方法,学习延时子程序的编写和使用,掌握单片机音频发生原理,掌握蜂鸣器的驱动电路。
实验内容1、用P1口做输出口中,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。
2、用P1.0、P1.1作输入接两个拨断开关,P1.2、P1.3作输出接两个发光二极管,程序读取开关状态,并在发光二极管上显示出来。
3、编写程序,使发光二极管从左到右轮流循环点亮。
4、编写程序,使单数个和偶数个发光二极管循环点亮和熄灭,周期为0.5s5、用89C51端口定时器输出控制端口,驱动蜂鸣器发声。
6、编写一首歌曲的乐谱。
实验原理1、发光二极管连接如下:如图,当输入为低电平时,对应的二极管会点亮。
因此轮流对每个二极管输入低电平就可以使二极管轮流点亮。
循环可通过移位和延时来实现。
2、拨动开关输入电路如下:如图,每个拨动开关的“1”接电源,“2”接输入,“3”接地。
3、蜂鸣器连接方式如下:如图,当输入为低电平时,蜂鸣器发声。
当输入为高电平时,蜂鸣器不发声,声音的频率高低由延时快慢控制。
主要仪器设备1、KEIL软件;2、实验箱。
操作方法和实验步骤1、编写程序,使发光二极管从左到右轮流循环点亮。
2、编写程序,使单数个和偶数个发光二极管循环点亮和熄灭,周期0.5秒3、编写程序,使蜂鸣器播放歌曲(八月桂花香)(附)实验源程序如下:发光二极管从左到右轮流循环点亮:ORG 0LOOP:MOV A , #0FEHMOV R2, #8OUTPUT:MOV P1,ARL AACALL DELAYDJNZ R2, OUTPUTLJMP LOOPDELAY:MOV R6, #0MOV R7, #0DELAYLOOP:DJNZ R6, DELAYLOOPDJNZ R7, DELAYLOOPRETEND单数个和偶数个发光二极管循环点亮和熄灭,周期0.5秒:ORG 0LOOP:MOV A , #0AAH ;送入10101010MOV R2, #8OUTPUT:MOV P1, ARL AACALL DELAYDJNZ R2, OUTPUTLJMP LOOPDELAY:MOV R5, #19HPOS1: MOV R7, #64HPOS2: MOV R6, #64HDELAYLOOP:DJNZ R6, DELAYLOOPDJNZ R7, POS2DJNZ R5, POS1RETEND蜂鸣器播放歌曲(八月桂花香):ORG 0000HLJMP STARTORG 000BHINC 20H ;中断计数器加1MOV TL0,#0EFH ;12M晶振,形成10毫秒中断RETISTART:MOV SP,#50HMOV TH0,#0D8HMOV TL0,#0EFHMOV TMOD,#01HMOV IE,#82HMUSIC0:NOPMOV DPTR,#DATMOV 20H,#00H ;中断计数器清0MOV B,#00H ;表序号清0MUSIC1:NOPCLR AMOVC A,@A+DPTRJZ END0 ;是00H,则结束CJNE A,#0FFH,MUSIC5LJMP MUSIC3MUSIC5:NOPMOV R6,AINC DPTRMOV A,BMOVC A,@A+DPTRMOV R7,ASETB TR0 ;计数MUSIC2:NOPCPL P3.3MOV A,R6MOV R3,ALCALL DELMOV A,R7CJNE A,20H,MUSIC2 ;判断中断计数器(20H)是否等于R7;若不等,则继续循环MOV 20H,#00H ;若等于,则取下一代码INC DPTRLJMP MUSIC1MUSIC3:NOPCLR TR0 ;停止100毫秒MUSIC4:NOPMOV R3,#0FFHLCALL DELDJNZ R2,MUSIC4INC DPTRLJMP MUSIC1END0:NOPMOV R2,#64HMUSIC6:MOV R3,#00HLCALL DELDJNZ R2,MUSIC6LJMP MUSIC0DEL:NOPDEL3:MOV R4,#02HDEL4:NOPDJNZ R4,DEL4NOPDJNZ R3,DEL3RETNOPDA T:DB 30H,40H,2BH,40H,26H,40H,24H,40HDB 20H,40H,1CH,40H,1AH,40H,18H,40HDB 30H,40H,2BH,40H,26H,40H,30H,40HDB 30H,40H,2BH,40H,26H,40H,30H,40HDB 26H,40H,24H,40H,20H,60HDB 26H,40H,24H,40H,20H,60HDB 20H,20H,1CH,20H,20H,24H,20H,26H,20H,2BHDB 20H,20H,1CH,20H,20H,24H,20H,26H,20H,2BHDBend讨论、心得这是硬件第一次实验,我熟悉了仿真软件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验板的介绍及其下载方法注意事项:1.请勿随意插拔实验板上有关的芯片!2.请勿随意拔出实验板中的有关跳线!3.请勿用手接触实验板上焊盘,防止静电!4.做完实验,请把实验板、下载线、下载板完整的交还给实验老师!1.实验板的介绍:单片机硬件实验不同于之前的软件模拟实验,软件模拟实验只是让PC机模拟单片机来进行程序的运行,而硬件实验是让真正的硬件单片机来执行我们所编写的代码。
硬件实验是基于市面上现成的实验箱上来完成的,实验箱本身的功能是比较复杂和强大的,我们只需要关注于我们实验中所涉及到的部分,与本次试验无关的可以不用看。
实验板的原理图如下:我们可以把整个电路分为3个部分:一、单片机最小系统:能够保证单片机运行的最简单的配置,主要包括:单片机+时钟电路+复位电路+电源。
单片机电路:复位电路:让单片机上电之后可靠的复位。
本系统支持51和AVR两种单片机的复位,可以跳线来进行选择。
一般实验下我们选择51来进行复位,即1和2短接。
时钟电路:给单片机提供一个时钟。
电源:本实验板可以外接DC或者通过USB来进行供电。
二、下载电路:在PC机上编写完程序之后,我们要通过下载电路把PC上的程序下载到单片机中的ROM中。
本实验板支持STC89C52和AT89S52两种单片机程序的下载。
但两者的下载方式完全不一样。
AT89S52的下载接口:通过一根10芯的排线把实验板和下载板连接起来,然后把下载板插入PC的USB接口中。
STC89C52的下载电路:STC系列的单片机实际上都是通过单片机的串口进行下载程序的。
所以硬件上只要添加一个串口电平转换的芯片MAX232,就可以实现单片机和PC的通信。
此电路已经集成在实验板上了。
由于考虑到很多笔记本电脑不带串行接口,所以我们配置了一个USB转串口线,不过要使用转串口,需要添加驱动程序。
三、外部功能模块:单片机就是通过外部功能模块来实现检测和控制作用。
比如通过LED 来发光;通过数码管来进行显示;通过继电器来进行控制通和断等等。
2.下载步骤下面来分别介绍STC89C52和AT89S52具体的下载方法,在实验过程中,任选其中一种。
AT89S52的下载方法:1).准备好下载用的16进制文件,即后缀名是hex的文件。
请注意一定要在KEIL如图所示的选项中进行设置,即点击Target 1之前的按钮,出现以下对话框:选择Output这一标签页:然后点击确定,设置完成之后,要编译源代码,来生成下载用的HEX文件。
下面编译之后的信息:注意:设置完成后,一定要编译,才会生成hex文件。
否则不会生成!2).用10芯灰色排线把实验板的ISP接口和下载板的ISP接口连接起来,并把下载板的USB 插入PC的USB接口中。
插入之后,PC机会显示找到新硬件的界面,提示要安装USB驱动:选择“从列表或指定位置安装”之后,出现如图下所示的界面:选择好之后,点击“下一步”,就可以进行驱动的安装了。
安装界面:安装完成之后的界面:3).下载板的驱动安装完成之后,就可以进行程序的下载了。
首先打开下载软件,AT89S52的下载软件在“USBISP烧写软件”这个文件夹下,选择“AVR_fighter”文件夹,双击此图标:出现如下界面:STC89C52的下载步骤:1)。
与AT89S52类似,请准备好下载用的hex文件。
把STC89C52插入40PIN的紧锁座。
2)。
用USB转串口线连接下载板和PC机的USB接口。
3)。
USB转串口线插入USB接口之后,系统会提示找到新硬件,并需要安装驱动程序。
第一次安装完成,之后再使用USB转串口线,就无需安装驱动程序。
选择“从列表或指定位置安装(高级)”。
点击浏览,选择驱动所在路径,如不清楚,请问老师。
选择完路径,就可以进行安装,安装界面如上图。
安装完成的界面如上图,点击完成按钮即可。
这时我们需要知道USB转串口的端口号,即为COM几。
右键点击我的电脑,选择属性这一菜单项。
然后弹出系统属性的对话框,并选择硬件这一属性页,如下图所示:选择硬件之后,出现如下的界面,并点击设备管理器按钮:出现如下界面,点击端口(COM和LPT)前面的那个+号:接着显示如下的界面,显示端口为COM3:4)。
上面的USB转串口驱动安装完成之后,就可以进行程序的下载。
请在桌面上找到STC单片机下载软件对应的图标:双击此图标,出现如下界面:接着就按照软件界面上的提示,一一完成其操作。
Step1:选择器件的型号,如STC89C52RC:Step2:点击“打开程序文件按钮”,会出现如下的对话框,选择所生成hex文件的路径:Step3:选择正确的端口号,最高最低波特率无需设置:Step4:默认使用其设置。
Step5:点击“Download/下载”按钮,然后再给实验板上电。
注意观察下载左下方窗口显示的信息,此信息表示正在下载:下载成功之后的信息:实验三单片机IO口的应用一、实验目的:1.熟悉单片机程序下载方法。
2.了解IO口的应用。
3.掌握IO驱动LED的编程。
二、实验原理:图1在电路中,可以选择用P0口或者P1口来驱动LED工作。
相应IO口编程为0时,则点亮LED;编程为1时,则熄灭相应的LED。
注意:用P1口来驱动LED时,JPP1跳线要接上;P0口驱动LED时,JPP0跳线要接上。
如图2所示。
图2三、实验过程1.完成单片机AT89S52或者STC89C52程序的下载准备工作:下载线和电源线的连接,驱动的安装。
2.如果JPP0和JPP1没有短接,请用跳线帽短接JPP0或者JPP1。
3.请在KEIL中新建一个工程,并新建一个源文件,注意把源文件添加到工程中去。
在源文件中输入以下程序,来实现P1口控制LED灯闪烁:ORG 0000HSTART:MOV P1, #0FFH ;灭灯CALL DELAY ;延时MOV P1, #00H ;亮灯CALL DELAY ;延时SJMP STARTDELAY: MOV R3, #80 ;延时程序,调节R3、R4、R5的大小实现延时的长短D1: MOV R4, #20D2: MOV R5, #248DJNZ R5, $DJNZ R4, D2DJNZ R3, D1RETEND4.编译程序,生成HEX文件。
5.用AVR_Fighter或者STC_ISP_V4.80把HEX下载到对应的单片机中.6.注意观察实验的结果。
7.如何调节LED闪烁周期?8.试着编写一个流水灯的程序。
功能:P1口控制的LED灯,从左往右,挨个点亮LED,直至最后八个全亮了,然后重复刚才的过程。
9.实验结束后,请把实验板、下载线、电源线、下载板交还给实验老师!四、实验报告内容:1.请描述IO口驱动LED的基本原理。
2.请写出流水灯的程序,并画出相应的程序流程图。
实验四按键数码管实验一、实验目的:1.熟悉按键的原理,掌握独立式按键的编程方法。
2.熟悉数码管的原理,掌握数码管的静态显示和动态扫描方法。
二、按键的实验:1.原理图:此图为独立式按键的原理图,电路中用P1的高4位来检测按键的状态。
2.实验要求:用K5按键来控制实验板上的L0.0(LED)灯的工作。
按下K5,灯亮;再按下K5,灯灭,重复该过程。
3.画出程序流程,并写出相应的源程序,附在实验报告上。
三、数码管的实验:1.原理图:此电路共有8个共阳极的数码管。
段选口并接在一起,用P0口进行控制;位选口用PNP控制选择,用P2口进行位选,要选通某个数码管时,把相应的IO清0即可。
如:要选择Q1对应的数码管,只需把P2.0这位清0,让PNP导通,即对应的数码管就可以进行显示。
2。
静态显示要求:让最左边的数码管显示数字0,其余7个不显示。
ORG 0000HCLR P2.0MOV P0,#0C0HSJMP $END1)请新建一个工程和源文件,输入以上的源程序,编译生成hex文件,下载到实验板上去,并观察实验结果。
2)如果要显示数字1或者2,程序如何进行修改?3)请编写一段完整的代码,让最左边的数码管从数字0开始显示,然后累加到9之后,再回到0开始显示,重复该过程。
请画出流程图并写出源代码,调试并观察结果。
3。
数码管的动态扫描1)让最左边的两个数码管分别显示数字0和1,要求数码管显示稳定,不闪烁。
ORG 0000HSTART: SETB P2.1CLR P2.0MOV P0,#0C0HLCALL DELAYSETB P2.0CLR P2.1MOV P0,#0F9HLCALL DELAYSJMP STARTDELAY: MOV R3,#1 ;扫描延时D1: MOV R4,#2D2: MOV R5,#248DJNZ R5,$DJNZ R4,D2DJNZ R3,D1RETEND2)调试以上的程序,观察运行结果。
3)如果要把这8个数码管分别稳定的显示“01234567”,该如何去修改以上的源代码?四、实验报告1)写出按键的程序。
2)写出数码管的静态显示程序和动态扫描程序。