对外部脉冲计数系统的设计计数器课程设计(单片机)

合集下载

51单片机外部脉冲计数程序

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学生自我评估和改进建议收集四、教学方法与手段本课程采用理论教学和实践操作相结合的方法,以案例分析和程序示范为主要手段,通过课堂讲解、小组讨论、实验指导等多种形式,使学生更好地理解和掌握单片机的原理和应用。

单片机课程设计题目及要求

单片机课程设计题目及要求

单片机课程设计题目及要求单片机课程设计是一门实践课程,要求学生具有制作调试单片机最小系统及外设的能力,能够掌握单片机内部资源的使用。

单片机课程设计内容包括硬件设计、制作及软件编写、调试,学生在熟练掌握焊接技术的基础上,能熟练使用单片机软件开发环境Keil C51编程调试,并使用STC ISP调试工具采用串口下载方式联调制作的单片机最小系统。

单片机课程设计题目包含基本部分及扩展部分,基本部分即单片机最小系统部分,扩展部分是对单片机内部资源及外部IO口的功能扩展,使制作的单片机系统具有一定的功能。

单片机课程设计计分分为5个部分:焊接制作占20%,仿真与程序调试占20%,功能实现占20%,答辩与回答问题占20%,课程设计报告占20%。

课程设计题目:1、简易频率计数器自制一个单片机最小系统,包括串口下载、复位电路,采用外部计数器T0或T1作为外部频率输入,外部频率由信号源提供,测量出来的频率显示在四位一体的数码管上。

2、简易事件计数系统自制一个单片机最小系统,包括串口下载、复位电路,采用外部按钮模拟计数脉冲,通过对脉冲进行计数并显示在四位一体的数码管上,要求能通过按钮设置计数报警值,达到计数报警值后能进行声光报警。

3、简易交通信号控制器自制一个单片机最小系统,包括串口下载、复位电路,采用内部定时器定时控制南北、东西的交通信号灯(采用LED模拟),交通信号灯由红、黄、绿灯组成,东西、南北模拟路口由12路LED组成,其中南北、东西均采用并联方式连接,双向均有倒计时牌。

控制方案如下:4、简易安防声光报警器自制一个单片机最小系统,包括串口下载、复位电路,采用两路外部中断输入门禁和红外探测两路信号(采用两个小按键模拟),中断信号输入后能将报警信息在四位一体数码管上显示,并输出声光报警信号。

5、简易数字时钟自制一个单片机最小系统,包括串口下载、复位电路,采用内部定时器计时,或者采用外部时钟芯片DS1302,设计一个具有秒、分、日、月、年的数字时钟,采用四位一体数码管显示相关信息,秒、分显示一页,日、月显示一页,年显示一页。

单片机设计及应用知到章节答案智慧树2023年上海电力大学

单片机设计及应用知到章节答案智慧树2023年上海电力大学

单片机设计及应用知到章节测试答案智慧树2023年最新上海电力大学绪论单元测试1.本课程的学习目标为()。

参考答案:包括单片机的基本工作原理、单片机的硬件接口技术、汇编语言软件程序设计2.本课程的考试及格率为()。

参考答案:50~75%3.本课程的选修课程为()。

参考答案:计算机基础;电子电路;C语言第一章测试1.微型计算机采用总线结构()。

参考答案:可以简化系统结构、易于系统扩展2.微机的地址总线功能是()。

参考答案:用于传送要访问的存储器单元或I/O端口的地址3.在微机中将各个主要组成部件连接起来,组成一个可扩充基本系统的总线称之为( )。

参考答案:系统总线4.微型计算机的存储系统一般指主存储器和()。

参考答案:辅助存储器5.计算机的工作原理是存储程序控制,所以计算机中的程序都是顺序执行的。

()参考答案:错6.在计算机中,程序和数据都是以二进制形式不加区别存放的。

()参考答案:对7.已知[X]原=11101001,则[X]反=00010110。

()参考答案:错8.800H =2KB。

()参考答案:对9.8位二进制数补码的大小范围是-127∽+127。

()参考答案:错10.-128的补码是10000000。

()参考答案:对11.将十进制(0.825)10转换成二进制数是(0.1101)2。

()参考答案:错12.计算机中负数的反码是把它对应的正数连同符号位按位取反而开形成的。

()参考答案:错13.单片机在调试过程中,通过查表将源程序转换成目标程序的过程叫()。

参考答案:手工汇编14.将十进制数98转换成对应的二进制数是()。

参考答案:110001015.二进制数110110110对应的十六进制数可表示为()。

参考答案:1B6H16.已知[X]补=00000000,则真值X=()。

参考答案:17.计算机中最常用的字符信息编码是()。

参考答案:ASCII18.处理器的内部数据宽度与外部数据宽度可以()参考答案:相同或不同19.中央处理器是由()构成的。

单片机计数器设计

单片机计数器设计

单片机计数器的设计可以根据具体的需求进行灵活的选择。

以下是一个简单的单片机计数器的设计:
确定计数范围:根据需求确定计数器的范围,例如0-99或0-999。

选择计数器类型:根据计数范围选择合适的计数器类型,可以是二进制计数器、十进制计数器或BCD码计数器等。

确定计数方式:确定计数的方式,可以是递增计数、递减计数或双向计数等。

确定计数信号源:确定计数信号的来源,可以是外部信号源或内部时钟信号源。

连接计数器到外设:根据需求将计数器的输出连接到外设,例如LED显示器、数码管或继电器等。

编写计数器程序:使用适当的单片机编程语言编写计数器程序,包括计数器的初始化、计数操作和显示操作等。

测试和调试:在硬件连接完成后,对计数器进行测试和调试,确保计数器功能正常。

以上是一个简单的单片机计数器的设计流程,具体的实施可以根据具体的需求和单片机型号进行调整。

单片机复习题集及答案

单片机复习题集及答案

单片机练习题部分答案(本练习题仅包括填空、选择、问答类型题。

题的来源选自《单片机原理与应用学习概要及题解》霍孟友主编机械工业出版社出版,题中页码与题号与其对应。

下文中填空与选择题有答案,问答题没有答案。

)单片机构成及原理*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七,实验流程图(注:可编辑下载,若有不当之处,请指正,谢谢!)。

单片机原理及应用课程设计题目

单片机原理及应用课程设计题目

一、设计选题(三人一组,每组从以下题目中任选一题,一个题目最多只能由二组选):1、智能电子钟(LCD显示)的设计设计要求:制作一个LCD显示的智能电子钟:(1) 计时:秒、分、时、日、月、年、星期。

(2) 闰年自动判别。

(3) 时间、年、月、日、星期交替显示。

(5) 自定任意时刻自动开/关屏。

(6) 计时精度:误差≤1秒/月(具有微调设置)。

2、电子时钟(LCD显示)的设计设计要求在LCD显示器上显示当前的时间:使用字符型LCD显示器显示当前时间。

显示格式为“时时:分分:秒秒”。

用4个功能键操作来设置当前时间。

功能键K1~K4功能如下。

●K1—进入设置现在的时间。

●K2—设置小时。

●K3—设置分钟。

●K4—确认完成设置。

作品用一个LED指示灯工作状态,闪动表示作品正在工作,LCD显示“00:00:00”,然后开始计时。

3、秒表的设计设计要求设计一个2位的LED数码显示的“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。

4、定时闹钟的设计设计要求使用字符型LCD显示器设计一个简易的定时闹钟,若LCD选择有背光显示的模块,在夜晚或黑暗的场合中也可使用。

定时闹钟的基本功能如下:显示格式为“时时:分分”。

由LED闪动来做秒计数表示。

一旦时间到则发出声响,同时继电器启动,可以扩充控制家电开启和关闭。

作品工作后指示灯LED闪动,表示作品开始工作,LCD显示“00:00”,按下操作键K1~K4动作如下:(1) K1—设置现在的时间。

(2) K2—显示闹钟设置的时间。

(3) K3—设置闹铃的时间。

(4) K4—闹铃ON/OFF的状态设置,设置为ON时连续三次发出“哗”的一声,设置为OFF发出“哗”的一声。

设置当前时间或闹铃时间如下。

(1) K1—时调整。

(2) K2—分调整。

(3) K3—设置完成。

(4) K4—闹铃时间到时,发出一阵声响,按下本键可以停止声响。

本项目的难点在于4个按键每个都具有两个功能,以最终实现菜单化的输入功能。

毕业设计-用单片机实现频率计的设计

毕业设计-用单片机实现频率计的设计

毕业设计-用单片机实现频率计的设计目录1 单片机概述 (1)1.1什么是单片机 (1)1.2 单片机的应用 (2)1.3 单片机历史及发展趋势 (2)1.4 单片机应用系统的结构及其必需的外接电路 (3)1.4.1 51单片机最小系统 (3)1.4.2 晶振电路 (3)1.4.3 复位电路 (4)1.4.4 定时计数器的原理 (5)2 频率计方案选定 (8)2.1 频率计概述 (8)2.2 频率测量仪的设计思路与频率计算 (8)2.3方案设计 (8)2.3.1 方案一 (9)2.3.2 方案二 (10)2.3.3 两种方案的比较 (11)3 系统软件设计 (12)3.1 频率计仿真模型 (12)3.2液晶显示部分程序设计 (13)3.3 频率测量部分设计 (17)3.3.1 方案一程序设计 (17)3.3.2 方案二程序设计 (18)3.4 频率计仿真结果 (20)3.5 PCB设计 (22)4 焊接及系统的测试 (23)5 总结 (26)1 单片机概述1.1什么是单片机单片机就是一种微型计算机,是一种“程序存储式”计算机。

它是在一块硅片上集成了中央处理器(CPU)、随机存储器(RAM)、程序存储器(ROM或EPROM)、定时/计数器以及各种I/O接口,也就是集成在一块芯片上的计算机。

微处理器CPU主要由:运算器、数据总线、控制器组成。

同时,单片机具有优异的性价比,而且集成度、可靠性高,但受集成度限制,片内存储器容量较小(一般内ROM:8KB以下,内RAM:256KB以内),单片机的控制功能强,易于开发和扩展,可构成各种规模的应用系统。

MCS51单片机基本组成如图1所示。

图1 MCS-51单片机基本组成单片机是靠程序运行的,并且可以修改。

通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。

一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!1.2 单片机的应用目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

单片机原理及应用教程

单片机原理及应用教程

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. 需求分析与总体设计 由于本系统针对的建筑物各楼层之间甚至同一层之内的教学 科研功能各不相同,因此总体结构上已采用三层结构:总控 室,楼层控制器,教学单元控制器。根据现代化智能教学楼 的节能、舒适、安全、有序的要求,其中每个教室或实验室 具有一个功能可剪裁的“单元控制器”使教室/试验室可以 独立运转。实现对教学单位内的温度、湿度、光照度、空间 使用状态、设备使用状态、风机/空调器运行与否等等信息 进

单片机自动测试设计实验 课程实验报告

单片机自动测试设计实验    课程实验报告

西安电子科技大学单片机自动测试设计实验课程实验报告实验名称输出口实验机电工程学院学院班Array姓名学号同作者实验日期 2020 年月日输出口实验一、实验目的:(1)学习Keil软件的使用(2)学习P1口的使用方法。

(3)学习软件延时函数的编写。

二、实验原理1、Pl口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。

2、本实验中延时函数采用指令循环来实现,机器周期(系统晶振12MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。

三、实验仪器1.计算机2.单片机系统和仿真机3.Keil uVision2调试软件四、实验步骤1)设置:关闭实验仪电源,MON51K卡上跳线帽分别短接至MON、片内、FOSC;系统设置(JF)→总线(598),JK→系统,KB6→59(单“51”无此项);2)接线:☞ P1.0~P1.7→L1~L8。

☞实验箱主板CZ1/USB口→电脑串口/USB口。

3)运行:开启实验仪电源,双击“Keil uVision2”图标启动keil软件,选择通信端口、硬件仿真,编程、编译下载、开始调试,全速运行程序后,观察L1…L8流水灯循环。

五、实验内容:1.P1输出口接八只发光二极管,编写程序,使发光二极管循环点亮。

2.实现状态指示灯的驱动3.按照实验要求编写控制程序,进行在线调试,并进一步修改完善,最终完成可按一定0.1S的时间顺序依次点亮发光二极管的控制程序。

(要求写出程序)六、实验结果七、思考题如何修改程序,使发光二极管的移位方向改变;若使发光二极管的延迟时间发生变化,如何修改程序。

八、按要求写出实验报告编写实验报告规范:实验名称、目的、内容、原理、设备及仪表(名称、规格、型号)、实验装置或连接示意图、实验步骤、实验记录、数据处理(或原理论证、或实验现象描述、或结构说明等)。

西安电子科技大学单片机自动测试设计实验课程实验报告实验名称输出口扩展实验机电工程学院学院班Array姓名学号同作者实验日期 2020 年月日一、实验目的:(1)了解教学实验系统的结构(2)学习单片机系统中扩展简单I/O口的方法。

单片机课程设计完整版

单片机课程设计完整版

单片机课程设计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,重新计数(在数码管中显示)。

单片机“0~99”加法计数器程序设计51单片机原理及应用

单片机“0~99”加法计数器程序设计51单片机原理及应用

课程设计课程名称51单片机原理及应用题目名称单片机“0~99”加法计数器程序设计专业班级学生姓名学号指导教师蚌埠学院运算机科学与技术系课程设计任务书目录前言 (6)一.单片机介绍 (6)(一).AT89C51简介 (6)(二).主要特性 (7)(三).特性概述 (7)(四).管脚说明 (7)(五).芯片擦除 (9)(六) (9)二.课程设计的目的和要求 (13)(一).设计目的 (13)(二).课程设计题目 (13)(三).设计任务及要求 (13)三.整体设计思路 (13)(一).硬件设计思路及系统框图 (13)1.硬件设计思路: (13)2.原器件清单 (14)3.系统框图 (14)(二).软件设计思路: (14)(三).对照表 (14)(四).程序流程图 (15)四.硬件设计 (17)(一).芯片主要特性 (17)(二).管脚说明: (17)(三).排阻的作用 (18)(四).电路图说明 (19)1.添加晶振和复位 (19)2.添加P0和P2两个按键 (19)3. 数码管动态显示 (19) (19)五.软件设计说明 (19)}得和体会: (20)(二).建议和意见: (20)八.参考文献 (21)附录: (22)(一).汇编源程序 (22)(二).原理图 (24)前言单片机全称叫单片微型运算机(Single Chip Microcomputer),是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处置能力的中央处置器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、按时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上组成的一个小而完善的运算机系统。

目前单片机渗透到咱们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

导弹的导航装置,飞机上各类仪表的控制,运算机的网络通信与数据传输,工业自动化进程的实时控制和数据处置,普遍利用的各类智能IC卡,民用奢华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,和程控玩具、电子宠物等等,这些都离不开单片机。

《单片机原理及应用》课程设计题目

《单片机原理及应用》课程设计题目

附件一:《单片机原理及应用》课程设计题目[注:在以下扩展芯片中地址分配为,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)教案

《单片机技术》实验(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一、摘要设计以单片机为核心,被测信号先进入信号放大电路进行放大,再被送到波形整形电路整形,把被测的正弦波或者三角波整形为方波。

定时计数器实验-单片机

定时计数器实验-单片机

单片机实验报告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,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。

stm32定时器用于外部脉冲计数

stm32定时器用于外部脉冲计数

stm32定时器用于外部脉冲计数因为用stm32f103c8作主控制器,来控制小车,小车的转速由两路光电编码盘输入(左右各一路).因此想到外部时钟触发模式(TIM――ETRClockMode2Config)。

可以试好好久,发现TIM1不能计数,到网上查了很久,也没有找到相关的文章,开始怀疑TIM1是不是需要特殊设置。

经过很久的纠结,终于找到了问题――其实是我自己在GPIO设置的时候,后面的不小心覆盖了前面的了――没想到自己也会犯这么SB的事情。

现总结程序如下:第一步,设置GPIOGPIO_InitTypeDef GPIO_InitStructure; /* PA0,PA12-> 左右脉冲输入 */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_12;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度GPIO_Init(GPIOA, &GPIO_InitStructure);注意:(1)stm32f103c8只有TIM1_ETR(PA12,Pin33),和TIM2_CH1_ETR(PA0,Pin10)两个可以用。

其它更多管脚的芯片,有更多的可以输入(如100管脚的有4个可以输入的);(2)外部时钟输入与中断无关;(3)stm32f103c8的这个两个应用中,不需要重映射。

对于哪些需要重映射,参考数据手册。

第二步:设置RCCRCC_ClocksTypeDef RCC_ClockFreq;SystemInit();//源自system_stm32f10x.c文件,只需要调用此函数,则可完成RCC的配置. RCC_GetClocksFreq(&RCC_ClockFreq);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); 第三步,设置定时器模式void TIM1_Configuration(void) //只用一个外部脉冲端口 {TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//配置TIMER1作为计数器 TIM_DeInit(TIM1);TIM_TimeBaseStructure.TIM_Period = 0xFFFF;TIM_TimeBaseStructure.TIM_Prescaler = 0x00;TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); // Time base configurationTIM_ETRClockMode2Config(TIM1, TIM_ExtTRGPSC_OFF,TIM_ExtTRGPolarity_NonInverted, 0); TIM_SetCounter(TIM1, 0); TIM_Cmd(TIM1, ENABLE); }void TIM2_Configuration(void) //只用一个外部脉冲端口 {TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//配置TIMER2作为计数器 TIM_DeInit(TIM2);TIM_TimeBaseStructure.TIM_Period = 0xFFFF;TIM_TimeBaseStructure.TIM_Prescaler = 0x00;TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); // Time base configurationTIM_ETRClockMode2Config(TIM2, TIM_ExtTRGPSC_OFF,TIM_ExtTRGPolarity_NonInverted, 0); TIM_SetCounter(TIM2, 0); TIM_Cmd(TIM2, ENABLE); }第四步,可以在主函数中读取计数器的值,其它的应用,就看具体的情况了。

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

湖南工业大学课程设计资料袋理学学院(系、部)2012 ~ 2013 学年第 1 学期课程名称单片机应用系统指导教师周玉职称副教授学生姓名张思远专业班级电子科学102 学号题目对外部脉冲计数系统的设计成绩起止日期2013 年01 月06 日~2013 年01 月10 日目录清单湖南工业大学课程设计任务书2012 —2013 学年第1 学期理学院学院(系、部)电子科学专业102 班级课程名称:单片机应用系统设计题目:对外部脉冲计数系统的设计完成期限:自2013 年01 月06 日至2013 年01 月10 日共 1 周指导教师(签字):年月日系(教研室)主任(签字):年月日附件三(单片机应用系统)设计说明书(题目)对外部脉冲计数系统的设计起止日期:2013 年01 月06 日至2013 年01 月10 日学生姓名张思远班级电子科学102学号成绩指导教师(签字)电气与信息工程学院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,R0LCALL 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,LOOP2CJNE 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图九、心得体会在这次实验中,我学到很多东西,加强了我的动手能力,并且培养了我的独立思考能力。

特别是在做实验报告时,因为在做数据处理时出现很多问题,如果不解决的话,将会很难的继续下去。

例如:数据处理时,遇到要进行数据获取显示,这就要求懂得数码管的工作,怎么个去控制,然后汇编程序怎么去实现数码管各个引脚的控制,对于多位数码管还得扫描显示。

我们做实验绝对不能人云亦云,要有自己的看法,要有自己独特的思路。

这样我们就要有充分的准备,若是做了也不知道是个什么实验,那么做了也是白做。

实验总是与课本知识相关的,在做设计前,首先你先想好最方便最实用最经济的硬件连接电路,然后用软件弥补不足之处,硬件是软件的躯体,而软件是硬件的血液,两者相辅相连,关系极为紧密。

硬件的不足可以适当用软件弥补,同样,良好的程序是建立在好性能的硬件上的。

在编写程序的时候,我觉得思路清晰,结构明确,最好具有模块化,建立模型,使得程序具有方便修改性,易于移植,且不受局限性,这样一来,程序灵活自如,结构明确易于别人看懂且为以后方便修改等。

首先只进行仿真时,接的带译码的数码管,最多也只能驱动6个1位数码管,而如果用1位数码管就浪费了很多资源不说,而给实际电路连接带来麻烦,所以后来考虑6位数码管,那么问题就的进行高频扫描,实现动态显示,先是加了译码器,最后位了节省资源,省去译码器而程序改写进行查表指令代替,省去了很多其他硬件。

相关文档
最新文档