对外部脉冲计数系统的设计计数器课程设计(单片机)
【报告】单片机定时器计数器实验报告
【关键字】报告单片机定时器计数器实验报告篇一:单片机计数器实验报告计数器实验报告㈠实验目的1. 学习单片机内部定时/计数器的使用和编程方法;2. 进一步掌握中断处理程序的编程方法。
㈡实验器材1. 2. 3. 4. 5.G6W仿真器一台MCS—51实验板一台PC机一台电源一台信号发生器一台㈢实验内容及要求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 AJMP MAIN1 MAIN:MOV SP,#60HMOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOV TH1,#3CHMOV TL0,#00H;T0的中断入口地址;设置T1做定时器,T0做计数器,都于方式1工作;装入中断次数;装入计数值低8位;装入计数值高8位MOV TH0,#00HSETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0 SETB ET1 ;允许T1中断SETB EA ;允许CPU中断SJMP $;等待中断MAIN1: PUSH PSW PUSH ACC CLR TR0CLR TR1 MOV TL1,#0B0H MOV TH1,#3CHDJNZ 20H,RETUNT MOV 20H ,#14HSHOW: MOV R0,TH0 MOV R1,TL0MOV A,R1 MOV B,#0AH DIV ABMOV C,ACC.3MOV P1.0,C MOV C,ACC.2 MOV P1.1,C MOV C,ACC.1 MOV P1.2,C MOV C,ACC.0 MOV P1.3,CMOV A,B MOV C,ACC.3MOV P1.4,C MOV C,ACC.2 MOV P1.5,C MOV C,ACC.1 MOV P1.6,C MOV C,ACC.0MOV P1.7,C ;保护现场;装入计数值低8位;装入计数值高8位,50ms;允许T1中断;未到1s,继续计时;1s到重新开始;显示计数器T0的值;读计数器当前值;将计数值转为十进制;显示部分,将A中保存的十位赋给L0~L3 将B中保存的各位转移到A中;将个位的数字显示在L4~L7上;RETUNT:MOV TL0,#00H;将计数器T0清零MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回在频率为1000HZ时,L0~L7显示为50;频率为300HZ时,L0~L7显示为15,结果正确,程序可以正确运行。
单片机课程设计题目及答案
题目1 智能电子钟(LCD 显示)题目2 电子时钟(LCD 显示)题目3 秒表题目4 定时闹钟题目5 音乐倒数计数器题目6 基于数字温度传感器的数字温度计题目7 基于热敏电阻的数字温度计题目8 十字路口交通灯控制题目9 波形发生器设计题目10 电容、电阻参数单片机测试系统的设计题目11 数字频率计题目12 8位竞赛抢答器的设计题目13 单词记忆测试器程序设计题目14 数字电压表设计题目15 可编程作息时间控制器设计题目16 节日彩灯控制器的设计题目17 双机之间的串行通信设计题目18 电子琴设计题目19 数字音乐盒的设计题目20 单片机控制步进电机题目21 单片机控制直流电动机题目1 智能电子钟(LCD 显示) 1. 设计要求 以AT89C51单片机为核心,制作一个LCD 显示的智能电子钟: (1) 计时:秒、分、时、天、周、月、年。
(2) 闰年自动判别。
(3) 五路定时输出,可任意关断(最大可到16路)。
(4) 时间、月、日交替显示。
(5) 自定任意时刻自动开/关屏。
(6) 计时精度:误差≤1秒/月(具有微调设置) (7) 键盘采用动态扫描方式查询。
所有的查询、设置功能均由功能键K1、K2完成。
2. 工作原理 本设计采用市场上流行的时钟芯片DS1302进行制作。
DS1302是DALLAS 公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM ,可以通过串行接口与计算机进行通信,使得管脚数量减少。
实时时钟/日历电路能够计算2100年之前的秒、分、时、日、星期、月、年的,具有闰年调整的能力。
DS1302时钟芯片的主要功能特性:(1) 能计算2100年之前的年、月、日、星期、时、分、秒的信息;每月的天数和闰年的天数可自动调整;时钟可设置为24或12小时格式。
(2) 31B 的8位暂存数据存储RAM 。
(3) 串行I/O 口方式使得引脚数量最少。
(4) DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需3根线。
51单片机外部脉冲计数程序
51单片机外部脉冲计数程序51单片机外部脉冲计数程序是一种常见的嵌入式应用程序,它可以通过计数外部脉冲信号来实现各种功能,如测量速度、记录行程、控制电机等。
在本文中,我们将介绍如何编写一个简单的51单片机外部脉冲计数程序,供初学者参考。
一、程序框架```c#include <reg52.h>sbit PulsePin = P1^0; //定义脉冲信号输入引脚unsigned long cnt = 0; //计数器void ExternalInterrupt0() interrupt 0 //外部中断0的中断服务程序{cnt++; //计数器加一}```程序中定义了一个脉冲信号输入引脚PulsePin,一个计数器cnt,并在主程序中开启了全局中断和外部中断0,并设置外部中断0为下降沿触发。
在外部中断0的中断服务程序中,计数器cnt会加一。
二、程序解析1. 硬件连接将需要计数的脉冲信号输入引脚连接到单片机的P1.0引脚上,并连接好单片机的电源和地线。
2. 宏定义和全局变量首先定义了PulsePin引脚为输入模式,并定义了计数器cnt为无符号长整型变量。
3. 主程序在主程序中,首先开启了全局中断和外部中断0,然后设置外部中断0为下降沿触发。
最后加入一个无限循环,等待外部中断的触发。
4. 外部中断0的中断服务程序在外部中断0的中断服务程序中,计数器cnt会加一。
三、总结本文介绍了如何编写一个简单的51单片机外部脉冲计数程序。
通过外部中断0的中断服务程序,可以实现对外部脉冲信号的计数。
本程序只是一个简单的例子,读者可以根据自己的需求对其进行改进和优化。
单片机课程教案
单片机课程教案一、课程概述单片机原理及应用是一门涉及微处理器、数字电路和计算机接口技术的综合性课程。
本课程的目标是使学生掌握单片机的原理和应用,了解单片机在嵌入式系统设计中的地位和作用,为学生进一步深入学习和应用单片机打下坚实的基础。
二、课程目标1、理解单片机的内部结构和工作原理。
2、掌握单片机的基本操作和编程方法。
3、熟悉单片机在嵌入式系统中的应用和设计方法。
4、培养学生的创新能力和实践操作能力。
三、课程内容第一章:单片机概述1、1单片机的基本概念及发展历程2、2单片机的特点和应用领域3、3单片机的主要产品和发展趋势第二章:单片机的基本结构和工作原理2、1单片机的内部结构和主要部件功能介绍21、2单片机的引脚和信号说明211、3单片机的存储器和寄存器介绍2111、4单片机的时钟系统和定时器/计数器介绍第三章:单片机的编程语言和开发环境3、1单片机的编程语言概述和特点31、2 C语言在单片机编程中的应用311、3 Keil C51开发环境和程序设计流程介绍3111、4程序调试和下载方法说明第四章:单片机的应用实例和实验指导4、1单片机在LED闪烁和流水灯控制中的应用实例41、2单片机在按键输入和数码管显示中的应用实例411、3单片机在A/D和D/A转换中的应用实例4111、4单片机在电机控制和红外线遥控中的应用实例本文5单片机的实验指导和实验报告要求说明第五章:单片机的发展趋势和应用领域的扩展本文1单片机在物联网和智能家居中的应用扩展本文2单片机在汽车电子和医疗设备中的应用扩展本文3单片机在工业控制和智能制造中的应用扩展本文4单片机在人工智能和机器人技术中的应用扩展第六章:课程总结和答疑解惑本文1课程总结和学习方法分享本文2答疑解惑和常见问题解答1、3学生自我评估和改进建议收集四、教学方法与手段本课程采用理论教学和实践操作相结合的方法,以案例分析和程序示范为主要手段,通过课堂讲解、小组讨论、实验指导等多种形式,使学生更好地理解和掌握单片机的原理和应用。
单片机课程设计00-99加计数器(完结版qq)
课程设计课程名称51单片机原理及应用单片机“0~99”加法计数器题目名称程序设计专业班级12级计算机科学与技术2班学生姓名郑伟、刘刚、纪强、岳向阳学号51202012032、5120201200751202012021、51202012018 指导教师刘粉二○一四年十二月蚌埠学院计算机科学与技术系课程设计任务书目录一.前言 (4)二.单片机介绍 (4)(一).AT89C51简介编辑 (4)(二).主要特性编辑 (5)(三).特性概述编辑 (5)(四).管脚说明编辑 (5)(五).芯片擦除编辑 (7)(六).串口通讯 (7)三.课程设计的目的和要求 (11)(一).设计目的 (11)(二).课程设计题目 (11)(三).设计任务及要求 (11)四.总体设计思路 (11)(一).硬件设计思路及系统框图 (11)1.硬件设计思路: (11)2.原器件清单 (12)3.系统框图 (12)(二).软件设计思路: (12)(三).对照表 (12)(四).程序流程图 (13)五.硬件设计 (15)(一).芯片主要特性 (15)(二)管脚说明: (15)(三).排阻的作用 (16)(四).电路图说明 (17)1.添加晶振和复位 (17)2.添加P0和P2两个按键 (17)3. 数码管动态显示 (17)六.软件设计说明 (17)七.使用Keil、preoteus软件调试仿真说明 (19)八.结束语 (20)九.参考文献 (21)附录: (22)(一).汇编源程序 (22)(二).原理图 (24)前言单片机全称叫单片微型计算机(Single Chip Microcomputer),是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
单片机计数器设计
单片机计数器的设计可以根据具体的需求进行灵活的选择。
以下是一个简单的单片机计数器的设计:
确定计数范围:根据需求确定计数器的范围,例如0-99或0-999。
选择计数器类型:根据计数范围选择合适的计数器类型,可以是二进制计数器、十进制计数器或BCD码计数器等。
确定计数方式:确定计数的方式,可以是递增计数、递减计数或双向计数等。
确定计数信号源:确定计数信号的来源,可以是外部信号源或内部时钟信号源。
连接计数器到外设:根据需求将计数器的输出连接到外设,例如LED显示器、数码管或继电器等。
编写计数器程序:使用适当的单片机编程语言编写计数器程序,包括计数器的初始化、计数操作和显示操作等。
测试和调试:在硬件连接完成后,对计数器进行测试和调试,确保计数器功能正常。
以上是一个简单的单片机计数器的设计流程,具体的实施可以根据具体的需求和单片机型号进行调整。
外部脉冲计数器设计的原理及实现
外部脉冲计数器设计的原理及实现随着科技的不断发展,单片机以其高效、可靠的特性被广泛应用于各种场合,如自动化控制、电子测量等领域。
在单片机应用中,计数器是常见的一种功能模块,其可用于计数输入的脉冲信号,从而实现各种功能。
本篇论文主要介绍如何设计一种基于单片机的外部脉冲计数器,包括其原理及实现过程。
同时,还将介绍各种技术要点如计数器的组成、计数器工作模式、计数器的特性以及计数器的应用场景等。
一、外部脉冲计数器的原理1.计数器的组成计数器是由多个触发器组成的。
触发器是基本单元,它能够改变状态。
在计数器中,触发器负责存储计数值,多个触发器串联构成计数器。
一般的,计数器可分为同步计数器和异步计数器。
同步计数器:所有的触发器同时改变状态,这样称为同步计数器Synchronous Counter/异步计数器:各个触发器改变状态的时刻不同步的计数器,称为异步计数器Asynchronous Counter。
2.计数器的工作模式计数器具有自动计数功能。
计数器可以在几种模式下工作:自动计数,手动计数,自动循环计数。
自动计数:只需输入一个计数信号,计数器便可以开始计数。
在计数到设定值之后,计数器会自动停止计数。
手动计数:需要通过用户手动操作来进行计数,这种计数方式使用较少。
自动循环计数:计数器会不停地计数,在计数到设定值之后会自动重新计数。
3.计数器的特性计数器的特性取决于计数器的触发器特性,常见的触发器有RS触发器、D触发器、JK触发器和T触发器等。
以下是一些常见触发器类型的特性:RS触发器:RS触发器具有两个控制输入R和S,可以将输出强制设置为1或0。
当R、S同时为0时,输出保持不变,称为稳态。
当R为0、S为1时,输出为0;当R为1、S为0时,输出为1。
D触发器:D触发器只有一个输入D,当D的电平变化时,输出Q会跟着变化。
当D为0时,Q输出0,当D为1时,Q输出1。
JK触发器:JK触发器具有两个输入J和K。
当J、K、时钟信号分别被输入到JK 触发器时,输出状态会发生变化。
单片机课程设计出租车计费系统,255计数,50000计数
(题目)255计数器、50000计数器、出租车计费系统起电气与信息工程学院单片机课程设计实验报告一、设计任务:1.1 外部脉冲自动计数,自动显示。
1.1.1设计一个255计数器:0-255计数,计满后自动清0,重新计数(在数码管中显示)。
1.1.2设计一个50000计数器:0-50000计数,计满后自动清0,重新计数(在数码管中显示)。
1.2 设计一个出租车计费系统:起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m刷新计费一次,在8位数码管中,前3位显示数码管显示里程数,后3位数码管显示价钱(角,元,十元,百元)注:要求首先采用PROTEUS完成单片机最小系统的硬件电路设计及仿真;程序仿真测试通过后,再下载到单片机实训板上执行。
二、单片机最小系统硬件资源介绍:1 单片机系统数码管和键盘接口电路2 7279A 资料三、设计思路:1、255计数:255可用8位二进制数表示,故本设计可直接采用可以重装载的计数器T1模式二进行计数。
然后对TL1的内容进行相应的二进制---十进制转换:首先TL1的内容除以64H,所的商就是十进制的百位,然后用余数除以0AH,所得的商就是十进制数的十位,余数即相应的十进制的个位。
接着将相应的十进制数进行译码,并在LED数码管上显示出来。
每来一个脉冲其显示的结果加一,直加至255然后T1重新开始计数。
255计数器汇编程序ORG 0000HAJMP START ORG 0300HSTART:MOV DPTR,#0CFE9H MOV A,#0D1HMOVX @DPTR,ANOPNOPNOPNOPNOPNOPNOPNOPMOV TMOD,#50HMOV TH1,#00HMOV TL1,#00HSETB TR1LOOP1:MOV A,TL1MOV B,#64HDIV ABMOV R1,A //存百位MOV A,BMOV B,#0AHDIV ABMOV R2,A //存十位MOV R3,B //存个位MOV DPTR,#0CFE9HMOV A,#80HMOVX @DPTR,A //选择第一个显示管MOV DPTR,#TABMOV A,R1MOVC A,@A+DPTRMOV DPTR,#0CFE8HMOVX @DPTR,ACLR AMOV DPTR,#0CFE9HMOV A,#81HMOVX @DPTR,A //选择第二个显示管MOV DPTR,#TABMOV A,R2MOVC A,@A+DPTRMOV DPTR,#0CFE8HMOVX @DPTR,ACLR AMOV DPTR,#0CFE9HMOV A,#82HMOVX @DPTR,A //选择第三个显示管MOV DPTR,#TABMOV A,R3MOVC A,@A+DPTRMOV DPTR,#0CFE8HMOVX @DPTR,ALJMP LOOP1TAB:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHENDPROTUES仿真图50000计数器设计思路;由于DIV AB指令中A、B均为8位寄存器,因此255二进制转十进制计数的方法不能用于0-50000的循环计数。
单片机复习题集及答案
单片机练习题部分答案(本练习题仅包括填空、选择、问答类型题。
题的来源选自《单片机原理与应用学习概要及题解》霍孟友主编机械工业出版社出版,题中页码与题号与其对应。
下文中填空与选择题有答案,问答题没有答案。
)单片机构成及原理*P155. 8051单片机有4个I/O口,它们分别是P0、P1、P2、P3 ,复位后对应它们的内容为0FFH 。
16.一个机器周期包括12 个振荡周期,具体分为 6 个状态周期。
17.按执行时间,8051的指令分为单机器周期、双机器周期和四机器周期指令共三种。
18.单片机由CPU\、存储器和I/O 三部分组成。
19.CPU由运算器和控制器两部分组成。
20.若不使用MCS—51片内程序存储器,引脚/EA必须地。
23.MCS—51有四个并行I/O口,由于是准双向口,所以在输入时必须先写 1 。
P16.1.当使用8751且/EA=1,程序地址小于1000H时,访问的是(A )。
A.片内ROM B。
片外ROM C。
. 片内/外ROM D。
. 不定2.堆栈操作遵循的原则是(A )。
A.先进后出B。
先进先出C。
后进后出D。
随机3.欲访问8051单片机的内部程序存储器,则/EA引脚必须为(A )。
A.高电平B。
低电平C。
高低电平D。
与PC值有关4.MCS—51中,一个机器周由(C)个时钟周期组成。
A.4 B。
8 C。
6 D。
12(注:时钟周期=状态周期=2个振荡周期)P176。
MCS—51系列单片机复位后其P1口的输出状态为( B )。
A.00H B。
0FFH C。
0F0H D。
不定P112-2 8051存储器分那几个地址空间? 如何区分不同空间地址?答:地址空间:(1)片内、片外统一的64KB程序存储器地址空间。
访问时采用MOVC指令。
(2)片内256B数据存储器地址空间。
访问时采用MOV指令。
(3)片外64KB的数据存储器地址空间。
访问时则是采用MOVX指令。
P122-4简述直接位寻址区的空间分配,片内RAM中包含那些可位寻址单元?2-10 开机复位后,CPU使用那些工作寄存器作为当前工作寄存器?它们的地址是什么?答:2-12 程序状态寄存器PSW的作用是什么?有哪些常用标志位?作用是什么?P14 答:2-14 8051单片机时钟周期与振荡周期之间有什么关系?答:2-15 一个机器周期的时序是怎样划分的?2-16 什么叫堆栈?堆栈指针SP的作用是什么?答:堆栈是在片内数据RAM区中,数据先进后出或后进先出的区域。
单片机脉冲计数
模拟磨损试验机测定试件磨损次数装置实验——脉冲计数实验一,实验目的1,熟悉单片机定时/计数功能,掌握初始化编成方法;2,掌握顺序控制程序的简单编程;3,掌握显示数据的编程方法。
二,实验内容1,利用单相全波整流及直流电动机调速系统电气控制实验仪上脉冲产生电路,检测电机转动次数并显示。
实验仪上有八位LED共阴极显示块,软件设定预置数,计到预置数后电机停止运行。
2,开机前,显示预置数。
计数过程中在预置数范围内时,可随时停车并保持已计数值,再按启动钮继续计数或按清除钮删除计数值,重新运行并计数。
三,实验仪器、设备及材料PC机、有关连接线、数字万用表、电气控制实验仪、直流电压表、直流电动机。
四,实验原理用SST8位单片机SST89E564内部定时器/计数器T0计数方式进行计数,计数脉冲通过单片机P3.4口输入,并送八位显示块显示。
由于在显示块上显示的数据是十进制数,编写程序时必须进行二转十及BCD码调整。
在单相全波整流及直流电动机调速系统实验仪上显示时,把P2口作为控制字位输出,字位移动,逐位显示;P0口作为送字形代码输出。
采用共阴极字形代码,每显示一位后要关闭显示,循环逐位(8位)5次。
实验仪上设有按钮NK1、NK2、NK3,分别可作为启动(继续)、停车、清除按键,低电平有效,设计程序时要考虑延时。
五,实验步骤1,连接电气控制仪、直流电压表、直流电动机、外部脉冲输入端2,PC机上编程,通过数据线传输至电气控制实验仪,启动电气控制实验仪,完成实验。
六,实验程序;----------------------------------------------------------------------------- ORG 0000HLJMP START ;转发送主程序;----------------------------------------------------------------------------- ORG 001BHLJMP STOP ;转发送中断服务;----------------------------------------------------------------------------- ;主程序START: MOV SP,#60H ;堆栈SP=60HMOV TMOD,#15H ;T0为计算器,工作方式1,T1为定时器,工作方式1MOV P0,#03FHMOV P1,#0FFHMOV P2,#0FFH ;P0,P1,P2口赋初值MOV TH0,#00HMOV TL0,#00H ;TO从0开始计数MOV TH1,#00HMOV TL1,#00H ;T1定时时间为65.5msMOV 59H,#00H ;计数器溢出的数累计存放在59H单元 CLR 30H ;将停止标志位清零MOV 30H,#00H ;设预置数70000MOV 31H,#00HMOV 32H,#00HMOV 33H,#00HMOV 34H,#07HMOV 35H,#00HMOV 36H,#00HMOV 37H,#00HLCALL CT6 ;显示预置数START1: JB P1.0,START1LCALL DELYJB P1.0,START1 ;电机是否启动LL0: JB 30H,STOP1 ;电机是否停止LL1: SETB TR1 ;开定时器SETB EASETB ET1 ;开中断SETB TR0 ;开计数器CLR P1.3 ;启动电机LL2: LCALL CT ;显示LL3: SETB RS1 ;选择2区工作寄存器组CJNE R7,#00H,LL0CJNE R6,#00H,LL0CJNE R5,#07H,LL0CJNE R4,#00H,LL0 ;预置数到否LL4: SETB P1.3 ; 关电机CLR TR0 ; 关计数器CLR TR1 ; 关定时器CLR ET1CLR EA ; 关中断LL5: JB P1.2,LL6LCALL DELYJB P1.2,LL6 ;清零否LJMP START ;清零调转到STARTLL6: LCALL CT ; 显示LJMP LL5 ; 不清零调转到LL5RET;------------------------------------------------------------------------------ STOP1: SETB P1.3 ;关电机CLR 30H ;停止标志位清零CLR TR0 ;关计数器CLR TR1 ;关定时器CLR EACLR ET1 ;关中断STOP2: LCALL CT ;显示START2: JB P1.0,ST1LCALL DELYJB P1.0,ST1 ; 继续启动电机否LJMP LL1 ; 继续启动电机,调转到LL1ST1: JB P1.2,STOP1LCALL DELYJB P1.2,STOP1 ; 清零否LJMP START ; 清零后,调转到STARTRET;------------------------------------------------------------------------------ ;中断子程序STOP: JB P1.1,STPLCALL DELYJB P1.1,STP ;是否停止SETB 30H ;停止,标志位置1STP: RETI;------------------------------------------------------------------------------ ;显示子程序CT: CLR RS1 ;选择0区通用工作寄存器组MOV R6,TH0 ;计数器高八位传给R6MOV R7,TL0 ;计数器低八位传给R7JNB TF0,HB ;计数器是否溢出INC 59H ;将溢出的数累加后存在59H单元CLR TF0 ;溢出标志位清零HB: MOV R5,59H ;将累加后的溢出数传给R5SETB RS1 ;选择2区通用工作寄存器组CLR AMOV R4,AMOV R5,AMOV R6,AMOV R7,A ;清零MOV R2,#24 ;24次移位H_B: CLR RS1 ;选择0区通用工作寄存器组RLC AMOV R7,AMOV A,R6RLC AMOV R6,AMOV A,R5RLC AMOV R5,ASETB RS1 ;选择2区通用工作寄存器组MOV A,R7ADDC A,R7DA AMOV R7,AMOV A,R6ADDC A,R6DA AMOV R6,AMOV A,R5ADDC A,R5DA AMOV R5,AMOV A,R4ADDC A,R4DA AMOV R4,ADJNZ R2,H_B ;二进制数转十进制CT1: SETB RS1 ;选择2区通用工作寄存器组MOV R0,#30H ;拆字,十进制数由低位到高位依次存放到30H-37H MOV A,R7LCALL C_TMOV A,R6LCALL C_TMOV A,R5LCALL C_TMOV A,R4LCALL C_TCT6: MOV R3,#5 ;循环显示5次CT2: MOV DPTR,#TAB ;查表MOV R0,#30HCT3: MOV R1,#80HMOV P2,A ;送字位RR AMOV R1,AMOV A,@R0MOVC A,@A+DPTRMOV P0,A ;送字形MOV R2,#4FHDJNZ R2,$INC R0CJNE R1,#80H,CT4DJNZ R3,CT2CT5: RET;------------------------------------------------------------------------------ C_T: MOV R1,A ;拆字子程序ACALL PTDS1MOV A,R1SWAP APTDS1: ANL A,#0FHMOV @R0,AINC R0RET;------------------------------------------------------------------------------ DELY: SETB RS0 ;消抖延时子程序MOV R5,#04HDEL1: MOV R4,#0FFHDJNZ R4,$DJNZ R2,DEL1CLR RS0RET;------------------------------------------------------------------------------ TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H;------------------------------------------------------------------------------ END七,实验流程图(注:可编辑下载,若有不当之处,请指正,谢谢!)。
单片机原理及应用教程
10.3.2 开发系统简介 1. DICE系列仿真开发器 系列仿真开发器 DICE系列单片微机仿真开发器是一种高性能的单片机开 发装置。 DICE-5928型是属高档通用型单片微机仿真开发器。本机 采用三CPU一体式结构。这样,一机即为可开发Intel MCS-51系列、MCS-96系列以及PHILIPS-80C51系列单片 微机的多用型在线仿真、开发器。不同CPU的仿真、开发, 只需切换一只开关,而不需更换CPU。 2. DAIS系列仿真开发器 系列仿真开发器 DAIS系列仿真开发器是北京启东达爱思电子有限公司开 发生产的系列产品。 10.4 单片微机系统应用开发举例 10.4.1 系统简介 本项目中的实验、教学综合楼是这样设定的:建筑楼层共
/* T0工作方式2计数,T1工作方式1定 /* T0计数初始值 */ /* T1定时125ms的初始值 */ /* 启动定时器T0 */ /* 启动定时器T1 */
while(1) { for( n=4; n>0; n-- ) /* 0.5s到否? */ { while( TF1==0 ); /* 125ms到否? */ TF1=0; TH1 = 0x0B; /* T1重新设置125ms定时初始 值 */ TL1 = 0xDC; } TR0=0; /* 关闭定时器T0 */ nPulseCount = TL0; /* 读出当前计数值 */ TR0=1; /* 开启定时器T0 */ P1=~nPulseCount; /* 取反、显示当前计数值*/ } }
6层,每层分成试验室区和多媒体投影教室区。实验室区中 的实验室涉及仓库、办公区,化工类实验室,电子类实验室, 嵌入式计算机类实验室和软件实验室等。多媒体教室的设备 配置大体相同,具有投影、音响等基本教学设备等。我们欲 通过本系统的应用实现在完全保证教学活动的前提下,使整 个建筑成为一个节能、安全、高效、科学的教学单位。其各 个教室即可独立控制,又可以在总控室的统一控制下协调运 作。同时本楼的控制系统本身又可以作为高年级电子类学生 的实验实习、科技创新校内基地的一部分。 10.4.2 总体设计与模块功能分配 1. 需求分析与总体设计 由于本系统针对的建筑物各楼层之间甚至同一层之内的教学 科研功能各不相同,因此总体结构上已采用三层结构:总控 室,楼层控制器,教学单元控制器。根据现代化智能教学楼 的节能、舒适、安全、有序的要求,其中每个教室或实验室 具有一个功能可剪裁的“单元控制器”使教室/试验室可以 独立运转。实现对教学单位内的温度、湿度、光照度、空间 使用状态、设备使用状态、风机/空调器运行与否等等信息 进
单片机定时器与计数器的工作原理及应用
单片机定时器与计数器的工作原理及应用摘要:单片机作为现代电子设备中广泛采用的一种集成电路,其内部包含了丰富的功能模块,其中定时器和计数器被广泛应用于各种领域。
本文将介绍单片机定时器和计数器的工作原理及应用,包括定时器的基本原理、工作模式和参数配置,以及计数器的工作原理和常见应用场景。
希望通过本文的阐述,读者能够深入了解单片机定时器和计数器的基本原理和应用,为电子系统设计提供参考。
引言:单片机作为嵌入式系统中的核心部件,承担着控制和处理各种信号的重要任务。
定时器和计数器作为单片机的重要功能模块,为实现各种实时控制任务提供了有效的工具。
定时器可以生成一定时间间隔的定时信号,而计数器则可以对外部事件的频率进行计数,实现时间测量和计数控制等功能。
一、定时器的工作原理单片机中的定时器通常为计数器加上一定逻辑控制电路构成。
定时器的基本工作原理是通过控制计数器的计数速度和计数值来实现不同时间间隔的输出信号。
当定时器触发时,计数器开始计数,当计数值达到预设值时,定时器产生一个输出信号,然后重新开始计数。
定时器通常由以下几个部分组成:1.计数器:定时器的核心部件是计数器,计数器可以通过内部振荡器或外部输入信号进行计数。
通常情况下,计数器是一个二进制计数器,它可以按照1、2、4、8等倍数进行计数。
2.预设值:定时器的预设值决定了定时器的时间间隔。
当计数器达到预设值时,定时器会产生一个输出脉冲。
3.控制逻辑电路:控制逻辑电路用于控制计数器的启动、停止和重置等操作。
通常情况下,控制逻辑电路由一系列的触发器和逻辑门组成。
二、定时器的工作模式定时器可以根据实际需求在不同的工作模式下运行,常见的工作模式有以下几种:1.定时工作模式:在定时工作模式下,定时器按照设定的时间间隔进行计数,并在计数值达到预设值时产生一个输出脉冲。
这种模式常用于周期性任务的触发和时间测量。
2.计数工作模式:在计数工作模式下,定时器通过外部输入信号进行计数,可以测量外部事件的频率。
单片机课程设计完整版
单片机课程设计Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】湖南工业大学课程设计资料袋理学院(系、部) 2015~2016 学年第 1 学期课程名称单片机系统课程设计指导教师职称学生姓名管专业班级电子科学1 学号题目出租车计费系统成绩起止日期 2015 年 12月7日~ 2015 年 12月 19 日目录清单湖南工业大学课程设计任务书理学院(系、部)电子科学专业班级课程名称:单片机系统课程设计设计题目:出租车计费系统完成期限:自 2015 年12月7日至2015 年 12 月 19 日共 2 周指导教师(签字):年月日系(教研室)主任(签字):年月日附件三(单片机应用系统)设计说明书(题目)出租车计费系统起止日期: 2015 年 12 月 7 日至 2015 年 12 月 19日学生姓名管班级电子科学学号成绩指导教师(签字)电气与信息工程学院2015年 12 月19 日一、设计任务:1.1 外部脉冲自动计数,自动显示。
1.1.1设计一个255计数器:0-255计数,计满后自动清0,重新计数(在数码管中显示)。
1.1.2设计一个50000计数器:0-50000计数,计满后自动清0,重新计数(在数码管中显示)。
1.2 设计一个出租车计费系统:起步价为5元(2km以内),2km后,元/0.5km;要求每500m刷新计费一次,在8位数码管中,前3位显示数码管显示里程数,后3位数码管显示价钱(角,元,十元)或者用lcd1602显示二、设计原理及思路1.设计一个255计数器:0-255计数,计满后自动清0,重新计数(在数码管中显示)。
这个用C语言比较简单。
首先我确定用的是外部中断0,1,外部中断0用来计数,来一个脉冲,计数器加1,直到加到255,然后清零。
外部中断1用来暂停/开始计数,来一个外部脉冲,暂停计数,再来一个脉冲,开始计数。
用138译码器数码管进行显示0到255,到了255,自动到0.2.设计一个50000计数器:0-50000计数,计满后自动清0,重新计数(在数码管中显示)。
《单片机原理及应用》课程设计题目
附件一:《单片机原理及应用》课程设计题目[注:在以下扩展芯片中地址分配为,8255控制口:0FF2BH,A口:0FF28H,B口:0FF29H,C口:0FF2AH;8155控制口:0FF20H,A口(字位口):0FF21H,B口(字形口):0FF22H,C 口:0FF23H(键扫口);其余扩展的芯片除存储器外,均使用由74LS138对8000H-0FFFFH 之间的地址进行译码产生的译码信号。
参与译码的地址线为A15、A14、A13和A12,此区间地址分为8段,每段地址长度1000H(最后一段地址可用范围为F000H-FEFFH)]1.函数波形发生器要求:利用D/A芯片产生峰峰值为5V的锯齿波和三角波。
控制功能:使用2个拨动开关(K1、K2)进行功能切换。
当K1接高电平时,输出波形的频率为1Hz,否则为0.5Hz。
当K2接高电平时,输出为三角波,否则输出为锯齿波。
使用的主要元器件:8031、6MHz的晶振、74LS373、74LS138、2764、DAC0832、LM324、拨动开关K1、K2等。
输出波形的验证方法:使用示波器测量输出波形。
2.255秒定时器要求:利用A/D对电位器滑动端的输出电压采样,其转换后得到的数字量做为定时器的设定值(0-0FFH秒)。
利用外部启动脉冲(实验系统上的单脉冲发生器)启动定时器开始做减法计数(每隔一秒钟,设定值减1),当设定值减到0时,单片机驱动喇叭发出1kHz 的报警声。
调整定时设定值和定时过程中的时间利用单片机串行口工作在方式0下,驱动两片74LS164在2位LED数码管上显示。
控制功能:通过旋动电位器W1来调整输入给A/D的采样电压值,8031通过对A/D采样得到数字量做为定时器的定时初值。
通过拨动开关K1来设定定时器的工作状态,当K1接高电平时,定时器处于定时状态,若接收到一个触发脉冲,则定时器开始倒计时。
计时到0,单片机通过P1.1驱动喇叭发出30秒钟的1kHz的报警声,然后将上一次的定时值重新装入,等待下一次启动定时;当K1接低电平时,定时器处于定时初值设定状态,这时旋动电位器W1可以调整定时初值,该值同步在2块LED数码管上显示。
单片机课程设计
单片机电子时钟摘要:在日常生活中,电子时钟与我们密切相关,在很多地方都会用到电子时钟。
除了专用的时钟、计时显示牌外,许多应用系统常常也带有实时时钟显示,如各种智能化仪器仪表、工业过程控制系统以及家用电器等。
实现电子时钟的方法有多种,通过前面我们对单片机基本理论及相关知识的学习,在这里,要求用单片机为主控制芯片设计一简单的单片机电子时钟。
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
关键词:电子时钟;单片机;计时SCM Electronic ClockAbstract:In our daily life, the electronic clock is closely related to the electronic clock which will be used in many places. In addition to a dedicated clock, timing licenses, there are many applications which often with real-time clock display, such as a variety of intelligent instrumentation, industrial process control systems and home appliances. There are many ways to realize the Electronic clock, through the front of learning our SCM basic theory and related knowledge, here, the microcontroller-based control chip design a simple single-chip electronic clock. With the development of computer penetration in the social field and LSI in recent years, the using of microcontroller applications is constantly go deeper, because it has the features of a small size, low power consumption, cheap, reliable, easy to use. Therefore it is particularly suitable for the control of the system, more and more widely used in automatic control, Intelligent instruments, data acquisition, and military products and home appliances, SCM often used as a core component in the structure, according to the specific hardware and software for application-specific object characteristics combined to make perfect.Keywords:electronic clock; microcontroller; timing目录第一章引言 (1)课程设计的目的 (1)课程设计内容 (1)第二章总体方案设计 (2)总体思想--方案论证 (2)方案的选择 (2)第三章硬件系统设计 (4)总电路设计 (4)器件的介绍 (4)单元模块设计 (6)第四章软件系统设计 (9)软件程序思想 (9)主程序及流程图 (9)子程序及流程图 (12)第五章系统仿真 (16)KEIL 51介绍 (16)PROTEUS介绍 (20)仿真过程及仿真结果 (28)第六章结束语 (29)致谢 (30)参考文献 (31)第一章引言课程设计的目的本次设计中以单片机的发展过程和发展方向为背景,介绍了单片机的输入输出的工作原理和操作方法,中断的工作原理和操作方法,74LS164译码器的工作原理和与LED连接的方法。
《单片机技术》实验(2022级自动化1201~02电气1201~02)教案
《单片机技术》实验(2022级自动化1201~02电气1201~02)教案课程教案课程名称:单片机技术实验任课教师:王韧所属院部:电气与信息工程学院教学班级:自动化1201~02、电气1201~02教学时间:2022—2022学年第二学期湖南工学院课程基本信息湖南工学院教案用纸实验一数据传送实验一、本次实验主要内容1、Keil软件的使用方法和调试。
2、存储器之间数据传送的方法和循环程序设计。
3、MCS-51系列单片机堆栈的使用。
二、实验目的与要求1、掌握单片机的汇编指令系统及汇编语言程序设计方法。
2、掌握单片机的存储器体系结构。
3、熟悉Keil软件的功能和使用方法。
4、掌握单片机应用程序的调试方法。
三、实验重点难点MOV、MOV某指令的用法特点。
四、实验方法和手段讲授、演示、操作、仿真、提问。
五、作业与习题布置写出实验报告。
P1湖南工学院教案用纸一、实验内容或原理1、实现单片机内部RAM之间,外部RAM之间以及内部RAM与外部RAM之间的数据传送。
2、利用Keil软件编辑、汇编、调试、运行实验程序并记录实验数据。
二、设计要求1、编写程序将00H~0FH16个数据分别送到单片机内部RAM30H~3FH单元中。
2、编写程序将片内RAM30H~3FH的内容传送至片内RAM40~4FH单元中。
3、编写程序将片内RAM40H~4FH单元中的内容传送到外部RAM4800H~480FH单元中。
4、编写程序将片外4800H~480FH单元内容送到外部RAM5800H~580FH单元中。
5、编写程序将片外RAM5800H~580FH单元内容传送回片内RAM50H~5FH单元中。
三、实验报告要求1、实验目的和要求。
2、设计要求。
3、实验程序流程框图和程序清单。
4、实验总结。
5、思考题。
四、思考题1、说明MCS-51系列单片机对片内RAM和片外RAM存贮器各有哪些寻址方式?2、说明指令MOVA,20H和MOVC,20H中的20H含义有什么不同?传送指令中的助记符MOV,MOV某,MOVC各适用于访问哪个存储器空间?P2湖南工学院教案用纸实验后记:P3湖南工学院教案用纸实验二单片机并行I/O口的应用实验一、本次实验主要内容1、利用单片机并行I/O口控制流水灯。
实验六:外部脉冲计数
实验六:外部脉冲计数一、任务目标:1、掌握定数计数器对外部脉冲计数的程序设计;2、进一步掌握定时计数器程序设计的基本要求;3、进一步理解中断入口地址的概念;4、进一步熟练流水灯及闪烁程序的编写。
二、任务要求:按键K接P3、4,即作为T0的外部计数脉冲输入,每按一次键,输入一个技术脉冲,要求:按键按下4次则与P1口相连的闪烁6次,闪烁要求亮1S,暗0、5S。
三、源程序:ORG 000HAJMP STARTORG 000BHAJMP WHXORG 0030HSTART: MOV TMOD,#06HMOV TH0,#0FCHMOV TL0,#0FCHSETB EASETB ET0SETB TR0SJMP $WHX: MOV R7,#6LOOP: CLR AMOV P1,AACALL DELAYMOV A,#0FFHMOV P1,AACALL DELAYDJNZ R7,LOOPRETIDELAY: M OV R5,#10D0: MOV R4,#250D1: MOV R6,#100D2: DJNZ R6,D2DJNZ R4,D1DJNZ R5,D0RETEND四:实验中遇到的问题及解决方法:1中断的影响?主程序结束的地方用原定等待指令,还有子程序的反回问题,用RETI..2.选用定时计数方式和重赋初值的问题?中断的影响?主程序结束的地方用原定等待指令,还有子程序的反回问题,用RETI..我们可以选择方式2,但是这种方式有一个不一样的特点就是它有初值重装的有点,所以在子程序中不需要对它进行初值的重装,同时注意方式2的TL0和TH0是相互独立的:TL0是助威8位的计数器,TX0是初值寄存器。
所以初始化要给他们赋相同的值。
3.中断的影响?主程序结束的地方用原定等待指令,还有子程序的反回问题,用RETI..4.题目要求按键按下4次则与P1口相连的闪烁6次,闪烁要求亮1S,暗0、5S,所以对于延时子程序的编写怎么弄?我们可以将延时子程序弄成0.5s,那么LED亮的时间我们就可以两次调用延时子程序。
单片机课程设计
《单片机原理及应用》课程设计报告课题名称频率计的设计学院自机学院专业电气工程及其自动化班级学号姓名时间2014/6/23-2014/7/04前言单片机原理及应用课程设计,是针对自动化、电气工程及其自动化、机械设计制造及其自动化等专业的学生学习单片机原理及应用课程,配套开设的课程设计。
作为嵌入式系统低端的单片机已成为电子系统中最普遍的应用手段,已经深入到国民经济与人民生活的各个领域。
近年来,采用单片机系统已成为解决各类电子技术和控制问题主要方法之一。
《单片机原理及应用》课程已被几乎所有工科院校中自动化、电气、仪器仪表、测控技术、机电一体化、电子、通信、计算机等类专业列为本科主干专业课程,是培养现代电子技术应用类专业人才的重要技术课程之一。
单片机课程设计是学习单片机理论的重要实践环节。
在单片机实验课程基础上,通过本课程设计的学习,使学生增进对单片机的感性认识,加深对单片机理论方面的理解;使学生掌握单片机的内部功能模块的应用,掌握单片机接口功能和扩展应用,掌握一些特殊器件及常用器件的使用方法,学习编制综合程序;使学生了解和掌握单片机应用系统的软硬件设计方法及调试过程。
充分发挥学生的主观能动性,激发学生的学习兴趣,培养学生主动利用单片机解决工程实际问题的意识。
培养学生的工程实践能力、实际动手能力和自我学习能力。
使学生完成从实际项目立题、调研、方案论证、方案实施、系统调试、编写使用说明书等科研全过程的基本训练,为今后在相关领域中从事与单片机有关的设计、开发、应用等工作打下良好的基础。
目录一、摘要 (2)二、项目的意义与目的 (2)三、频率计设计任务及要求 (2)1.设计任务 (2)2.设计要求 (2)四、方案设计 (3)3.方案论证 (4)4.方案选择 (4)五、芯片的选择与控制 (5)5.单片机AT89C51的介绍 (5)(1)AT89C51引脚图 (5)(2)引脚说明 (5)6.74LS245芯片的介绍 (8)(1) 74LS245引脚图 (8)7.LED数码管显示器介绍 (9)(1)LED引脚图 (9)(2)LED的静动态显示驱动 (9)六、各模块电路设计 (10)8.电路原理图 (10)9.电路流程图 (11)10.控制电路 (12)11.复位电路 (12)12.显示电路 (13)七、仿真与调试 (13)13.电路仿真图 (13)14.矩形波仿真 (14)15.三角波仿真 (14)16.正弦波仿真 (15)八、心得体会 (16)九、参考文献 (17)附录 0一. 电路原理图 0二.源程序 0一、摘要设计以单片机为核心,被测信号先进入信号放大电路进行放大,再被送到波形整形电路整形,把被测的正弦波或者三角波整形为方波。
单片机原理与应用(8051单片机P1口应用实验)
TF1为定时/计数器T1的溢出标志位。当T1被允许计 数以后,T1从初值开始加1计数,计数器的最高位产生 溢出时置“1”TF1,并向CPU申请中断,当CPU响应 中断时,由硬件清“0”TF1。TF1也可由软件查询清 “0 ” 。 TR1为定时/计数器的运行控制位,由软件置位和复位 。当方式控制寄存器TMOD中的GATE位为0,且TR1 为1时允许T1计数,TR1为0时禁止T1计数。当GATE 为1时,仅当TR1为1且INT1 (P3.2)输入为高电平时才 允许T1计数,当TR1为0或INT1输入为低电平时都禁止 T1计数。 TR0为定时器T0的运行控制位,其功能与TR1类似。 TF0为定时器T0的溢出标志位,其功能与TF1类似。
连线 1 2 3 4 5
连接孔1 P1.0 P1.1 P1.2 P1.3 单脉冲输出
连接孔2 L0 L1 L2 L3 T0
程序参考流程如下:
复习思考题
1 若在实验中采用定时器T1,应如何修改实 验程序? 2 实验中是如何实现定时时间扩展的?能否 实现更长时间的扩展? 3 利用8051定时器控制寄存器TMOD中的 GATE位,设计一个用T1实现测量脉冲宽 度的实验。
8051单片机有四个并行I/O口,称为 P0、P1、P2、P3,每个口都有8根引脚, 它们都是双向通道,每一条I/O引脚都能 独立地用作输入或输出,作输出时数据可 以锁存,作输入时数据可以缓冲。
P0为三态双向口,它可作为输入输出 端口使用,也可作为系统扩展时的低8位地 址/8位数据总线使用。 P1口为准双向口,每一位都可以分别 定义为输入或输出使用。 P2口也是一个准双向口,它有两种 使用功能:作为普通I/O端口或作为系统 扩展时的高8位地址总线。
在实验系统右如表所 连线 连接孔1 连接孔2 示连线。采用单步方 式执行实验程序,可 以看到当执行P1.0被 1 P1.0 继电器输入 置1时,LED点亮,执 行到P1.0被置0时, 继电器常闭 LED熄灭。如果全速 2 5V 输入 运行程序,则对应的 LED将随继电器的通、 继电器中间 3 L0 输入 断而亮灭。
定时计数器实验-单片机
单片机实验报告G A T EC /TM 1M 0G A T EC /TM 1M 0TH1TL1TH0TL0T1方式T1引脚T0引脚机器周期脉冲内部总线TMODTCON 外部中断相关位T F 1T R 1T F 0T R 0实验五 定时/计数器实验一、实验目的1.学习8051内部定时/计数器的工作原理及编程方法; 2.掌握定时/计数器外扩中断的方法。
二、实验原理8051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。
它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。
T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。
作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。
计数的最高频率一般为振荡频率的1/24。
定时/计数器的结构:定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
TMOD 是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
计数器初值的计算:设计数器的最大计数值为M(根据不同工作方式,M 可以是213、216或28),则计算初值X的公式如下:X=M-要求的计数值(十六进制数)定时器初值的计算:在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。
因此,定时器定时初值计算公式:X=M-(要求的定时值)/(12/fosc)80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。
TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。
❖工作方式寄存器TMOD:工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。
其格式如下:GATE:门控位。
GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南工业大学课程设计资料袋理学学院(系、部)2012 ~ 2013 学年第 1 学期课程名称单片机应用系统指导教师周玉职称副教授学生姓名张思远专业班级电子科学102 学号10411400223 题目对外部脉冲计数系统的设计成绩起止日期2013 年01 月06 日~2013 年01 月10 日目录清单湖南工业大学课程设计任务书2012 —2013 学年第1 学期理学院学院(系、部)电子科学专业102 班级课程名称:单片机应用系统设计题目:对外部脉冲计数系统的设计完成期限:自2013 年01 月06 日至2013 年01 月10 日共 1 周指导教师(签字):年月日系(教研室)主任(签字):年月日附件三(单片机应用系统)设计说明书(题目)对外部脉冲计数系统的设计起止日期:2013 年01 月06 日至2013 年01 月10 日学生姓名张思远班级电子科学102学号10411400223成绩指导教师(签字)电气与信息工程学院2012年12 月10 日一、设计任务:1.1 外部脉冲自动计数,自动显示。
1.1.1设计一个255计数器:0-255计数,计满后自动清0,重新计数(在数码管中显示)。
1.1.2设计一个50000计数器:0-50000计数,计满后自动清0,重新计数(在数码管中显示)。
注:要求首先采用PROTEUS完成单片机最小系统的硬件电路设计及仿真;程序仿真测试通过后,再下载到单片机实训板上执行。
二、硬件设计介绍:※STC89C52单片机;※6位共阴或者共阴极数码管;※外部晶振电路;※ISP下载接口(In system program,在系统编程);※DC+5V电源试配器(选配);※ISP下载线(选配)※6个PNP(NPN)三极管※12个碳膜电阻三、硬件设计思路方案一:五个1位7段数码管,无译码器方案二:五个1位7段数码管,译码器方案三:1个6位7段数码管,译码器方案四:1个6位7段数码管,无译码器考虑实际中外围设备、资金、单片机资源利用率、节省端口数量,可实行性以及连接方便等问题,采用6为数码管(共阳或者共阴极)由于实际中没买到6位的,采用2个三位数码管并接组合一个6位数码管形式;由于实际P口驱动能力有限,故采用6位三极管增大驱动能力,已便足以使得6位数码管亮度明显正常工作,增加6个电阻限流保护数码管不被烧坏。
让数码管a-g7段分别接P1.6—P1.0,6位位选分别接P2.5—P2.0。
方法一:共阴极数码管硬件图1.0所示:通过npn管放大后,段选高电平有效,位选低电平有效图1.0共阴极数码管硬件原理图方法二:共阳极数码管原理图如图2.0:段选低电平有效,位选低电平有效(通过pnp管连接,不再是高电平有效了,由于特意此接法,共阳极共阴极数码管只是差别段选控制,为程序修改提供极大的方便之处,故程序只需要修改段选地址即可,实现共阳极共阴极互换)图2.0共阳极数码管硬件原理图三、程序设计思路:由于设计是255和50000计数器,对于计数器工作模式二,TL最大值为255,可以实现对255计数,但是对于50000得另寻他路,为了建立不限制计数器模型,改进程序的可更改性可移植性可读行,对计数器模式二另TL1=0FFH(以T1为例,下文不再说明),只要来一个脉冲,就跳转中断服务程序执行,而计数不是直接通过TL操作,而是采用多寄存器组合的方式,方便修改,本设计采用R5,R6,R7,三寄存器通过数学上的逻辑组合形成6位数,如R7的低4位记录个位,高4位记录十位,R7本身只记录到99,在进一则归零,向百位进一(R6),而显示是通过对R7/10取余取整(0-9)通过查表指令实现相应的数字显示,位选通过高频扫描,实现“连续显示”无需再进行BCD转换,其他R5 R6同理。
极大的方便客户修改计数初值,灵活的实现计数。
对计数范围不限定且可系统模块化。
故对255和50000均适用图3计数程序流程图(255、50000均适用)四、硬件实物图如图4.0五、汇编程序(255、50000共用);对于255,设置R5=00,R6=02,,R7=55;对于50000,设置R5=05,R6=00,R7=005.1对于共阴极数码管:;---------------------------------------- ORG 0000HAJMP MIANORG 000BHAJMP INTERPORG 0030HMIAN:MOV R5,#00; 为十万、万位MOV R6,#00;千、百位MOV R7,#00;十、个位MOV TMOD,#06HMOV TL0,#0FFHMOV TH0,#0FFHSETB TR0SETB ET0SETB EAXIANSHI:MOV R0,#0BFHMOV A,R7LCALL CHANGEMOV A,R6LCALL CHANGEMOV A,R5LCALL CHANGESJMP XIANSHICHANGE:MOV R1,A ;位选移位,进行扫描。
R1保护操作值,暂存于R1 MOV A,R0SETB CRRC AMOV R0,AMOV A,R1MOV B,#10DIV ABXCH A,B ;组合整数部分余数部分MOV DPTR,#0100HMOVC A,@A+DPTRMOV P2,R0MOV P1,ALCALL DELAYMOV A,BMOV R1,AMOV A,R0SETB CRRC AMOV R0,AMOV A,R1MOVC A,@A+DPTR ;段选查表显示MOV P2,R0MOV P1,ALCALL DELAY ;延时10msRETINTERP:CJNE R5,#05,RE1 ;计数值设置:万位十万位 CJNE R6,#00,RE1 ;计数值设置:百位千位 CJNE R7,#00,RE1 ;计数值设置个位十位MOV R7,#0MOV R6,#0MOV R5,#0RETIRE1:CJNE R7,#99,LOOP1MOV R7,#0CJNE R6,#99,LOOP2MOV R6,#0CJNE R5,#99,LOOP3MOV R5,#0LOOP1: INC R7RETILOOP2: INC R6RETILOOP3: INC R5RETIDELAY:MOV R4,#10DE1:MOV R3,#50DE2:DJNZ R3,DE2DJNZ R4,DE1RETORG 0100HDB 7EH,30H,6DH,79H,33HDB 5BH,5FH,70H,7FH,7BHRED;------------------------------------------------ ;----------------------------5.2对于共阳极数码管只需将DB 7EH,30H,6DH,79H,33HDB 5BH,5FH,70H,7FH,7BH改成:DB 01H,4FH,12H,06H,4CHDB 24H,20H,0FH,00H,04H即可六、C51程序://对于255,设置c=00,b=02,,a=55//对于50000,设置c=05,b=00,a=006.1对于共阴极数码管:#include<stdio.h>#include<reg51.h>#include<intrins.h>//a位个位十位,b位百位千位c位万位十万位 char a,b,c;//延时DelayMS( int x){char i;while(x--){for(i=0;i<100;i++);}}//T1计数中断,工作方式2Timer1_Interrupt( ) interrupt 3 using 1//计数操作模块//a位个位十位,b位百位千位c位万位十万{if (a!=99){a++;}else{a=0;if(b!=99){b++;}else{b=0;if(c!=99){c++;}else{c=0;}}}if (c==0&&b==2&&a==55){ //判断是否计数到255(c==5&&b==0&0&a==00) 为计数50000a=0;b=0;c=0;}}void main( )//段选编码数组{ char code DISP[]={0x7E,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70,0x7F,0x7B};char R0,R1;P2=0XBF;//位选初值设置TMOD=0X60;TH1=0XFF;TL1=0XFF;TR1=1;ET1=1;EA=1;while(1){P2=0XBF;//循环移位后,重赋初值R0=a%10;R1=a/10;P2=_cror_(P2,1);//循环右移位选P1=DISP[R0];//查数组显示DelayMS(3); //P2=_cror_(P2,1);P1=DISP[R1];DelayMS(3);//R0=b%10;R1=b/10;P2=_cror_(P2,1);P1=DISP[R0];DelayMS(3); //P2=_cror_(P2,1);P1=DISP[R1];DelayMS(3);R0=c%10;P2=_cror_(P2,1);P1=DISP[R0];DelayMS(3);}}//END6.2对于共阳极数码管:程序只需将Char code DISP[]={0x7E,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70,0x7F,0x7B}; 改成:Char code DISP[]={0x01,0x4F,0x12,0x06,0x4C,0x24,0x20,0x0F,0x00,0x04};即可。
七、PCB图九、心得体会在这次实验中,我学到很多东西,加强了我的动手能力,并且培养了我的独立思考能力。
特别是在做实验报告时,因为在做数据处理时出现很多问题,如果不解决的话,将会很难的继续下去。
例如:数据处理时,遇到要进行数据获取显示,这就要求懂得数码管的工作,怎么个去控制,然后汇编程序怎么去实现数码管各个引脚的控制,对于多位数码管还得扫描显示。
我们做实验绝对不能人云亦云,要有自己的看法,要有自己独特的思路。
这样我们就要有充分的准备,若是做了也不知道是个什么实验,那么做了也是白做。
实验总是与课本知识相关的,在做设计前,首先你先想好最方便最实用最经济的硬件连接电路,然后用软件弥补不足之处,硬件是软件的躯体,而软件是硬件的血液,两者相辅相连,关系极为紧密。
硬件的不足可以适当用软件弥补,同样,良好的程序是建立在好性能的硬件上的。
在编写程序的时候,我觉得思路清晰,结构明确,最好具有模块化,建立模型,使得程序具有方便修改性,易于移植,且不受局限性,这样一来,程序灵活自如,结构明确易于别人看懂且为以后方便修改等。