自编单片机微机原理实验指导

合集下载

微机原理STM32实验指导书

微机原理STM32实验指导书
表 1 GPIO 库函数列表
在使用 GPIO 口和外设进行数据交换,先要对 IO 口进行初始化,基本步骤如下: 1、使能 GPIO 口时钟; 2、配置 GPIO 的相应寄存器,设置其工作模式、输出速率;
6
3、操作 IO 口。 在实际编程中,通常是通过调用 STM 公司提供给用户的库函数来操作寄存器,STM32 的 GPIO 库函数如表 1 所示,函数的具体调用方法请查询固件函数库用户手册
7
LED3_GPIO_CLK_ENABLE(); LED4_GPIO_CLK_ENABLE();
/* -2- Configure IOs in output push-pull mode to drive external LEDs */ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.Pin = LED1_PIN; HAL_GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStruct); GPIO_InitStruct.Pin = LED2_PIN; HAL_GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStruct); GPIO_InitStruct.Pin = LED3_PIN; HAL_GPIO_Init(LED3_GPIO_PORT, &GPIO_InitStruct); GPIO_InitStruct.Pin = LED4_PIN; HAL_GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStruct);

单片机 微机原理-实验指导

单片机 微机原理-实验指导

实验一:单片机开发系统和实验主板的了解实验器材:PC机、SH51仿真器、MCS-51主板(MainBoard)。

实验目的:了解MCS-51单片机开发系统的组成,开发过程。

伟福开发环境的简单使用方法。

MCS-51实验主板的基本组成。

基础知识:单片机系统的开发过程包括:硬件设计、软件设计、调试三个阶段。

其中的调试是对前边的软件和硬件设计的检验。

调试又包含软件模拟调试和软硬件联调两个过程。

软件模拟调试仅能够找出程序中的语法错误和大部分逻辑错误。

但单片机系统是一个硬件和软件的结合体,软件的最终正确执行需要有相应的硬件作为基础,所以,即使软件模拟调试无误的程序还要经过软硬件联调以证明软硬件之间的配合关系。

软硬件联调需要使用单片机仿真器。

单片机仿真器是用以模仿单片机运行的设备,可以实现替代单片机对程序的运行进行控制,例如单步,全速,查看资源断点等。

WAVE SH51是一款专门模仿MCS-51系列单片机的仿真器。

软硬件联调时仿真器的连接简图如图(1)。

仿真器以40针的插头插入原MCS-51单片机的插座上,代替并模仿MCS-51单片机运行程序,并将程序运行过程中的中间结果通过USB 线传送给PC机,PC机通过特定的单片机软件开发环境(如:南京伟福VW,Keil等)将这些中间结果显示出来以便开发人员调试。

伟福单片机开发环境的使用请参考VW.pdf中的第四章。

图(1)仿真器的连接MCS-51主板(MainBoard)是一个简单的MCS-51系统,它包含了单片机运行所必须的三个基本电路:电源、振荡电路、复位电路,以及一个能够与PC串口通讯的RS232接口。

其原理图附录(A)。

实验内容:如附录(A)所示,主板(MainBoard)上单片机的P1.0口驱动了一个发光二极管。

当P1.0输出为低电平时,由于发光二极管两端的电压差大于其导通电压,发光二极管发光;当P1.0输出为高电平时,由于发光二极管两端的电压差小于其导通电压,发光二极管熄灭。

微机原理实验实验指导书2015

微机原理实验实验指导书2015

微型计算机原理与应用实验指导书上海大学通信学院2015 年 3 月实验一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”前面的“+”号,展开此目录。

自编微机原理实验指导书

自编微机原理实验指导书

第一部分软件部分实验实验一汇编语言上机环境的熟悉和命令使用【实验目的及要求】1学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。

2学会使用EDIT、MASM、LINK、DEBUG等软件工具。

3熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。

4掌握用DEBUG调试汇编程序的方法,为以后实验打下基础。

【实验内容】1建立软件工作环境为了正常运行汇编程序,需要如下程序:masm.exe 或tasm.exe ;汇编命令link.exe ;链接命令debug.exe ;调试命令 ;编辑命令等2建立汇编文件例在屏幕上输出'This is a masm sample!'首先使用edit编辑如下源程序,并保存为sample.asm:;Program is an exampledata segmentastr DB 'This is a masm sample!',0dh,0AH,'$'data endscode segmentassume CS:code,DS:datamain proc farstart:PUSH DS ;保护环境,返回DOSXOR AX, AXPUSH AXMOV AX, data ;数据段的初始化MOV DS, AXLEA DX, astr ;取得字符串的首地址MOV AH, 09h ;9号功能调用INT 21hRETmain endpcode endsend start1)使用masm汇编命令汇编源程序c:\ >masm sample.asm ---开始汇编Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. ……--软件提示Object Filename[sample.obj]: --提示输入目标文件名,可省略直接回车Source listing[Nul.lst]: --提示输入列表文件名,可省略直接回车Cross reference[NUL.crf]:Warning errors 0Severe errors 0注意:若汇编的错误提示不为0,则须重新使用命令edit sample.asm修改错误,然后再汇编,该过程直到错误提示为0为止。

微机原理(单片机汇编)实验报告

微机原理(单片机汇编)实验报告

软件实验报告软件实验一一、实验目的1.熟悉软件实验的基本步骤和汇编程序的调试方法;2.了解内存块的移动方法;3.了解将十六进制数转换成ASCII值的方法。

二、实验原理用MOV和MOVX指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。

三、实验内容及步骤1、软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。

打开CPU窗口,观察CPU窗口各寄存器的变化。

打开View菜单中的Memory Window,可以观察内部RAM、外部RAM的数据和程序存储器中的程序。

在Address窗口输入X:8000H后回车,观察8000H-800FF起始的256个字节单元的内容。

2、新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。

打开View菜单中的Memory Window,在Address 窗口的Memory#1输入X:3000H后回车,点击运行按钮后, 在Memory#2输入X:4000H后回车,观察外部RAM3000H和4000H中的内容。

3、添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观察比较30-3FH单元中的内容和片外1030H-103FH中的内容。

4、添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观察结果。

5、添加求内部RAM 30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观察39H,38H中的数字是否分别为02H,C3H。

四、实验结果1.步骤1的结果为8000H-80FFH的内容都为1.2.步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存储块各单元内数据对应相同。

实验一I0口实验单片机实验自编教案

实验一I0口实验单片机实验自编教案

实验一 I/O口实验一、实验内容1、P1.2做输出口,点亮LED。

2、P1口做输入口,接八只发光二极管,编写程序,使发光二极管循环点亮。

二、实验目的l、学习P1口的使用方法。

2、学习延时子程序的编写和使用。

三、有关说明P1口为准双向口,P1的每一位都能独立地定义为输出线或输入线,作输入的口线,必须首先向锁存器相应位写入“l”,该位才能作为输入。

8031中所有口锁存器在复位时均置为“l”,如果后来在口锁存器写入过“0”,在需要时应写入一个“1”使它再成为一个输入。

可以用第二个实验做一下试验。

先按要求做好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1作输入口,会有什么结果。

再来看一下延时程序的实现。

现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。

在系统时间允许的情况下可以采用后一种方法。

本实验系统晶振为12MHZ,则一个机器周期为12÷12us即1us。

现要写一个延时的程序,可大致写出如下:MOV R7,#255 (1)DE1:MOV R6,#255 (2)DE2:DJNZ R6,DE2 (3)DJNZ R7,DE1 (4)上面MOV.DJNZ指令均需两个机器周期,所以每执行一条指令需2us,现求出X值:(255×2+2+2)×255+2=0.13×106指令(3) (2) (4) (1)所需时间需时间需时间需时间可知实际延时约0.131072S。

比较C程序void delay(unsigned char tmp) //延时子函数{unsigned char i,j;i=tmp;while(i){i--;j=255;while(j){j--;}LED产生流动,可以使用C51的内部函数INTRINS.H实现。

函数unsigned char _crol_(unsigned char a, unsigned char n) 可以使变量a循环左移n位,如果我们先给P1口赋 0000 0001那么当n为1时,便会产生流动效果。

2023年微机原理实验指导书

2023年微机原理实验指导书

2.1系统生疏试验【试验目的】把握TD 系列微机原理及接口技术教学试验系统的操作,生疏Wmd86 联机集成开发调试软件的调试环境。

【试验设备】PC 机一台,TD-PITE 试验装置一套。

【试验内容】编写试验程序,将00H~0FH 共16 个数写入到内存3000H 开头的连续16 个存储单元中。

【试验步骤】1.运行Wmd86 软件,进入Wmd86 集成开发环境。

2.在设置菜单中选择“汇编语言”和“16 位存放器”。

3.单击文集菜单的建命令,建一个文档,默认文件名为Wmd861。

4.编写试验程序,并保存,此时系统会提示输入的文件名,输完后点击保存。

5.单击编译文件,假设程序编译无误,则科技连续单击进展链接,链接无误前方可以加载程序。

6.连接PC 与试验系统的通讯电缆,翻开试验系统电源。

7.编译、链接都正确并且上下机通讯成功后,就可以下载程序,联机调试了。

可以通过端口列表中的“端口测试”来检查通讯是否正常。

点击下载程序。

为编译、链接、下载组合按钮,通过该按钮可以将编译、链接、下载一次完成。

下载成功后,在输出区的结果窗中会显示“加载成功!”,表示程序已正确下载。

起始运行语句下会有一条绿色的背景。

8.将输出区切换到调试窗口,试验命令D0000:3000 查看内存3000H 起始地址的数据。

9.点击按钮运行程序,等待程序运行停顿后,通过命令来观看程序结果。

10.也可以设置端点,要修改内存中的数据可以使用命令E,如E0000:3000 可以修改地址0000:3000 处的数据,修改完一个后,可按“空格”键连续输入下一个数。

输入完成后按“回车”键退出。

2.2数制转换试验【试验目的】1 把握不同进制数及编码相互转换的程序设计方法,加深对数值转换的理解。

2.生疏程序调试的方法。

【试验设备】PC 机一台,TD-PITE 试验装置一套。

【试验内容】编写程序,将ASCII 码表示的十进制数转换为二进制数。

【试验步骤】1.依据程序流程图编写程序。

36《微机、单片机原理及应用综合实验》指导书最新版

36《微机、单片机原理及应用综合实验》指导书最新版
2)金属圆孔组成的通用实 CPU板: 1)8086PC总线板
2)8086CPU板 3)8051CPU板 4)8098CPU板 5)80C198CPU板 2.1 通用接口板结构 通用接口板由若干相对独立的功能接口电路组成,它们是: D/A电路、A/D电路、发光二极管电路、开关量输入电路、RAM/ROM电路、简单I/O电路、8253可编 程定时器/计数器电路、8255并行接口电路、总线驱动电路、8279接口电路、单脉冲发生器、LED显示 电路、键盘电路、复位电路、8250串行接口电路。
实验一 微机硬件结构及汇编指令运行的认识……………………………………………………10 实验二 汇编语言源程序的建立调试和运行………………………………………………………16 实 验 三 软 件 中 断 调 用 实 验………………………………………………………………………20 实 验四 简 单 I/O 口 扩展 实验 ……………………………………………………………………23 实 验 五 RAM 实 验 ……………………………………………………………………………………26 实验六 8255 并行口实验 …………………………………………………………………………29 第二部分 MCS51 单片机实验………………………………………………………………………………32 (一)MCS51 实验仿真板简介……………………………………………………………………………32 ( 二) 实验 说明 及实 验报 告 ……………………………………………………………………………36 实 验 一 指令理解及七段显示的实 验 ………………………………………………………………36 实 验 二 I/O 口实验-点阵 LED 汉字显示……………………………………………………………40 实验三 中断实验-电秒表按键功能的实现………………………………………………………43 实验四 定时器应用实验-电子钟实现……………………………………………………………47 实验五 串行通信实验………………………………………………………………………………51 第 三 部 分 综 合 实 验 ………………………………………………………………………………………56 综 合 实 验 一 电子闹钟的实现………………………………………………………………………56 综 合 实 验 二 电子报站显示牌的实现………………………………………………………………60 综 合实 验三 双 向 串行通信协议的实验…………………………………………………………63 第 四部 分 附 录……………………………………………………………………………………………68 附 录 一 软 件 安 装 与 操 作 …………………………………………………………………………68 附 录 二 键 盘 监 控 与 操 作 …………………………………………………………………………73 附 录三 中 断向 量地 址一 览表 ……………………………………………………………………78 附 录 四 DOS 功 能 调 用 ………………………………………………………………………………80 附 录 五 BIOS 中 断 …………………………………………………………………………………85 附 录 六 汇 编 程 序 出 错 信 息………………………………………………………………………89 附 录 七 实 验 板 总 原 理 图 …………………………………………………………………………93 附录八 实验板七段显示 实验原理图 ……………………………………………………………93 附录九 实验板点阵显示 实验原理图 ……………………………………………………………94 附 录 十 实 验 板 音 乐 实验原 理 图 ………………………………………………………………94 附 录十 一 实 验板 串口 实验原 理图 ………………………………………………………………95 主要参考文献…………………………………………………………………………………………………96

微机原理及单片机接口技术实验教程

微机原理及单片机接口技术实验教程

微机原理与接口技术实验指导第一章 DEBUG的使用方法DEBUG主要命令DEBUG是为汇编语言设计的一种高度工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。

一、DEBUG程序的调用在DOS的提示符下,可键入命令:C:\\其中,文件名是被调试文件的名字。

如用户键入文件,则DEBUG将指定的文件装入存储器中,用户可对其进行调试。

如果未键入文件名,则用户可以用当前存储器的内容工作,或者用DEBUG命令N和L把需要的文件装入存储器后再进行调试。

命令中的D指定驱动器PATH为路径,PARM1和PARM2则为运行被调试文件时所需要的命令参数。

在DEBUG程序调入后,将出现提示符,此时就可用DEBUG命令来调试程序。

二、DEBUG的主要命令1、显示存储单元的命令D(DUMP),格式为:_D[address]或例如,按指定范围显示存储单元-d100 12018E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G...8.G.....G... 18E$:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37 ..;..h..M PQVW.718E4:0120 8B其中0100至0120是DEBUG显示的单元内容,左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,·表示不可显示的字符。

这里没有指定段地址,D命令自动显示DS段的内容。

如果只指定首地址,则显示从首地址开始的80个字节的内容。

如果完全没有指定地址,则显示上一个D命令显示的最后一个单元后的内容。

2、修改存储单元内容的命令有两种。

·输入命令E(ENTER),有两种格式如下:第一种格式可以用给定的内容表来替代指定范围的存储单元内容。

命令格式为:-例如,-E DS:100 F3\'XYZ\其中F3,\'X\',\'Y\',\'Z\'和各占一个字节,该命令可以用这五个字节来替代存储单元DS:0100到0104的原先的内容。

微机原理与单片机接口技术实验报告

微机原理与单片机接口技术实验报告
/*if(num==0) { while(1){
}}
Led1=0x00;
Led2=0x00;
delay(65530);
delay(65530);
Led1=0xff;
//闪
Led2=0xff;
delay(65530);
delay(65530);
} } */
//定时器初始化子程序
void Init_Timer0(void)
四、系统软件设计 #include<reg51.h> #define L1 P2 #define L2 P3 bit UpdateTimeFlag; //定义读时间标志 void Init_Timer0(void);//定时器初始化
sbit h1=P3^6; sbit key=P0^5; unsigned char code Led_1[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x 7f,0xff} ; void delay(unsigned int t); void Key(); void shun(); void ni(); void delay_shun(); void delay_ni(); void delay(unsigned int t) { while(t--); } void delay_shun(unsigned int t) { while(t--);{ h1=0; key=1; if(key==0)
delay(65530);
}L2=0xff; }
if(UpdateTimeFlag==1) {UpdateTimeFlag=0;}
}
//定时器初始化子程序 void Init_Timer0(void)

微机原理与单片机技术_实验指导书

微机原理与单片机技术_实验指导书

微机原理与单片机技术实验指导书姜余祥2012-03-06微机原理与单片机技术实验说明 (3)时间地点 (3)实验内容 (3)实验要求 (3)实验验收 (3)技术文档 (4)成绩 (4)附录 (5)实验1 EMU8086模拟器的使用 (5)实验2 数据传送指令的使用 (7)实验3 多位十六进制加法运算实验 (8)实验4 十六进制转BCD实验 (9)实验5 循环程序实验 (11)实验6 由1 到100 求和实验 (12)实验7 求表中正数_负数_0 的个数实验 (13)实验8 数据排列实验(冒泡排序) (15)实验9 系统功能调用(大小写转换) (16)实验10 阶乘(递归算法) (17)实验11 Proteus IO工程文件的建立 (18)实验12 IO口读写实验 (245、373) (19)实验13 8255 接口实验 (20)实验14 声光报警(C) (22)实验15 4x4键盘扫描(C) (22)实验16 双单片机通信(汇编,中断) (22)实验17 8位LED扫描显示时间(C中断) (22)实验18 2行LCD显示(汇编 DEMO) (22)实验19 A/D转换(C) (22)实验20 信号波形发生器(汇编 DEMO) (22)微机原理与单片机技术实验说明时间地点实验地点:实验楼0805时间:周二 12:15 至16:10 (5学时6次)0908030201班:第4, 6, 7, 9, 12, 14周0908030202班:第3, 5, 8, 10, 13, 15周分组:两名同学一组,中途不再变更每次实验记考勤,填写实验室学生工位登记表实验内容第1次:基础型实验:实验1,11第2次:指令验证实验:实验2,3,4,5,6第3次:汇编语言程序设计实验:实验7,8,9,10第4次:微机接口设计实验:实验12,13第5次:单片机接口常规实验:实验14,15,16,17,18,19,20第6次:单片机接口应用实验:设计实验。

微机原理实验指导书 (1)

微机原理实验指导书 (1)

实验一系统操作及程序调试举例1.实验目的学习并掌握实验系统的基本操作,为以后的实验打下基础。

2.实验设备DICE-8086B实验系统一台3.实验准备工作系统一经连好,检查无误后,就可以通电运行。

系统提供两种启动方式,即:系统自动完成后,显示器上会显示“>”提示符,等待键入操作命令。

4.实验内容及步骤(1)系统操作练习(一)要求:从3500内存单元开始建立0~15共16个数据。

程序流程图如下:实验步骤①输入与修改:在“﹥”提示符下键入A2000,此时显示器上将会显示程序的段地址CS和偏移地址IP(=2000H),接着就可以在光标处输入程序。

注:在输入过程中,若发现本行有错误,则可以按“ ”键删除并重新输入;若回车后系统提示“ERROR!”,则要在原地址指针处重新正确输入。

输入程序后可通过反汇编查看程序。

(U操作)②程序运行:在DICE-8086B实验系统上,程序的运行方式有单步、连续和断点运行几种方式。

可参考(T操作,G操作,GB操作等)③内存单元的修改与显示:用(D操作)可显示内存单元的内容,用(E操作)可修改内存单元的内容。

(分别参考前)。

④运行程序观察从3500H单元开始连续存放的16个数据为多少?任意修改AX的值,再运行程序,显示运行结果是否正确?流程图及参考程序如下:地址机器码助记符注释2000 BF 3500 MOV DI,3500 ;设数据区首址2003 B9 0010 MOV CX,0010 ;字节数送CX2006 B8 0000 MOV AX,00002009 9E SAHF200A 88 05 MOV B[DI],AL ;写入一字节200C 47 INC DI ;修改地址指针200D 40 INC AX ;修改数据200E 27 DAA ;十进制调整200F E2 F9 LOOP 200A ;未填完转移2011 CD 00 INT(2)系统操作练习(二)要求:将内存3500单元开始的0~15共16个数传递到3600单元开始的数据区中。

新编微机原理及应用实验指导书-基于STC15W4K单片机

新编微机原理及应用实验指导书-基于STC15W4K单片机

质量管理工程专业《微机原理及其应用》课内实验指导书袁月峰编中国计量大学质量与安全工程学院2016.11目录第一章单片机开发板和软件编程环境简介 (2)1.1STC15W4K单片机开发板简介 (2)1.2 KeilC51 开发环境的使用简介 (4)实验一仿真器基础(验证性) (10)实验二字符转换(验证性) (12)实验三LED亮灯实验(验证性) (13)实验四键盘和数码管(设计性) (14)实验五串口异步通信(验证性) (15)实验六汽车转弯灯(设计性) (16)实验七LCD时钟显示(设计性) (17)实验八AD转换和显示(验证性) (18)实验九脉宽调制应用(验证性) (19)第一章单片机开发板和软件编程环境简介1.1STC15W4K单片机开发板简介本实验指导书配套使用的51单片机开发板是基于深圳STC宏晶科技有限公司()具有自主知识产权的STC51系列单片机STC15W4K48S4为核心的自行设计加工的单片机教学开发板。

设计理念是既要能符合课程实验教学需要,也能满足一定程度相关的课外科技实践活动和课程设计应用需求。

单片机开发板实物图片如下:5线2相混合式步进电机接口STC15W4K48S4单片机标准232串口有源/无源蜂鸣器接口USB下载和供电口辅助外部电源切换开关PWM转DAC输出DS18B20数字温度传感器接口H1838红外开关接口10K电位器内部ADC测试个独立式按键跑马灯/流水灯LCD1602扩展口LCD128X64扩展口0.96寸OLED屏扩展接口4位共阳数码管10K热敏电阻5V供电输出口IO输出扩展排针图1-1 STC15W4K48S4单片机开发板STC15W4K48S4是STC公司一款功能比较完备,FLASH容量较大,适宜课程教学及一般应用开发的增强型51兼容单片机。

其主要特性如下:供电范围:2.5-5.5V,片内48KB FLASH程序存储器,4KB 静态数据存储器SRAM,5个通用定时/计数器T/C,一路SPI串行扩展口,6路PWM(脉宽调制输出)和2路CCP(捕获和输出比较),片内8路10位高速ADC采样转换通道等资源,支持USB直接程序下载。

微机原理实验89C51C512013910

微机原理实验89C51C512013910

微机原理及接口技术实验指导课程组2013.9实验一一个简单的微机控制系统-----彩灯控制系统的认识一.实验目的1.熟悉单片机控制系统硬件线路的组成。

2.熟悉KELL C仿真调试软件环境、西特尔写入器的使用。

二.实验设备通用电路板1块,电脑1台,KELL C仿真调试软件1套,西特尔写入器1台,89C51单片机芯片1块,12M晶振1个,20pF/30pF电容2个,发光二极管8个,电阻若干。

三.实验内容1.功能要求:利用89C51的P1口控制8个LED发光二极管。

8个LED发光二极管在89C51的控制下依次全部点亮,全亮后,闪烁3次全暗;反复循环。

彩灯的控制口为:P14.实验方法与步骤:(1)按实验线路图在电工电子实验箱上接好线路图。

(2)KELL C仿真调试软件输入实验程序。

(3)调试程序正确后,生成HEX文件。

(4)利用西特尔写入器将生成的HEX文件烧入到89C51单片机中。

(5)实验箱上电/复位,观察利用89C51控制的彩灯控制系统。

四. 实验参考程序#include "reg51.h"unsigned char a[]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};void main(){unsigned int i;unsigned char j;while(1){for(j=0;j<9;j++){P1=a[j];for(i=0;i<50000;i++);} } }五.思考题1.为什么要利用西特尔写入器向89C51单片机烧入控制程序?2.简述利用KELL C 仿真软件调试程序的方法。

3.比较单片机I/O口灌电流和拉电流在驱动外设时的不同。

实验二彩灯控制系统------3/8译码器一.实验目标1.掌握利用89C51单片机设计彩灯控制系统。

2.掌握Keil uVision3仿真调试软件、西特尔写入器的运用。

二.实验设备电工电子箱1个,电脑1台,Keil uVision3仿真调试软件1套,西特尔写入器1台,89C51单片机芯片1块,12M晶振1个,30pF电容2个,电阻若干。

微机原理实验指导书

微机原理实验指导书

微机原理实验指导书实验一数据传送实验目的:1.熟悉8086指令系统的数据传送指令及8086的寻址方式。

2.利用TurboDebugger调试工具来调试汇编语言程序。

实验任务:1.通过下述程序段的输入和执行来熟悉TurboDebugger的使用,并通过显示器屏幕观察程序的执行情况。

练习程序段如下:MOVBL,08HMOVCL,BLMOVAX,03FFHMOVBX,AXMOVDS:[0020H],BX2.用以下程序段将一组数据压入(PUSH)堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。

压栈程序段如下:MOVAX,0102HMOVBX,0304HMOVCX,0506HMOVDX,0708HPUSHAXPUSHBXPUSHCXPUSHDX出栈程序段请自行编写(用不同的出栈顺序)。

3.指出下列指令的错误并加以改正,上机验证之。

(1)MOV[BX],[SI](2)MOVAH,BX(3)MOVAX,[SI][DI](4)MOVBYTEPTR[BX],2000H(5)MOVCS,AX(6)MOVDS,2000H4.设置各寄存器及存储单元的内容如下:(BX)=0010H,(SI)=0001H(10010H)=12H,(10011H)=34H,(10012H)=56H,(10013H)=78H(10120H)=0ABH,(10121H)=0CDH,(10122H)=0EFH说明下列各条指令执行完后AX寄存器中的内容,并上机验证。

(1)MOVAX,1200H(2)MOVAX,BX(3)MOVAX,[0120H](4)MOVAX,[BX](5)MOVAX,0110H[BX](6)MOVAX,[BX][SI](7)MOVAX,0110H[BX][SI]5.将DS:1000H字节存储单元中的内容送到DS:2020H单元中存放。

试分别用8086的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。

微机原理STM32试验指导书

微机原理STM32试验指导书

微机原理与接口技术STM32实验指导书龙岩学院物理与机电工程学院电子工程系2016.3实验一GPIO模块实验一、实验目的1学习STM32模块的GPIO模块的配置2、学习STM32模块的输入输出功能的实验二、实验原理1、STM32的10 口相比51而言要复杂得多,所以使用起来也困难很多。

首先STM32 的10 口可以由软件配置成如下 8种模式:输入浮空、输入上拉、输入下拉、模拟输入、开漏输出、推挽输出、推挽式复用功能、开漏复用功能。

STM32的每个10端口都有7个寄存器来控制。

他们分别是:配置模式的2个32位的端口配置寄存器CRL和CRH; 2个32位的数据寄存器IDR和ODR; 1个32位的置位/复位寄存器BSRR ; 一个16位的复位寄存器BRR ; 1个32位的锁存寄存器LCKR。

刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式STM32的CRL控制着每组10端口( A~G)的低8位的模式。

每个10端口的位占用CRL 的4个位,高两位为 CNF,低两位为M0DE。

这里我们可以记住几个常用的配置,比如0X0表示模拟输入模式(ADC用)、0X3表示推挽输出模式(做输出口用,50M速率)、0X8表示上/下拉输入模式(做输入口用)、0XB表示复用输出(使用10 口的第二功能,50M速率)。

CRH的作用和CRL完全一样在固件库开发中,操作寄存器CRH和CRL来配置I0 口的模式和速度是通过 GPIO初始化函数完成:void GPIO_I nit(GPIO_TypeDef* GPIOx, GPIO_I ni tTypeDef* GPIO_I nitStruct);第一个参数是用来指定GPIO,取值范围为 GPIOA~GPIOG。

第二个参数为初始化参数结构体指针,结构体类型为GPIO_InitTypeDef。

查看结构体的定义:typedef struct{ui nt16_t GPIO_P in;GPIOSpeed_TypeDef GPIO_Speed;GPIOMode_TypeDef GPIO_Mode;}GPIO_I ni tTypeDef;通过初台化结构体初始化 GPIO的常用格式是:GPIO_I ni tTypeDef GPIO_I nitStructure;GPIO_I nitStructure.GPIO_Pin = GPI0_Pin_5; 〃LED0-->PB.5 端口配置GPIO_I nitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;〃速度 50MHzGPIO_I nit(GPIOB, & GPIO_I nitStructure);GPIO_Mode是用来设置对应10端口的输出输入模式,这些模式在MDK中是通过一个枚举类型定义的:typedef enum{GPIO_Mode_AIN = 0x0, // 模拟输入GPIO_Mode_IN_FLOATING = 0x04, // 浮空输入GPIO_Mode_IPD = 0x28, // 下拉输入GPIO_Mode_IPU = 0x48, // 上拉输入GPIO_Mode_Out_OD = 0x14, // 开漏输出GPIO_Mode_Out_PP = 0x10, // 通用推挽输出GPIO_Mode_AF_OD = 0x1C, // 复用开漏输出GPIO_Mode_AF_PP = 0x18 // 复用推挽}GPIOMode_TypeDef;IDR是一个端口输入数据寄存器,要想知道某个IO 口的电平状态,只要读这个寄存器,再看某个位的状态就可以了。

微机原理实验指导书(编者:张宝健)13年7月

微机原理实验指导书(编者:张宝健)13年7月

实验一、简单程序调试实验一、实验目的1、掌握TDN86/51教学系统的基本操作;2、掌握调试程序的基本方法。

二、实验设备TDN86/51教学实验系统三、实验内容及步骤1、实验一:(1)程序的输入与修改实验内容:调试程序,3500H内存单元开始建立0~15共16个数据,参考实验程序如下:STACK SEGMENT STACK ;8088宏汇编程序DW 64 DUP( ?) ;定义堆栈段STACK ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODESTART: MOV DI,3500H ;程序开始设数据区首地址MOV CX,0010H ;字节数送入CX中MOV AX,0000HSAHFA1: MOV [DI],AL ;写入一字节INC DI ;修改地址指针INC AX ;修改数据DAA ;十进制调整LOOP A1 ;未填完则转移A2: JMP A2CODE ENDS ;代码段结束END START;程序结束实验步骤:a.使用串行通讯电缆将实验系统与PC微机相连;b.将位于线路板右下角的系统状态选择开关拨至86挡;c.在系统软件所在目录下键入MD86↙,选择对应的串口号(1或2),进入集成操作软件环境,出现系统提示符“>”。

按下F1功能键,进入全屏幕编辑界面,按ALT+F建立新文件(NEW),即可开始输入源程序。

d.输入程序后,按F2保存程序(规定扩展名为*.ASM)。

使用ALT+X返回集成软件环境;注意:文件存盘时的扩展名一定为“asm”。

文件存好后按“ALT+X”退出。

e.按F2,输入源程序名↙(省略扩展名,系统默认为.ASM),对源程序进行汇编,生成目标文件(*.obj)及错误信息文件(*.M)。

若给出LST文件名则生成相应*.LST文件(列表文件);汇编若出现错误,则在屏幕上出现提示。

重新回到编辑环境下,对源文件中出现错误的语句进行修改。

(先按F1,再按F3就可快捷进入编辑环境)f.汇编无误后,按F3输入文件名↙,对汇编生成的*.Obj文件进行连接,连接信息显示于屏幕上,生成相应的*.EXE可执行文件;按F3对成功汇编后生成的目标文件(*.obj)进行连接(LINK)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一汇编语言程序设计实验---- 存储器块清零或赋值一.实验目的1 熟悉存储器的读写方法,熟悉51汇编语言结构。

2 熟悉循环结构程序的编写。

3 熟悉编程环境和程序的调试。

二.实验内容指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。

例如将4000H开始的100个字节内容清零或全部赋值为33H。

三.实验仪器微机、WAVE6000编程环境软件,单片机实验箱注意:1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。

2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。

5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。

编译器默认设置:实验二存储块移动一.实验目的1 熟悉51汇编语言程序结构。

2 熟悉循环结构程序的编写,进一步熟悉指令系统。

3 熟悉编程环境和程序的调试。

二.实验内容将指定源地址(3000H)和长度(100字节)的存储块移动到目的地址(4000H)。

三.实验仪器微机、WAVE6000软件,单片机实验箱注意:在编程环境中,可以通过软件仿真,观察程单片机运行情况。

实验三数据排序一.实验目的1了解数据排序的常用算法,掌握冒泡算法。

2进一步熟悉编程环境和调试方法。

3熟悉汇编程序设计。

二.实验内容将50H开始的10个随机数按从小到大的顺序排列。

三.实验仪器微机、WA VE6000编程环境注意:由于上电后数据都一样,所以需要手动修改50H后10个数据(要排序的数)方法是:窗口---数据窗口---DATA 找到50H开始的10个2位16进制数,双击,修改其数值如(6,2,4,9,3,7,1,5,8,0)之后编译(下载),单步执行,查看排序执行过程冒泡算法(两层循环,以下是内层循环开始……)。

6,2,9,4,3,7,1,5,8,0前大后小交换位置如下:2,6,9,4,3,7,1,5,8,0前小后大不交换位置如下;2,6,9,4,3,7,1,5,8,0前大后小交换位置如下;2,6,4,9,3,7,1,5,8,0…第一次内层循环结束顺序如下:最大的数9先冒出来2,6,4,3,7,1,5,8,0,9 接着开始第二次内层循环……实验四P1口输入输出实验一.实验目的1.熟悉P1 口的功能。

2.熟悉延时子程序或定时中断程序的编写和使用。

3.初步熟悉单片机软硬件设计方法。

二.实验内容(两内容分开做)1.P1口做输出口接八只发光二极管,编写程序,使发光二极管循环亮灭。

2.P1.0,P1.1作输入口接两个拨动开关,P1.2,P1.3作输出口,接两个发光二极管。

编写程序读取开关状态,将此状态在发光二极管上显示出来。

三.实验仪器微机,WAVE6000编程环境、实验箱注意:当P1口用作输入口时,必须先对它置”1”。

编程时应注意P1.0,P1.1作为输入时应先置1,才能正确读入值。

实验五计数器实验一.实验目的1 熟悉计数器的使用方法。

2 熟悉计数器的硬件电路连接。

3 熟悉计数器的软件设计。

二.实验内容8031内部定时计数器0,按计数器模式和工作方式1工作,对P3.4(计数器0计数脉冲输入T0)引脚进行计数。

将其计数数值按二进制数用P1口驱动LED灯显示出来。

三.实验仪器微机、WAVE6000编程环境,伟福6000实验箱注意:实验六外部中断实验一.实验目的1 熟悉外部中断的硬件电路,中断技术的基本使用方法。

2 熟悉外部中断的软件设计。

二.实验内容利用实验箱上的单脉冲按键和发光二极管实现:用单次脉冲申请中断,在中断服务程序中对输出信号进行翻转(每当单脉冲按键按下时(产生一个脉冲),发光二极管(L0)亮灭变化)。

三.实验仪器微机、WAVE6000编程环境,实验箱连线:P1.0连接L0 INT0连接低电平单次脉冲。

注意中断服务程序(ISR)关键:1 保护进入中断时的现场,并在退出中断之前恢复现场;中断重入的设置中断相关寄存器的设置:中断寄存器IE,中断触发罚方式的设置。

2 中断程序和子程序的区别。

中断程序不是程序调用的,中断发生时,CPU就执行相应中断服务程序。

实验1 设备使用及简单示例程序验证一.实验目的1 熟悉软件编程环境和硬件设备资源2 熟悉工程创建的步骤,其中各个文件作用3 掌握软件菜单的使用,掌握程序的调试基本步骤。

二.实验内容以课本例4-1为源文件创建工程进行工程的调试,查看程序运行过程和结果三.实验仪器微机、WAVE6000编程环境,实验箱注意:1 文件不要用中文名称,保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。

2 查看存储器菜单使用:窗口---数据窗口---MEMORY,观察或者修改MEMORY内容。

3 查看CPU寄存器:窗口---CPU窗口,CPU寄存器4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。

ASSUME CS:CSEG , DS:DSEG , ES:ESEGSUM DW 2 DUP(?) DUP (duplicate) 含义定义变量(数组)SUM,类型为字(DW),大小为2,内容不定(?)设置:编译器将用户定义的数据段分配在0400H (0040H×16)开始的存储器中。

数据段段基址寄存器DS(0040H)。

查看方法:窗口---数据窗口--- MEMORY ---0400物理地址=段基址×16+段内偏移实验2 简单程序设计--存储块移动一.实验目的1 熟悉86汇编语言程序结构2 熟悉循环结构程序的编写,进一步熟悉指令系统寻址方式3 熟悉编程环境和程序的调试二.实验内容将指定源地址和长度(100字节)的存储块移动到目的地址。

三.实验仪器:微机、WAVE6000软件,实验箱注意:1 源数据块和目的数据块自己在数据段中定义。

2 要查看移动后结果,定义时对源和目的块赋不同的值S db 25 dup(11h) 含义? dup (duplicate)定义数组S,大小为25,类型为字节(DB),全部赋值为11h3 同实验一,数据段分配在0400H开始的存储器中实验3 数据排序一.实验目的1 了解数据排序的常用算法,掌握冒泡算法。

2 进一步熟悉86编程环境和调试方法。

3 熟悉汇编程序设计,指令系统,伪指令的使用。

二.实验内容给出一组随机数(10个,类型:字节),将此组数据数按从小到大(升序)排列(采用冒泡算法)。

三.实验仪器微机、WA VE6000编程环境注意:在数据段中自定义一组随机数,对自定义的数据排序。

如自定义:ARRAY DB 6,2,4,9,3,7,1,5,8,0冒泡算法(两层循环,以下是内层循环开始……)。

6,2,9,4,3,7,1,5,8,0前大后小交换位置如下:2,6,9,4,3,7,1,5,8,0前小后大不交换位置如下;2,6,9,4,3,7,1,5,8,0前大后小交换位置2,6,4,9,3,7,1,5,8,0 ……第一次内层循环结束顺序如下:最大的数9先冒出来2,6,4,3,7,1,5,8,0,9 接着开始第二次内层循环……实验4 8255输入输出实验一实验目的1熟悉8086片外设备,硬件资源及其连接2熟悉CPU访问片外设备方式3了解8255芯片结构及编程使用方法二实验内容利用8255可编程并行口芯片,实现输入输出实验。

1 实验用8255PA口(八位)作输出连接LED0-LED7,编程实现八个LED的循环点亮。

在每点亮一个LED后需要一定的延时才能够观察到灯的变化,延时程序编写与使用。

2 实验用8255PA口(八位)作输出,接LED0-LED7;8255PB口(8位)做输入接K0-K7(开关量0或1)。

用PB口读入开关状态,通过PA口用LED显示各个开关状态(1亮,0灭)。

三.实验仪器微机、WA VE6000编程环境,实验箱说明:工作方式选择:工作方式0CPU以片外映射存储器(IOMAP)的形式访问外设。

采用不同的指令区分内外。

8255CS连接CPU片选CS0时对应8255地址为(CPU 分配):PA口:8000H PB口: 8001H PC口:8002H 8255控制寄存器(8位)地址8003HCPU要使用外设(8255),首先设定8255的工作过方式,即写控制字寄存器(8003H)注意:片外设备的访问指令形式(参考教材)IN OUTDX寄存器的寻址方式实验5 8253定时器实验一实验目的1熟悉8086控制片外设备8253定时器方法2熟悉8253硬件资源,工作方式,大时间常数的计数方法3了解8253芯片结构及编程使用方法二实验内容:用8253对标准脉冲信号进行计数,实现定时功能。

用板上1MHz做标准脉冲,将8253的时间常数设为1000000,在定时器的管教上输出高/1秒低/1秒的脉冲信号。

因为8253每个计数器只有16位,(最大数值65535),所以要用两个计数器实现1000000次的计数。

两级计数初值选取: 1000×1000或者20×50000=1000000注意:各个计数器工作方式选择:要求输出方波信号,所以末级计数器采用工作方式3(方波发生器);第一级计数器的输出作为第二级计数器的时钟信号(标准脉冲)也要求是方波信号,所以也选工作方式3。

8253CS连接CPU CS0时8253各部分的地址:(地址复用)计数器0 8000H 计数器1 8001H 计数器2 8002H控制字寄存器8003H实验六A/D转换实验一实验目的1 掌握ADC与8086连接方法2 了解ADC0809转换性能及编程3 通过实验了解数据采集过程二实验内容利用0809做A/D转换器,实验箱上地点为其提供电压模拟量输入,编程将模拟量转换成数字量(8位二进制),用8255的PA 口输出到八个发光二级管显示。

注意:采用查询方式读入A/D转换结果。

ADC0809的转换时间约100uS(100微秒),所以每次转换完需要延时100uS(采用软件延时程序)。

地址:8255,ADC0809地址根据片选信号连线查表可得。

相关文档
最新文档