单片机应用系统实验
- 格式:docx
- 大小:66.16 KB
- 文档页数:14
《单片机原理及应用》实验报告姓名:学号:班级:应用物理指导教师:日期:实验1 计数显示器一、实验目的熟悉51单片机的基本输入输出应用,掌握Proteus模块的原理图绘图方法及单片机系统仿真运行方法二、实验原理由共阴极数码管LED1和LED2、P0口、P2口,上拉电阻RP1及Vcc组成的输出电路;由按钮开关BUT、P3.7和接地点组成的输入电路,该电路在编程软件的配合下,可实现计数显示功能:可统计按钮BUT的按压次数,并将按压结果以十进制数形式显示出来;当显示值达到99后可自动从1开始,无限循环。
三、实验内容(1)观察Proteus模块的软件结构,熟悉菜单栏、工具栏、对话框等基本单元功能(2)学会选择元件、画导线、修改属性等基本操作(3)学会可执行文件加载及程序仿真运行方法(4)验证计数显示器的功能四、实验要求提交实验报告并包括如下内容:电路原理图、电路原理分析、仿真运行截图及实验小结1.实验原理图2.仿真运行截图3.实验小结通过这次实验让我认识了kell和proteus软件的基本功能,学会了用kell编写程序用proteus仿真运行。
在这次实验中同时也遇到了很多问题。
比如因为第一次使用这两个软件对界面还不太熟悉,浪费了很多的时间也产生了很多错误,但之后与同学们的交流过程中,慢慢的对这两个软件有了更深入的了解,在后期仿真的时候才能得心应手的处理问题。
这个计数显示器的实验让我进一步了解了单片机与数码管的魅力,看到了电子元件的神奇之处,只要按动按键就能让数码管的数字逐次加一,这大大激发了我的学习单片机兴趣,这次实验也会成为我以后学习单片机的奠基石,因为它打开了我认识单片机的大门,让我认识到了单片机的魅力,并让我沉浸其中。
实验2 指示灯开关控制器一、实验目的学习51单片机I/O口基本输入输出功能,掌握汇编语言的编程与调试方法。
二、实验原理输入电路由外接在P1口的8只拨动开关组成;输出电路由外接在P2口的8只低电平驱动的发光二极管组成。
单片机原理及应用实验二报告实验二:单片机IO口的输入输出实验一、实验目的:1.理解并掌握单片机IO口的输入输出原理;2.掌握基础的输入输出编程技巧;3.熟悉单片机实验的基本流程和实验报告格式。
二、实验器材:1.STM32F103C8T6开发板2.LED灯3.电阻(220Ω)4.面包板、杜邦线等。
三、实验原理:单片机的IO口是实现与外部器件进行通信的重要接口,通过编程,我们可以控制IO口的状态(低电平或高电平)来实现对外部器件的控制或检测。
IO口的输入输出原理主要有两种:1.三态输出方式:通过设置IO口的DDR寄存器来将IO口设置为输出模式(推挽输出),并通过设置IO口的ODR寄存器来控制IO口的输出状态为低电平或高电平;2.上拉输入方式:通过设置IO口的DDR寄存器来将IO口设置为输入模式,同时设置IO口的CR寄存器的PUPD位为上拉使能,通过读取IO口的IDR寄存器可以获取IO口的输入状态。
四、实验步骤:1.连接电路:将STM32F103C8T6开发板的VDD和VSS(即5V和GND)分别连接到面包板的3V3和GND,将LED的阳极(长脚)连接到STM32F103C8T6开发板的PA0引脚,将LED的阴极(短脚)通过一个220Ω的电阻连接到GND。
2. 打开Keil uVision5软件,创建一个新的工程,并选择适合的芯片型号(STM32F103C8T6)。
3.编写代码实现将PA0引脚设置为输出模式,并控制LED的亮灭。
五、实验代码:```c#include "stm32f10x.h"void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);int main(void)GPIO_Configuration(;while (1)GPIO_SetBits(GPIOA, GPIO_Pin_0); // 点亮LEDGPIO_ResetBits(GPIOA, GPIO_Pin_0); // 关闭LED}```六、实验结果与分析:七、实验心得:本次实验主要学习了单片机IO口的输入输出原理,了解了三态输出方式和上拉输入方式,并通过实际编写代码的方式,在STM32F103C8T6开发板上实现了控制LED的亮灭。
单片机原理实验报告实验一计数显示[目的]熟悉Proteus仿真软件,掌握单片机原理图的绘制方法【实验内容】(1)熟悉Proteus仿真软件,了解软件的结构和功能(2)学习如何使用ISIS模块,学习设置图纸、选择元件、画线、修改属性等基本操作(3)了解如何加载可执行文件和运行程序仿真(4)了解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制[实验步骤](1)观察Proteus软件的基本结构,如菜单、工具栏、对话框等。
(2)Proteus中绘制电路原理图,并根据表A.1将组件添加到编辑环境中(3)在Proteus中,观察仿真结果,检查电路图绘制的正确性【实验示意图】【实验源程序】#include <reg51.h>位 P3_7=P3^7;无符号字符 x1=0;x2=0 ;无符号字符数=0;无符号字符 idata buf[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};无效延迟(int时间){整数 k,j;for(;time<0;time--)for(k=200;k>0;k--)for(j=500;j<0;j--);}无效初始化(){P0=buf[x1];延迟(10);P2=buf[x2];延迟(10);}无效的主要(){在里面();而(1){x1=计数/10;x2=计数%10;P0=buf[x1];延迟(10);P2=buf[x2];延迟(10);如果(P3_7==0)// {延迟(10);而(!P3_7);如果(计数==99)计数=0;别的计数=计数+1;}}}[实验结果]阐明计数器的作用是按下K1后,数码管LED1和LED2会显示按键的按下次数, LED1代表一位, LED2代表十位。
当计数器达到99时,再次按下K1键,显示值再次从0开始。
实验2指示灯开关控制器[目的]学习如何编程和调试汇编语言【实验内容】(1)熟悉Proteus仿真软件,了解软件的结构和功能(2)学习如何用汇编语言编程(3)ISIS 模块中输入、编译和调试汇编程序(4)了解MCU程序控制原理,实现指示灯/开关控制器的预期功能[实验步骤]( 1 ) 在ISIS中画出电路原理图, 并在编辑环境中添加相应的元器件 .( 2 )在ISIS中编写汇编语言程序( 3 ) 利用ISIS 的汇编调试功能检查程序的语法和逻辑错误( 4 )观察仿真结果,检查程序和电路的正确性【实验示意图】【实验源程序】#include <reg51.h> 无效延迟(int时间){整数 k,j;for(;time<0;time--) {for(k=100;k<0;j--) for(j=500;j<0;j--); }}无效初始化(){P1=0x00;延迟(20);P1=0xff;延迟(20);P1=0x00;延迟(20);P1=0xff;延迟(20);P1=0x00;延迟(20);P1=0xff;延迟(20);}无效的主要(){在里面();P1=0x00;延迟(20);P1=0xff;延迟(20);而(1){P1=P2 ;}}[实验结果]阐明点击运行,8个LED 一起闪烁3次。
单片机原理及应用实验报告2单片机原理及应用实验报告2实验报告:单片机原理及应用实验一、实验目的1、了解单片机的基本工作原理;2、掌握单片机的编程方法和编写汇编语言程序的能力;3、学习单片机的应用实验。
二、实验原理单片机是一种集成电路,内部包含了中央处理器、存储器和各种输入输出端口。
单片机的工作原理是通过对输入信号的处理和对输出信号的控制来实现各种功能。
单片机的编程方法一般采用汇编语言编写程序。
汇编语言是一种低级语言,可以直接对单片机进行操作。
通过编写汇编语言程序,可以实现各种功能,如控制LED灯的亮灭、控制电机的转动等。
本次实验主要通过控制LED灯的亮灭来演示单片机的应用。
在实验中,我们将使用汇编语言编写程序,通过编程来控制LED灯的亮灭。
三、实验步骤2、编写汇编语言程序:打开编程软件,进入编程界面,编写程序代码;3、编译程序:将编写好的程序进行编译,生成机器码;4、烧录程序:用编程工具将编译好的机器码烧录到单片机中;5、连接电路:使用面包板将单片机与LED灯连接起来;6、测试程序:将单片机的电源接通,观察LED灯的亮灭情况。
四、实验结果与分析经过以上步骤,我们成功地编写了汇编语言程序,并将程序烧录到了单片机中。
在实验中,我们观察到LED灯根据程序的控制产生了相应的亮灭效果。
实验结果表明,通过编程可以实现对单片机的控制,从而实现各种功能。
单片机在嵌入式系统、自动控制系统、家电等方面有着广泛的应用。
五、应用实例1、家居智能化控制:通过编程控制单片机,可以实现对家电的智能化控制。
例如,可以根据日出日落时间控制窗帘的开闭,根据室内温度控制空调的开关等。
2、工业自动化:在工业生产中,单片机可以用来控制各种设备和机械,实现生产线的自动化控制。
例如,可以根据产品的规格和数量,自动调整机械的工作速度和工作时间。
3、智能交通系统:在交通领域,单片机可以用来控制信号灯、道闸等设备,实现交通流量的控制。
例如,可以根据道路的拥堵程度和车辆的行驶速度,调整信号灯的红绿灯时间,从而达到交通畅通的目的。
《单片机原理与应用》课程实验报告院系:班级:学生:学号:指导教师:设计时间:哈尔滨工业大学1 实验的目的、内容和设备1.1 实验的目的单片机综合实验的目的是训练单片机应用系统的编程及调试能力,通过对一个单片机应用系统进行系统的编程和调试,掌握单片机应用系统开发环境和仿真调试工具及仪器仪表的实用,掌握单片机应用程序代码的编写和编译,掌握利用单片机硬件仿真调试工具进行单片机程序的跟踪调试和排错方法,掌握示波器和万用表等杆塔工具在单片机系统调试中应用。
1.2 实验内容实验的内容是利用APP001开发板实现一个温度测量显示和控制的单片机应用系统,利用APP001开发板上的温度传感器测量温度,通过键盘输入一个稳定设定值,当测量温度高于设定温度时发出声音报警,开启散热风扇开关,并在LCD上显示实时温度值,设定温度值和散热风扇的开关状态,其中日期和时间利用单片机的定时器来产生,并能通过键盘来设定。
通过该实验学习和掌握以下的内容:1)MPLAB开发环境的使用,程序编写和排错及软件仿真2)利用MPLAB和ICD2对程序进行在线仿真和调试3)使用万用表和示波器等仪器对硬件系统进行测量和调试4)PIC18F452单片机的I/O和PWM驱动及编程方法5)PIC18F452单片机LCD和键盘接口及编程方法6)PIC18F452单片机的USART编程及与PC机的通讯方法7)利用Timer1外接32.768kHz的晶振产生RTC1.3 实验设备1)运行MPLAB的PC机2)示波器、万用表3)直流电源4)ICD2仿真器5)APP001多功能实验板2 总体设计2.1 硬件总体设计系统组成方案图1系统框图2.2 软件总体设计图2主程序框图图3 中断程序框图3 硬件设计1)散热风扇开发输出控制:实验中我们利用一个LED来模拟风扇状态,当散热风扇开关打开时,LED被点亮发光,当散热风扇关闭时,LED不发光。
开发板上的指示灯D11由RB2,低电平亮,高电平灭。
单片机原理及应用实验报告一、引言单片机(Microcontroller Unit,简称MCU)是一种集成电路芯片,内部集成了微处理器、存储器、输入输出接口和定时器等功能模块,广泛应用于各种电子设备和控制系统中。
本实验报告将介绍单片机的基本原理以及其在实际应用中的实验。
二、单片机的基本原理单片机的核心是微处理器,它负责执行程序指令。
单片机的存储器包括程序存储器(Program Memory)和数据存储器(Data Memory)。
程序存储器用于存储程序指令,数据存储器用于存储数据和中间结果。
单片机通过输入输出接口与外部设备进行通信,通过定时器来控制程序的执行时间。
三、单片机的应用实验1. LED闪烁实验LED闪烁实验是单片机入门实验的经典案例。
通过控制单片机的输出口,周期性地改变LED的状态,从而实现LED的闪烁效果。
这个实验可以帮助初学者了解单片机编程的基本概念和操作。
2. 温度测量实验温度测量实验可以通过连接温度传感器和单片机的输入口,实时地获取环境温度,并通过数码管或LCD显示器来显示温度数值。
这个实验可以帮助学生掌握单片机输入输出口的使用方法,以及模拟信号的处理和显示。
3. 蜂鸣器控制实验蜂鸣器控制实验可以通过连接蜂鸣器和单片机的输出口,实现对蜂鸣器的控制。
通过编写程序,可以使蜂鸣器发出不同的声音,如单调的蜂鸣声、警报声等。
这个实验可以帮助学生学习单片机的数字输出和PWM(脉冲宽度调制)技术。
4. 电机控制实验电机控制实验可以通过连接电机和单片机的输出口,实现对电机的控制。
通过编写程序,可以控制电机的转动方向和速度。
这个实验可以帮助学生理解单片机输出口的电流和电压特性,以及电机的控制原理。
5. 红外遥控实验红外遥控实验可以通过连接红外接收器和单片机的输入口,实现对红外遥控信号的解码和处理。
通过编写程序,可以实现对各种红外遥控器的解码和按键处理。
这个实验可以帮助学生学习单片机输入口的中断处理和红外通信原理。
单⽚机原理及应⽤实验报告单⽚机原理及应⽤实验报告⼀、选题意义 (2)⼆、单⽚机AT89C52结构介绍 (2)三、实验内容 (3)四、实验步骤 (3)五、在uvision环境下软件程序设计 (4)六、Proteus仿真 (6)七、实验器件 (9)⼋、焊接电路实物图 (10)九、实验⼼得 (10)⼀、选题意义1.熟悉使⽤AT89C52单⽚机进⾏系统设计;2.通过对单⽚机⼯作原理的深⼊理解,运⽤所学知识解决实际问题;3.通过实际系统的设计,加深对单⽚机的微计算机系统设计的理解和掌握。
⼆、单⽚机AT89C52结构介绍AT89C52是⼀个低功耗,⾼性能CMOS 8位单⽚机,⽚内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采⽤ATMEL公司的⾼密度、⾮易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,256×8bit内部RAM,低功耗空闲和省电模式,32个双向I/O⼝,3个16位可编程定时/计数器,全双⼯UART串⾏中断⼝线,2个外部中断源。
图2-2是AT89C52引脚图。
图2-2 A T89C52引脚图三、实验内容本实验利⽤单⽚机的计数器原理,通过采⽤protuas仿真软件来模拟实现。
利⽤AT89C52单⽚机芯⽚实现计数功能(0~10)并显⽰当前计数值,还能够实现秒表的启动/暂停,复位功能。
四、实验步骤1、先确定好设计的内容,⽤protuas设计电路图。
2、编写代码,编译并调试正确。
将⽣成的.hex⽂件加载到单⽚机中,运⾏电路并调试使电路功能正确。
3、设计完成后,制作计数器实物,并使得运⾏正确。
五、在uvision环境下软件程序设计#include#define uchar unsigned char#define uint unsigned intsbit K1 = P3^7;uchar i, Second_Counts, Key_Flag_Idx;bit Key_State;char DSY_CODE[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // delayvoid DelayMS(uint time){while(time--){uchar t;for(t=0;t<120;t++);}}// handle button events ,处理按键事件void Key_Event_Handle(){if(Key_State == 0) //Trigger key function when key pressed{Key_Flag_Idx = (Key_Flag_Idx + 1) % 3;switch(Key_Flag_Idx){case 1: EA = 1;ET0 = 1; TR0 = 1; break;case 2: EA = 0;ET0 = 0; TR0 = 0; break;case 0: P0 = 0x3f; P2 = 0x3f;i = 0;Second_Counts = 0;}}}// main ,主程序void main(){P0 = 0x3f; //initial state of LED 显⽰00P2 = 0x3f;i = 0;Second_Counts = 0;Key_Flag_Idx = 0; //times of the press (Firstr, second, third respectively stand for different meanings)按键次数Key_State = 1; // 按键状态TMOD = 0x01; //T0 work in mode 1 定时器0⽅式1TH0 = (65536 - 50000) / 256; //Set 50ms timer 定时器0:50msTL0 = (65536 - 50000) % 256;while(1){if(Key_State != K1) //Key is pressed or released{DelayMS(10);Key_State = K1; //update key stateKey_Event_Handle();}}}// T0 interrupt functionvoid DSY_Refresh() interrupt 1{TH0 = (65536 - 50000) / 256; //恢复定时器0初值TL0 = (65536 - 50000) % 256; if(++i == 2) //100ms //50ms*2=0.1s转换状态{i = 0;Second_Counts++;P0 = DSY_CODE[Second_Counts / 10];P2 = DSY_CODE[Second_Counts % 10];if(Second_Counts == 100)Second_Counts = 0; //满100(10s)后显⽰00 }}六、Proteus仿真1、初始值2、按下第⼀次按钮,记时截图3、按下第⼆次按钮,计数器停⽌4、按下第三次按钮,数值清零初始七、实验器件⼋、焊接电路实物图九、实验⼼得通过这次试验,让我对单⽚机有了新的认识。
单片机原理及应用实验
单片机是指一种集成了微处理器核心、存储器、输入输出功能和系统时钟等组件的微型计算机系统。
它通常由中央处理器(CPU)、存储器、输入输出设备和系统总线等组成。
单片机的工作原理是通过执行储存在存储器中的程序指令来完成特定的计算和操作。
单片机的应用非常广泛,可以应用于各种电子设备中。
以下是一些典型的单片机应用:
1. 控制系统:单片机可以用于工业控制系统、家庭自动化系统等场景中,通过接收输入信号并根据预设的逻辑程序来控制输出设备的状态,实现各种控制功能。
2. 电子设备:单片机可以应用于各种电子设备中,如电视机、音响、空调等。
它可以接收远程控制信号,并根据信号进行相关功能的操作。
3. 信息处理:单片机可以用于数据处理和信息传输领域,如数据采集和传输、数据处理和分析等。
4. 通信系统:单片机可以用于各种通信系统中,如电话、传真机、无线通信设备等。
它可以通过与外部设备的通信来实现相应的通信功能。
5. 汽车电子系统:单片机可以应用于汽车电子系统中,如发动机控制单元(ECU)、车载娱乐系统、车载导航系统等。
它可
以控制汽车各个系统的运行和协调。
6. 医疗设备:单片机可以应用于各种医疗设备中,如心电图机、血压计、血糖仪等。
它可以接收生理信号,并进行相应的处理和分析。
总之,单片机在电子领域有着广泛的应用,可以实现各种控制、处理和通信功能。
它为电子设备的智能化和自动化提供了重要的支持。
实验一系统认识及基本程序设计实验一、实验目的1. 学习Keil 集成开发环境的操作;2. 熟悉TD-51 系统板的结构及使用,熟悉51指令系统;3.掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解;4.学习查表程序的设计方法,进一步熟悉51 的指令系统。
二、实验设备PC机一台,TD-NMC+教学实验系统。
三、实验步骤⑴编写实验程序,经编译、链接无误后,启动调试功能;⑵观察实验现象,并分析原因;⑶按复位键退出调试状态。
四、实验内容1. 将BCD 码整数0~255 存入片内RAM 的20H、21H、22H 中,然后转换为二进制整数00H~FFH,保存到寄存器R4 中。
修改20H、21H、22H 单元的内容,如:00H,05H,08H;观察实验结果。
参考程序:;==============================================================; 文件名称:; 功能描述: BCD整数转换为二进制整数(8位, 范围从00H--FFH);==============================================================ORG 0000HLJMP MAINORG 0100HMAIN: MOV R0, #20H ;BCD存放高位地址MOV R7, #03H ;BCD码0--255, 最多3位CLR AMOV R4, ALP1: MOV A, R4MOV B, #0AHMUL AB ;乘10ADD A, @R0 ;加下一位的值INC R0 ;指向下一单元MOV R4, A ;结果存入R4DJNZ R7, LP1 ;转换未结束则继续SJMP MAIN ;设置断点, 观察实验结果R4中的内容END2. 将16 位二进制整数存入R3R4 寄存器中,转换为十进制整数,以组合BCD 形式存储在RAM 的20H、21H、22H 单元中。
参考程序:;=============================================================; 文件名称:; 功能描述: 二进制整数(16位)转换为十进制整数(组合BCD);=============================================================; 0--FFFFH(R3R4)==>0--65535ORG 0000HLJMP MAINORG 0100HMAIN: MOV R0, #22H ;转换结果低位地址MOV A, R0PUSH ACC ;ACC表示累加器A的直接地址MOV R7, #03HCLR ALP1: MOV @R0, A ;结果存储地址清零DEC R0DJNZ R7, LP1POP ACCMOV R0, AMOV R7, #16LP2: PUSH ACCCLR CMOV A, R4 ;R4中为二进制数的低位RLC AMOV R4, AMOV A, R3 ;R3中为二进制数的高位RLC AMOV R3, AMOV B, #03HLP3: MOV A, @R0ADDC A, @R0 ;执行乘2操作DA A ;十进制调整MOV @R0, A ;结果保存DEC R0DJNZ B, LP3POP ACCMOV R0, ADJNZ R7, LP2LJMP MAIN ;设置断点观察结果, 可进行下一次转换END3. 通过查表的方法将16 进制数转换为ASCII 码;参考程序:;============================================================= ; 文件名称:; 功能描述: 查表程序设计, 将十六进制数0~F通过查表的方法; 转换为ASCII码;============================================================= ORG 0000HLJMP MAINORG 0100HMAIN: MOV DPTR, #ASCTAB ;表格首地址送DPTRMOV A, R7 ;R7中为待转换的数ANL A, #0FH ;取低4位MOVC A, @A+DPTR ;查表MOV R5, A ;低4位转换结果送R1MOV A, R7ANL A, #0F0H ;取待转换数的高4位SWAP A ;高4位与低4位交换MOVC A, @A+DPTR ;查表MOV R6, A ;高4位转换结果送R2SJMP MAIN ;设置断点观察结果ASCTAB: DB 30H, 31H, 32H, 33H, 34HDB 35H, 36H, 37H, 38H, 39HDB 41H, 42H, 43H, 44H, 45H, 46HEND4. 通过查表的方法实现y=x2,其中x为0~9 的十进制数,以BCD码表示,结果仍以BCD 码形式输出。
参考程序:;==============================================================; 文件名称:; 功能描述: 查表程序, 用程序实现Y=X*X, X为0到9的十进制数,; 用BCD码(00H到09H)表示, 将X的平方, 即Y也以BCD码; 的形式保存到R1中.;==============================================================ORG 0000HLJMP MAINORG 0100HMAIN: MOV DPTR, #SQR ;取表格首地址MOV A, R7 ;要计算的值MOVC A, @A+DPTR ;查表MOV R6, A ;结果保存SJMP MAINSQR: DB 00H, 01H, 04H, 09H, 16HDB 25H, 36H, 49H, 64H, 81HEND实验二片内I/O口及中断应用实验一、实验目的了解P1 口作为输入输出方式使用时,CPU 对P1 口的操作方式。
了解MCS-51 单片机的中断原理,掌握中断程序的设计方法。
二、实验设备PC机一台,TD-NMC+教学实验系统,连接线若干三、实验步骤⑴按实验内容要求完成硬件连线;⑵编写实验程序,经编译、链接无误后,启动调试功能;⑶观察实验现象,并分析原因;⑷按复位键退出调试状态。
四、实验内容1. 片内I/O口应用实验P1 口是8 位准双向口,每一位均可独立定义为输入输出。
编写实验程序,将P1 口的低4 位定义为输出,高4 位定义为输入,数字量从P1 口的高4 位输入,从P1 口的低4 位输出控制发光二极管的亮灭。
;============================================================; 文件名:; 功能说明: 数字量输入输出实验, P1口高4位输入, 低4位输出;============================================================ORG 0000HLJMP STARTORG 0100HSTART: ORL P1, #0F0H ;P1口高四位为输入MOV A, P1 ;读P1口的值SWAP A ;A中高,低4位交换MOV P1, A ;输出到P1口SJMP STARTEND2. 片内中断系统实验⑴定时器中断单片机集成的定时器可以产生定时中断,利用定时器0 和定时器1,编写实验程序在及引脚上输出方波信号,通过示波器观察实验现象并测量波形周期。
改变计数值,重新运行程序,反复验证程序功能。
参考程序:;================================================================; 文件名:; 功能说明: 采用定时器的中断, 在与引脚上输出周期波形.;================================================================ORG 0000HLJMP STARTORG 000BHLJMP TIMER0ORG 001BHLJMP TIMER1ORG 0100HSTART: MOV P1, #0FFHMOV TH0, #0F8H ;初始化定时器0计数初值MOV TL0, #00HMOV TH1, #0F8H ;初始化定时器1计数初值MOV TL1, #00HMOV TMOD, #11H ;设置定时器工作模式为方式1MOV TCON, #50H ;启动定时器MOV IE, #8AH ;使能中断SJMP $TIMER0: CPL ;定时器0中断服务程序, 对引脚取反MOV TH0, #0F8H ;重新装入计数初值MOV TL0, #00HRETI ;中断返回TIMER1: CPL ;定时器1中断服务程序MOV TH1, #0F8HMOV TL1, #00HRETIEND⑵外部中断手动扩展外部中断INT0、INT1,当INT0 产生中断时,使LED8 亮8 灭闪烁4 次;当INT1 产生中断时,使LED 由右向左流水显示,一次亮两个,循环4 次。
先按KK1-,观察实验现象,然后按KK2-,观察实验现象。
51 单片机加入了中断系统,从而提高了CPU 对外部事件的处理能力和响应速度。
增强型单片机SST89E554RC 共有8 个中断源,即外部中断0(INT0)、定时器0(T0)、外部中断1(INT1)、定时器1(T1)、串行中断(TI 和RI)、定时器2(T2)、PCA 中断和Brown-out 中断。
参考程序:;======================================================================; 文件名:; 功能说明: 外部中断INT0, INT1操作.; 外部中断0: 使发光二极管闪烁4次.; 外部中断1: 使发光二极管由右向左流水显示, 一次亮两个LED.;======================================================================ORG 0000HLJMP STARTORG 0003HLJMP EINT0ORG 0013HLJMP EINT1START: MOV P1, #00HSETB IT0 ;定义外部中断0为边沿触发SETB EX0 ;使能外部中断0SETB IT1 ;定义外部中断1为边沿触发SETB EX1 ;使能外部中断1SETB EA ;使能总中断SJMP $EINT0: MOV R7, #04H ;外部中断0中断服务程序ELP0: MOV P1, #0FFHACALL DELAY ;调用延时程序MOV P1, #00HACALL DELAYDJNZ R7, ELP0RETIEINT1: MOV A, #03H ;外部中断1中断服务程序MOV R7, #10HILP1: MOV P1, ARL ARL AACALL DELAYDJNZ R7, ILP1RETIDELAY: MOV R6, #0FFH ;延时子程序DLP1: MOV R5, #0FFHDLP2: DJNZ R5, DLP2DJNZ R6, DLP1RETEND实验三定时器/计数器应用实验一、实验目的1.了解MCS-51 单片机定/计数器的工作原理与工作方式;2.掌握定时/计数器T0 和T1 在定时器和计数器两种方式下的编程;3.学习定时/计数器T2 的可编程时钟输出功能。