西华大学单片机应用实验报告 4计数器实验
单片机计数器实验报告
计数器实验报告㈠实验目的1.学习单片机内部定时/计数器的使用和编程方法;2.进一步掌握中断处理程序的编程方法。
㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台4.电源一台5.信号发生器一台㈢实验内容及要求8051内部定时计数器,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数,使用8051的T1作定时器,50ms中断一次,看T0内每50ms 来了多少脉冲,将计数值送显(通过LED发光二极管8421码来表示),1秒后再次测试。
㈣实验说明1.本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入定时器T0。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。
2.计数脉冲由信号发生器输入(从T0端接入)。
3.计数值通过发光二极管显示,要求:显示两位,十位用L4~L1的8421码表示,个位用L8~L5的8421码表示4.将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动次数并显示㈤实验框图(见下页)程序源代码ORG 00000H LJMP MAINORG 001BH ;T0的中断入口地址AJMP MAIN1MAIN:MOV SP,#60HMOV TMOD,#15H ;设置T1做定时器,T0做计数器,都于方式1工作MOV 20H,#14H ;装入中断次数MOV TL1,#0B0H ;装入计数值低8位MOV TH1,#3CH ;装入计数值高8位MOV TL0,#00H计数器主程序框图中断返回恢复现场NY 是否到1秒?显示置T1定时常数INT _T1入口保护现场清T0计数值中断服务程序框图开 始置T0,T1模式及初始值设置初始常数开中断等 待MOV TH0,#00HSETB TR1 ;启动定时器T1SETB TR0 ;启动计数器T0SETB ET1 ;允许T1中断SETB EA ;允许CPU中断SJMP $ ;等待中断MAIN1:PUSH PSWPUSH ACCCLR TR0CLR TR1 ;保护现场MOV TL1,#0B0H ;装入计数值低8位MOV TH1,#3CH ;装入计数值高8位,50ms;允许T1中断DJNZ 20H,RETUNT ;未到1s,继续计时MOV 20H ,#14H;1s到重新开始SHOW: ;显示计数器T0的值MOV R0,TH0 ;读计数器当前值MOV R1,TL0MOV A,R1MOV B,#0AHDIV AB;将计数值转为十进制MOV C,ACC.3 ;显示部分,将A中保存的十位赋给L0~L3 MOV P1.0,CMOV C,ACC.2MOV P1.1,CMOV C,ACC.1MOV P1.2,CMOV C,ACC.0MOV P1.3,CMOV A,B ;将B中保存的各位转移到A中MOV C,ACC.3 ;将个位的数字显示在L4~L7上MOV P1.4,CMOV C,ACC.2MOV P1.5,CMOV C,ACC.1MOV P1.6,CMOV C,ACC.0MOV P1.7,CRETUNT:MOV TL0,#00H ;将计数器T0清零MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回在频率为1000HZ时,L0~L7显示为50;频率为300HZ时,L0~L7显示为15,结果正确,程序可以正确运行。
计数器实验报告
计数器实验报告实验报告:计数器的设计与实现一、实验目的本实验旨在通过设计一个基本的计数器电路,理解和掌握数字逻辑电路的基本原理和设计方法,锻炼学生的逻辑思维能力和实际动手能力。
二、实验原理计数器是数字逻辑电路中常见的一个基本组件。
在本次实验中,我们设计了一个4位二进制计数器,它由四个D触发器和一些逻辑门组成。
D触发器是一种最常用的锁存器,具有一位输入端D和一位输出端Q,输入端的数值在时钟脉冲到达时被锁存到输出端。
三、实验器材与仪器1. 基于FPGA的实验平台2. Xilinx ISE设计软件四、实验步骤1. 打开Xilinx ISE设计软件,并创建一个新项目。
2. 在工程目录下新建一个源文件,并输入计数器的Verilog代码。
3. 设计一个时钟脉冲模块,控制时钟信号的频率。
4. 在源文件中实例化四个D触发器,将输入端和时钟信号连接。
5. 修改约束文件,将FPGA芯片的引脚与D触发器的输出端连接。
6. 点击“综合”按钮生成综合后的电路网表。
7. 点击“实现”按钮生成位文件。
8. 点击“下载”按钮将位文件下载到FPGA开发板上。
五、实验结果与分析经过以上实验步骤,我们成功地设计并实现了一个4位二进制计数器。
通过按下开发板上的复位按钮,可以将计数器的数值清零。
然后,每次按下计数按钮,计数器的数值就会加一,直到达到最大值时(1111),会自动循环回零。
在实际操作中,我们发现计数器的数值变化非常迅速,并且在达到最大值后会很快重新开始计数。
这是因为计数器的时钟频率相当高,每个时钟周期只需要几十纳秒的时间,所以人眼很难看到数值的变化。
此外,计数器的计数范围是0到15,即使用4位二进制表示,所以数值只会在0和15之间循环。
六、实验总结通过本次实验,我对数字逻辑电路的设计和实现有了更深入的理解。
计数器作为一个基本组件,它在各个数字系统中都有着广泛的应用。
通过学习和实践,我进一步掌握了Verilog语言的使用方法,提高了自己的电路设计能力。
单片机实验报告
单片机实验报告一、实验目的本次单片机实验的主要目的是通过实际操作和编程,深入了解单片机的工作原理和应用,掌握单片机系统的设计、开发和调试方法,提高自身的动手能力和解决问题的能力。
二、实验设备1、单片机开发板2、计算机3、编程软件(如 Keil)4、下载器5、示波器6、万用表三、实验内容1、点亮 LED 灯通过编写简单的程序,控制单片机的引脚输出高低电平,从而点亮或熄灭连接在该引脚上的 LED 灯。
这是单片机最基础的操作之一,旨在熟悉单片机的编程环境和引脚控制方式。
2、数码管显示利用单片机驱动数码管,实现数字的显示。
需要了解数码管的工作原理和驱动方式,通过编程控制数码管的段选和位选信号,显示不同的数字。
3、按键输入设计按键电路,通过读取按键的状态,实现对单片机系统的输入控制。
例如,通过按键切换不同的显示模式或控制其他外部设备。
4、定时器/计数器应用使用单片机的定时器/计数器功能,实现定时、计数等操作。
例如,设计一个定时闪烁的 LED 灯,或者通过计数器统计外部脉冲的个数。
5、串口通信实现单片机与计算机之间的串口通信,将单片机采集到的数据发送到计算机上进行显示和处理,或者接收计算机发送的指令对单片机系统进行控制。
四、实验原理1、单片机的基本结构单片机通常由中央处理器(CPU)、存储器(包括程序存储器和数据存储器)、输入输出接口(I/O 口)、定时器/计数器、中断系统等部分组成。
2、编程语言本次实验采用 C 语言进行编程。
C 语言具有简洁、高效、可移植性强等优点,非常适合单片机的开发。
3、引脚功能单片机的引脚分为电源引脚、时钟引脚、复位引脚、I/O 引脚等。
通过对这些引脚的合理配置和控制,可以实现各种功能。
4、数码管驱动原理数码管分为共阴极和共阳极两种类型。
通过控制数码管的段选和位选信号,可以使数码管显示不同的数字和字符。
5、按键检测原理按键通常采用上拉电阻或下拉电阻的方式连接到单片机的I/O 引脚。
单片机实验报告四
西华大学实验报告.西华大学实验报告(机械类)开课学院及实验室:机械工程与自动化学院计算机机房 实验时间 :2013年 11月 5 日学 生 姓 名学 号成 绩学生所在学院年级/专业/班 2011自动化3班课 程 名 称 单片机原理及应用课 程 代 码 6003379实验项目名称 计数器实验 项 目 代 码 指 导 教 师项 目 学 分一、实验目的掌握计数器的使用方法。
二、实验内容利用计数器,记录光电开关被遮断的次数,并用LCD1602显示出来。
三、实验电路第 组四、实验程序#include<reg52.h>#define uchar unsigned charsbit xz=P2^6;sbit sn=P2^7;sbit shu=P3^5;char *p="XIHUA UNIVERSITY";char *q=" Number: ";char code table[]="0123456789"; uchar num;void delay(uchar z){uchar x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void xie_ml(uchar ml) {xz=0;P1=ml;delay(5);sn=1;delay(5);sn=0;delay(5);}void xie_sj(uchar sj){xz=1;P1=sj;delay(5);sn=1;delay(5);sn=0;delay(5);}void cxch(){sn=0;xie_ml(0x38);xie_ml(0x0c);xie_ml(0x06);xie_ml(0x01);}void main(){cxch();xie_ml(0x80);while(*p!='\0'){xie_sj(*p);p++;}xie_ml(0x80+0x40);while(*q!='\0'){xie_sj(*q);q++;}xie_ml(0xc0+0x0b);xie_sj(table[num/100]);xie_sj(table[(num/10)%10]);xie_sj(table[num%10]);while(1){if(shu==1){delay(5);if(shu==1)num++;if(num==200)num=0;xie_ml(0xc0+0x0b);xie_sj(table[num/100]);xie_sj(table[(num/10) %10]);xie_sj(table[num%10]);while(shu!=0);}}}五、实验步骤(1)根据实验原理图编写程序,用“Keil Vision4”编译软件进行编译,如未通过,修改程序,直至通过。
计数器及应用实验报告
计数器及应用实验报告计数器及应用实验报告引言:计数器是一种常见的电子设备,用于记录和显示特定事件或过程中发生的次数。
在实际应用中,计数器广泛用于各种领域,如工业自动化、交通管理、计时系统等。
本文将介绍计数器的原理、分类以及在实验中的应用。
一、计数器的原理计数器是由一系列的触发器组成的,触发器是一种能够存储和改变状态的电子元件。
计数器的工作原理是通过触发器的状态改变来记录和显示计数值。
当触发器的状态从低电平变为高电平时,计数器的计数值加一;当触发器的状态从高电平变为低电平时,计数器的计数值减一。
计数器可以根据需要进行正向计数、逆向计数或者同时进行正逆向计数。
二、计数器的分类根据计数器的触发方式,计数器可以分为同步计数器和异步计数器。
同步计数器是指所有触发器在同一个时钟脉冲的控制下进行状态改变,计数值同步更新;异步计数器是指触发器的状态改变不依赖于时钟脉冲,计数值异步更新。
根据计数器的位数,计数器又可以分为4位计数器、8位计数器、16位计数器等。
三、计数器的应用实验1. 实验目的本实验旨在通过设计和搭建一个简单的计数器电路,了解计数器的工作原理和应用。
2. 实验器材- 74LS74触发器芯片- 电路连接线- LED灯- 开关按钮3. 实验步骤步骤一:搭建计数器电路根据实验原理,将74LS74触发器芯片与LED灯和开关按钮连接起来,形成一个简单的计数器电路。
步骤二:测试计数器功能将电路连接到电源,并按下开关按钮。
观察LED灯的亮灭情况,记录计数器的计数值变化。
步骤三:应用实验根据实际需求,将计数器电路应用到实际场景中。
例如,可以将计数器电路连接到流水线上,用于记录产品的数量;或者将计数器电路连接到交通信号灯上,用于记录通过的车辆数量。
4. 实验结果与分析通过实验测试,我们可以观察到LED灯的亮灭情况,并记录计数器的计数值变化。
根据实验结果,我们可以验证计数器的功能是否正常。
在应用实验中,我们可以根据实际需求来设计和改进计数器电路,以满足不同场景下的计数需求。
计数器及其应用实验报告
计数器及其应用实验报告实验目的,通过实验,掌握计数器的工作原理和应用,加深对数字电路的理解。
实验仪器,示波器、信号发生器、逻辑分析仪、计数器芯片等。
实验原理,计数器是一种能够在输入脉冲信号的作用下,按照一定规律进行计数的数字电路。
常见的计数器有二进制计数器、BCD计数器等。
在实验中,我们将使用示波器和信号发生器来观察计数器的工作状态,并利用逻辑分析仪来分析计数器的输出信号。
实验步骤:1. 连接实验电路,按照实验指导书上的电路图,连接计数器芯片、示波器、信号发生器和逻辑分析仪。
2. 设置信号发生器,将信号发生器设置为产生一定频率的脉冲信号,并输入到计数器的时钟输入端。
3. 观察示波器波形,使用示波器观察计数器的输出波形,记录下不同计数器状态下的波形特征。
4. 使用逻辑分析仪,利用逻辑分析仪来分析计数器的输出信号,观察计数器的工作状态和输出特点。
实验结果与分析:通过实验观察和分析,我们发现计数器在接收到时钟脉冲信号后,按照固定的规律进行计数。
不同类型的计数器在计数规律上有所不同,但都能够实现稳定的计数功能。
同时,我们还发现计数器的输出信号具有一定的脉冲特性,这对于数字电路的设计和应用具有重要意义。
实验应用:计数器在数字电路中有着广泛的应用,例如在计时器、频率计、脉冲计数等电路中都有计数器的身影。
通过本次实验,我们对计数器的工作原理和应用有了更深入的了解,为今后的电路设计和应用打下了良好的基础。
结论:本次实验通过观察和分析计数器的工作特性,加深了对数字电路中计数器的理解。
同时,实验还展示了计数器在数字电路中的重要应用,为今后的电路设计和应用提供了有益的参考。
通过本次实验,我们不仅掌握了计数器的工作原理和应用,还提高了实验操作能力和数据分析能力。
希望通过今后的实验学习,能够进一步深化对数字电路和计数器的理解,为将来的工程实践做好充分的准备。
单片机实验4报告
单片机实验4报告一、实验目的本次单片机实验的目的是深入了解和掌握单片机的编程与应用,通过实际操作来提升对单片机工作原理的理解,并能够熟练运用所学知识解决实际问题。
二、实验设备与工具1、单片机开发板2、编程软件(如 Keil)3、下载器4、电脑三、实验内容本次实验主要涉及以下几个方面:1、单片机的端口控制通过编程实现对单片机端口的高低电平输出,控制外接的 LED 灯的亮灭状态。
2、定时器/计数器的应用利用单片机的定时器/计数器功能,实现精确的定时控制,例如控制LED 灯的闪烁频率。
3、中断系统的使用了解单片机的中断机制,通过外部中断来实现特定的功能,如按键触发相应的操作。
四、实验步骤1、端口控制实验首先,在编程软件中创建一个新的工程,并选择对应的单片机型号。
编写端口控制的程序代码,设定某个端口为输出模式,并通过赋值来控制其输出电平。
将编写好的程序编译生成可执行文件。
使用下载器将程序下载到单片机开发板中,观察 LED 灯的亮灭状态是否符合预期。
2、定时器/计数器实验同样在编程软件中创建工程,并配置好相关的定时器/计数器参数。
编写定时器/计数器的初始化代码和中断服务程序,以实现特定的定时功能。
编译、下载程序,观察 LED 灯的闪烁频率是否符合设定的时间间隔。
3、中断系统实验先设置好中断的触发方式和优先级。
编写中断服务程序,当外部中断触发时,执行相应的操作。
编译、下载程序,通过按键触发中断,观察系统的响应是否正确。
五、实验结果与分析1、端口控制实验结果成功实现了通过编程控制单片机端口的输出电平,使 LED 灯按照预期的方式亮灭。
这表明对端口的配置和操作指令理解正确,能够有效地控制端口的输出状态。
2、定时器/计数器实验结果LED 灯的闪烁频率与设定的时间间隔相符,说明定时器/计数器的配置和编程正确,能够准确地实现定时功能。
3、中断系统实验结果按键触发中断后,系统能够迅速响应并执行中断服务程序中的操作,表明中断系统的设置和编程正确,能够及时处理外部中断事件。
单片机项目实训实验报告
一、实验背景与目的随着科技的发展,单片机作为嵌入式系统的重要组成部分,广泛应用于各个领域。
为了提高学生的实践能力和创新精神,我们选择了单片机项目实训作为实验课程。
本次实训旨在让学生掌握单片机的基本原理,熟悉其硬件和软件设计,并通过实际项目实践,提高学生的动手能力和解决问题的能力。
二、实验内容与步骤本次实训项目为设计一款基于ATmega16单片机的简易计算器。
该计算器能够实现基本的四则运算,并通过矩阵键盘和LCD1602显示屏进行人机交互。
1. 实验内容(1)设计计算器的硬件电路,包括ATmega16单片机、矩阵键盘、LCD1602显示屏等。
(2)编写计算器的软件程序,实现四则运算功能。
(3)测试计算器的功能,确保其正常运行。
2. 实验步骤(1)硬件设计根据实验要求,设计计算器的硬件电路。
主要包括以下步骤:1)选择合适的ATmega16单片机开发板。
2)设计矩阵键盘电路,包括按键布局和连接方式。
3)设计LCD1602显示屏电路,包括数据线和控制线。
4)将以上电路连接到ATmega16单片机开发板上。
(2)软件设计编写计算器的软件程序,实现以下功能:1)初始化ATmega16单片机,设置时钟频率。
2)初始化LCD1602显示屏,显示“0”作为初始值。
3)编写矩阵键盘扫描程序,检测按键状态。
4)根据按键输入,执行相应的四则运算。
5)将运算结果显示在LCD1602显示屏上。
6)实现清零、退格等功能。
(3)测试与调试1)将编写好的程序烧录到ATmega16单片机中。
2)连接计算器硬件电路,进行功能测试。
3)针对测试过程中发现的问题,进行调试和修改。
4)确保计算器能够正常运行,实现预期功能。
三、实验结果与分析经过实际操作和调试,我们成功设计并实现了一款基于ATmega16单片机的简易计算器。
该计算器能够实现基本的四则运算,并通过矩阵键盘和LCD1602显示屏进行人机交互。
以下是实验结果分析:1. 硬件设计方面,我们选择了合适的ATmega16单片机开发板,并设计了简洁的矩阵键盘和LCD1602显示屏电路。
单片机实验报告4
单片机实验报告4第一篇:单片机实验报告4单片机实验报告(实验一)一、实验目的: 1.掌握stm8的时钟切换。
2.熟悉汇编语言的指令系统。
3.加深对stm8功能的理解,掌握去其使用方法。
二、实验仪器:stm8s105c6单片机、杜邦线、单片机开发试验仪、三、实验内容:1、步骤:1)2)3)按照正确的方法将单片机与电脑连接。
通过转接板将单片机与单片机试验仪连接,用一根杜邦线将PB0与一个LED连接起来创建工程文件,编写代码,编译运行,如果程序没有错误,就将程序下载到单片机里,观察LED的状态。
2、主程序(要有注释):intel;系统复位后,时钟为内部RC振荡器,16Mhz,8分频,实为2Mhz.;LD1闪烁10次ld a,#10;10次bset PB_DDR,#0 bset PB_CR1,#0 bres PB_CR2,#0 ;初始化PB 口,将其定义为推挽输出next1 bres PB_ODR,#0 call delay bset PB_ODR,#0 call delay dec a jrne next1;修改时钟为外部16Mhz时钟.;LD1闪烁10次mov CLK_ECKR,#01h;允许外部高速振荡器工作 wait_hse_ready ld a,CLK_ECKR and a,#02h jreq wait_hse_ready;等待外部高速振荡器准备好bset CLK_CSSR,#0;CSEEN<-1,时钟安全系统使能mov CLK_SWCR,#02h;SWEN <-1mov CLK_SWR,#0b4h;选择芯片外部的高速振荡器为主时钟wait_clk_switch ld a,CLK_SWCR and a,#08h jreq wait_clk_switch;等待切换成功next2 bres PD_ODR,#0 call delay bset PD_ODR,#0 call delay dec a jrne next2jra $;;定义一个延时函数 delaypush ccldw y,#10 loop1 ldw x,#0ffffh loop decw xjrne loopdecw yjrne loop1pop ccret3、注意事项:1)2)注意线路的连接是否正确。
计数器的实验报告
一、实验目的1. 理解计数器的基本原理和工作方式;2. 掌握计数器的使用方法;3. 培养动手实践能力和团队协作精神。
二、实验原理计数器是一种用于计数的电子器件,能够对输入信号进行计数。
计数器的基本原理是利用触发器来实现计数功能。
触发器是一种具有记忆功能的电子器件,可以存储0或1的状态。
通过将触发器级联,可以实现多位计数。
本实验采用一个简单的异步二进制计数器,其工作原理如下:1. 当计数器复位时,所有触发器的状态都为0;2. 当计数器收到一个时钟信号时,最低位的触发器翻转状态;3. 如果最低位的触发器状态为1,则其输出信号将触发下一位触发器翻转状态;4. 依次类推,实现计数器的计数功能。
三、实验器材1. 计数器模块;2. 电源;3. 连接线;4. 逻辑分析仪;5. 示波器。
四、实验步骤1. 连接电路:将计数器模块、电源、连线等按实验电路图连接好;2. 复位计数器:将复位按钮按下,确保计数器处于初始状态;3. 观察计数过程:打开电源,观察计数器输出端的状态变化;4. 记录数据:使用逻辑分析仪或示波器记录计数器输出端的状态变化,并记录数据;5. 分析数据:根据记录的数据,分析计数器的计数过程和结果。
五、实验结果与分析1. 实验结果:计数器模块在接收到时钟信号后,输出端的状态按二进制递增的顺序变化,实现了计数功能;2. 分析:(1)复位功能:通过复位按钮,可以将计数器模块的状态恢复到初始状态,方便进行实验;(2)计数功能:计数器模块能够对输入的时钟信号进行计数,实现计数功能;(3)稳定性:在实验过程中,计数器模块的输出端状态变化稳定,未出现异常现象。
六、实验总结通过本次实验,我们掌握了计数器的基本原理和使用方法。
实验过程中,我们学会了如何连接电路、观察计数过程、记录数据和分析数据。
同时,我们还培养了动手实践能力和团队协作精神。
在今后的学习和工作中,我们将继续努力,不断提高自己的实验技能和团队协作能力。
计数器实验报告
计数器实验报告实验目的,通过实验掌握计数器的工作原理和使用方法,加深对数字电路的理解。
一、实验原理。
计数器是一种能够按照一定规律进行计数的电路。
在数字电路中,计数器是十分常见的一种元件,它能够将输入的脉冲信号转换为相应的数字输出。
常见的计数器有二进制计数器、十进制计数器等。
二、实验器材。
1. 计数器芯片。
2. 电源。
3. 示波器。
4. 逻辑开关。
5. 连接线。
6. 示波器探头。
三、实验步骤。
1. 将计数器芯片插入实验板中,并连接好电源。
2. 将示波器探头连接到计数器芯片的输出端口。
3. 通过逻辑开关输入脉冲信号,观察示波器上的输出波形。
4. 调整逻辑开关的输入频率,记录下不同频率下的输出波形。
5. 分析实验结果,总结计数器的工作特性。
四、实验结果。
经过实验,我们观察到在不同的输入频率下,计数器的输出波形呈现出不同的计数规律。
当输入频率增加时,计数器的计数速度也随之增加。
通过示波器的观测,我们可以清晰地看到计数器的工作状态,从而加深对其工作原理的理解。
五、实验分析。
通过本次实验,我们深入了解了计数器的工作原理和特性。
计数器作为数字电路中的重要元件,广泛应用于各种计数和计时场合。
掌握计数器的工作原理对于进一步学习数字电路和逻辑设计具有重要意义。
六、实验总结。
本次实验通过实际操作,使我们更加深入地理解了计数器的工作原理和特性。
在今后的学习和工作中,我们将进一步应用和拓展所学知识,不断提高自己的实践能力和创新能力。
七、实验心得。
通过本次实验,我对计数器有了更加深入的了解,也增强了对数字电路的兴趣。
在未来的学习和工作中,我将继续努力,不断提升自己的专业能力,为实现自己的梦想奠定坚实的基础。
以上就是本次计数器实验的实验报告,希望能对大家有所帮助。
谢谢!。
单片机计数显示器实验报告
单片机计数显示器实验报告实验报告:单片机计数显示器一、实验目的本实验旨在通过单片机编程,设计并实现一个计数显示器电路。
通过实现计数功能,掌握单片机的IO口操作、延时函数的使用及LED数码管的驱动原理。
二、实验器材1.单片机开发板2.数码管3.连接线三、实验原理本实验使用的单片机开发板上有8个LED数码管和相应的IO口,我们可以通过控制IO口状态,来驱动数码管显示数字。
数码管是7段共阳极结构,即每个数字都是由7个发光二极管组成。
我们可以通过控制每个发光二极管的通断状态,来显示不同的数字。
数码管的7个段分别命名为a、b、c、d、e、f、g,表示显示数字的不同部分。
每个IO口控制一个发光二极管的通断,例如P0口控制a段,P1口控制b段,以此类推。
四、实验步骤1.设计电路连接:将单片机开发板的IO口与数码管的各段和各位连接起来。
2.编写程序代码:使用C语言编写单片机的程序代码,实现计数及显示功能。
4.运行程序:观察数码管显示的效果,检查是否符合预期。
五、实验结果与分析经过以上步骤,我们成功地实现了单片机计数显示器电路。
通过设置不同的数值,数码管会显示相应的数字,实现了计数功能。
六、实验心得体会通过本次实验,我学到了单片机的IO口操作、延时函数的使用及LED数码管的驱动原理。
在实验中,我遇到了一些困难,如如何控制不同位的数码管显示不同的数字,并且在显示不同数字时存在闪烁现象。
通过调试程序,我解决了这些问题,并对单片机的使用更加熟悉了。
总的来说,本次实验让我对单片机有了更深入的了解,通过实际操控硬件并编写程序,使我对计算机硬件与软件的关系有了更直观的认识。
同时,通过解决问题,我也提高了自己的动手能力和问题解决能力。
七、实验改进设想在实验过程中,我注意到数码管在显示数字时会有闪烁现象,这可能是由于程序中的延时时间不够长引起的。
后续改进可以通过增加延时时间来减少闪烁现象的发生。
另外,本实验只实现了基本的计数功能,除了数字0-9的显示外,还可以扩展显示其他字符或符号。
计数器实验原理
计数器实验原理
计数器实验的原理是基于电子数字技术实现的。
它通过将输入的电信号进行计数,并根据给定的规则输出相应的计数结果。
计数器的工作原理通常利用触发器和逻辑门电路来实现。
触发器是一种能够存储和传递信息的电子器件。
计数器中使用的触发器被称为“触发型计数器”,它能够周期性地切换输出状态,从而实现计数功能。
计数器通常有一个输入端,称为时钟输入。
时钟输入接收外部的时钟信号,根据时钟信号的变化来切换触发器的状态。
当时钟信号的边沿(上升沿或下降沿)到来时,触发器的状态会发生变化。
计数器一般有几个输出端,每个输出端对应一个计数值。
当时钟信号到来时,计数器根据规定的计数规则改变输出的计数值。
不同类型的计数器有不同的计数规则,常见的有二进制计数器、十进制计数器和BCD码计数器等。
计数器可以实现多种功能,如正向计数、负向计数、加法计数、减法计数、循环计数等。
通过不同的触发器和逻辑门的组合,可以实现各种复杂的计数功能。
计数器广泛应用于各个领域,如计算机、通信、测量等。
它们能够对事件、信号、数据等进行计数和统计,提供了有效的计数和计量手段。
单片机原理与应用---按键计数器实验报告
实验报告(2021--2022学年第二学期)课程名称:单片机原理与应用实验项目名称:按键计数器实验一、实验目的1.掌握数码管的动态显示方法;2.掌握独立按键的扫描及去抖动方法。
二、实验仪器1、安装Keil uVison4的计算机;2、USB转串口驱动CH341SER.EXE;3、ISP下载软件stc-isp-15xx-v6.82e.exe;4、单片机开发板一块和USB线(公对公)一条。
三、实验内容编写程序对独立按键进行扫描,根据不同的按键完成不同的操作。
当S2按下时,执行加1操作;当S3按下时,执行减1操作;当S4按下时,执行加2操作;当S5按下时,执行减2操作,并将按键计数值显示在数码管上,显示格式如下所示。
四、实验步骤①在桌面建立一个文件夹。
先用Keil软件建立一个新的工程,芯片选择STC里的89C52RC芯片。
然后新建空白文件,将其保存为后缀为“.c”的文件并添加到这个工程中。
②根据实验要求把要调用的函数做出声明,按要求将代码编写完成。
写完之后要点击“Target Options”选项,在“Output”选项选择“Create HEX File”,将文件编译后生成后缀为“.hex”的文件。
③将程序烧入开发板中并运行,根据实验要求按下S2、S3、S4、S5按钮并拍照记录实验结果。
五、实验原始数据记录与数据处理#include <reg52.h>sbit WE=P2^7;sbit DU=P2^6;unsigned char code table[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X0 7,0X7F,0X6F,0X00,0X40};unsigned char dspbuf[]={0,1,2,2,11,1,4,5};unsigned char dspcom;void delayms(unsigned int x);void Display();unsigned char counter;void main(){unsigned char temp;while(1){Display();P3=0X0F;/temp=P3&0X0F;if(temp!=0x0F);{delayms(10);temp=P3&0X0F;if(temp!=0X0F);{switch(temp){case 0X0E:counter--;break;case 0X0D:counter++;break;case 0X0b:counter+=2;break; case 0X07:counter-=2;break; default:break;}dspbuf[5]=counter/100;dspbuf[6]=counter/10%10;dspbuf[7]=counter%10; while((P3&0X0F)!=0X0F);}}}}void Display(){P0=0X00;DU=1;DU=0;P0=~(1<<dspcom);WE=1;WE=0;P0=table[dspbuf[dspcom]];DU=1;DU=0;if(++dspcom==8)dspcom=0;}void delayms(unsigned int x) {unsigned int i,j;for(i=x;i>0;i--);for(j=113;j>0;j--);}六、实验结果与分析讨论根据编写的程序,第一次运行时,显示的是“0138-122”当S2按下时,执行加1操作,屏幕显示为“0138-123”,当S3按下时,执行减1操作,屏幕显示还原为“0138-122”。
单片机计数器实验报告
单片机计数器实验报告引言计数器是一种常见的电子元器件,用于计数、计时和测量。
在现代电子技术中,单片机计数器已经成为常用的计数器。
本实验将介绍单片机计数器的原理、实现及其应用。
实验原理单片机计数器是基于计数器电路的基础上,将单片机芯片与计数器进行结合而成的新型计数器。
其原理如下图所示:其中,单片机芯片通过外部引脚 P3.4 和 P3.5 连接门电路,门电路将外部高电平脉冲信号转化为单片机计数器所需的时钟信号。
单片机通过 P0.0~P0.3 引脚输出计数器计数所得的二进制数码信号,实现计数器的计数功能。
具体实现方式如下:1.设置计数器初值。
将初值存放在数据寄存器中。
2.运行计数器。
将计数控制信号送入 TCON 寄存器中,启动计数器的计数功能。
3.计数器状态检测。
通过对计数器状态寄存器的读取,实现对计数器计数状态的检测。
4.计数器中断控制。
通过对计数器中断控制寄存器的设置,实现计数器中断功能的控制。
以上步骤结合起来,即可实现单片机计数器的完整功能。
实验步骤本实验采用 STC89C52 单片机,按照以下步骤进行:1.连接硬件。
连接单片机芯片、晶振、电容、电阻、LED 等电子元件,按图示连接并焊接 PCB 板。
2.编写程序。
根据实验原理和硬件连接,编写程序,并进行调试。
3.烧录程序。
将编写好的程序通过编程器烧录到单片机芯片中,实现程序的加载和运行。
4.运行实验。
串口通信方式输入脉冲信号,在 LED 显示屏上显示计数结果,并进行实验数据的记录。
实验结果本实验成功实现了单片机计数器的设计与实现,并验证了计数器的计数功能。
实验结果如下:1.在高频脉冲输入时,显示器显示秒数的计数器数值,精度可控制在毫秒及以上,经过实验结果显示正确。
2.计数器能够实现正向计数和反向计数的功能,通过程序调试和功能实验验证。
3.计数器能同时记录两个计数器数值,实现双计数器计数功能。
实验分析单片机计数器是一种集成度高、运算速度快、精度高、功能强大的计数器。
EDA实验报告——模4计数器实验报告
实验一模4计数器以及软硬件熟悉掌握一、实验目的熟悉掌握软硬件平台,并且用逻辑图设计模4计数器。
二、实验内容1.参照3.2.4逻辑图设计模4计数器。
三、实验方法1)实验方法:采用基于FPGA进行数字逻辑电路设计的方法。
采用的软件工具是QuartusII软件仿真平台,采用的硬件平台是Altera EPF10K20TI144_4的FPGA试验箱。
2)实验步骤:1、建立新工程。
打开QuartusII软件平台,点击File中得New Peoject Wizar 的建立一个工程,为此工程建议一个目录文件,并为此工程及文件命名,命名的名字须与实体名一致。
2、按照实验箱上FPGA的芯片名更改编程芯片的设置。
操作是点击Assign/Device,选取芯片的类型,本次采用Altera EPF10K20TI144_4。
3,为此次工程选取合适的EDA工具以及采用的合适VHDL语言。
本次实验采用Design Compiler , ModelSim_Altrea,和Custom,分别采用EDIF形式,VHDL形式,和VHDL形式4. 编写源代码。
点击File中的New,选择弹出选项框内的Design File 下的VHDL File,创建一个vhd格式文件,并输入编写的源代码。
4、编译与调试。
确定源代码文件为当前工程文件,在保存后,点击Processing 下的Start Compilation进行文件全编译。
编译结果有错误或警告,则将要调试修改直至文件编译成功。
5、时序仿真。
选着在编译成功弹出的文件框Compilation Report_Flow Summary。
于框内选择Analyzer Timing文件下的summary,可看到时序仿真结果。
4、波形仿真及验证。
在编译成功后,点击File中的New,选择弹出选项框内的Verification/Degugging Files下的Vertor Waveform File开始设计波形。
单片机计数器实验报告
单片机计数器实验报告单片机计数器实验报告引言:单片机是一种集成电路,内部集成了处理器、存储器和各种输入输出接口等功能模块。
它广泛应用于各个领域,包括电子设备、通信、汽车电子、家电等。
在这次实验中,我们将学习并实践单片机计数器的原理和应用。
实验目的:1. 理解单片机计数器的工作原理;2. 掌握单片机计数器的编程方法;3. 实现简单的计数功能。
实验器材:1. 单片机开发板;2. 电脑;3. USB数据线;4. 连接线。
实验步骤:1. 准备工作:a. 将单片机开发板连接到电脑上,确保连接稳定;b. 打开开发板的开发环境软件。
2. 编写程序:a. 在开发环境软件中创建一个新的项目;b. 编写程序代码,实现计数功能;c. 调试程序,确保程序没有错误。
3. 烧录程序:a. 将开发板与电脑连接,确保连接稳定;b. 在开发环境软件中选择烧录选项,将程序烧录到单片机中。
4. 运行程序:a. 断开开发板与电脑的连接;b. 将开发板连接到外部电源,确保供电正常;c. 按下开发板上的复位按钮,启动程序。
实验结果:经过以上步骤,我们成功实现了单片机计数器的功能。
当按下复位按钮后,计数器从0开始计数,每经过一个固定的时间周期,计数值加1。
我们可以通过开发板上的数码管显示当前的计数值。
实验分析:单片机计数器是通过定时器模块实现的。
定时器是单片机中的一个重要模块,它可以根据设定的时间间隔来触发中断或执行特定的操作。
在本实验中,我们使用了定时器模块来实现计数功能。
通过编写程序,我们可以设定定时器的工作模式和时间间隔。
在每个时间间隔结束时,定时器会触发中断,程序会执行中断服务程序,从而实现计数器的自动递增。
同时,我们还可以通过程序控制数码管的显示,将计数值实时显示出来。
实验总结:通过本次实验,我们学习了单片机计数器的原理和应用,并成功实现了一个简单的计数功能。
单片机计数器在各个领域都有广泛的应用,例如工业自动化、仪器仪表、电子游戏等。
计数器实验报告
实验4 计数器及其应用一、实验目的1、学习用集成触发器构成计数器的方法2、掌握中规模集成计数器的使用及功能测试方法二、实验原理计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系统的定时、分频和执行数字运算以及其它特定的逻辑功能。
计数器种类很多。
按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。
根据计数制的不同,分为二进制计数器,十进制计数器和任意进制计数器。
根据计数的增减趋势,又分为加法、减法和可逆计数器。
还有可预置数和可编程序功能计数器等等。
目前,无论是TTL还是CMOS集成电路,都有品种较齐全的中规模集成计数器。
使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列,就能正确地运用这些器件。
1、中规模十进制计数器CC40192是同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能,其引脚排列及逻辑符号如图5-9-1所示。
图5-9-1 CC40192引脚排列及逻辑符号图中LD—置数端 CP U—加计数端 CP D—减计数端CO—非同步进位输出端BO—非同步借位输出端D0、D1、D2、D3—计数器输入端Q0、Q1、Q2、Q3—数据输出端 CR—清除端CC40192的功能如表5-9-1,说明如下:表5-9-1输入输出CR CP U CP D D3D2D1D0Q3Q2Q1Q01 ×××××××0 0 0 00 0 ×× d c b a d c b a0 1 ↑ 1 ××××加计数0 1 1 ↑××××减计数当清除端CR为高电平“1”时,计数器直接清零;CR置低电平则执行其它功能。
当CR为低电平,置数端LD也为低电平时,数据直接从置数端D0、D1、D2、D3置入计数器。
试验四计数器试验
实验四计数器实验一、实验目的掌握定时器,计数器的寄存器设置。
学会定时器中断函数的处理。
二、实验设备和器件PC机一台PROTEUS仿真软件一套三、实验内容1、硬件电路:图:8位共阳数码管四、实验要求利用定时器和计数器组成一个测频电路。
通过数码管显示。
1、打开KEIL安装目录,然后打开目录里的C51文件夹,然后再打开BIN文件夹,将名为OH51.EXE的文件复制到前一级(C51)目录下。
2、汇编程序:打开Proteus 8环境,在快捷工具栏中点击源代码按纽,然后点击源码选择新建工程,出现新固件项目对话框,在系列一栏中选择8051,在控制器一栏选择AT89C52,编译器一栏中选择ASEM—51(Proteus),然后点击确定,新工程创建完成。
C程序:打开Proteus 8环境,在快捷工具栏中点击源代码按纽,然后点击源码选择新建工程,出现新固件项目对话框,在系列一栏中选择8051,在控制器一栏选择AT89C52,编译器一栏中选择Keil for 8051,然后点击确定,新工程创建完成。
3、然后在工程对话框下,右键单击AT89C52,在出现的下拉列表中选中工程设置,将工程选项下Embed Files后的勾选去掉,然后点击确定完成工程设置。
4、在快捷工具栏中的下拉列菜单Debug /Release/配置选项中,选择Release。
5、汇编程序:将需要编译的程序代码输入到main.asm文件中,输入好程序代码后,然后在工程中,右键单击AT89C52,在出现的下拉列表中选中构建工程,编译完成返回LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)编译成功。
表示工程编译成功。
C程序:将需要编译的程序代码输入到main.c文件中,输入好程序代码后,然后在工程中,右键单击AT89C52,在出现的下拉列表中选中构建工程,编译完成返回LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)编译成功。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开课学院及实验室:机械工程与自动化学院计算机机房实验时间 :2014年6月3日
学 生 姓 名
学 号
成 绩
学生所在学院
机械工程与自动化学院
年级/专业/班
2011级机电班
课 程 名 称
单片机原理及应用
课 程 代 码
6003379
实验项目名称
计数器实验
项 目 代 码
指 导 教 师
0x25,0x21,0xbc,0x20,0x24};
int num=0;
uchar timecount=100;
int state=0;
void delayms(unsignedint a)
{
int x=0;
for(a;a>0;a--)
for(x=110;x>0;x--);
}
void display()
{
if(num==100)num=0;
P0=0xff;
num1=1;
num2=0;
P0=dig[num/10];
delayms(5);
P0=0xff;
num1=0;
num2=1;
delayms(5);
P0=dig[num%10];
delayms(5);
P0=0xff;
}
int main()
{
TMOD=0X01;
张恕远
项 目 学 分
一、实验目的
二、实验内容
三、实验电路
四、实验程序
#include<reg52.h>
#define uchar unsigned char
sbitnum1=P2^7;
sbitnum2=P2^6;
sbitelc=P3^5;
uchar code dig[]=
{0x30,0xfc,0xa2,0xa65536-9216)%256=0=0X00
TH0=0XDC;//(65536-9216)/256=220=0XDC
EA=1;
ET0=1;
TR0=1;
while(1)
{
display();
}
return 0;
}
void Timer1() interrupt 1
{
TL0=0X00;//(65536-9216)%256=0=0X00
TH0=0XDC;//(65536-9216)/256=220=0XDC
timecount--;
switch(state)
{
case 0:
if(elc==0){
num++;
state=1;
}
break;
case 1:
if(elc==0);
else state=0;
break;
}
}
五、实验步骤
六、附录