南理工单片机实验报告
单片机实验报告

单⽚机实验报告单⽚机实验报告姓名学号时间地点实验题⽬软件开发环境和简单程序设计⼀、实验⽬的1. 学习I/O⼝的使⽤⽅法。
2. 学习延时⼦程序、查表程序的编写和使⽤。
⼆、实验主要仪器及环境PC机、W A VE软件、仿真器+仿真头、实验板、电源等。
三、实验内容1、P0⼝做输出⼝,接⼋只LED,编写程序,使LED循环点亮,间隔0.5秒。
2、P1.0--P1.7作输⼊⼝接拨动开关S0--S7;P0.0--P0.7作输出⼝,接发光⼆极管L1—L8,编写程序读取开关状态,将此状态在对应的发光⼆极管上显⽰出来,同时将开关编号(0—7)显⽰在LED数码管上四、实验步骤1、先编写好程序并通过伟福仿真软件调试。
2、将编好的程序通过仿真器掻到实验板上进⾏相应的实验。
五、实验程序流程框图、实验程序1. ORG 0000HAJMP MAINMAIN: MOV A,#01H;置初值LOOP: MOV P0,A ;数据输出RL A ;左移⼀位ACALL DELAYSJMP LOOPDELAY:MOV R0,#10 ;延时0.5sK1:MOV R1,#125K2:MOV R2,#200K3:DJNZ R2,K3DJNZ R1,K2DJNZ R0,K1RETP0⼝循环点灯框图AJMP STARTORG 0030HSTART: MOV DPTR,#TABLESETB P1MOV P2,#00HMAIN: MOV A,P1 ;读P1⼝值CJNE A,#0FFH,LOOP;判断是否有输⼊SJMP MAINLOOP: MOV P0,AMOV R0,#00HLOOP1:RRC AJNC LOOP2INC R0 ;计数AJMP LOOP1LOOP2:MOV A,R0MOVC A,@A+DPTR ;查表MOV P2,A ;P2⼝输出AJMP MAINTABLE:DB 03FH 06H 5BH 4FH 66H 6DH 7DH 07HP1⼝输⼊/输出框图六、实验程序分析、讨论及测试1、实验1欲改变LED循环的⽅向程序应如何修改?循环的时间间隔由什么决定?写出间隔时间为1秒的延时程序并说明计算⽅法。
单片机原理与应用实验报告

单片机原理与应用实验报告单片机是一种集成电路,可以在内部集成处理器、内存、输入/输出接口和时钟等多种功能,同时也可以通过编程实现各种应用。
单片机已经广泛应用于工业控制、家电控制、汽车电子、医疗设备等领域。
本实验旨在深入探究单片机的原理和应用,通过实验来加深对单片机的理解和认识。
实验原理单片机由CPU、存储器、I/O接口和时钟四个部分组成。
其中,CPU是单片机最核心的部分,它负责处理各种指令。
存储器包括ROM和RAM,ROM用于存储程序和常量数据,而RAM用于存储变量数据。
I/O接口用于连接外部设备,如传感器、执行器等,时钟用于提供CPU的时钟信号。
实验器材本实验采用的单片机为AT89S52,其主要特点包括:1. 8位CPU,运行频率为12MHz;2. 8KB Flash存储器,可存储程序和常量数据;3. 256字节RAM存储器,用于存储变量数据;4. 32个I/O口,可连接外部设备;5. 两个定时器/计数器,可用于计时和计数;6. 串口通信接口,可用于与PC机通信。
实验内容本实验共包括四个部分,分别是LED闪烁、数码管显示、按键输入和串口通信。
下面分别介绍每个部分的实验内容。
1. LED闪烁LED闪烁是单片机应用中最基本的实验之一。
本实验采用的是P0口控制LED的亮灭。
具体步骤如下:(1)设置P0口为输出口;(2)每隔一定时间,将P0口的值翻转一次,即可实现LED的闪烁。
2. 数码管显示数码管显示是单片机应用中比较常见的实验之一。
本实验采用的是P2口控制数码管的显示。
具体步骤如下:(1)设置P2口为输出口;(2)编写程序将要显示的数值转换成相应的数码管编码;(3)将编码输出到P2口,即可实现数码管的显示。
3. 按键输入按键输入是单片机应用中比较常见的实验之一。
本实验采用的是P3口控制按键输入。
具体步骤如下:(1)设置P3口为输入口;(2)编写程序检测P3口的状态,判断是否有按键按下;(3)如果有按键按下,则执行相应的操作。
单片机实验报告

单片机实验报告第一篇:单片机实验报告单片机实验报告一、实验目的1.熟练使用Keil、Protues两款软件2.通过上机操作,增强个人动手实践能力3.加深对理论知识的理解4.培养运用汇编语言进行初步编写程序的能力二、实验内容1.将片外RAM3050-306FH中数据转移至片内70-8FH中。
要求:可以从Keil或Protues上看到RAM的数据转移结果。
2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮。
要求:开发板或Prrotues演示3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术。
要求:在Keil或Protues上看到数据转换结果。
4.各使用中断方式和查询方式设计一个方波发生器,频率为50HZ。
要求:Protues使软件间示波器显示方波。
三、实验程序1.将片外RAM3050-306FH中数据转移至片内70-8FH中ORG 0000H AJMP MAIN 上电,转向主程序ORG 0030H 主程序入口MAIN: MOV DPTR,#3050H 数据指针指向地址3050H MOV A,#04H 将立即数04H送A寄存器MOV R0,#20H NEXT: MOVX @DPTR,A INC DPTR 数据指针DPTR自加一DJNZ R0,NEXT 判断是否跳转到NEXT或继续向下执行MOV DPTR,#3050H MOV R0,#70H MOV R2,#20H NEXT1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,NEXT1SJMP $ 等待END 2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮ORG 0000H SJMP MAIN 上电,转向主程序ORG 0003H 外部中断0向量入口AJMP INSER ORG 0030H 主程序入口MAIN: SETB EX0 SETB IT0SETB EA CPUHERE: SJMP HERE ORG 0200H INSER: MOV R2,#08H MOV A,#01H NEXT: MOV P2,A LCALL DELAY RL A DJNZ R2,NEXT NEXT或继续向下执行RETI DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP 允许外部中断0中断选择边沿触发方式开中断等待中断设置循环次数赋初值,设置高电平亮将初值送往P2口延时左移一位判断循环次数,是否跳转到中断返回延时程序DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术 ORG 0000H LJMP MAIN ORG 0030H主程序起始地址 MAIN: MOV 80H,#05H 将立即数50H转送内存单元80H MOV A,80H 将内存单元80H中的内容送寄存器A MOV DPTR,#TAB MOVC A,@A+DPTR A寄存器内容加指针偏移量后送A寄存器 MOV 80H,A RET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 4.1中断方式产生50HZ方波ORG 0000HAJMP MAINORG 0030H 主程序入口 MAIN: MOV TMOD,#10H 设置定时器工作模式为模式1 MOV TH1,#0D8H 装入T1计数初值MOV TL1,#0F0HSETB ET1 开中断SETB EA CPU开中断SETB TR1 启动定时器T1 HERE: SJMP HERE 等待中断ORG 001BH T1中断向量地址CLR TF1 将TF1清零CPL P2.0 P2.0取反输出MOV TH1,#0D8H 重装初值MOV TH0,#0F0HRETI;中断返回END 4.2 查询方式产生50HZ方波ORG 0000HAJMP MAINORG 0030H 主程序入口MAIN: MOV TMOD,#10H 设置定时器的工作模式为模式1 SETB TR1 启动定时器T1 LOOP: MOV TH1,#0D8H 装入T1计数初值MOV TH0,#0F0H JNB TF1,$ T1没有溢出则等待CLR TF1产生溢出,清标志位CPL P2.0 P2.0取反输出SJMP LOOP 循环END四、实验结果截图1.23.4.14.2第二篇:单片机实验报告实验四、中断交通灯实验林立强1000850116一、实验目的1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。
单片机系统实验实训报告

一、实验目的1. 熟悉单片机的基本结构和原理。
2. 掌握单片机的编程方法和调试技巧。
3. 培养单片机应用系统的设计能力。
4. 提高实际操作能力和团队协作精神。
二、实验内容本次实验实训主要围绕单片机应用系统展开,包括以下内容:1. 单片机最小系统搭建- 熟悉单片机的最小系统组成,包括复位电路、晶振电路、VCC、GND等。
- 掌握电路板焊接和调试方法。
2. LED流水灯实验- 学习使用51单片机进行简单的单片机应用系统硬件设计。
- 掌握单片机GPIO端口的使用方法。
- 通过编程实现LED灯的流水效果。
3. 按键控制LED灯实验- 学习使用按键输入控制LED灯的亮灭。
- 掌握按键去抖动技术。
4. LCD1602显示屏控制实验- 学习使用LCD1602显示屏显示文字和数字。
- 掌握LCD1602的初始化和显示控制方法。
5. 串口通信实验- 学习使用单片机串口进行通信。
- 掌握串口初始化和通信协议。
6. 温湿度传感器实验- 学习使用温湿度传感器获取环境温度和湿度信息。
- 掌握传感器数据读取和温度湿度计算方法。
7. 多功能密码锁实验- 学习使用单片机实现密码锁功能。
- 掌握按键输入、密码存储和匹配方法。
三、实验步骤1. 实验一:单片机最小系统搭建- 根据实验指导书,准备好实验器材,包括51单片机、电路板、焊接工具等。
- 按照电路图焊接电路,确保电路连接正确。
- 上电测试,观察LED灯是否亮起,确认电路工作正常。
2. 实验二:LED流水灯实验- 编写LED流水灯程序,使用51单片机GPIO端口控制LED灯的亮灭。
- 烧录程序到单片机,观察LED灯的流水效果。
3. 实验三:按键控制LED灯实验- 编写按键控制LED灯的程序,使用按键输入控制LED灯的亮灭。
- 烧录程序到单片机,测试按键控制功能。
4. 实验四:LCD1602显示屏控制实验- 编写LCD1602显示屏显示文字和数字的程序。
- 烧录程序到单片机,观察LCD1602显示屏的显示效果。
最新单片机实验报告

最新单片机实验报告实验目的:1. 熟悉单片机的基本结构和工作原理。
2. 掌握单片机编程语言和开发环境的使用。
3. 通过实验加深对单片机控制逻辑的理解。
4. 实现简单的单片机控制项目,提高动手能力。
实验设备和材料:1. 单片机开发板一套(包含单片机芯片、电源模块、接口电路等)。
2. 连接线若干。
3. LED灯、蜂鸣器、按键开关等外围设备。
4. 电脑一台,安装有单片机编程软件。
实验步骤:1. 首先,连接单片机开发板到电脑,确保电源模块和接口电路正确无误。
2. 安装并打开单片机编程软件,创建一个新的项目。
3. 编写程序代码,实现LED灯的闪烁功能。
代码中需要定义LED灯所连接的端口和控制逻辑。
4. 将编写好的程序通过编程软件下载到单片机芯片中。
5. 测试程序是否按预期工作,即LED灯能够进行闪烁。
6. 在原有程序基础上,增加蜂鸣器的控制代码,实现按键控制蜂鸣器响铃的功能。
7. 再次下载并测试程序,确保所有功能正常运行。
实验结果:1. 成功编写并下载了控制LED灯闪烁的程序,LED灯能够按照设定的时间间隔进行闪烁。
2. 在程序中增加了蜂鸣器的控制逻辑,通过按键开关能够控制蜂鸣器的启动和停止。
3. 所有编写的功能均能稳定运行,达到了实验的目的。
实验分析:通过本次实验,我们了解了单片机的基本操作和编程方法。
在实验过程中,我们也遇到了一些问题,比如程序下载不成功、LED灯不闪烁等,但通过检查电路连接和程序代码,我们最终解决了这些问题。
实验让我们认识到了理论与实践相结合的重要性,也提高了我们解决实际问题的能力。
实验建议:1. 在编写程序时,应该注意代码的规范性和可读性,便于后续的检查和修改。
2. 在实验过程中,应该养成记录和备份程序代码的习惯,防止数据丢失。
3. 可以尝试更复杂的控制项目,比如温度控制、电机驱动等,以提高对单片机的掌握程度。
单片机实验报告

一、实验目的1. 熟悉单片机的硬件组成和基本工作原理。
2. 掌握单片机最小系统的搭建方法。
3. 学习使用单片机编程软件进行程序编写和调试。
4. 通过实际操作,加深对单片机应用的理解。
二、实验环境1. 实验设备:MCS-51单片机实验板、电源模块、面包板、连接线、LED灯、蜂鸣器、按键等。
2. 软件环境:Keil uVision5、Proteus仿真软件。
三、实验内容1. 点亮LED灯(1)实验目的:掌握单片机I/O口的使用,实现LED灯的点亮。
(2)实验步骤:① 将LED灯的阳极连接到单片机的P1.0口,阴极连接到GND。
② 在Keil uVision5中新建工程,编写程序如下:```cvoid main() {while (1) {P1 = 0xFF; // 点亮LED灯delay(500000); // 延时P1 = 0x00; // 熄灭LED灯delay(500000); // 延时}}③ 将程序编译并下载到单片机中,观察LED灯的点亮效果。
2. 蜂鸣器控制(1)实验目的:掌握单片机I/O口的使用,实现蜂鸣器的控制。
(2)实验步骤:① 将蜂鸣器的正极连接到单片机的P1.1口,负极连接到GND。
② 在Keil uVision5中编写程序如下:```cvoid main() {while (1) {P1 = 0x02; // 使能蜂鸣器delay(100000); // 延时P1 = 0x00; // 禁止蜂鸣器delay(100000); // 延时}}```③ 将程序编译并下载到单片机中,观察蜂鸣器的鸣叫效果。
3. 按键扫描(1)实验目的:掌握单片机I/O口的使用,实现按键的扫描和识别。
(2)实验步骤:① 将两个按键分别连接到单片机的P1.2和P1.3口。
② 在Keil uVision5中编写程序如下:void main() {while (1) {if (P1 & 0x04) { // 检测按键1是否按下// 执行按键1按下后的操作}if (P1 & 0x08) { // 检测按键2是否按下// 执行按键2按下后的操作}}}```③ 将程序编译并下载到单片机中,观察按键的扫描和识别效果。
单片机实训实验报告
一、实验名称单片机原理及应用实验二、实验目的1. 熟悉单片机的基本结构和原理,了解单片机在电子系统中的应用。
2. 掌握单片机编程语言C的基本语法和编程技巧。
3. 学会使用单片机进行简单控制,实现LED流水灯、数码管显示等基本功能。
4. 提高动手实践能力,培养团队合作精神。
三、实验仪器与设备1. 单片机实验箱:包括单片机、电源、按键、LED灯、数码管等。
2. 电脑:用于编程和仿真。
3. 编程软件:Keil uVision5或IAR EWARM等。
四、实验原理单片机是一种集成度高、功能强大的微控制器,具有运算速度快、功耗低、体积小等优点。
本实验以51单片机为例,介绍其基本原理和编程方法。
51单片机主要由以下几个部分组成:1. 中央处理器(CPU):负责执行指令,控制整个单片机系统。
2. 存储器:包括程序存储器(ROM)和数据存储器(RAM),用于存储程序和数据。
3. 输入/输出接口:用于与外部设备进行数据交换。
4. 定时器/计数器:用于实现定时和计数功能。
5. 中断系统:用于处理中断事件。
本实验主要涉及以下几个方面:1. 单片机基本结构和工作原理。
2. 单片机编程语言C的基本语法和编程技巧。
3. 单片机I/O口的使用和驱动能力。
4. 定时器/计数器的使用和编程。
5. 中断系统的使用和编程。
五、实验内容1. 实验一:LED流水灯(1)实验目的:掌握单片机I/O口的使用,实现LED流水灯效果。
(2)实验原理:通过单片机I/O口输出高低电平,控制LED灯的亮灭,实现流水灯效果。
(3)实验步骤:① 连接实验箱电路,将LED灯连接到单片机的P1口。
② 编写程序,设置P1口为输出模式,通过循环改变P1口输出电平,实现LED流水灯效果。
③在电脑上编译、下载程序,观察实验效果。
2. 实验二:数码管显示(1)实验目的:掌握单片机I/O口的使用,实现数码管显示功能。
(2)实验原理:通过单片机I/O口输出高低电平,控制数码管显示数字。
单片机c语言程序设计---单片机实验报告
单片机c语言程序设计---单片机实验报告实验目的:1.掌握单片机的中断的原理、中断的设置,掌握中断的处理及应用2.掌握单片机的定时器/计数器的工作原理和工作方式,学会使用定时器/计数器实验内容:一.定时器/计数器应用程序设计实验1.计数功能:用定时器1方式2计数,每计数满100次,将P1.0取反。
(在仿真时,为方便观察现象,将TL1和TH1赋初值为0xfd,每按下按键一次计数器加1,这样3次就能看到仿真结果。
)分析:外部计数信号由T1(P3.5)引脚输入,每跳变一次计数器加1,由程序查询TF1。
方式2有自动重装初值的功能,初始化后不必再置初值。
将T1设为定时方式2,GATE=0,C/T=1,M1M0=10,T0不使用,可为任意方式,只要不使其进入方式3即可,一般取0。
TMOD=60H。
定时器初值为X=82-100=156=9CH,TH1=TL1=9CH。
程序:#include<REGX51.H>void main(){P1_0=0;TMOD=0x60;TH1=0xFD;TL1=0xFD;ET1=1;EA=1;TR1=1;while(1){}}void timer1_Routine()interrupt3{P1_0=~P1_0;}实验2.中断定时使用定时器定时,每隔10s使与P0、P1、P2和P3端口连接的发光二极管闪烁10次,设P0、P1、P2和P3端口低电平灯亮,反之灯灭。
分析:中断源T0入口地址000BH;当T0溢出时,TF0为1发出中断申请,条件满足CPU响应,进入中断处理程序。
主程序中要进行中断设置和定时器初始化,中断服务程序中安排灯闪烁;TL0的初值为0xB0,TH0的初值为0x3C,执行200次,则完成10s定时。
实验要求:完成计数实验和中断计数实验。
具体包括绘制仿真电路图、编写c源程序、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程序,对仿真结果进行总结。
程序:#include<REGX51.H>#include"Delay.h"int i;int j=0;void main(){ P1=0; P2=0;P3=0; P0=0; TMOD=0x01;TH0=0x3C;TL0=0xB0;ET0=1;EA=1;TR0=1;while(1) {}}void timer0_Routine()interrupt1 {TH0=0x3C;TL0=0xB0;j++;if(j>=150){ j=0; for(i=0;i<20;i++){P1=~P1;P2=~P2;P3=~P3;P0=~P0;Delay(200); } }}实验分析:心得体会:。
单片机实验报告(例文)
单片机实验报告(例文)单片机实验报告(范文)第 \Arab 1 页第 \Arab 1 页评阅评阅姓名学号时间地点计算机楼708机房实验题目 C51单片机汇编程序编制和运行实验目的与要求1、学习单片机汇编程序的编制方法。
2、研究用单片机实现简单事务的软件程序。
二.实验环境在Keil uVision2下实验。
三.实验内容1. 编制两个无符号八位二进制数相加的汇编程序要求:①两个数和结果分别放在自己定义的三个不同变量中。
②程序从0000h地址开始运行,并且不能影响各中断的入口地址。
③预测每一条指令后PC、ACC寄存器的值,写好预测表。
④记录单步运行程序时PC、ACC寄存器在每一步后的实际值。
⑤ 比较③和④的值,判断程序有无问题。
2. 研究用软件延时1秒的方法和程序要求:①用某种方式表征延时的开始和结束。
注意模拟器的时钟频率和实际单片机频率的差别。
系统实施(1)实验内容一:数据段起始地址定位为0030H(为了不和中断地址冲突);在数据段内定义DATA1,DATA2,DATA3,将DATA1,DATA2分别放到0030H和0031H中,将相加的和数放到0033H中(为了使用DATA3)。
(2)实验内容二:子程序中要实现延时1秒的功能,首先要知道一条指令的执行时间。
因为51单片机得晶振为12MHZ,所以一个机器周期要用1μs。
利用条件转移指令djnz (为两机器周期指令,即2μs),让程序循环执行djnz指令1s/2μs=500000次即可。
用R0、R1、R2设置循环的次数,使得三个存储器中所放数据的乘积为500000,例如2520__0;而当延时结束后,它们中的内容均为0。
程序测试报告实验内容一:输入数据11H,22H,起始地址为0030H。
实验数据与预测数据一致,表明程序是正确的。
(注:此实验以PHILIPS的P87C522为目标器件)实验记录表格:指令PCACCmov 30h,data10030Hmov a,30h0033Hmov 31h,data20035H11add a,31h0038H11mov data3,a003aH33实验内容二:编程按下Run让程序自动运行至停止,延时时间大约为1min,见左侧面板的sec显示约为1S,而R0、R1、R2内容都为0。
单片机实验报告汇总
单片机实验报告汇总一、引言单片机是一种嵌入式系统中的重要组成部分。
通过单片机可以实现各种控制功能,包括自动控制、测量和数据处理等。
在本次实验中,我们就对单片机进行了一系列实验,包括基本IO口控制、定时器和中断、串口通信等内容。
通过这些实验的学习和掌握,我们对单片机的原理和应用有了更深入的理解。
二、实验目的1.掌握单片机的基本操作和编程方法;2.理解单片机的IO口控制原理;3.学习单片机的定时器和中断功能;4.掌握单片机的串口通信原理和操作方法。
三、实验过程与结果1.基本IO口控制实验在此实验中,我们使用单片机控制LED灯的亮灭。
首先,将LED灯连接到单片机的一个IO口上,然后编写相应的程序来控制该IO口的电平变化。
实验结果显示,当程序中对该IO口输出高电平时,LED灯亮起;反之,当输出低电平时,LED灯熄灭。
2.定时器和中断实验定时器和中断是单片机的重要功能之一、在此实验中,我们使用定时器和中断来实现一个简单的计数器。
我们先设置定时器的计数周期,然后在中断函数中对计数器进行加一操作。
实验结果表明,LED灯随着时间的推移不断闪烁,计数器的值也在不断增加。
3.串口通信实验串口通信是单片机与外部设备进行数据交换的一种通信方式。
在此实验中,我们通过串口通信将单片机与计算机相连,并实现数据的发送与接收。
我们使用UART通信协议来建立通信连接,并编写相应的程序来控制通信的发送与接收。
实验结果显示,当单片机向计算机发送数据时,计算机会接收到相应的数据,并进行处理;反之,当计算机向单片机发送数据时,单片机也能够正确接收并进行相应的操作。
四、实验总结通过本次实验,我们对单片机的基本操作和编程方法、IO口控制、定时器和中断、串口通信等内容有了更深入的了解和掌握。
我们通过实践操作,对单片机的原理和应用有了更为直观的认识。
通过编写程序,我们实现了对LED灯的控制、计数器的实现以及与计算机的数据交互等功能。
这些实验不仅提升了我们的动手能力,也加深了我们对单片机技术的理解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机实验报告 姓名: 学号: 指导老师: 其他小组成员: 实验一、P1口实验 一、实验题目 (1)利用查表指令控制P1口输出,实现流水灯先左移后右移并循环进行。 (2)设ACC的初值为10101010,利用循环移位指令,将ACC的每一位数据移到CY中,并从P1.0口输出CY中的数据,并循环进行。
二、实验目的 (1)学习P1口的使用方法; (2)学习延时子程序的编写和使用方法; (3)学习查表指令和循环移位指令的使用方法。
三、实验元件 (1)AT89C51、LED-YELLOW、LED-BLUE、LED-RED、RED-GREEN、RESPACK-8。 (2)AT89C51、LED-YELLOW、RES。
四、硬件设计 (1)
五、程序流程图 1.建立数据表格 2.建立坐标指向表格首地址 3.对所指数进行读取并加以显示 4.指向坐标加一指向下一地址 5.回到3
六、汇编程序 查表法控制流水灯: ORG 0000H ;汇编起始地址0000H SJMP MAIN ORG 0030H MAIN:MOV DPTR , @TABLE ;表首址送DPTR LOADTABLE: CLR A MOVC A, @DPTR+A ;查表 CJNE A,#88H, DISPLAY JMP MAIN DISPLAY: MOV P1 , A ;ACC数据送P1口显示 CALL DELAY INC DPTR JMP LOADTABLE TABLE: ;数据表格 DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH ;左移 DB 07FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH ;右移 DB 88H ;结束码 DELAY: MOV R4,#4 ;延时子程序 LP1: MOV R5,#255 LP2: MOV R6,#255 LP3: DJNZ R6,LP3 DJNZ R5,LP2 DJNZ R4,LP1 RET END
七、实验中遇到的问题及解决方法 怎样进行信号的循环:可对A的大小进行判断来确定右移是否完成,当右移完成后对A进行清零处理。
八、实验总结 对于这种问题,关键是制作一个合适的表格,制造一个符合要求的指针。 实验二、外中断实验 一、实验题目 (1)利用外部中断1控制P1口的输出。无中断发生时,绿色LED常亮。按钮按下,外部中断1发生,熄灭绿色LED,点亮红色LED,经延时后恢复绿色LED常亮状态。 (2)用LED模拟交通信号灯,用逻辑电平开关模拟控制开关,设计一个交通信号灯控制系统,fosc=6MHz。设计要求如下: A车道与B车道交叉组成十字路口,A是主道,B是支道;正常情况下,A、B两车道轮流放行。具体放行时间和要求如下: (a)A车道放行50s,其中绿灯常亮44s,绿灯闪烁3s,黄灯常亮3s。 (b)B车道放行30s,其中绿灯常亮24s,绿灯闪烁3s,黄灯常亮3s。 控制系统应有手控开关,可人为改变信号灯的状态。控制要求如下: (a)在B车道放行期间,若A道有车B道无车,按下开关使A车道放行15s。 (b)在A车道放行期间,若B道有车A道无车,按下开关使B车道放行15s。 (c)有紧急车辆通过时,按下开关使A、B道均为红灯,禁行15s。 分析:用P1 口输出控制信号,输出低电平时,信号灯亮;反之则灯灭。依题意分析,在正常情况和交通繁忙时,A、B两车道的六只信号灯的控制状态有如下五种形式。
二、实验目的 (1)学习外部中断技术的基本使用方法; (2)学习中断处理程序的编写方法。
三、实验元件 (1):AT89C51、LED-RED、RED-GREEN、BUTTON、RES。 (2):AT89C51、74LS04、74LS86、LED-RED、LED-GREEN、LED-YELLOW、BUTTON、RES。
四、硬件设计 (1) 五、程序流程图 1、开中断 2、将P0.0设置为0 3、若期间有中断,P0.0置1,P0.1置0,否则到5 4、循环4,直到中断消失 5、循环2
六、汇编程序 (1) ORG 0000H; MAIN:SETB EA; SETB EX1; CLR IT1; GREEN: CLR P0.0 ; JMP GREEN ; ORG 0013H; EXT1_RED: SETB P0.0 ; CLR P0.1 ; DLY2: MOV R3,#5 ; D1: MOV R4,#255 D2: MOV R5,#255 DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1 SETB P0.1 ; RETI END
七、实验中遇到的问题及解决方法 无 八、实验总结 中断和子程序比较类似,在主程序完成的情况下,可以很容易的衔接进程序中。 实验三、定时器/计数器实验 一、实验题目 (1)T0方式0、定时,以查询方式输出周期为2ms的方波,fosc=6MHz。 (2)T0方式0、定时,以中断方式输出周期为2ms的方波,fosc=6MHz。 (3)T0方式3、定时,以中断方式使P1.0输出周期为400us、P1.1输出周期为800us的方波,fosc=6MHz。 (4)T0方式3、定时,以查询方式输出周期为300us、占空比为1/3的方波,fosc=12MHz。 (5)T1方式2、计数P3.5引脚输入脉冲,每计数10次,对P1.0取反。
二、实验目的 1. 学习51单片机定时/计数器的使用及编程方法; 2. 进一步掌握中断处理程序的编写方法。
三、实验元件 80C51 四、硬件设计 (1)T0方式0、定时,以查询方式输出周期为2ms的方波,fosc=6MHz。
五、程序流程图 (1)T0方式0、定时,以查询方式输出周期为2ms的方波,fosc=6MHz。 1、写入初值,写入TMOD 2、启动定时器TR1 3、查询溢出,若不溢出循环3,若溢出至4 4、重新写入初值,写入TMOD 5、输出翻转,至2
六、汇编程序 (1)T0方式0、定时,以查询方式输出周期为2ms的方波,fosc=6MHz。 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV TH0,#0F0H MOV TL0,#0CH MOV TMOD,#00H SETB TR0 LP1: JBC TF0,LP2 SJMP LP1 LP2: MOV TH0,#0F0H MOV TL0,#0CH CPL P1.0 SJMP LP1 END
七、实验中遇到的问题及解决方法 无 八、实验总结 定时/计数器的方式0有TL0的低5位和TH0的高8位组成。TL0低5位溢满向TH0进位,TH0溢满则置位TCON的TF0标志。利用这个特性可以实现循环。 实验四、串口通信实验 一、实验题目 (1)查表读取数据,并将数据按顺序从串口输出,经8位串入并出移位寄存器驱动八个LED。 八个发光二极管按照以下规则亮灭: 全亮-全灭-后半亮-前半亮-0246亮-全亮-从左向右依次熄灭-全灭-从左向右依次点亮(每次只有一个亮)-从右向左依次点亮(每次只有一个亮)-从左向右依次点亮-全亮。 (2)通过8位并入串出移位寄存器,从串行口输入八个开关的状态,并将其通过P1口并行输出,控制八个LED的亮灭。 (3)利用串行口进行双机通信,实现排队呼叫器功能,要求: (a)串行口工作方式1,波特率2400bps,T1工作方式2,SMOD=0,fosc = 11.0592MHz。 (b)单片机U2首先向单片机U1发起通信请求,发送呼叫号99H。 (c)单片机U1接收到呼叫号后,在P1口显示并确认,然后向单片机U2回送应答号01H。 (d)单片机U2接收到应答号后,在P1口显示并确认。 (e)通信未建立,单片机U1数码管不显示按键数据。 (f)通信建立,单片机U2向单片机U1传输按键数据,单片机U1用数码管显示接收到的按键数据。
二、实验目的 (1)掌握串行口工作原理及串行通信程序的编制方法; (2)掌握利用串行口并行I/O口的方法; (3)掌握7段LED数字数码管的使用方法。
三、实验元件 (1)80C51、74LS164、74HC4094、LED-RED、RED-GREEN。 (2)80C51、74LS165、LED-RED、LED-GREEN、LED-YELLOW、DIPSWC_8、DIPSW_8、 RESPACK_8、SW_SPST。 (3)80C51、74LS47、LED-YELLOW、LED-BLUE、DIPSWC_8、RESPACK_8、RES、 7SEG-COM-AN-GRN。
四、硬件设计 双机通信排队呼叫器: 五、程序流程图 1、制表 2、将指针放在表首 3、将指针指向数据串行输出 4、开启并行输出,延时子程序 5、指向下一控制字 6、若循环完,结束,否则到3
六、汇编程序 双机通信排队呼叫器 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV SCON,#00H CLR ES MOV DPTR,#TAB LP1: MOV R7,#0 LP2: MOV A,R7 MOVC A,@A+DPTR CLR P1.0 MOV SBUF,A JNB TI,$ CLR TI