单片机原理与应用实验报告

合集下载

单片机原理与应用实验报告

单片机原理与应用实验报告

单片机原理与应用实验报告单片机是一种集成电路,可以在内部集成处理器、内存、输入/输出接口和时钟等多种功能,同时也可以通过编程实现各种应用。

单片机已经广泛应用于工业控制、家电控制、汽车电子、医疗设备等领域。

本实验旨在深入探究单片机的原理和应用,通过实验来加深对单片机的理解和认识。

实验原理单片机由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 计数显示器一、实验目的熟悉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只低电平驱动的发光二极管组成。

单片机原理与应用实验报告5——秒表定时器实验

单片机原理与应用实验报告5——秒表定时器实验

大连理工大学软件学院《单片机原理与应用》实验报告姓名:学号:班级:姓名:学号:班级:组号:实验箱编号:实验时间:月日实验室:嵌入式实验室实验台:Embest Edukit-III平台指导教师:侯刚成绩:实验五:秒表定时器实验一、实验目的和要求题目:秒表定时器实验实验目的1. 学习单片机的基本接口技术。

2. 学习74HC595、74HC138使用及与51单片机的控制方法。

实验要求1.通过按键控制,完成数码管的显示计数控制。

2. 用汇编语言设计程序,完成8个数码管的显示控制。

当按下INT 按钮时,数码管开始快速计时,高五位为秒数,低三位为ms 数,每1ms 刷新一次显示内容。

当再次按下INT 按钮时,停止计数。

二、实验原理和内容实验内容:用汇编语言设计程序,完成8个数码管的显示控制。

当按下INT 按钮时,数码管开始快速计时,高五位为秒数,低三位为ms 数,每1ms 刷新一次显示内容。

当再次按下INT 按钮时,停止计数。

实验原理:1.根据原理图,分析工作原理,有P0进行取段码,P2.0 P2.1 P2.2进行取位码。

2.使用定时器进行计时。

根据所给开发板上的晶振频率,计算出计时器所付初值,设置计时器TO在模式下工作,每次计时100ms后,转入数码管显示中断处理程序。

3.实验板为共阴极数码管显示,将对应的显示0~9的电信号依次存储在“数组表”中。

4.使用key1,key2两个按键,按下key1,开始计时。

按下key2,计时停止。

5.根据实验要求,采用T0,T1两个定时器,其中T0用来增加时间显示,T1为按暂停键时为LED显示管循环上电所用。

6.每部分中断程序用寄存器间接寻址的方式获取显示数字的电信号量。

并进行循环上电,保证数字的亮度。

三、主要仪器设备及软件编程环境主要仪器:计算机编程软件,51电路开发板编程环境:uVision2 ,progisp烧写软件四、实验步骤与编程实验步骤:编写代码,编译,调试,烧写,完成实验。

单片机原理及应用实验二报告

单片机原理及应用实验二报告

单片机原理及应用实验二报告实验二:单片机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次。

北京信息科技大学单片机原理与应用实验4实验报告

北京信息科技大学单片机原理与应用实验4实验报告

实验报告课程名称单片机原理与应用实验项目串行通信指导教师学院信息与通信工程 _ 专业电子信息工程班级/学号学生姓名实验日期成绩______________________一、实验目的1、掌握串行口编程控制方法;2、掌握串口调试和仿真器的烧写方法;3、综合应用定时器、串行接口及中断等。

二、实验内容1、编写一个程序, 利用单片机的串行口向PC机循环发送0x55。

三、编写一个程序, 每当串行口接收到PC机发送的0x55(ASCII码为字母U)时, 返回一个0x41(ASCII码为字母A)。

在PC机一端, 以接收窗口收到0x41为完成(可以循环此过程)。

四、PC机向单片机发送0—9(无需编程, 在DPFlash的串口调试软件下配置即可), 单片机在接收到数据后送数码管显示;同时, 单片机每隔0.5S向PC机发送a—z的ASCII码(0x61~0x7a, 每秒发2个), 在PC机的串口调试软件中显示结果。

五、实验步骤1、新建工程, 编写程序, 实现通过串行口向PC机发送0x55(可采用串口模式1, 波特率2400), 注意工程的环境变量设置, Target窗口下code和xdata memory设置为空, 无须加入startup.A51, Output窗口下选中CreateHex选项, 编译生成HEX文件。

2、阅读网上的实验指导书及下面的说明, 掌握DPFlash软件的使用, 掌握仿真器的两种工作方式使用。

仿真器拨到load方式, 打开DPFlash软件,文件菜单中选择装载, 加入编译生成的*.HEX文件, 点击编程按扭, 使用默认配置即可, 烧入仿真器的Flash中。

3、关闭电源, 将仿真器拨到run方式, 并将连接在仿真器上的PC串口通信电缆拔下, 然后与实验仪上的单片机串口相连。

开机复位后将自动运行单片机程序, 在PC机的DPflash软件中的串口调试器下观察结果。

编写程序实现单片机接收到PC机发来的0x55后回送0x41,在串口调试软件的处理字符串中发送0x55,可以选中下栏的自动发送单选框来实现每隔1S发送一次, 观察结果。

单片机原理及应用的实验报告

单片机原理及应用的实验报告

单片机原理及应用的实验报告1. 引言在现代电子领域中,单片机技术的应用越来越广泛。

单片机(Microcontroller)是一种集成电路芯片,具有完整的处理器系统和外围设备。

它拥有小巧、灵活和强大的特点,适用于各种嵌入式系统的设计和应用。

本实验报告旨在介绍单片机的原理及其在实际项目中的应用。

2. 单片机的原理单片机是一种嵌入式微处理器,通常由中央处理器(CPU)、存储器、输入输出接口(I/O)、定时器、串行通信接口等部分组成。

其原理如下:•中央处理器(CPU):单片机的核心部件,负责执行各种指令和算术逻辑运算。

•存储器:包括随机存储器(RAM)和只读存储器(ROM),用于存储程序和数据。

•输入输出接口(I/O):用于与外部设备进行数据交互,如控制LED 灯、读取传感器数据等。

•定时器:用于产生精确的时间延时和定时触发操作。

•串行通信接口:用于和其他设备进行串行数据通信。

3. 单片机的应用单片机具有广泛的应用领域,下面列举了几个常见的应用实例:1.家电控制系统:使用单片机可以实现对家电设备的智能控制,如空调温度控制、灯光调节等。

2.汽车电子系统:单片机在汽车电子控制单元(ECU)中,用于控制发动机、变速器、制动系统等。

3.工业自动化:单片机可以应用于工业自动控制系统,如生产线上的自动化控制、温度监控等。

4.电子游戏机:单片机在电子游戏机中用于处理游戏逻辑和玩家输入。

5.智能穿戴设备:使用单片机可以实现智能手表、智能眼镜等穿戴设备的功能。

4. 单片机实验为了更好地理解单片机的原理和应用,我们进行了以下实验:4.1 LED闪烁实验这个实验旨在通过编程控制单片机,使LED灯以一定的频率闪烁。

实验步骤: 1. 连接单片机和LED灯,将LED的正极连接到单片机的IO口,负极连接到接地。

2. 编写程序,配置IO口为输出模式,并设置IO口的高低电平来控制LED的亮灭。

3. 将程序下载到单片机,运行程序。

4. 观察LED是否按照预期频率闪烁。

单片机原理及应用实验报告2

单片机原理及应用实验报告2

单片机原理及应用实验报告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、按下第三次按钮,数值清零初始七、实验器件⼋、焊接电路实物图九、实验⼼得通过这次试验,让我对单⽚机有了新的认识。

《单片机原理与应用》实验报告09-ADC电压采样实验

《单片机原理与应用》实验报告09-ADC电压采样实验

《单片机原理与应用》实验报告实验序号:09 实验项目名称: AD实验学号姓名专业、班实验地点实验楼1#416 指导教师实验时间2015-15-09 一、实验目的1.了解KEIL C51 集成开发环境及软件仿真;2. 掌握单片机烧写方法;3. 认识AD芯片(PCF8591);4. 认识光敏电阻和热敏电阻。

二、实验设备(环境)及要求硬件:PC机,51单片机开发板;软件:PC机操作系统windows XP,KEIL C51集成开发环境。

三、实验内容与步骤利用PCF8591芯片,读取热敏电阻温度或光敏电阻的光照强度,把它显示上数码管上。

四、实验结果与数据处理五、分析与讨论当使热敏电阻温度或光敏电阻的光照强度改变时,数码管显示的数字即发生变化六、教师评语成绩签名:日期:/*=======================================================文件名: PCF8591_AD.c描述: AD采集温度,光照强度变化-----------------------------------------------------------------------------------------------------------*/#include <reg52.h>#include "digitron_drv.h"#include "IIC_drv.h"#include "PCF8591_AD_drv.h"/**********************************************功能:数码管显示输入参数:Data: 数据输出参数:无返回值:**********************************************/void Display(unsigned int Data1,unsigned int Data2){DigShowNumber(8,Data1/100,0);DigShowNumber(7,Data1%100/10,0);DigShowNumber(6,Data1%10,0);DigShowNumber(3,Data2/100,0);DigShowNumber(2,Data2%100/10,0);DigShowNumber(1,Data2%10,0);}/*---------------------------------------------------------------------------------------------------------*//**********************************************主函数**********************************************/void main(){unsigned char model;unsigned char hot,light;while(1){model=model_set(anlog_output_off,anlog_model_0,auto_increment_off,anlog_channel_0);hot = ReadIIC(0x90,model);model= model_set(anlog_output_off,anlog_model_0,auto_increment_off,anlog_channel_1);light = ReadIIC(0x90,model);Display(hot,light);}}。

单片机原理及应用 实验

单片机原理及应用 实验

单片机原理及应用实验
单片机是指一种集成了微处理器核心、存储器、输入输出功能和系统时钟等组件的微型计算机系统。

它通常由中央处理器(CPU)、存储器、输入输出设备和系统总线等组成。

单片机的工作原理是通过执行储存在存储器中的程序指令来完成特定的计算和操作。

单片机的应用非常广泛,可以应用于各种电子设备中。

以下是一些典型的单片机应用:
1. 控制系统:单片机可以用于工业控制系统、家庭自动化系统等场景中,通过接收输入信号并根据预设的逻辑程序来控制输出设备的状态,实现各种控制功能。

2. 电子设备:单片机可以应用于各种电子设备中,如电视机、音响、空调等。

它可以接收远程控制信号,并根据信号进行相关功能的操作。

3. 信息处理:单片机可以用于数据处理和信息传输领域,如数据采集和传输、数据处理和分析等。

4. 通信系统:单片机可以用于各种通信系统中,如电话、传真机、无线通信设备等。

它可以通过与外部设备的通信来实现相应的通信功能。

5. 汽车电子系统:单片机可以应用于汽车电子系统中,如发动机控制单元(ECU)、车载娱乐系统、车载导航系统等。

它可
以控制汽车各个系统的运行和协调。

6. 医疗设备:单片机可以应用于各种医疗设备中,如心电图机、血压计、血糖仪等。

它可以接收生理信号,并进行相应的处理和分析。

总之,单片机在电子领域有着广泛的应用,可以实现各种控制、处理和通信功能。

它为电子设备的智能化和自动化提供了重要的支持。

单片机原理与应用实验报告——温度测量显示及设定

单片机原理与应用实验报告——温度测量显示及设定

单片机原理与应用实验报告——温度测量显示及设定实验目的:掌握单片机温度测量的原理和方法,了解温度传感器的工作原理,学会通过单片机控制显示屏显示温度,并可以通过按键设定温度。

实验器材:1.单片机(如STC89C52)2.温度传感器(如DS18B20)3.电阻、电容等基本元件4.1602液晶显示屏5.按键开关6.杜邦线、面包板等实验原理:1.单片机温度测量原理:单片机温度测量原理主要是通过温度传感器将温度转化为电压信号,然后单片机通过模拟口接收信号并进行数字转换得到温度数值。

2.温度传感器工作原理:温度传感器内部有一个温度敏感元件,它能根据温度的变化产生相应的电压信号,然后通过数字转换将电压信号转化为数值。

3.单片机与1602显示屏的连接:将1602显示屏的数据线接到单片机的IO口,通过控制IO口输出不同的信号来控制1602的显示。

实验步骤:1.连接电路:将单片机、温度传感器、1602显示屏等元件连接在一起,确保电路正确连接。

2.编写程序:编写单片机程序,根据单片机型号和编程软件的不同,具体编写方式可能会有所不同,但主要目的是通过单片机读取温度传感器的值,并将其转化为温度,最后通过1602显示屏显示温度。

3.调试程序:4.实验数据:在实验过程中需要记录下实验数据,包括温度传感器的电压值、转化的温度值等。

5.结果分析:根据实验数据和实验结果进行分析,对实验结果进行分析和总结。

实验总结:通过本次实验,我掌握了单片机温度测量的原理和方法,了解了温度传感器的工作原理,并成功通过单片机控制1602显示屏显示温度。

通过实验,我体会到了实验设计和实验过程中的困难和挑战,但我也学到了很多知识和技能,提高了实验能力和动手能力。

在今后的学习和工作中,我会继续努力,不断学习和探索,提高自己的实验能力和创新能力。

单片机原理及应用实验报告

单片机原理及应用实验报告
EA=1;
ET0=1;
TR0=1;
while (1)
{
ScanKey0( );
keyscan( ); //按键扫描
time_pro( ); //时间处理
display( ); //显示时间
}
}
实验结果:
数码管可以显示时钟的时分秒,按下按键1,可以在时钟的时分秒为切换,按下按键2,可以在选择的任意位+1,从而实现时间的修改。
实验接线图:
实验程序:
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dispcode[ ]={0xC0,0xF9,0xA4,0xB0,0x99,
0x92,0x82,0xf8,0x80,0x90};
loop:
Dsplay();
goto loop;
}
void Dsplay() //动态扫描显示
{uchar i;
for(i=0,P1=0x01;i<6;i++)
{ P0=cDsCode[mDS[i]];//输出段
Delayms(2);
P1=P1<<1; //选通下一位
}
P1=0x00; //关闭位选通
实验五:存储器系统设计
实验目的:掌握存储器工作原理及特点。通过该实验让学生掌握单片机存储器系统的硬件设计,存储器在系统中的地址分配,地址总线、数据总线与控制总线的连接。
实验内容:1.在实验板上将一片6264RAM芯片设计成8K的外部数据存储器,地址为0000H—1FFFH。

《单片机原理及应用》实验报告

《单片机原理及应用》实验报告

《单片机原理及应用》实验报告一、实验目的本次实验旨在深入理解单片机的工作原理,掌握其基本的编程和应用方法,通过实际操作提高我们对单片机系统的设计和调试能力。

二、实验设备1、计算机一台2、单片机开发板一套3、下载线一根4、相关软件,如 Keil C51 等三、实验原理单片机是一种集成在一个芯片上的微型计算机,它包含了中央处理器(CPU)、存储器(ROM、RAM)、输入输出接口(I/O 口)等基本组件。

通过编写程序,可以控制单片机的各个引脚输出高低电平,实现对外部设备的控制和数据采集。

单片机的工作原理是基于时钟信号,按照程序指令的顺序依次执行操作。

程序通常使用 C 语言或汇编语言编写,经过编译后下载到单片机的存储器中,由单片机的 CPU 读取并执行。

四、实验内容1、点亮单个 LED 灯首先,我们将单片机的一个 I/O 口与一个 LED 灯相连。

通过编写程序,设置该 I/O 口输出高电平,使 LED 灯点亮;输出低电平,使 LED 灯熄灭。

程序代码如下:```cinclude <reg51h> //包含 51 单片机的头文件void main(){P1_0 = 1; //设置 P10 口为高电平,点亮 LED 灯while(1);//无限循环,保持 LED 灯常亮}```2、流水灯实验在这个实验中,我们使用多个 LED 灯,通过依次控制每个 LED 灯的点亮和熄灭,实现流水灯的效果。

程序代码如下:```cinclude <reg51h>void delay(unsigned int i) //延时函数{unsigned int j, k;for (j = 0; j < i; j++)for (k = 0; k < 125; k++);}void main(){unsigned char led ={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};//定义 LED 灯的控制码unsigned char i;while (1){for (i = 0; i < 8; i++){P1 = ledi; //依次输出控制码,点亮相应的 LED 灯delay(500);//延时一段时间}}}```3、按键控制 LED 灯我们将一个按键连接到单片机的一个I/O 口,通过检测按键的状态,控制 LED 灯的亮灭。

单片机原理与应用实验报告

单片机原理与应用实验报告

单片机原理与应用实验报告摘要:本实验报告主要介绍了单片机的原理及其在实际应用中的一些常用实验。

首先简要介绍了单片机的基本原理和工作方式,然后详细说明了几个单片机应用实验,包括LED灯控制、数码管显示和温度测量等。

通过这些实验的学习和实践,我们更好地理解了单片机的原理和应用。

1.引言单片机是一种完整系统集成在一个芯片上的微型计算机,具有存储器、时钟、输入输出接口以及运算器等功能。

随着科技的不断发展,单片机在各个领域得到了广泛的应用,例如家电控制、通信、仪器设备等。

本实验主要通过一系列实验来深入理解单片机的原理和应用。

2.单片机基本原理单片机是由微处理器、存储器、I/O接口和时钟电路组成的,其工作原理如下:首先,根据程序存储器中的指令,将指令送到控制器中进行译码和执行;然后,通过数据总线将数据从存储器中读取到寄存器中进行运算;最后,将结果通过I/O接口送出。

3.实验一:LED灯控制实验目的:通过控制单片机的I/O接口,控制LED灯的亮灭。

实验原理:单片机的I/O接口是与外部设备进行数据交流和控制的重要通道。

通过控制I/O接口的高低电平,可以实现对外部设备的控制。

本实验中,我们通过控制I/O接口的高低电平,实现了对LED灯的亮灭控制。

实验步骤:1)连接电路:将LED灯的一端连接到单片机的I/O口,另一端接地。

2)编写程序:使用C语言编写程序,设置相应的I/O口为输出并控制其高低电平。

4)调试程序:通过观察LED灯的亮灭情况,调试程序,确保LED灯的控制正确。

4.实验二:数码管显示实验目的:通过控制单片机的I/O接口,实现对数码管的数字显示。

实验原理:数码管由多个LED灯组成,通过控制不同的LED灯亮灭,可以实现对数字的显示。

本实验中,我们通过控制单片机的I/O接口,将相应的LED灯控制为亮或灭,从而实现数字的显示。

实验步骤:1)连接电路:将数码管的共阴极连接到单片机的I/O口,并用电源提供共阳极的电源。

MCS51单片机原理及应用 实验报告

MCS51单片机原理及应用  实验报告

单片机原理与应用实验报告学校:合肥工业大学姓名:吕增威学号:班级:计算机科学与技术08-03班目录前言 ------------------------3 第一章 MC51 单片机原理及应用软件实验实验1:系统认识实验--------------------6实验6:数据排序实验(验证性)---------- 11第二章 MC51 单片机原理及应用硬件实验实验1:广告灯实验----------------------15实验2:P1 口实验(验证性)-------------21实验16:串口转并口实验 ----------------32 实验心得与体会---------------37前言一.单片机原理实验的任务单片机原理实验是单片机原理及应用课程的一部分,它的任务是:1.通过实验进一步了解和掌握单片机原理的基本概念、单片机应用系统的硬件设计及调试方法。

2.学习和掌握单片机应用系统程序设计技术。

3.提高应用计算机的能力及水平,提高逻辑动手能力。

二.实验设备单片机实验所使用的设备由计算机、单片机实验开发系统(,其中计算机是软件开发平台,主要完成程序编辑、编译、下载程序等任务;单片机实验开发系统是硬件开发平台,是基于51/196 单片机的扩展实验系统。

计算机和单片机实验开发系统之间是通过RS232 串行接口进行通信的。

单片机实验开发系统配有开关电源、单片机、晶振、存储器、可编程并行接口芯片、键盘显示控制芯片、24 键键盘、六位LED 数码管显示、A/D 及D/A 转换芯片、简单输出口2个、简单输入口1 个、逻辑电平输入开关、发光二极管显示电路,并配有小直流电机、步进电机、继电器、音响等驱动电路。

在计算机软件的控制下可完成单片机基本实验及综合3设计性实验项目。

所有的MCS51 单片机原理及应用课程实验都是在这套实验系统上完成的。

Keil与Proteus的联合使用: Keil C51 6.02的使用:1.打开Keil,新建一个程序文件(File--New),在上面输入要调试的程序,保存为*.asm格式;2.新建一个工程(project--Newproject),保存,在CPU选项了选择Atmel--AT89C51,点击确定,在弹出的选项框中选择“否”。

单片机原理及应用实验报告

单片机原理及应用实验报告

单片机原理及应用实验报告单片机是一种集成了微处理器核心、存储器、输入输出接口和时钟电路等基本功能于一芯片上的微型计算机系统。

它具有体积小、功耗低、性能强大、易于编程等特点,广泛应用于电子产品中。

本文将介绍单片机的原理及应用,并通过实验来验证其功能。

一、单片机的原理单片机的主要组成部分包括:1.CPU(中央处理器):负责执行指令、控制程序运行和数据处理等任务。

2.存储器:包括程序存储器(ROM)和数据存储器(RAM),用于存放程序指令和数据。

3.输入输出接口:负责与外部设备进行信息交换,包括数字输入输出口、模拟输入输出口和通信接口等。

4.时钟电路:提供时钟信号,用于控制指令的执行速度和计算机的工作节奏。

5.系统总线:用于连接CPU、存储器和输入输出接口等组件,实现数据传输和控制信号的传递。

单片机的工作原理如下:1.时钟信号通过时钟电路提供给CPU,指令从程序存储器中读取,经过解码后执行相应的操作。

2.CPU根据指令给出的地址从存储器中读取数据并进行运算,运算结果存放在数据存储器中。

3.输入输出接口负责将输入设备的信号转换为数字信号输入到CPU,将CPU的输出信号转换为合适的形式输出给外部设备。

4.单片机通过系统总线进行内部各组件的协调与控制,实现数据传输、地址传递和控制信号的传递。

二、单片机的应用单片机具有广泛的应用领域,包括电子产品、工业控制、通信系统、汽车电子、医疗仪器等。

下面以LED灯控制实验为例进行应用介绍。

1.实验目的:通过控制单片机的输出口控制LED灯的亮灭。

2.实验原理:单片机的输出口可以输出高电平(5V)和低电平(0V),通过控制输出口的电平来控制LED灯的亮灭。

3.实验器材:单片机开发板、面包板、LED灯、电阻等。

4.实验步骤:(1)将单片机开发板连接到电脑上,并用编程软件编写控制LED灯亮灭的程序。

(2)将LED灯的正极连接到单片机的输出口,负极接地。

(4)通过程序控制单片机的输出口电平,实现LED灯的亮灭。

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

单片机原理实验报告专业:计算机科学与技术学号:姓名:实验1 计数显示器【实验目的】熟悉Proteus仿真软件,掌握单片机原理图的绘图方法【实验内容】(1)熟悉Proteus仿真软件,了解软件的结构组成与功能(2)学习ISIS模块的使用方法,学会设置图纸、选元件、画导线、修改属性等基本操作(3)学会可执行文件加载及程序仿真运行方法(4)理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制【实验步骤】(1)观察Proteus软件的菜单、工具栏、对话框等基本结构(2)在Proteus中绘制电路原理图,按照表A.1将元件添加到编辑环境中(3)在Proteus中加载程序,观察仿真结果,检测电路图绘制的正确性【实验原理图】【实验源程序】#include <reg51.h>sbit P3_7=P3^7;unsigned char x1=0;x2=0;unsigned char count=0;unsigned char idata buf[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(int time){int k,j;for(;time<0;time--)for(k=200;k>0;k--)for(j=500;j<0;j--);}void init(){P0=buf[x1];delay(10);P2=buf[x2];delay(10);}void main(){init();while(1){x1=count/10;x2=count%10;P0=buf[x1];delay(10);P2=buf[x2];delay(10);if(P3_7==0)//{delay(10);while(!P3_7);if(count==99)count=0;elsecount=count +1; }}}【实验结果】说明该计数器的功能是,按下按下K1后,数码管LED1和LED2会显示出按键的按下次数,LED1表示个位,LED2表示十位。

当计数器达到99后再次按压K1按键,显示值从0重新开始。

实验2 指示灯开关控制器【实验目的】学习汇编语言的编程与调试方法【实验内容】(1)熟悉Proteus仿真软件,了解软件的结构组成与功能(2)学习汇编语言的程序设计方法(3)学会在ISIS模块中进行汇编程序录入、编译和调试(4)理解单片机程序控制原理,实现指示灯/开关控制器的预期功能【实验步骤】(1)在ISIS中绘制电路原理图,并把对应元件添加到编辑环境中(2)在ISIS中编写汇编语言程序(3)利用ISIS的汇编调试功能检查程序的语法和逻辑错误(4)观察仿真结果,检测程序与电路的正确性【实验原理图】【实验源程序】#include <reg51.h>void delay(int time){int k,j;for(;time<0;time--) {for(k=100;k<0;j--) for(j=500;j<0;j--); }}void init(){P1=0x00;delay(20);P1=0xff;delay(20);P1=0x00;delay(20);P1=0xff;delay(20);P1=0x00;delay(20);P1=0xff;delay(20);}void main(){init();P1=0x00;delay(20);P1=0xff;delay(20);while(1){P1=P2 ;}}【实验结果】说明点击运行后,8个发光二极管一起闪烁3次。

然后根据开关K2K4K6K8控制对应发光二极管的亮灯状态,当按下K1K3K5K7中的其中一个是,该开关对应的二极管亮,除K2以外,K2不亮的原因我也不明白,代码没有问题,电路图也没有问题,我觉得是BUG。

实验3 指示灯循环控制【实验目的】熟悉uVision3编译软件,掌握C51编程与调试方法【实验内容】(1)熟悉uVision3编译软件,了解软件的结构组成与功能(2)学习C51语言的程序设计方法(3)学会在uVision3中进行C51程序录入、编译和调试(4)理解Proteus与Keil联合的仿真原理,实现LED指示灯循环控制功能【实验步骤】(1)在ISIS中绘制电路原理图,将相应元件添加到编辑环境中(2)在uVision3中编写C51程序(3)利用uVision3的编译调试功能检查程序的语法和逻辑错误(4)下载可执行文件,在Proteus中观察仿真结果,检验程序的正确性【实验原理图】【实验源程序】#include <reg51.h>void delay(int time){int k;for(;time>0;time--) for(k=1000;k>0;k--); }void init(){P1=0x00;delay(100);P1=0xff;delay(100);P1=0x00;delay(100);P1=0xff;delay(100);P1=0x00;delay(100);P1=0xff;delay(100);}void main(){int i,j;init();while(1){unsigned char k=0x01; for(i=7;i>0;i--){P1=~k;k=k*2;delay(100) ;}for(j=8;j>0;j--){P1=~k;k=k/2;delay(100) ;}}}【实验结果】说明程序开始后,8只发光二极管依次从上到下闪烁,然后再从下到上闪烁。

实验4 指示灯中断控制【实验目的】掌握行列式键盘的工作原理,熟悉C51语言的编程与调试【实验内容】(1)学习使用Proteus软件,掌握原理图绘图方法(2)学习Keil C软件,掌握C51程序编写与调试方法(3)理解行列式键盘的扫描工作原理,完成扫描程序的编写与调试(4)实现行列式键盘扫描中断控制功能【实验步骤】(5)在Proteus中绘制电路原理图,将相应的元件添加到编辑环境中(6)在Keil中编写C51程序,并使之编译通过(7)在Proteus中加载程序,观察仿真结果【实验原理图】【实验源程序】#include <reg51.h>sbit P3_7=P3^7;unsigned char x1=0;x2=0;unsigned char count=0;unsigned char idata buf[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71} ;charkey_buf[]={0x11,0x21,0x41,0x81,0x12,0x22,0x42,0x82,0x14,0x24,0x44,0x84,0x18,0x 28,0x48,0x88};void init();void key_scan();char key=0,k=0;bit int_flag;void delay(int time){int k,j;for(;time>0;time--)for(k=20;k>0;k--)for(j=500;j>0;j--);}void main(){init();while(1){P2=0x0f;P0=buf[k];}}void init(){IE=0xff;TCON=0x05;int_flag=0;P2=0x0f;P0=buf[0];}void key_scan() interrupt 1{ char i=16;char keycode=0;delay(1);while(INT0==1)return;EX0=0;keycode=P2 & 0xf0;P2=0xf0;keycode=0x0f & P2 | keycode;for(;i>0;i--){if(key_buf[i]==keycode){k=i ;EX0=1;return;}}EX0=1;}【实验结果】说明按下相应的1~F按键在LED的显示屏中会显示相应的按键对应的数字实验5 电子秒表显示器【实验目的】掌握中断和定时/计数器工作原理,熟悉C51编程与调试方法【实验内容】(1)学习使用Proteus软件,掌握原理绘制图的方法(2)学习Keil C软件,掌握C51程序编写与调试方法(3)理解定时器的工作原理,完成定时中断程序的编写与调试(4)深入理解定时中断的编程【实验步骤】(8)在Proteus中绘制电路原理图,将相应的元件添加到编辑环境中(9)在Keil中编写C51程序,并使之编译通过(10)在Proteus中加载程序,观察仿真结果【实验原理图】【实验源程序】#include <reg51.h>unsigned char min=0,sec=0,count=0;unsigned char idata buf[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void init();void isr_timer0();void delay(int time){int k,j;for(;time>0;time--)for(k=20;k>0;k--)for(j=50;j>0;j--);}void main(){init();while(1){P2=0xfe;P0=buf[min/10];delay(1);P2=0xfd;P0=buf[min%10];delay(1);P2=0xfb;P0=buf[sec/10];delay(1);P2=0xf7;P0=buf[sec%10];delay(1);}}void init(){TMOD=0x01;TH0=0x3c;TL0=0xb0;ET0=1;EA=1;TR0=1;P2=0xf0;P0=0xff;delay(1);}void isr_timer0() interrupt 1 {P1=0x0f;if(count==20){count=0;if(sec==59){P1=!P1;sec=0;if(min==59)min=0 ;elsemin=min+1;}elsesec=sec+1;}else{count=count+1;}TH0=0x3c;TL0=0xb0;}【实验结果】说明数码管的初始值为00,每过一秒,秒计数器加一;秒计数器到60时清零,并从00重新开始,当秒计时器清0时,分计时器加一,由此实现数字时钟。

实验6 单片机双机通信系统设计【实验目的】掌握串行口通信工作原理,熟悉C51编程方法,了解PCB设计过程【实验内容】(1)学习使用Proteus软件,掌握原理图绘图方法(2)学习使用Keil C软件,掌握C51程序编写与调试方法(3)理解串行口通信的工作原理,完成串行口通信程序的编写与调试(4)学习使用ARES模块,了解PCB设计方法【实验步骤】(1)在Proteus中绘制电路原理图,将相应元件添加到编辑环境中(2)在Keil 中编写C51程序,并使之编译通过(3)在Proteus中加载程序,观察仿真结果【实验原理图】【实验源程序】#include<reg51.h>char led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58, 0x5e,0x79,0x71};void delay(int time){int k,j;for(;time>0;time--)for(k=20;k>0;k--)for(j=500;j>0;j--);}void main(){char counter=0;char text;P1=0x3f;TMOD=0x20;TH1=0xfd;TL1=0xfd;PCON=0x00;TR1=1;SCON=0x50;while(1){text=led_mod[counter];SBUF=text;while(TI==0);TI=0;while(RI==0);RI=0;if(SBUF==text){P1=text;counter++;if(counter>15)counter=0;delay(200);}}}#include<reg51.h>char led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58, 0x5e,0x79,0x71};void delay(int time){int k,j;for(;time>0;time--)for(k=20;k>0;k--)for(j=500;j>0;j--);}void main(){char counter=0; char receive;P1=0x3f;TMOD=0x20;TH1=0xfd;TL1=0xfd;PCON=0x00;TR1=1;SCON=0x50;while(1){while(RI==1){RI=0;receive=SBUF;SBUF=receive;while(TI==0);TI=0;P0=receive;delay(200);}}}【实验结果】说明左边的单片机为发送端,右边的单片机为接收端,发送端循环发送0~F的数据,接收端实时接收数据并显示出来,从而实现通信。

相关文档
最新文档