基于单片机数字电子秒表电路设计内容摘要:
路的工作过程 FLASH ROM 中。 开启直流电源 +5V,经 R2C3 组成的微分电路将微处理器 AT89C5锁存芯片进行清零。 按清零键 ,时钟清零;按设置键,设置时钟初始值,并按北京时间要求把时、分依次通过 0— 9 和 0.— 设定;然后,按 OK 键,时钟开始计时。 :按暂停键将时钟暂停计时;通过按清零键,时钟清零;按 OK键,启动电子秒表开始计时;按暂停键,电子秒表暂停计时。 AT89C5锁存芯片 74HC138 和 74HC573 可靠工作,外加手动复位功能 SW1。 泰州 农业职业技术学院学生毕业论文 正文第 11 页 共 26 页 直流电源 220VR2200K7805+ 5V123412V+10 00 U F / 15 VC 2 +47 0U F / 15 V 图 六 直流电源电路图 首先通过变压器 T 进行交流变压为交流 12V,再经过桥式整流 VD1VD4 产生脉动,其计算公式为 UC1= 然后通过 RC 滤波,产生直流 的直流电压,其计算公式为 UC1= 经过三端稳压器 LM7805 和 LM7810 产生稳定的直流输出电压 +5V。 为了保证输出电压的稳定和减小交流波纹系数,增加滤波电容 C2和输出电阻 R2=200K,以保证输出直流电压的稳定。 泰州 农业职业技术学院学生毕业论文 正文第 12 页 共 26 页 表三 直流电源元件选择 序号 名称 型号 单位 数量 说明 1 变压器 TRANS1 个 1 进行交流变压 2 桥式整流器 IN4007 个 4 产生单向直流信号 3 电解电容 1000UF/15V 个 1 产生直流电压 4 三端稳压器 7805 个 1 产生稳定的直流输出电压 5 滤波电容 470FU/15V 个 1 滤波 6 电阻 2R 个 1 分压 主程序的设计构思 主程序有三个部分:第一部分是初始化设置,包括设置堆栈指针、 8279 初始化、定时器 /计数器初始化、显示缓冲区初始化、开中断、定时器 /计数器启动等。 定时器 /计数器初 始化就是选择定时器 /寄存器 TMOD 的工作方式,它的高 4位控制定时器 T1,低 4位控制定时器 T0。 TMOD 中各位的定义如下: T1 T0 GATE CF1 M1 M0 GATE CF1 M1 M0 0 0 0 1 0 0 0 0 TMOD 泰州 农业职业技术学院学生毕业论文 正文第 13 页 共 26 页 其中: CF1: T/C功能选择位,当 CF1=1 时为计数方式;当 CF1=0 时为定时方式。 M1M0:T/C 工作方式定义位, M1M0=01 时为工作方式, 16 位定时 /计数器。 TMOD=10H。 设置定 时 /计数器初始值,定时 10ms,计数初值 X=DC00H( MOV TL1, 00H MOV TH1,0DCH)。 显示缓冲区初始化,其显示缓冲区的首地址(最低位)为 50H。 共送入 8 个字符( MOV R0, 50H MOV R2, 08H)。 二部分主要是通过键扫描实现各种操作功能。 核心部分是键扫描子程序 KEYSCAN。 KEYSCAN 的主要功能是先通过读 8279 的状态字,判断是否有键按下,如有键按下则通过读 FIF0 RAM 命令,读得键值,通过查表得到相应的键号( 0~ F 号键相应的键号分别为 30H~ 3FH)。 KEYSCAN 子程序的出口条件是:如无键按下, A累加器的值为 00H;如有键按下, A累加器的值为 FFH, B 寄存器中的内容则为键号。 通过按键识别实现相应的操作功能。 各项操作功能如下: 按“ C”键,秒表清零功能:在主程序中将键号和 3CH 比较,如相等,则调用时钟清零子程序( CLEAR— T)。 该子程序功能是将显示缓冲区 50H~ 57H(分别存放十时、时、十分、分、十秒、秒、百毫秒、十毫秒的数值)全部清零,显示全零。 按“ A”键,时钟启动计时功能:在主程序中将键盘扫描所得键号和 3AH 比较,如相等,则调用时钟启动计时子程序 ( START— T)。 该子程序的功能是将 TR1置 1,启动定时器 /计数器 1 工作。 按“ D”键,时钟停止计时功能:在主程序中将键盘扫描所得序号和 3DH 比较,如相等,则调用时钟停止计时子程序( STOP_T)。 该子程序的功能是将 TR1 置 0,关闭定时器 /计数器 1。 按“ B”键,设置时钟初值功能:在主程序中将键盘扫描所得键号和 3BH 比较,如相等,则调用设置时钟初值子程序( SET_T)。 该子程序的功能是通过按 8 个数字键,设置时钟各位(十时、时、十分、分、十秒、秒、百毫秒和十毫秒)的初值。 程序的设计思路是:先通过键扫描确认是 否有键按下,然判断键值是否在 0~ 9之间(即键号是否在 30H~ 39H 之间),以排除非数字键。 后将键值( 0~ 9)依次送入显示缓冲区 50H~57HDANYUAN ,再调显示子程序实现显示。 其中调用了 GETWORD 子程序。 该子程序的功能是在键扫描判断出有键按下后,再判断是否按的是 0~ 9数字键(键号为 30H~ 39H)。 判断方法是将键号与 C6H 相加,如有进位,则表示非 0~ 9数字键。 若在 8次键入过程泰州 农业职业技术学院学生毕业论文 正文第 14 页 共 26 页 中任何一次输入了非数字键,则 8位 LED 数码管全部显示为零,要求重新输入。 SET_T子程序用一个循环程序实现上述 8次键入的功能。 第三部分是实现电子秒表的显示。 主要调用显示子程序 DISP。 该显示子程序与以前所述子程序不同之处是其中某些位要显示小数点。 按照课题要求,为区分时、分、秒、毫秒,要求时钟显示格式为 .,即 8位数据显示中每间隔一位要显示一个小数点。 为能显示小数点,本显示子程序中的 DISLED 子程序与以往有所不同,在以 LEDSEG 为起始地址的段码表中,增加了 16 个能显示小数点的段码值,如显示“ 3”的段码为 3FH,而显示“ 3.”的段码为 BFH。 这段码的变化在懂得 LED数码管工作原理的基础上应不难理解。 当在 DISLED 子程序的段码表中加入 16个带小数点的段码后,为实现预定的显示格式,只要在原显示子程序中加上一条 ADD A, 10H 指令即可。 这样,当要求显示数据为“ 3”时,原通过查表得到的段码应为 4FH,而现为 CFH,即显示“ 3.”,从而使 0LED 数码管上显示的数据均带有小数点。 泰州 农业职业技术学院学生毕业论文 正文第 15 页 共 26 页 主程序的 设计与实现 主程序流程图 定时器初始化 矩阵键盘扫描 是 是否有键按下 否 是 判断是否 OK键 定时器开始计时 否 是 判断是否设置键 调设置子程序 否 是 判断是否秒表键 转到秒表功能 否 是 判断是否秒清零键 清零秒表计数 否 秒表与时钟切换程序 数码管显示 图七 主程序的流程图 主程序的实现 include define uchar unsigned char define uint unsigned int 泰州 农业职业技术学院学生毕业论文 正文第 16 页 共 26 页 define clr time[0]=time[1]=time[2]=time[3]=time[4]=time[5]=time[6]=time[7]=0; uchar num, time[8]; //按键值,时间数组 uchar buffer[8]; //暂存时间 bit start, flag, add, sub, set, ok; //标志位 uchar code seg[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; // 数码管段选 09 uchar code seg_[]={0xbf, 0x86, 0xdb, 0xcf, 0xe6, 0xed, 0xfd, 0x87, 0xff, 0xef}; //数码管段选 . void keyscan( void); //扫描矩阵键盘 void delay( uint a); //1ms延时 void display( uchar m); //数码管动态显示 void timer2_init( void) ; //定时器 2初始化 void time_process( void); //秒表与时钟切换处理 void timeset( void); //时间设置 //主函数 void main( void) { timer2_init(); //定时器 2初始化 while( 1) { keyscan(); //扫描矩阵键盘 timeset(); //时间设置 time_process(); //秒表与时钟切换数据处理 display( 9); //数码管动态显示 } } //1ms延 时 @12Mhz void delay( u。基于单片机数字电子秒表电路设计
相关推荐
于正常的工作状态。 电磁阀部分 电磁阀部分是本设备的执行设备,是本设备顺利执行工作的必要部分。 按键部分 它是整个系统中比较简单的部分,根据功能要求,本系统共需 7 个按键,除了电源按键和复位按键以外还有 5 个按 键位于按键部分,分别是切换按键,上调按键,下调按键,左右调节按键,工作按键。 指示灯部分 整个系统中最简单的部分,主要有三个只是灯,除了一个电源指示灯外还有 2个指示灯
型计算机控制系统设计 [M] . 北京 :人民邮电出版社 ,2020, 28~ 142. [10蔡明生 . 电子设计 [M] . 北京 :高等教育教育出版社 ,2020, 57~ 214. 附录一 系统源程序 ORG 30H START:MOV R1,64H ;输出电压初使化 MOV 40H,0 ;设定为 5V MOV 41H,5 MOV 42H,0 DL: JB ,DL1 ; +键按键处理
向I/O口,每脚可吸收8TTL门流。 当P1口的管脚第一次写1时,被定义为高阻输入。 P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。 在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。 P1口管脚写入1后,被内部上拉为高
系统由单片机最小系统、实验开发平台(其中用到超声波收发模块、数码管显示模块、按键模块)、 PC 机、跳线若干根组成。 调试中的问题及解决方案 软件调试中的问题及解决方案 根据实际情况可以修改超声波子程序每次发送的脉冲宽度和两次测量的时间间隔,以适应不同距离的测量需要。 根据所设计的电路参数和程序,测距仪能测得 范围为 ~ ,当超过范围时发生 LED 亮灯报警,同时设置启动自动复位,使其重新测距。
方案三:选用AT89S52单片机为控制核心。 AT89S52,它具有一个8KB的Flish程序存储器,比89C51多4K,1个512字节的RAM,4个8位的双向可位寻址I/O端口,3个16位的定时/计数器及1个串行口和6个向量二级中断结构。 电路设计简单、价格便宜,运行速度比89C51快,功能也相当齐全。 另外,AT89S52在工业上也有着广泛的应用, 编程技术及外围功能电路的配合使用都很成熟。
平保持为高或者为低超过了定时的时间,就会产生复位信号。 CS 引脚上的一个下降沿将会复位看门狗定时器。 由于这是一个开漏型的输出引脚,所以使用时必须接上拉电阻。 8 VCC 正电源。 X5045 的状态寄存器描述 了 器件的当前状 态, 各位意义如 下 所 示。 表 24 X5045 状态寄存器各位定义 7 6 5 4 3 2 1 0 0 0 WD1 WD0 BL1 BL0 WEL WIP 其中