用7段数码管显示9秒倒计时资料
单片机99秒倒计时课程设计用74ls246

单片机99秒倒计时课程设计用74ls246
首先需要明确的是,经典的倒计时电路设计使用的是74LS192或74LS193计数器芯片,而74LS246是一个8位三态缓冲器,与倒计时电路设计关系不大。
下面给出使用74LS192或74LS193实现99秒倒计时的电路设计流程简述:
1. 确定时钟源
在倒计时电路中,需要一个时钟源来驱动计数器进行计数。
可以使用555定时器或水晶振荡器作为时钟源。
2. 设计计数器
使用74LS192或74LS193计数器芯片设计倒计时电路,需要考虑电路的初始状态以及计数器输出的电平状态。
3. 确定触发计数的条件
可以使用按键或外部信号触发计数开始。
在计数进行的过程中,需要在常开触点上接入继电器,当倒计时完成时,继电器断开触点,使接入的负载失去电源。
4. 设计显示器件
倒计时电路需要一个显示设备,可以使用LED或七段数码管等显示设备。
在使用七段数码管时,需要使用译码器将计数器的当前值转化为七段数码管的驱动信号,以实现数字显示。
以上是倒计时电路设计流程的简述,具体实现过程涉及到电路原理图的绘制、元器件的选型和焊接调试等环节,在设计过程中需要注意选用合适功耗和电性能指标的元器件,并加以保护,以确保电路的安全性和稳定性。
在实现过程中,应遵循相关的安全要求和规范,特别是对于高电压和高温度的电路部分,需要注意安全操作和防危控制。
数电课程设计十秒倒计时定时器

辽宁师范大学《数字电路》课程设计(09级本科)题目: 定时器1学院:物理与电子技术学院专业:电子信息工程班级:09.3班学号:14级!姓名: 张宁指导教师:赵静邱红张卓2完成日期:2011年10 月27 日一•设计内容及要求10 秒的倒计时定时器,倒计时要求用数码显示,当定时到1秒时,有声音提示,提示声音为0.5秒,当倒计时到0时停止计数二.总体方案设计由设计内容及要求,我设计了一个以NE555构成的多谐振荡电路,来发出一秒间隔的脉冲;用74LS192进行倒计时,通过74LS47连接一个数码显示器;由74LS192发出的高低电平经过逻辑电路变化,连接74LS121来控制蜂鸣器在1秒时响。
三.单元模块设计.1.以NE555构成的多谐振荡器NE555的震荡器在本电路中的周期T=C(R1+R2)=1S 图二冲图三为多谐振荡电路 R1和R2, C 的值确保震荡周期为1 秒,图三的右下角为复位电路,与下一部分一同介绍。
2.倒计时电路图5-1 7 11.SI92的引和扌*列及逻辑符巧<H )引脚扌非列I%1HI l_d I HL L TUT ?1 Qi 口。
CP (> OPuPOOJQO Qijr1一匕 f3 2 P2 P36Q2 7Q3CPu CPnMRTCu TC D1213L_r —Po “就Fil rial pin1011 —14-图四由74LS192的真值表图四可以看出,若想让元件工作在减计数状态MR PL 非,CPu的值必须分别为0,1,1。
由要求可以看出,192的初始必须是九,所以加了一个复位电路,确保初始值是9.计数器输入端P0,1,2,3对应接高低低高电平。
Q0, Q1,Q2,Q3为计数器输出端接到74LS47上。
NE555的3号管脚与74LS192的4浩管脚相连。
一秒发出一个脉冲,74LS192开始倒计时。
4.逻辑电路逻辑电路的作用在于将74LS192输出为一,即 Q3Q2Q1Q0=0001时输给报警电路一个负脉冲。
数显声响倒计时

一、 方案的论证和选择1.1 整体电路构思图1.1 整体电路构思图1.2 方案一如图1.1信号由555定时器产生频率为1HZ ,占空比1/2的信号,由190构成 15进制计数器,由JK 触发器控制190和发光二极管的工作状态,三态门控制停止电路和声控电路。
图1.2 74ls190构成的数显声响倒计时电路555信号发生器由T 触发器构成的开关 74ls190计数器报警电路 译码器LED 显示器1.3方案二如图1.2 信号由555定时器产生频率为1HZ,占空比为1/2的信号,由192构成15进制的计数器,由JK触发器控制192和发光二极管的工作状态,由三态门控制停止电路和声控电路。
图1.3 74ls192构成的数显声响倒计时电路1.4方案的选择我们组设计的是数显声响倒计时电路,有两种方案均能达到要求,但经查阅相关资料,结合我们组四个人的意愿,并联系我们学习过的数字电子技术基础的知识,我们觉得用74ls190做更具挑战性,因为用74ls190做成的电路连线较为复杂,这样不仅可以增强我们的动手能力,同时还有助于提高我们检查复杂连线电路的能力,更具有实践意义,对比之下我们选择了方案一。
二.单元电路设计2.1 电源电路设计降压电路:直流电源的输入为220V 的电网电压,一般情况下,所需直流电压的数值和有效值相差较大,因而需要电源变压器进行降压,在对交流电压进行处理降压电路采用变压器直接变压,输出9V交流电。
整流电路:整流电路一般分为半波整流和全波整流。
半波整流和全波整流相比,在相同的变压器的副边电压下,对二极管的参数要求是一样的,并且还具有输出电压高、变压器利用率高等优点,其中桥式整流最为常用,单相桥式整流电路将变压器副边电压从交流变为直流电压。
鉴于以上优点,本设计采用了桥式整流。
滤波电路:电容滤波电路时最常见也是最简单的滤波电路,在整流滤波电路的输出端(即负载电阻两端),并联一个电容即得到电容滤波电路。
滤波电容容量较大,利用其充放电作用,使输出电压趋于平滑。
数码管倒计时电路的设计

数码管倒计时电路的设计LED数码管倒计时电路采用24H计时方式,时分秒用6位数码管显示,分、秒之间为闪烁位,每0.5秒闪烁一次。
该电路采用AT89C51单片机,可按需求设计计时数。
数码管时钟电路如图1所示,其采用AT89C51单片机,LED先是采用动态扫描方式实现,P1口输出段码数据,P3.3~P3.5口接三八译码器作扫描输出,P0.0~P0.6口接按钮开关,为了提高秒计时的精确性,采用12MHz晶振。
1.主程序本设计中的计时采用定时器T0中断完成,其余状态循环调用显示子程序,当P0.6端口开关按下时,转入调时功能程序。
2.显示子程序数码管显示的数据存放在内存单元40H~45H中,其中40H~41H存放秒数据,42H~43H 存放分数据,44H~45H存放时数据,每一地址单元内均为十进制BCD码。
由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。
显示时,先取出40H~45H某一地址中的数据,然后查得对应的显示用段码从P1口输出。
P3.3~P3.5口将对应的数码管选中,就能显示该地址单元的数据值。
3.定时器T0中断服务程序定时器T0用于时间计时。
定时溢出中断周期设为50ms,中断累计20次(即1秒)时对秒计数单元进行加1操作。
时间计数单元地址分别在40H~41H(s),46H~77H(min),78H~79H(h),20H单元内存放“熄灭符”数据。
在计数单元中采用十进制BCD码计数,满60进位。
4.设置计时数程序设置计时数程序的设计方法是,P0.0~P0.5分别对应秒个位秒十位,分个位分十位,时个位时十位,P0.6设置位,当P0.6为0时,进入设置状态,各位清0,设置结束,按P0.6开始计时。
5.汇编程序清单ORG 0000HLJMP STARTORG 000BHLJMP ZM0;*****************************; 主程序;*****************************START: MOV TMOD,#11H ;设置定时器为0工作方试1MOV TL0,#0B0HMOV TH0,#3CH ;设置定时器0为50msSETB EA ;开总中断SETB ET0 ;开定时器0中断MOV DPTR,#TAB ;表格地址MOV 20H,#0FFH ;设置闪烁位MOV 40H,#00H ;秒个位MOV 41H,#00H ;秒十位MOV 42H,#00H ;分个位MOV 43H,#00H ;分十位MOV 44H,#00H ;时个位MOV 45H,#00H ;时十位MOV 50H,#0C0H ;秒个位显示码MOV 51H,#0C0H ;秒十位显示码MOV 52H,#0C0H ;分个位显示码MOV 53H,#0C0H ;分十位显示码MOV 54H,#0C0H ;时个位显示码MOV 55H,#0C0H ;时十位显示码MOV R2,#20 ;计数用,20*50ms为一秒SETB TR0 ;定时器0开始计时MAIN: ACALL DISPLAY ;显示JB P0.6,MAIN ;调整键按下ACALL DISP ;除抖JB P0.6,MAINACALL SETTIME ;进入调时SJMP MAIN;****************************; 计时中断0;****************************ZM0: PUSH ACC ;保护现场PUSH PSWCLR ET0 ;关闭总中断CLR TR0 ;关计时器0中断MOV A,#0B7H ;中断响应时间同步修正ADD A,TL0MOV TL0,AMOV TH0,#3DHSETB TR0 ;开计时器0DEC R2 ;闪烁位每0.5秒闪烁一次MOV A,R2MOV b,#10DIV ABMOV A,BCJNE A,#0,NEXT ;到0.5秒了吗CPL 06h ;闪烁位取反NEXT: CJNE R2,#0,OUT ;到一秒钟对40H至45H各位进行调整MOV R2,#20MOV R0,#40H ;秒数减一ACALL DEC1MOV R3,41HCJNE R3,#255,OUTACALL CLSMOV R0,#42HACALL DEC1 ;秒数数到0时,分数减一MOV R3,43HCJNE R3,#255,OUTACALL CLSMOV R0,#44H ;分数减到0时,小时数减一ACALL DEC1MOV R3,45HCJNE R3,#255,OUTMOV 40H,#00H ;秒个位归0MOV 41H,#00H ;秒十位归0MOV 42H,#00H ;分个位归0MOV 43H,#00H ;分十位归0MOV 44H,#00H ;时个位归0MOV 45H,#00H ;时十位归0MOV 20H,#0BFHACALL OUT1 ;BCD码化为显示码CLR TR0CLR TR0 ;关闭计时器0SJMP MAIN ;都减为0时,程序结果,等待下一次设置时间OUT: MOV R5,#6;将40H至45H的BCD码译为相应的显示码存放在50H至55H中MOV R0,#45HMOV R1,#55HBIAN: MOV A,@R0MOVC A,@A+DPTRMOV @R1,ADEC R0DEC R1DJNZ R5,BIANPOP ACCPOP PSWSETB ET0RETI;**************************; 减一程序;**************************DEC1: CJNE @R0,#0,OUTT ;对相应的十位与个位进行减一处理MOV @R0,#9INC R0DEC @R0DEC R0RETOUTT: DEC @R0RET;**************************; 归位程序;**************************CLS: MOV @R0,#9INC R0MOV @R0,#5RET;***************************; BCD码化为显示码程序;***************************OUT1: MOV R5,#6 ;将40H至45H的BCD码译为相应的显示码存放在50H至55H中MOV R0,#45HMOV R1,#55HBIAN1: MOV A,@R0MOVC A,@A+DPTRMOV @R1,ADEC R0DEC R1DJNZ R5,BIAN1RET;**********************************; 设置计时数程序;**********************************SETTIME:CLR TR0 ;关闭计时器ACALL DISPLAYMOV 40H,#00H ;秒个位归0MOV 41H,#00H ;秒十位归0MOV 42H,#00H ;分个位归0MOV 43H,#00H ;分十位归0MOV 44H,#00H ;时个位归0MOV 45H,#00H ;时十位归0MOV 20H,#0BFHACALL OUT1 ;BCD码化为显示码ACALL DISP ;除抖JB P0.6,REI1SELF: JNB P0.6,SELF ;等待键释放PUSH ACC ;保护现场PUSH PSWMOV TL0,#0B0H ;重置计数器MOV TH0,#3CHWAIT: ACALL DISPLAY ;等待设置健按下MOV A,P0CPL AJZ WAITACALL DISP ;除抖MOV A,P0CPL AJZ WAITMOV B,A ;保存数据SELF1: MOV A,P0 ;等待健释放CJNE A,#0FFH,SELF1MOV A,B ;计算是哪个键按下,对相应的内存加一MOV R1,#3FHCLR CAGAIN: RRC AINC R1JNC AGAININC @R1MOV B,R1ACALL SETTIME0 ;对时间数据作相应的调整ACALL OUT1 ;BCD码化为显示码MOV R1,BCJNE R1,#46H,W AIT ;p0.6再次为0时,开始计时REI1: POP ACCPOP PSWSETB TR0RET ;返回;*********************************; 调整程序;**********************************SETTIME0:MOV A,40H ;秒个位满10归0CJNE A,#10,SET1MOV 40H,#0SET1: MOV A,41H ;秒十位满6归0CJNE A,#6,SET2MOV 41H,#0SET2: MOV A,42H ;分个位满10归0CJNE A,#10,SET3MOV 42H,#0SET3: MOV A,43H ;分十位满6归0CJNE A,#6,SET4MOV 43H,#0SET4: MOV A,44H ;时个位满4归0CJNE A,#4,SET5MOV 44H,#0SET5: MOV A,45H ;时十位满3归0 CJNE A,#3,SET6MOV 45H,#0SET6: RET;**********************************; 显示程序;**********************************DISPLAY:MOV P1,50H ;显示秒个位MOV P3,#0ACALL DISPMOV P1,#0FFHMOV P1,51H ;显示秒十位MOV P3,#8ACALL DISPMOV P1,#0FFHMOV P1,20H ;显示闪烁位MOV P3,#16ACALL DISPMOV P1,#0FFHMOV P1,52H ;显示分个位MOV P3,#24ACALL DISPMOV P1,#0FFHMOV P1,53H ;显示分十位MOV P3,#32ACALL DISPMOV P1,#0FFHMOV P1,20H ;显示闪烁位MOV P3,#40ACALL DISPMOV P1,#0FFHMOV P1,54H ;显示时个位MOV P3,#48ACALL DISPMOV P1,#0FFHMOV P1,55H ;显示时十位MOV P3,#56ACALL DISPMOV P1,#0FFHRET;*******************************; 0.5ms延时程序;*******************************DISP: MOV 30H,#5DD: MOV 31H,#50DJNZ 31H,$DJNZ 30H,DDRET;*************************************; 表格;*************************************TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;0至9的共阳显示码END。
单片机数码管0到9编程间隔为1秒的实验报告

单片机数码管0到9编程间隔为1秒的实验报告
本次实验使用的是单片机数码管及定时器。
实验目的:
熟悉单片机数码管及定时器的编程方法,掌握基本的数码管数码显示及定时器操作。
实验材料:
单片机、LED数码管、跳线、电源、电动推杆。
实验原理:
基于单片机的GPIO控制与定时器编程实现数码管计数器的设计。
实验步骤:
1.连接电路如图所示(VCC连接到5V、GND连接到GND、COM连接到任意采用数字型数码管)。
2.完成电路后打开KEIL编译软件,新建一个工程文件并命名,选择C语言,按照所使用调试器的型号进行对应的选项设置,确定。
3.在编写代码前对单片机进行初始化配置,设定所需的端口进行数据的输入输出,主函数加入时钟初始化语句。
4.编写数码管显示代码,定时器中断触发的显示程序,以及定时器相关的中断服务程序。
5.在代码中加入宏定义,把需要显示的数字和时间间隔等参数进行定义,以便后期修改和使用。
6.调试程序,编译及下载程序到单片机中并运行,观察程序效果。
实验结果:
将数码管上的数字从0到9逐个显示,并每个数字停留1秒钟。
实验总结:
通过本次实验,我深入了解了单片机数码管和定时器的原理及编程技术。
对单片机编程的整个流程、基本控制语句和数据类型的使用有了更为深入全面的认识,并对实际项目的设计和开发也有了一定的指导性。
单片机12分钟倒计时综合实验报告

单片机12分钟倒计时综合实验报告
一、实验目的
1、学习Proteus软件基础使用方法;
2、掌握定时/计数器与外部中断工作原理;
3、学习设计单片机控制的多位数码管扫描显示电路;
4、理解数码管动态显示的原理。
二、实验原理
AT89C51单片机位控制器,四位7段数码管分别显示分的十位、分的个位、秒的十位和秒的个位,其中数码管的位选口为P2口高四位,段选口位PO口,分和秒的能动态显示。
定时器实现1秒准确定时,外部中断0引脚外接键盘BUTTON1,实现手动校分功能;外部中断1引脚外接键盘BUTTON2,实现清零功能。
三、实验内容
根据实验任务设计要求,在Keil软件中实现程序编辑、编译与执行等操作。
对编译通过的过程可选择单步调试的方式来观察运行的结果,以及各个寄存器的值如何变化。
参考程序流程:主程序流程:开始→变量赋初值一定时器T1赋计数初值一设置外部中断控制字→开中断→开计数器→送位选字→送段选码→延时一送位选字,定时器T1中断流程:定时器T1赋计数初值一到1秒了吗?→Y秒加1orN结束→到1分钟了吗?→Y秒清零orN结束一分钟加1→到12分钟了吗?→Y分钟清零orN结束一结束,外部中断0流程:分钟加1→到12分钟了吗?一Y分钟清零orN结束一结束,外部中断
1:分钟清零→秒清零→结束。
完整word版00-99秒倒计时器程序及仿真
题目一:秒计时器功能要求:1.系统上电,数码管显示“99”.2.每隔1秒,数码管显示减1,减小到“00”后,数码管显示“00”,同时继电器开启。
3.按键的定义如下:“暂停/开始”按键S13:当S13按下时,秒表计时停止,数码管显示当前数值,再次按下时恢复计时。
“设置”按键S14:当停止计时时,按下S14键,可以设置秒数。
按键S1-S10分别对应数字0-9,先输入数字为十位数,后输入数字为个位数,若输入数字大于99,数码管显示“99”。
设置结束后,按下S13键启动计时。
“重新开始”按键S15:当S15按下时,数码管显示为“99”,秒表从新开始计时。
#include<reg51.h>#include<intrins.h>unsigned char code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsigned char codejp[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77}; unsigned char a[2]={0,0};unsigned char int_time;unsigned char second=99;unsigned char c;bit zt;bit sz;unsigned char count;unsigned char y;unsigned char x;unsigned char count2;//函数功能:数码管动态扫描延时void delay(unsigned char s){unsigned char i,j;for(i=0;i<s;i++)for(j=0;j<125;j++);}//数码管显示子程序void DisplaySecond(unsigned char k){P2=0xfe;P0=Tab[k/10];delay(1);P2=0xfd;P0=Tab[k_x0010_];delay(1);}//扫描键盘的值void sm(void){ unsigned char k,j,n,a,m;m=0xfe;P1=0xf0;k=P1;k=k&0xf0;if(k!=0xf0){ delay(5);if(k!=0xf0){for(j=0;j<4;j++){ P1=m;n=P1;for(a=0;a<16;a++){if(jp[a]==n)c=a; //键值保存在C中while(P1==jp[a]);}m=_crol_(m,1);}}}}//按键void aj(void){if(P1!=0xf0){if(c==12) //按下暂停/开始键{count++;if(count==1){TR0=0;zt=1;}if(count==2){TR0=1;count=0;}}if(c==13){if(zt==1){second=00;sz=1;count2=0;}}if(c<10){if(sz==1){count2++;if(count2==1){a[0]=c;second=a[0]*10+a[1]; }if(count2==2){a[1]=c;second=a[0]*10+a[1]; }}}if(c==14){second=99;}}P1=0xf0;}//主函数void main(void){TMOD=0x01;TH0=(65536-46083)/256; TL0=(65536-46083)%6; EA=1;ET0=1;while(1){DisplaySecond(second);sm();aj();}}//函数功能:定时器0的中断服务子程序void interserve(void)interrupt 1 using 1 {int_time ++;if(int_time==20){int_time=0;second--;if(second==-1){second=00;P2=0x7f;delay(5);}}TH0=(65536-46083)/256;TL0=(65536-46083)%6;}。
EDA课设交通灯
《EDA技术及应用》课程设计报告题目:交通灯控制系统的设计院(系):机电与自动化学院专业班级:学生姓名:学号:20142101063指导教师:2017年6月 19日至2016年 6 月 23日武昌首义学院制《EDA技术及应用》课程设计任务书目录1课程设计主要内容与要求 (2)1.1设计目的 (2)1.2控制要求 (2)1.3设计要求 (2)2系统设计 (3)2.1系统原理 (3)2.2 电路功能描述 (3)2.3 交通灯控制器的实现 (3)2.4 软件程序设计 (5)2.5 时钟分频模块 (6)2.6 计数模块 (6)2.7 数码管模块 (7)2.8 LED显示模块 (8)3 软件程序设计 (9)4 硬件电路图、软件仿真图及调试结果 (11)4.1硬件电路 (11)4.2引脚设置 (12)5 软件仿真 (13)6设计过程中的问题及解决办法 (16)7 实验总结和心得体会 (16)8 参考文献 (16)1课程设计主要内容与要求1.1设计目的学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。
通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制。
1.2控制要求本课程设计要求利用VHDL对输入的时钟信号进行分频控制产生秒信号,并结合试验箱上的集成电路及芯片,控制十字路口的红绿黄灯交替点亮和熄灭,并用1位7段数码管显示十字路口两个方向的剩余时间。
①根据交通状态控制十字路口红黄绿灯的点亮熄灭及闪烁等。
②倒计时功能:从9秒开始倒计时,3秒时绿灯变黄并闪烁,红灯不变。
9秒结束时一组黄灯变红,另外一组红灯变绿。
③显示功能:使用1位7段数码管动态显示倒计时时间。
1.3设计要求①设计FPGA的基础工作电路;②设计红绿黄12个灯与FPGA芯片的硬件电路连接;③设计显示部分硬件电路;④使用底层及顶层设计完成电路设计,并作出各文件的仿真;⑤程序下载并进行硬件调试。
2系统设计2.1系统原理根据设计要求和系统所具有的功能,可以分析出,。
嵌入式数码管10秒倒计时程序C
嵌入式数码管10秒倒计时程序C 单片机输入数字并数码管倒计时典型C语言代码使用STC89C52RC单片机,外接数码管、蜂鸣器。
改代码非常适合初学者学习借鉴。
#include#define uchar unsigned char#define uint unsigned intsbit dula=P0^0;sbit wela=P0^1;sbit p17=P0^3;sbit p02=P0^2;sbit p32=P3^2;sbit p04=P0^4;uchar count;uint Sumnum;uint circle,circle1;uint time;float top;//定义top为浮点型变量uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar temp,count;uint bian,num,e,d,c,b,a; void delay(uchar x){uchar a1,b1;for(a1=x;a1>0;a1--)for(b1=200;b1>0;b1--); }void chaishu(uint sum1) {uint e1,b1,c1,d1;e=sum1/10000;e=6*e1=sum1%10000;///e1=5535 d=e1/1000;///d=5*d1=e1%1000;//d1=535c=d1/100;c=5*c1=d1%100;///c1=35b=c1/10;/b=3*b1=c1%10;b1=5a=b1;a=5*}void display(uint wan,uint qian,uint bai,uint shi,uint ge) {wela=1;P2=0xfe;wela=0;P2=0xff;dula=1;P2=table[wan];dula=0;delay(3);P2=0xff;wela=1;P2=0xfd;wela=0;P2=0xff;dula=1;P2=table[qian];dula=0;delay(3);P2=0xff;wela=1;P2=0xfb;P2=0xff;dula=1;P2=table[bai]; dula=0;delay(3);P2=0xff;wela=1;P2=0xf7;wela=0;P2=0xff;dula=1;P2=table[shi]; dula=0;delay(3);P2=0xff;wela=1;P2=0xef;wela=0;P2=0xff;dula=1;P2=table[ge];delay(3);P2=0xff;}///switchvoid suanbian(uchar cont){switch (cont)//松开按键后对bian进行赋值{case 1:{bian=num;break;//跳出switch}case 2:{bian=(bian*10)+num;break;//跳出switch}case 3:{bian=(bian*10)+num;break;//跳出switch}case 4:{bian=(bian*10)+num;break;//跳出switch}case 5:{bian=(bian*10)+num;break;//跳出switch}}//switch结束}///switchvoid keyscan(){以下测456P1=0xfd;// P1口等temp=P1;// temp等于P1口的值if(P1!=0xfd)// 如。
数字式定时开关资料
摘要“日出而作,日没而息”是人类在低水平生产力的农耕时代的生活规律,这是通过太阳来大概的测量时间。
在古时候也有使用日晷、燃香、沙漏等来衡量时间。
而在现代有各种时间衡量工具,如手机、手表、秒表。
为提高生活质量以及效率,家庭中的许多电路需要定时装置来实现自动控制。
本次课题目的:设计数字式定时开关,通过BCD拨码开关来实现定时时间的长短,并倒计时显示时间,通过减计数器实现时间的计时,时间到了之后,发出报警音,并切断电路,以实现定时功能。
本设计采用CD4060芯片,即14级2分频器和振荡器,外搭载晶振振荡回路产生秒脉冲,作为时钟脉冲,以供计数器作为时钟信号。
由于采用的32768Hz 的晶体振荡器,需要15级分频,在CD4060之后加一D触发器再次实现二分频得到秒脉冲信号。
之后经由74LS190十进制BCD码减计数器实现倒计时计数。
而后通过CD4511芯片将4位的BCD码译码成七段共阴数码管需要的码段。
通过计数器的借位端来实现报警、控制等功能。
结论以及实现的功能:本次设计完整的实现了9秒倒计时计数,并且能够保持0状态蜂鸣器报警,且通过继电器切断LED回路。
与此同时拓展了一块74LS190芯片来实现级联,实现了99秒倒计时计数。
可通过8位BCD拨码器预置所需要的倒计时时间。
关键字:定时、秒脉冲、减计数器、BCD码、继电器目录前沿 (1)第一章设计要求 (2)1.1 基本要求 (2)1.2 提高要求 (2)第二章系统的组成及工作原理 (3)2.1系统组成 (3)2.2 系统工作原理 (3)第三章电路方案设计 (4)3.1 秒脉冲的实现 (4)3.1.1方案一(NE555多谐振荡器) (4)3.1.2方案二(CD4060振荡分频器) (4)3.1.3 秒脉冲方案的选取 (6)3.2减计数的级联 (7)3.2.1 方案一 (7)3.2.2 方案二 (7)3.2.3 减计数方案的选取 (8)第四章单元电路的设计与仿真 (9)4.1秒脉冲电路的设计与仿真 (9)4.1.1 NE555秒脉冲电路的设计与仿真 (9)4.1.2 CD4060秒脉冲电路的设计与仿真 (10)4.2 BCD十进制减计数器设计与仿真 (14)4.3 译码显示电路设计与仿真 (16)4.3.1 CD4511译码驱动电路的设计与仿真 (16)4.3.2八段共阴数码管 (17)4.4 控制电路及报警与开关电路的设计与仿真 (19)4.4.1控制电路(保持0功能)的设计与仿真 (19)4.4.2 控制电路(置数功能)的设计与仿真 (20)4.4.3 报警与开关电路的设计与仿真 (20)第五章实验、调试及测试结果分析 (21)5.1 实验 (21)5.2 调试 (22)5.3 测试结果及分析 (22)第六章结论 (23)参考文献 (24)附录 (25)附录一 Multisim仿真原理图 (25)附录二 PCB原理图 (25)附录三芯片资料 (26)附录四设计作品展示 (28)附录五元件清单 (29)前言随着社会的发展,家用电器不断地步入家家户户,在定时方面的电路就更加迫切需要,通过定时来告诉用户电器的工作状态,以及控制电器工作,保护电路,节省资源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 设计内容及目标1.1设计题目用七段LED数码管显示倒计时1.2设计要求(1)用8255控制七段LED数码管。
(2)可选:用8254定时器显示时间。
(3)可选:可通过开关控制暂停计时、继续计时或时间清零。
1.3设计目的通过本学期对微机原理的学习,掌握的知识还停留在理论的上。
但是这是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。
通过设计实践,培养学生查阅专业资料,工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。
通过设计,不但要培养和提高学生解决工程具体问题,动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。
2 设计原理2.1设计思路本次课程设计的题目是用七段LED数码管来显示倒计时。
在这个设计中既要用到8255芯片,又要用到8254芯片对脉冲信号进行记数。
设定初始值,每隔一秒,秒钟数字减一,每过60秒分钟个位减一。
根据需要,需选择的芯片有8255、8259和8254。
2.2设计环境与器材(1)PC微机一台。
用于对程序的编写、编译和测试等,同时还需要对实验设备进行控制,提供整个程序的运行平台,并且收集和释放硬件信号,实现程序功能。
(2)微机原理实验箱一台。
此设备必须能提供8254、8255、8259和数码管等必要芯片,并且能通过接受PC机传来的信息,显示出相应的功能,以支持电子时钟的实现。
(3)导线若干条。
用于电路和芯片之间的连接。
2.3电路原理和主要芯片2.3.1电路工作原理首先利用程序硬性规定分、秒的起始时间为9。
然后通过8254计时器分频,并将以分得的频率接通8259中断控制器,进而通过CPU响应可屏蔽中断达到按秒计时的效果。
具体做法是将四个七段管显示器接到两片可并行接口8255芯片上,以此来控制七段管显示器的位操作以及段操作。
并为之在数据段开辟一处空间,专门存放将要显示的数位代码。
8254计时器将由PC机给定的频率加以分频,得到的新频率加到8259中断控制器的中断请求输入端。
主程序为此可屏蔽中断设置专门的中断向量码。
CPU获取此中断向量码后转向待需解决的程序进行操作。
而这个程序便是整个主程序的心脏。
通过它将使倒计时的显示时间以秒为减位,达到秒、分的减少。
2.3.2 8254主要功能8254 是Intel 公司生产的可编程间隔定时器。
是8253 的改进型,比8253 具有更优良的性能。
8254 具有以下基本功能:●有3 个独立的16 位计数器;●每个计数器可按二进制或十进制(BCD)计数;每个计数器可编程工作于6 种不同工作方式;每个计数器允许的最高计数频率为10MHz;●8254 有读回命令,除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。
●计数脉冲可以是有规律的时钟信号,也可以是随机信号。
计数初值公式为n=fCLKi ÷fOUTi,其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。
图1 内部结构框图和引脚图上图是8254 的内部结构框图和引脚图,它是由与CPU 的接口、内部控制电路和三个计数器组成。
8254 的工作方式如下述:(1) 方式0 :计数到0 结束输出正跃变信号方式。
(2) 方式1:硬件可重触发单稳方式。
(3) 方式2 :频率发生器方式。
(4) 方式3 :方波发生器。
(5) 方式4 :软件触发选通方式。
(6) 方式5 :硬件触发选通方式。
8254 的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。
这两个控制字共用一个地址,由标识位来区分。
当读回控制字的D4 位为0 时,由该读回控制字D1~D2 位指定的计数器的状态寄存器内容将被锁存到状态寄存器中。
状态字格式如图2.6所示:图2 8254状态字格式2.3.3 8255的主要功能8255 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。
CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。
用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图2.1所示:图3 内部结构及引脚如图2.1所示,D0~D7为双向数据信号线,用来传送数据和控制字。
为读信号线,与其他信号线一起实现对8255接口的读操作。
通常接系统总线的信号。
为写信号线,与其他信号一起实现对8255的写操作,通常接系统总线的。
为片选信号线,当它为低电平时,才能选中该8255芯片,也才能对8255进行操作。
A0、A1为口地址选择信号线。
本次设计使其分别与系统总线的XA1、XA2相连,它们的不同编码可分别寻址3个口和一个控制寄存器,具体规定如下:A1A0选择0 0 A口0 1 B口1 0 C口1 1 控制寄存器RESET为复位输入信号。
此端上的高电平可使8255复位。
复位后,8255的A口、B口和C口均被定义为输入状态。
PA0~PA7为A口的8条输入输出信号线,该口的这8条线是工作于输入、输出还是双向(输入、输出)方式,可由软件编程来决定。
PB0~PB7为B口的8条输入输出信号线,利用软件编程可指定这8条线是输入还是输出。
2.3.4 8259主要功能终端控制器8259是Intel 公司专为控制优先级中断而设计开发的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A 进行编程,就可以管理8 级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
同时,在不需增加其他电路的情况下,通过多片8259A 的级连,能构成多达64 级的矢量中断系统。
它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU 传送中断类型号。
8259A 的内部结构和引脚如图2.3所示:图4 内部结构和引脚8259的命令共有7 个,一类是初始化命令字,另一类是操作命令。
8259A 的编程就是根据应用需要将初始化命令字ICW1-ICW4 和操作命令字OCW1- OCW3 分别写入初始化命令寄存器组和操作命令寄存器组。
OCW1-OCW3 各命令字格式如图2.4所示,其中OCW1 用于设置中断屏蔽操作字,OCW2 用于设置优先级循环方式和中断结束方式的操作命令字,OCW3 用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259 内部寄存器的读出命令。
图5OCW1-OCW3 各命令字格3设计步骤3.1实验接线图系统的连线图主要由五个部分构成。
8259中断控制器、8255并口控制器、8254定时计数器、键盘及数码管显示单元、开关及LED显示单元构成。
如下图所示:芯片8254 系统总线芯片8255 LED数码管图6 实验接线图3.2主程序流程图的设计主程序的流程图是对整个程序的逻辑的图象表示。
首先是设置8254、8255、8259的各个端口地址。
接着初始化各个芯片,开始计时,并通过8259中断控制时间的正确显示。
在整个过程中都在检测是否有铵键响应。
有则停止,没有则返回继续执行。
图7 主程序流程图3.3子程序流程图图8 子程序流程图3.4倒计时源程序的设计MY8255_A EQU 0600HMY8255_B EQU 0602HMY8255_C EQU 0604HMY8255_MODE EQU 0606HA8254 EQU 06C0HB8254 EQU 06C2HC8254 EQU 06C4HCON8254 EQU 06C6HSSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSDATA SEGMENTDTABLE DB 6FH,7FHDB 07H,7DH,6DH,66H,4FH,5BH,06H,3FHMSEC DW 0SEC DB 0MIN DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:SSTACKSTART: PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7 ;取中断入口地址MOV SI, 003CH ;中断矢量地址MOV [SI], AX ;填IRQ7的偏移矢量确定地址 MOV AX, CS ;段地址MOV SI, 003EHMOV [SI], AX ;填IRQ7的段地址矢量CLIPOP DS ;初始化主片8255MOV DX,MY8255_MODEMOV AL,81HOUT DX,AL ;初始化主片8254MOV DX,CON8254MOV AL,36HOUT DX,ALMOV DX,A8254MOV AL,0E8HOUT DX,ALMOV AL,03HOUT DX,AL ;初始化主片8259OUT 20H, AL ;ICW1MOV AL, 08HOUT 21H, AL ;ICW2MOV AL, 04HOUT 21H, AL ;ICW3MOV AL, 01HOUT 21H, AL ;ICW4MOV AL, 6FH ;OCW1OUT 21H, ALSTIMOV AX,DATAMOV DS,AXMOV SI,3000HMOV AL,00HMOV [SI],ALMOV [SI+1],ALMOV [SI+2],ALMOV [SI+3],ALMOV DI,3003HBEGIN: CALL DISCALL CLEARJMP BEGINMIR7: STIPUSH AXPUSH SIMOV AX,MSECINC AXMOV MSEC,AXCMP AX,1000JB MRETMOV AX,0MOV MSEC,AXMOV AL,SECADD AL,1DAAMOV SEC,ALCMP AL,60HJB MTODISMOV AL,0MOV SEC,ALMOV AL,MINADD AL,1DAAMTODIS: MOV AL,SECMOV AH,ALMOV SI,3000HAND AL,0FHMOV [SI],ALROR AH,1ROR AH,1ROR AH,1ROR AH,1AND AH,0FHMOV [SI+1],AHMOV AL,MINMOV AH,ALAND AL,0FHMOV [SI+2],ALROR AH,1ROR AH,1ROR AH,1ROR AH,1AND AH,0FHMOV [SI+3],AHMRET: MOV AL, 20HOUT 20H, AL ;中断结束命令POP SIPOP AXIRETCLEAR: MOV DX,MY8255_BMOV AL,00HOUT DX,ALRETDIS: PUSH AXMOV SI,3000HMOV DL,0F7HMOV AL,DLAGAIN: PUSH DXMOV DX,MY8255_AOUT DX,ALMOV AL,[SI]MOV BX,OFFSET DTABLEAND AX,00FFHADD BX,AXMOV AL,[BX]MOV DX,MY8255_BOUT DX,ALCALL DALLYINC SIPOP DXMOV AL,DLTEST AL,01HJZ OUT1ROR AL,1MOV DL,ALJMP AGAINOUT1: POP AXRETDALLY : PUSH CXMOV CX,000FH T1: MOV AX,002FHT2: DEC AXJNZ T2LOOP T1POP CXRETCODE ENDSEND START3.5源程序的调试过程经过小组成员共同努力编写完源程序,我们开始了上机调试过程,发现了许多细节上的错误,还有许多程序的用途和我们设计的不同。