单片机编程倒计时演示2

合集下载

单片机设计60秒倒计时正计时 Proteus仿真

单片机设计60秒倒计时正计时 Proteus仿真

60秒倒计时设计一:1.目的课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。

2.要求单片机控制的60s倒计时(1)用单片机AT89C51的定时器实现60s倒计时。

(2)用PROTEUS设计,仿真基于AT89c51单片机的60s倒计时实验。

3. 目标通过课程设计,使自己深刻理解并掌握基本概念,掌握单片机的基本应用程序设计及综合应用程序设计的方法。

2:方案选择图2.1:60秒倒计时总体电路设计本设计由硬件设计和软件设计两部分组成,总电路框图如图2.1所示。

具体设计:通过AT89C51型号单片机,由P1和P2两组I/O引脚分别控制两个7SEG–COM –ANODE型号数码管,分十位控制和个位控制,达到显示60秒倒计时的目的。

通过复位电路,在仿真过程中点击开关实现60复位3.1 AT89C51外形及引脚排列如图3.1所示图3.1:89C51的核心电路框图主要特性·与MCS-51 兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路管脚说明(1)电源及时钟引脚(4个)Vcc: 电源接入引脚Vss:接地引脚XTAL1:晶振震荡器接入的一个引脚(采用外部振荡器时,此引脚接地);XTAL2:晶体振荡器的另一个引脚(采用外部振荡器时,此引脚作为外部振荡器信号的输入端)。

(2)控制线引脚(4个)RST/Vpd:复位信号输入引脚/备用电源输入引脚;ALE:地址锁存允许信号输出引脚/编程脉冲输入引脚:EA:内外存储器选择引脚/片外EPROM编程电压输入引脚;PSEN:外部程序存储器选通信号输出引脚。

倒计时60秒程序(单片机C51)

倒计时60秒程序(单片机C51)

倒计时60秒程序(单片机C51)#include#define uint unsigned int#define uchar unsigned charuchar code table[]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};sbit gew=P2^1;sbit shiw=P2^0;sbit k2=P1^0;uchar num,num1=60,num2,shi,ge;void Init(){TMOD=0X01; TH0=(65536-50000)%256; TL0=(65536-50000)%256;EA=1;ET0=1; TR0=1;}void delay(uint xms) //延时子函数{uint i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}void scankey() //键盘检测子函数{if(k2==0) //检测键是否被按下{delay(5); //延时消除抖动if(k2==0) //重新读取k2的值{num2++; //num2为按次数标志位while(!k2); //等待按键释放if(num2==1) //按键一次计时停止TR0=0;if(num2==2) //按键两次计时开始{TR0=1;}}}}void main() //主函数{Init(); //初始化子函数调用while(1){scankey(); //不断键盘扫描gew=0; //打开数码管个位位选P0=table[ge]; //数码管个位赋值delay(1); //延时送入数据的反应时间gew=1; //关闭数码管个位位选delay(1);shiw=0; //打开数码管十位位选P0=table[shi]; //送入数据delay(1);shiw=1; //关闭数码管十位位选delay(1);}}void Timer0() interrupt 1{TH0=(65536-50000)/256; //定时器重装初值TL0=(65536-50000)%256;num++;if(num==20) //定时器每进行一个周期num加1,运行20个周期即为1s{num=0; //到1秒,num清0重新开始num1--; //倒计时1秒if(num1==0)num1=60;shi=num1%10; //两位数分离赋给数码管十位显示ge=num1%10; //两位数分离赋给数码管个位显示}}。

单片机如何实现9秒倒计时 (自动保存的)

单片机如何实现9秒倒计时 (自动保存的)
特殊环境机器人卓越人才班
课程设计报告(论文)
题目:单片机9秒倒计时设计
专业班级:电气工程及其自动化
物联网
电子
姓 名:黄鹏肖、李俊、杨依萍
时间:2015.01.22~2015.02.07
指导教师:
完成日期:2014年06月17日
单片机如何实现9秒倒计时
摘要:本设计为在51单片机上使用中断函数实现9秒倒计时并使之在数码管上显示出来,此产品使用1MHZ震荡晶振并通过精确计算是倒计时的精确度精确到了毫秒级别(这是一般秒表所不能及的),使用复位开关使得重复倒计时变得十分的方便。
关键字:倒计时,自动控制,数码管显示,中断函数
1 引言
1927年弗里兹先生为影片中火箭发射设计了“9,、8、7、……3、2、1”的倒计时程序,从次火箭发射前都引用次程序一次来凸显出科研对于时间的准确性和人们对将来计划的紧迫感。
如今:随着社会和科技的发展,人们对时间的精度越来越高,各种科研实验对时间的精度非常苛刻,对于高速运动的物体时间更是失之毫厘差之千里,因此时间的精度对于我们研究高速移动物体就显得尤为重要了。本次设计的9秒倒计时就是一个精确度极高的倒计时工具的缩影,希望以此为模型设计出更多更加精确的倒计时工具,这是我们学习路途上的一小步,但汇聚众多的一小步就可以推动科学科技的发展。
2 总体设计方案
2.1 设计思路
为了更加精确的实现倒计时,本设计在at89c51单片机的基础上使用外加1MHZ晶振,通过机器震荡周期欲时间周期的关系换算出每。
2.1.1本设计所需器件及其规格
倒计时产品所需器件入表1.
名称
规格
数量
备注
芯片
At89c51
1
晶振
12M
1

单片机课程设计倒计时秒表.

单片机课程设计倒计时秒表.

、设计目的此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。

通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验以后从事生产和科研工作打下一定的基础。

本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。

本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。

掌握单片机应用系统的软硬件设计过程、方法及实现,强化单片机应用电路的设计与分析能力。

提高学生在单片机应用方面的实践技能和科学作风 ; 培育学生综合运用理论知识解决问题的能力,实现理论结合实际,学以至用的原则。

用所学的知识和自身课外的拓展学习加深对专业课的理解和学习;锻炼综合运用电路设计及相关电子仪器、单片机软硬件结合的理论,结合生产实际分析和解决工作工程实际问题的能力,加固、加深和扩展有关电子类,汇编语言,相关电子电路和仿真软件方面的知识和能力。

通过本次课程设计,应加强培养如下能力:(1)加强自身独立的动手能力和思考解决问题的能力,提高创造能力;(2)学会使用软件 Proteus 画原理图和仿真调试。

(3)学会基本焊接电路板的技能通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。

、设计要求1、可以以实现正常秒表的所有功能,包括启动、暂停、复位等;2、可以自由设定倒计时时间(10s、20s、30s・・・),并进行倒计时;3、显示方式自选;4、任选一款 51 单片机;5、扩展功能:在秒表的基础上增加时钟功能,倒计时完成时加入报警单元,如声音、灯光等。

单片机12分钟倒计时

单片机12分钟倒计时

比赛时间还原、暂停、倒计时设置按键1用来还原比赛的时间。

本设计设定的每节比赛的时间为12分钟。

当按下1键时,每节比赛剩余时间还原为“12:00”,并显示在数码管上。

时间还原后比赛就可以开始了,如果裁判吹响开始的哨声,则应立即按下2键使倒计时开始。

如果出现死球情况,就要按下3键,使倒计时停止。

暂停时间到时,再按下2键继续倒计时,直至结束。

key1 key2 key3程序:#include<reg52.h>#define uint unsigned intvoid delay(uint);unsigned char DUANZHI[]={0x3f,0x30,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//定义0~9指针unsigned char dpsbf[]={0,0,0,0};unsigned char A[]={0xfe,0xfd,0xfb,0xf7};sbit key1=P3^0;sbit key2=P3^1;sbit key3=P3^2;unsigned char num,msecond=1,mminute=1; unsigned char i,key1_1=0,key2_1=0,key3_1=0; void display();void Time0_Init() //中断初始化{TMOD=0X01;IE=0X82;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;}void main() //主函数{num=0;Time0_Init();for(;;){if(key1==0){msecond=1;mminute=13;key3_1=0;}if(key2==0)key3_1=1;if(key3==0)key3_1=0;display();}}void delay(uint x) //延迟{uint i,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}void T0_time()interrupt 1 // 中断{TH0=(65536-50000)/256;TL0=(65536-50000)%256;if(key3_1==1)num++;}void display() //显示{if(key3_1==1){if(num>=20){num=0;msecond--;if(msecond<=0){msecond=60;mminute--;if(mminute<=0){msecond=1;mminute=1;key3_1=0;}}}}dpsbf[3]=(msecond-1)%10;dpsbf[2]=(msecond-1)/10;dpsbf[1]=(mminute-1)%10;dpsbf[0]=(mminute-1)/10;for(i=0;i<=3;i++){P1=A[i];P0=DUANZHI[dpsbf[i]];delay(3);}}。

单片机倒计时

单片机倒计时

模拟电视播放中插播广告倒计时方莹目录摘要 (1)1绪论 (1)1.1功能需求 (1)1.2数据需求 (2)2硬件设计 (2)2.1电路设计 (2)2.2LCD液晶屏坐标图及外形尺寸图 (3)2.3功能模块设计 (4)3 系统工作原理 (6)3.1型液晶显示屏(奥可拉中文集成模块)工作原理 (6)3.2串行接口与串行传输介绍 (7)3.3字形显示模块 (8)4 线路连接 (9)5 软件设计 (9)5.1主程序 (9)5.2LCD显示模块设计 (10)6 调试分析 (10)7结论 (11)8结束语 (11)参考文献 (11)附录一 (12)附录二 (34)摘要液晶屏在现代人们日常生活中的使用已经非常广泛,例如飞机场里使用液晶屏来显示各个航班的情况,火车站和汽车站里用其来显示车次,商业街里使用液晶屏来显示各种各样的广告标语等。

本次课程设计要求使用液晶屏在第一页电视画面显示节目图片信息,随后插播10秒广告倒计时,使用到了OCMJ4X8C_3型LCD液晶屏,在这一次的课程设计中是将LCD液晶屏和单片机相结合使用,因此,还涉及到了51单片机的编程方式及实现方法。

本报告中包含了系统工作原理:OCMJ4X8C_3型液晶显示屏(奥可拉中文集成模块)工作原理、串行接口与串行传输资料、汉字图形显示步骤;硬件设计:电路设计、LCD液晶屏外形尺寸图及坐标图、功能模块设计;线路连接;软件设计:主程序、LCD显示模块设计等内容,并给出了硬软件的调试。

关键词:扫描;51单片机;字码库;1绪论LCD电子显示屏是近年来得到广泛应用的重要信息设备。

这种显示屏具有耗电省、成本低、清晰度高、寿命长、显示内容的信息量大,外形美观大方,操作使用方便灵活,用户可随时任意自行编辑修改显示内容,显示方式图文并茂等优点,因此被广泛应用于商场、学校、银行、邮局。

由于显示屏具有色彩鲜艳、亮度高、寿命长、工作稳定可靠等优点, 在许多行业都得到了广泛的应用, 如在车站、码头、商场、银行等公共场所将显示屏用于信息发布。

单片机60秒倒计时

单片机60秒倒计时

1前言12工程概况23正文23.1 设计目的与要求23.2 设计方法的目标23.3 设计方法和内容23.3.1 硬件设计方法33.3.2 软件设计方法63.4 软件调试过程83.4.1 系统调试工具keilC5183.4.2 系统调试工具PROTEUS83.4.3 焊接电路,对各节点测试导通性9 4有关说明105设计总结106致谢107参考文献10在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。

现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有想像和拓展空间。

单片机就是微控制器,它是嵌入式系统中的重要且发展迅速的组成部分。

单片机接上震荡元件(或震荡源)、复位电路和接口电路,载入软件后,可以构成单片机应用系统。

将它嵌入到形形色色的应用系统中,它就成为众多产品、设备的智能化核心。

所以,生产企业称单片机为“微电脑”。

单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。

但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于:单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。

从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件(编程序)方法实现了。

这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。

微控制技术是一种全新的概念,是对传统控制技术的一次革命。

随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。

近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

倒计时数字秒表设计 (2)

倒计时数字秒表设计 (2)

课程设计任务书倒计时数字秒表设计摘要:本次课程设计以AT89S52单片机为核心设计一个倒计时数字秒表,计数初值为59并开始每秒自动减1,当按键1按下时记录当前时间值,当按键2按下时显示当前记录值,显示过之后再次按下按键1时秒表复位为59。

本设计硬件部分包括电源电路、复位电路、按键电路、振荡电路、数码管显示电路五部分电路,软件程序部分有定时中断程序、外部中断程序、显示子程序和延时子程序等。

软件Proteus画出原理图并进行仿真,依照仿真成功的原理图接线,在万能版上把个个器件焊接好从而实现预期的功能。

关键词:倒计时; AT89S52; 74LS47; 数码管目录1. 设计背景.......................................................................... 错误!未定义书签。

2. 设计方案.......................................................................... 错误!未定义书签。

2.1总体设计框图........................................................... 错误!未定义书签。

2.2时钟电路方案选择................................................... 错误!未定义书签。

2.3复位电路方案选择................................................... 错误!未定义书签。

2.4显示电路方案选择................................................... 错误!未定义书签。

3. 方案实施.......................................................................... 错误!未定义书签。

单片机10秒倒计时c语言汇编语言程序

单片机10秒倒计时c语言汇编语言程序

单片机10秒倒计时c语言汇编语言程序(2)数码管动态显示(循环显示0~9,时间间隔为1 秒,1 秒的时间间隔用定时器T0 实现)①汇编语言:ORG 0000HAJMP MAINORG 000BHAJMP INTT0ORG 0030HMAIN:CLR P2.7MOV DPTR,#TABCLR AMOV R2,#0HMOVR3,#0HMOV TMOD,#01HMOV TH0,#4CHMOV TL0,#00HSETB EASETB ET0SETB TR0HERE: CJNE R2,#14H,HEREMOV R2,#0HPUSH ACCMOVC A,@A+DPTRMOV P0,APOP ACCINC AINC R3 CJNE R3,#0AH,HEREMOV R3,#00H ;此处用DJNZ 更方便,只不过R3 的初始值;要设置为0AH,同时取消INC R3 指令(此行上面第二行)CLR AAJMP HEREORG80HINTT0:MOV TH0,#4CHMOV TL0,#00HINC R2RETITAB: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND②C 语言#include#define uint unsigned int#define uchar unsigned charsbit p27=P2;//数码管位选端定义uchar c,i;//数码管译码表unsigned char code NumDecode[] ={0XC0,//;00XF9,//;10XA4,//;20XB0,//;30X99,//;40X92,//;50X82,//;60XF8,//;70X80,/ /;80X90,//;9};void main(){i=0;//10 秒计时设置c=0;//中断次数计数p27=1;//数码管位选端关闭TMOD=1;//设置定时器0 为工作方式1TH0=(65536-46080)/256;//定时50ms 高8 位求模TL0=(65536-46080)%256;//定时50ms 低8 位求余EA=1;//开总中断ET0=1;//定时器0 中断TR0=1;//启动定时器0while(1){if(c==20)//50ms 中断20 次{c=0;i++;//倒计时总数每秒减1}if(itips:感谢大家的阅读,本文由我司收集整编。

基于51单片机能实现任意时间倒计时。

基于51单片机能实现任意时间倒计时。

倒计时器只要修改此文档15页源程序的(如下图)的到计时初值即可实现想要的倒计时。

比如30分钟倒计时修改分钟十位和各位即可。

一、设计要求:由单片机接收小键盘阵列设定倒计时时间,倒计时的范围最大为60分钟,由LED 显示模块显示剩余时间,显示格式为 XX(分):XX(秒).X,精确到0.1s的整数倍。

倒计时到,由蜂鸣器发出报警。

绘制系统硬件接线图,并进行系统仿真和实验。

画出程序流程图并编写程序实现系统功能。

二、设计的作用目的:此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。

通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。

本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。

本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。

三、具体设计:1.问题分析:在电子技术飞速发展的今天,电子产品的人性化和智能化已经非常成熟,其发展前景仍然不可估量。

如今的人们需求的是一种能给自己带来方便的电子产品,当然最好是人性化和智能化的,如何能做到智能化呢?单片机的引入就是一个很好的例子。

单片机又称单片微型计算机,也称为微控制器,是微型计算机的一个重要分支,单片机是20世纪70年代中期发展起来的一种大规模集成电路芯片,是集CPU,RAM,ROM,I/O接口和中断系统于同一硅片上的器件。

基于51单片机的倒计时程序

基于51单片机的倒计时程序

kk1 bit b.1kk2 bit b.2ORG 0000HLJMP STARTORG 000BHLJMP CTC0TT1 EQU 37H ;50msTT2 EQU 38H ;秒TT3 EQU 39H ;分TT4 EQU 3AH ;时YUESHI EQU 40HYUEFEN EQU 41HORG 42HVIEW0:DB 0C0H, 0F9H, 0A4H, 0B0H, 99H , 92H , 82H, 0F8HDB 80H , 90H, 88H , 83H , 0C6H, 0A1H, 86H, 84HORG 0A0HTEMP_TAB: DB 00H,01H,02H,03H,04H,05H,06H,07H DB 08H,09H,10H,11H,12H,13H,14H,15HDB 16H,17H,18H,19H,20H,21H,22H,23HDB 24H,25H,26H,27H,28H,29H,30H,31HDB 32H,33H,34H,35H,36H,37H,38H,39HDB 40H,41H,42H,43H,44H,45H,46H,47HDB 48H,49H,50H,51H,52H,53H,54H,55HDB 56H,57H,58H,59H,60HORG 100HSTART: MOV TMOD,#01HMOV TL0,#0B0HMOV TH0,#3CHSETB EASETB ET0SETB TR0SETB P2.4 ;SETB P2.5JB P1.6,NEXT;JMP ZHUNEXT: MOV A,#00HMOV R2,#17H ;24小时MOV YUESHI,#00HMOV YUEFEN,#00HMOV R3,#3BH ;60SETB KK1SETB KK2mainline:JB P1.3,KEY1CLR KK1KEY1: JNB p1.3,KEY2 ;当p1.3高电平时就往下执行,但是只要执行一次后,kk1就为1,往后就不再执行JB KK1,KEY2INC YUESHISETB KK1 ;这以段的任务是不用延时也能消除按键抖动的程序KEY2: JB P1.4,KEY3CLR KK2KEY3: JNB P1.4,RESJB KK2, RESSETB KK2INC YUEFENRES:MOV A,YUESHISUBB A,R2JNZ BUDAOSHIMOV YUESHI,#00HBUDAOSHI:MOV A,YUEFENSUBB A,R3JNZ BUDAOFENMOV YUEFEN,#00HBUDAOFEN:MOV A,YUESHIMOV DPTR,#TEMP_TABMOVC A,@A+DPTRMOV R0,AANL A,#0FH;送小时的个位MOV DPTR,#VIEW0MOVC A,@A+DPTRMOV P0,ASETB P2.0SETB P2.1CLR P2.2SETB P2.3LCALL DELAYMOV A,R0SWAP AANL A,#0FHMOVC A,@A+DPTRMOV P0,A ;显示时的十位SETB P2.0SETB P2.1SETB P2.2CLR P2.3LCALL DELAYMOV A,YUEFENMOV DPTR,#TEMP_TABMOVC A,@A+DPTRMOV R0,AANL A,#0FH;送分的个位MOV DPTR,#VIEW0MOVC A,@A+DPTRMOV P0,ACLR P2.0SETB P2.1SETB P2.2SETB P2.3LCALL DELAYMOV A,R0SWAP AANL A,#0FHMOVC A,@A+DPTRMOV P0,A ;显示分的十位SETB P2.0CLR P2.1SETB P2.2SETB P2.3LCALL DELAYJNB P2.2, NEXT2;按下就进入定时煮饭的阶段LJMP mainlineDELAY: MOV R5,#08H ;40ms延时子程序L7: MOV R6,#0FAHL8: DJNZ R6,L8DJNZ R5,L7RETNEXT2: MOV A,#00HMOV TT1,A ;让TT1重新清零这一步是必须的 MOV TT2,#00HMOV A,YUEFENMOV TT3,AMOV A,YUESHILOOP1: MOV A,TT4JZ AINI1LCALL TIMEING1AINI1: MOV A,TT4JNZ AINI2LCALL TIMEING2;-------------定时程序:--------------------AINI2: MOV A,TT1;CJNE A,#14H,RET001SUBB A,#14H ;20×50ms=1sJNZ RET001MOV TT1,A ;TT1清零DEC TT2MOV A,TT2SUBB A,#0FFH ;到零?JNZ RET001MOV TT2,#3BH ;重新送数DEC TT3MOV A,TT3SUBB A,#0FFHJNZ RET001MOV TT3,#3BHDEC TT4MOV A,TT4SUBB A,0FFHJNZ RET001HERE: CLR P1.5;定时中止SJMP HERE;RET001: LJMP LOOP1;-----------显示倒计时1:-------------- TIMEING1:MOV A,TT4MOV DPTR,#TEMP_TABMOVC A,@A+DPTRMOV R0,AANL A,#0FH;送小时的个位MOV DPTR,#VIEW0MOVC A,@A+DPTRSETB P2.0SETB P2.1CLR P2.2SETB P2.3LCALL DELAYMOV A,R0SWAP AANL A,#0FHMOVC A,@A+DPTRCLR P2.3MOV P0,A ;显示时的十位SETB P2.0SETB P2.1SETB P2.2CLR P2.3LCALL DELAYMOV A,TT3MOV DPTR,#TEMP_TAB MOVC A,@A+DPTRMOV R0,AANL A,#0FH;送分的个位MOV DPTR,#VIEW0MOVC A,@A+DPTRMOV P0,ACLR P2.0SETB P2.1SETB P2.2SETB P2.3LCALL DELAYMOV A,R0SWAP AANL A,#0FHMOVC A,@A+DPTRMOV P0,A ;显示分的十位SETB P2.0CLR P2.1SETB P2.2SETB P2.3LCALL DELAYRET;-----------显示倒计时2:-------------- TIMEING2:MOV A,TT3MOV DPTR,#TEMP_TABMOVC A,@A+DPTRMOV R0,AANL A,#0FH;送分的个位MOV DPTR,#VIEW0MOVC A,@A+DPTRSETB P2.0SETB P2.1CLR P2.2SETB P2.3MOV P0,ALCALL DELAYMOV A,R0SWAP AANL A,#0FHMOVC A,@A+DPTRSETB P2.0SETB P2.1SETB P2.2CLR P2.3MOV P0,A ;显示分的十位LCALL DELAYMOV A,TT2MOV DPTR,#TEMP_TABMOVC A,@A+DPTRMOV R0,AANL A,#0FH;送秒的个位MOV DPTR,#VIEW0MOVC A,@A+DPTRCLR P2.0SETB P2.1SETB P2.2SETB P2.3MOV P0,ALCALL DELAYMOV A,R0SWAP AANL A,#0FHMOVC A,@A+DPTRSETB P2.0CLR P2.1SETB P2.2SETB P2.3MOV P0,A ;显示秒的十位LCALL DELAYRET;**************定时中断子程序**************************************** CTC0: MOV TL0,#0B0H ;定时50msMOV TH0,#3CHINC TT1RETIEND。

51单片机倒计时程序

51单片机倒计时程序

51单片机倒计时程序#include reg52.h#define uint unsigned int#define uchar unsigned charsbit key1=P2^0;sbit key2=P2^1;sbit key3=P2^2;sbit key4=P2^3;sbit key5=P2^4;sbit key6=P2^5;uinta[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0到9 uint b[]={0xef,0xdF,0xbF,0x7F,0xfe,0xfb,0xfd,0xf7,};int s=5,m=00,h=00;uint timecount;uint sg,ss,mg,ms,hg,hs,flag1=0,flag2=0;int keycount=0;void init()//初始化函数配置中止存放器得值。

{timecount=0; TMOD=0x01;TR0=1;ET0=1;EA=1;TH0=0x3c;TL0=0xb0;}void delay(x)//延时函数。

{uint i,j;for(i=x;i0;i--)for(j=120;j0;j--);}void display()//把时候秒送到数码管显示。

{uint i;sg=s%10;ss=s/10;mg=m%10;ms=m/10;hg=h%10;hs=h/10;for(i=0;i8;i++){switch(i){case 0:P1=b[7];P0=a[sg];break;case 1:P1=b[6];P0=a[ss];break;case 2:P1=b[5];P0=0x40;break;case 3:P1=b[4];P0=a[mg];break;case 4:P1=b[3];P0=a[ms];break;case 5:P1=b[2];P0=0x40;break;case 6:P1=b[1];P0=a[hg];break;case 7:P1=b[0];P0=a[hs];break;}delay(1);}}void key_scan()//检测键能否按下按没有同键完成没有同得处置。

单片机设计24秒倒计时

单片机设计24秒倒计时
sbit key3=p1^2;
sbit BEEP=P2^7;//报警器控制位
uint num,num1,shi,ge;
uchar code table[ ]={0x3f,0x06,0x5b,0x4f,//数码管相应
的段选码
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
秒计时器设计。要求设计一个24秒计时电路,并拥有时间显示的功能。
要求:
1、设置外面操作开关,控制计数器的直接清零、启动和暂停/连续计
时。
2、要求计时电路递减计时,每隔1秒钟,计时器减1。
3、当计时器减到0时,显示器上显示00,同时发出光电报警信号。
硬件电路:
设计思路:
采纳AT89C51作为主控芯片, 晶振是6KHz,机械周期为1ms,所
}
}
void beep(void)
{
uchar i;
for (i=0;i<50:i++)
{
delay 1(4);
BEEP=!BEEP;//BEEP取反
}
}*/
/*按键扫描函数void keyscan() {
*/
if(key1==0)
//
开始计算
{
delay(5); //
if(key1==0)
{
延时消抖
次中止
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
num++;
}
while(!key1); //
放手检测
TR0=1;
}
}
if(key2==0)
//

单片机30秒倒计时

单片机30秒倒计时

天津工业大学电子CAD课程设计报告书三、总体方案)本设计由硬件设计和软件设计两部分组成,总电路如图1所示,硬件设计主要包括单片机芯片选择,数码管选择及晶振,电容,电阻等元器件的选择及其参数的确定;软件设计主要是实现30秒倒计时程序的编写,包括利用中断实现1秒的定时及30秒的倒计时。

具体设计:通过AT89C51型号单片机,由P0 I/O引脚分别控制7SEG–MPX2–CA型号数码管,通过单片机的和控制选通数码管控制十位和个位,达到显示30秒倒计时的目的。

30秒倒计时,到0时1KHZ 声音报警,LED 2 秒闪烁一次。

4 秒后声光停图1 30秒倒计时总体电路设计硬件设计方法AT89C51的芯片概述AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

其工作电压在-5V,一般我们选用+5V电压。

外形及引脚排列如图2所示:AT89C51主要特性图2:AT89C51的核心电路框图。

LED数码管显示器概述本设计中采用的是7SEG–MPX2 –CA型号7段共阳数码管,它是一种半导体发光器件,其基本单元是发光二极管。

实物如图3所示:图3 7SEG–MPX2–CA型号数码管图5 程序框图软件设计方法;定时/计数器初值计算(1)本电路应用TIMER0 MODE 16位计数器的计时中断法。

(2)12M的晶振每秒可以产生1M个机器周期,1秒等于1000000微秒,而每一计时脉冲是1微秒,因此需输入100000个计时脉冲,方可达到1秒的时间。

单片机:手动设定倒计时时间,0报警

单片机:手动设定倒计时时间,0报警

单⽚机:⼿动设定倒计时时间,0报警⾸先显⽰”时.分“,K1时增加,K2分增加(如果不修改时分默认5分钟:300秒倒计时)K3开始倒计时,显⽰秒倒计时,到时报警BEEPK4停⽌报警,并返回到”时分“状态,⼜可以设置倒计时时间,来回循环#include<reg51.h>#define uchar unsigned char;#define uint unsigned int;uchar position;uchar tt,bz=0,bza=1;uint second;uchar minute;uchar hour;uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0--9sbit smg_q = P2^0;sbit smg_b = P2^1;sbit smg_s = P2^2;sbit smg_g = P2^3;sbit key1=P3^2;sbit key2=P3^3;sbit key3=P3^4;sbit key4=P3^5;sbit led1=P1^0;sbit led2=P1^1;sbit led3=P1^2;sbit led4=P1^3;sbit led5=P1^4;sbit led6=P1^5;sbit beep=P2^5;void keyscan();void display(unsigned char hour,unsigned char minute);void displaym(unsigned int second);void delay(unsigned int timer);void init();void main(){init();while(1){if(tt==20){ led1=~led1;led2=~led2;tt=0;if(second==0 && bz==1){while (bza==1){beep=0;delay(100);beep=1;break;}}elsesecond--;}keyscan();if (bz==0)display(hour,minute);elsedisplaym(second);delay(1);}}void keyscan(){ if(key1==0){TR0=0;hour++;if(hour==24)hour=0;delay(200) ;}if(key2==0){TR0=0;minute++;}if(key3==0){bz=1;bza=1;TR0=0;second=hour*3600+minute*60;if (second==0)second=300;delay(200) ;TR0=1;}if(key4==0){beep=1;bz=0;bza=0;minute=0;TR0=0;led1=1;led2=1;second=0;hour=0;minute=0;}}void init(){tt=0;bza=1;position=0;second=0;minute=0;hour=0;smg_q=1;smg_b=1;smg_s=1;smg_g=1;key1=1;key2=1;TMOD=0X01;TH0=0x4c;TL0=0x00;EA=1;ET0=1;TR0=0;}void t0() interrupt 1{TH0=0x4c;TL0=0x00;tt++;}void display(unsigned char hour,unsigned char minute){ P0=0XFF;switch(position){case0: smg_g=1;smg_q=0;P0=table[hour/10]; break;case1: smg_q=1;smg_b=0; P0=table[hour%10];if(tt>=10) P0&=0x7f; break;case2: smg_b=1;smg_s=0;P0=table[minute/10];break;case3: smg_s=1;smg_g=0;P0=table[minute%10];break;}position++;if(position>3)position=0;}void displaym(unsigned int second){ P0=0XFF;switch(position){case0: smg_g=1;smg_q=0;P0=table[second/1000]; break;case1: smg_q=1;smg_b=0; P0=table[second/100%10]; break;case2: smg_b=1;smg_s=0;P0=table[second/10%10];break;case3: smg_s=1;smg_g=0;P0=table[second%10];if(tt>=10) P0&=0x7f;break; }position++;if(position>3)position=0;}for(x=time;x>0;x--)for(y=110;y>0;y--);}更新:显⽰四位以上的秒时:显⽰最后四位的秒数,第⼀位数码管右侧的点亮。

单片机控制的60s倒计时

单片机控制的60s倒计时

单片机控制的60s倒计时一.实验目的1.用单片机AT89C51的定时/计数器实现60s倒计时。

两位数码管静态显示倒计时秒值。

2.用PROTEUS设计、仿真基于AT89C51单片机的60s倒计时。

二.PROTEUS电路设计(1)AT89C51.BUS:总线式单片机(2)RES:电阻;(3)7SEG-COM-AN-GRN:带公共端共阳七段绿色数码管(4)BUTTON:按钮(5)CAP、CAP-ELEC:电容、电解电容(6)CRYSTAL:晶振2. 放置元器件、放置电源和地、连线、元器件属性设置、电气检测图中与P1口相接的数码管(左)显示十位数,与P2口相接的数码管(右)显示个位数,两个共阳数码管为静态显示,其中个位数数码管为总线接法。

总线标注:由P2口的总线引脚引出总线,并标注为P2[0..7]。

单击电线标注按钮Label,单击该总线,在弹出的编辑对话框“Edit Wire Label”中的“String”一栏中输入标注名P2[0..7],如图所示PAT快速线标注:单击属性分配工具按钮或直接由键盘敲入快捷键“A ”,弹出如图所示的对话框,并按此图进行设置,设置完成后单击“OK”按钮退出。

其中“String”初值“Count”为0,增量“Increment”为1,即首次对电线单击,标注自动以P20开始,对电线每单击一次,便以P21、P22、…递增式自动标注。

在编辑区一次单击个位数数码管的限流电阻与总线P2[0...7]间的电线,由上向下,即数码管的a~g的限流电阻与总线的连接电线,便在各电线上自动标注为P20、P21……P26如图所示。

下图为60s倒计时的电路原理图三.源程序设计、生成目标代码文件1.流程图2.源程序设计3.生成目标代码四.PROTEUS仿真1.加载目标代码文件打开元器件单片机属性窗口,在“Program File”栏中添加上面编译好的目标代码文件,在“Clock Frequency”栏中输入晶振频率为12MHZ。

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