单片机编程入门8位数改成两位数亮倒计时9秒到1秒编码是多少

单片机8位数改成两位数亮倒计时9秒到1秒编码是多少_ 刚开始上电时, system_mode不是1 也不是2,不知你初始化时是否给它赋值?另外你的按键检测程序没加入到循环程序中,刚上电时若没有按键按下,则很快跳过两个按键检测语句,然后进入循环显示程序中,这是一个死循环,只有中断才可打断其运行 _ 平凉汽车网
单片机8位数改成两位数亮倒计时9秒到1秒编码是多少
刚开始上电时, system_mode不是1 也不是2,不知你初始化时是否给它赋值?另外你的按键检测程序没加入到循环程序中,刚上电时若没有按键按下,则很快跳过两个按键检测语句,然后进入循环显示程序中,这是一个死循环,只有中断才可打断其运行,所以再按什么键也没反应了,建议把按键检测放入显示循环中,它对显示效果不会有什么影响,或在初始化后加一个循环,若两个按键都没有按下,一直检测按键
delay(int t)这个是延时子程序,如果采用20M晶振的话,调用一次延时t毫秒。display()是数码管动态扫描显示子程序,位控位为P3.0、P3.1,段码控制为P1。扫描间隔时间为5毫秒左右。
delay(int t)这个是延时子程序,如果采用20M晶振的话,调用一次延时t毫秒。 display()是数码管动态扫描显示子程序,位控位为P3.0、P3.1,段码控制为P1。扫描间隔时间为5毫秒左右。
这个和代码顺序有关系: while (1) { if (flag1s == 1) //判断1秒定时标志 { flag1s = 0; //1秒定时标志清零 sec--; //秒计数自减1【这里是先减一,后面再送显示】 //将sec按十进制位从低到高依次提取到buf数组中 buf[0] = sec%10; buf[1] = sec...
#include #define uchar unsigned charuchar code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//0-9unsigned char sec=0,min=0,hour=24,unsigned char key,mode, unsigned char disdat[8];unsigned char ...
没有具体的原理图,所以就从原理上说明一下吧,首先应该先根据原理图推出每个数码管每个数字对应的8位驱动信号类型,既然是共阴极,那么如果给数码管对应的引脚置1,就会让该位发光,这样就可以推出从0到9的数码管驱动序列,如果是以一个51单片...
#include "reg51.h" void yanshi(int x) { for(i=0;i
刚开始上电时, system_mode不是1也不是2,不知你初始化时是否给它赋值?另外你的按键检测程序没加入到循环程序中,刚上电时若没有按键按下,则很快跳过两个按键检测语句,然后进入循环显示程序中,这是一个死循环,只有中断才可打断其运行,所...
//用AT89c52单片机作控制.假如数码管是共阴极的话,定义的段码和位选的锁存器的选通端分别为P2^6,P2^7,P0口接段码端和位码端,而且位码端接的是锁存器输入,输出端的高两位。假设晶振频率为12MHZ。 #include #include #define uchar unsigned ch...
#include #include #define uchar unsigned char #define uint unsigned int sbit sda=P2^3; sbit scl=P2^2; uchar code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; uchar code wei[]={0xfe,0xfd,0xfb,0xf7,0...
#include #define uchar unsigned char#define uint unsigned intsbit p30=P3^0;sbit p31=P3^1;uchar tt=0,count=160,num=99; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void init() //初始化定时器 和数码管{TH...
从60秒到30秒再到90秒并循环倒计时显示。 ---- 有点不好理解。 从60秒到30秒,看来,是倒计时。 到了30之后,怎么办?是立即改为90吗? 到了90之后,再怎么办?是立即改为60吗?
返回主页:
本文网址:http://www.0933car.cn/view-.html论文发表、论文指导
周一至周五
9:00&22:00
基于AT89C51单片机的数字秒表设计
  摘要:文中设计了一种以AT89C51单片机为核心的数字秒表。该秒表采用汇编语言为开发工具,通过数码管显示计时结果,并利用Proteus和Keil软件为平台对系统进行了仿真,达到了预期的效果。 中国论文网 /8/view-3530829.htm  关键词:单片机;数字秒表;汇编语言;仿真   中图分类号:TP368.1文献标识码:A文章编号:12)22-5344-03   Digital Stopwatch Based on AT89C51   GAO Wen-qing, LV Ying-ying   (Faculty of Information Engineering and Automation, Kunming University of Science and Technology, Kunming 650051, China)   Abstract: The article designed a digital stopwatch based on AT89C51.The digital stopwatch used the Assembly language to develop, nixie tube was used to show, and the system was simulated by Proteus and Keil, which was up to the expectation effect.   Key words: simulate   1概述   单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器或计时器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统。单片机与编程语言的结合可以快速高效的实现各种功能,该文结合单片机设计实现了一种基于AT89C51单片机的数字秒表。   2系统概述   2.1设计任务   数字秒表设计由单片机AT89C51、数码管、开关、电阻、电容等部分组成。其功能要求是用AT89C51设计一个2位LED数码显示的“秒表”,显示时间为00-99秒,每秒自动加一。另外还设计了一个“开始”按键、一个“复位”按键和一个“暂停”按键。按“开始”按键,开始计数,数码管显示从00开始每秒自动加一;按“复位”按键,系统清零,数码管显示00;按“暂停”按键,系统暂停计数,数码管显示当时的计数。   2.2总体方案      图1系统整体设计   系统主要有三部分构成:按键控制信号,单片机软件处理,数码管显示。电路运行时,由开关按键决定其运行方式,经过单片机内部的程序进行相应的处理,在数码管上显示出来。利用12M晶振的一个机器周期为1微秒,通过循环产生1秒时间延迟,扫描单片机中所存放的时间值(可正记时,也可倒计时),并通过输出显示在数码管上。此外,数码管各段连接了上拉电阻,是为了保证引脚外接的按键在未按下时,作为电流负载一直保持引脚为低电平。系统整体设计如图1所示。   3数字秒表的proteus软件仿真电路设计   3.1整体仿真电路   Proteus软件仿真设计如图2所示。      图2系统Proteus软件仿真图   3.2 AT89C5l单片机和数码管显示电路的接口设计   使用动态显示电路接法,LED灯采用共阳极数码管,电路中采用P0口输出,并联控制两个数码管的8个段选控制端,P2.6、P2.7作为分别采用两个控制LED数码管的位选控制端,其中P2.6接显示个位数,P2.7接十位数,P0.0—P0.7对应了两位数码管的a,b,c,d,e, f,g。   3.3按键控制信号   三个按键采用独立式键盘接法,开始按键接P3.5,暂停按键接P3.6,清零按键接P3.7,低电平有效,三个按键功能均在子程序中显示。定时器0中断程序主要是延时程序。   3.4其他管脚的设计   单片机中的Vss端接地,Vcc端接+5V电源,另外,三极管发射极端也接+5V电源,保证数码管有足够的电源供应。      图3程序设计流程图   4计时器的软件程序设计   软件设计的思路为:在这个复杂的程序中,先根据设计的总体要求划分出各功能程序模块,分别确定主程序、子程序以及中断服务程序结构,并对各程序模块占用的资源进行统一的调配,最后根据流程图绘制具体的程序。因此在这个秒表程序中可划分为主程序、键盘控制、秒表计时程序三大模块。其中主程序完成初始化作用,动态显示程序,键盘控制程序,秒表计时程序等,延时程序由定时器中断服务子程序构成。   主程序:即初始化程序,用EQU命令首先对三个按键进行了定义,规定了堆栈指针和数据指针的首地址,对定时器进行设定,选用定时器0为工作方式1,50ms为定时时间,则要定时1s可以循环20次,设置中断程序的入口,并开中断EA,ET0等。   子程序:包括按键功能子程序和显示子程序。按键子程序对三个按键功能进行设定,其中P3.5口起到开始的功能,P3.6口连接的按键可以控制数码管的进度,P3.7对数码管数字进行复位,使数码管清零。三个按键均为低电平有效,JB命令先判断按键是否按下,若按下则跳转到显示子程序,JNB命令判断按键按下后是否弹起,若弹起来就执行开始、暂停、清零等功能。显示子程序:定义了P2.6、P2.7两个位选口,在单片机输出时,先选择字位选口,然后在所在的位口上进行字形选择,选择要点亮的字形。   中断程序:中断程序即定时器延时程序,当中断来临时,定时器重新装入初值,判断是否循环了20次,若循环20次说明定时器延时到达1s,就进行加一运算。程序设计流程图如图3所示。   重要程序段说明:   将0到99的数据通过对10整除和对10求余,将数据的个位和十位分开。   MOV A,R4   MOV B,#10   DIV AB;当前值除以10   MOV 40H,A;得出的商送给十位   MOV 41H,B;得出的余数送给个位   这段程序是将要显示的数字分别放到两个数码管上,使两个数码管分别显示十位和个位数字。   5结论   该文使用AT89C51单片机设计了一款具有计时开始、暂停、复位功能的数字秒表,利用Proteus和Keil软件进行了仿真及调试,达到了期望的效果。系统结构简单,抗干扰能力强,具有较好的应用前景。   参考文献:   [1]李朝青.单片机原理及接口技术[M].北京:北京航天航空大学出版社,2005.   [2]王爽.汇编语言[M].北京:清华大学出版社,2008.   [3]蒋辉平,周国雄.基于Proteus的单片机系统设计与仿真实例[M].北京:机械工业出版社,2009.   [4]孙凌燕,黄允千.Proteus与Keil软件的整合在单片机实验开发中的应用[J].实验室研究与探索,):59-68.
转载请注明来源。原文地址:
【xzbu】郑重声明:本网站资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有,如有不愿意被转载的情况,请通知我们删除已转载的信息。
xzbu发布此信息目的在于传播更多信息,与本网站立场无关。xzbu不保证该信息(包括但不限于文字、数据及图表)准确性、真实性、完整性等。求助帮忙设计一个单片机倒计时控制继电器[奖励已给,结贴]|创意DIY - 数码之家
查看完整版本: [--
&Pages: ( 2 total )
赞助商链接
一直用干膜做板子,但是曝光时间很难控制总是过曝或者曝光不足!想弄一个51单片机与继电器控制220v开关,这样就能控制紫外灯了!51单片机 继电器 数码管 等等我都有但是不会用单片机控制继电器,有人帮帮忙嘛?需要原理图和代码 倒计时精确到秒,网上找的很多都是分,曝光也就10几秒的事情 如果有朋友的方案采纳,直接给50M!
[attachment=4885107]感谢 温力口 如果有朋友也需要,请看58楼与59楼!兄弟的奖励已经发放,虽然50M很少,但是也许能解决很多人的大问题!!再次感谢
赞助商链接
百度一下,应该比较多
赞助商链接
网上有很多现成的例子,只要做少量修改即可
:百度一下,应该比较多 ( 22:27) 需要精确到秒。百度的都是到分的,有秒倒计时但是没有继电器的!有继电器的都是分的!
单片不懂了,帮你顶了!
给我吧,那么多资料,选一个
有事找度娘~~~
定时模块,想法不错
:http://pan.baidu.com/s/1eQ7t8nK给我吧,那么多资料,选一个 ( 22:32) 没有适合的我都看过,最接近的是一个可编程控制,但是和我的差很多!!
楼主可以看看这个,应该适合你。
:楼主可以看看这个,应该适合你。http://wenku.baidu.com/link?url=vst8_HtMCrFPMVeJq2uubn6dHzcH59DnSARbuIGf18gQZV_L-01RTZpKrZSZuOEgTOdn8BuX38G7ftYQKIiMcZj2TfZeQX4u_fvRLrhvnWi[表情]  ( 22:43) 这个没有继电器部分的控制啊,主要我想用继电器控制220v,不敢乱搞啊
:这个没有继电器部分的控制啊,主要我想用继电器控制220v,不敢乱搞啊 这个吧,我刚做好在用的。
说一下要求的好吧,如倒计时时间需不需要修改,时间到了需要继电器延时多久,等等
建议楼主直接买成品时间继电器更好,体积只有半个火柴盒大小,X宝上搜一下“时间继电器”有很多从1秒-60秒-1小时都有,工作24V-220V,8-10元一个。以前用过挺不错的。
我也是来学习的。
貌似挺简单的,哈哈哈哈哈哈
我原来也有这个想法,但后来发现自己做不但没有成品的稳定,而且很丑,还比买成品贵,于是我爱上了万能的淘
时间控制器这种行吗[attachment=4869494]
倒计时控制继电器
如果连修改下都不想试的,会好少机会有
精确到秒的是很少
单片机做定时应该是非常简单的,利用单片机内部的定时器就行了,不过就是一套做下来,成本不比直接买成品低,还缺少合适的外壳,不是很值得,自己做就是图个乐
弄个时间继电器,二十四转二百二的就行啊!精度好点的
时钟显示的字表倒过来用就倒计时。。。。
这个不会 俺是来拿分的
不懂,但是还是帮你顶!
悬赏太少了吧,
提高悬赏,肯定有人帮你解决
:建议楼主直接买成品时间继电器更好,体积只有半个火柴盒大小,X宝上搜一下“时间继电器”有很多从1秒-60秒-1小时都有,工作24V-220V,8-10元一个。以前用过挺不错的。 我以前做过一个控制锡炉的定时器,可以设置定时开和定时关。你可以参考一下。
支持下楼主。如果楼主还没有找到,我可以帮做一个,练练手。此贴内附件是修改好的,代码有些优化。[attachment=4885464][attachment=4885468]
TI应该有精确到微秒的定时器IC,好像是1um-10hours,还是1ms-10hours忘了刚开始学单片机,觉着楼主这个问题不难吧,一个时间数码管,一个继电器,按键倒计时计时设置,定时器计时,精度也没太大要求,不知道还需要考虑什么PS:刚学到数码管,按键还没学,菜鸟表示无知者无畏
这个用得好啊
x宝买个厨房用定时器不就行了?可以精确到秒
/***********************************************************************************************************************÷1ú52ú51·2±×ó999×°C±ò°c&óC¨±±èCà±3úר÷à甀挀栀愀爀 code Table_Cod[],uchar Table_Wei[]&&&&&&={0x01,0x02,0x04,0x08}×÷ü4§12MHz************************************************************************************************************************/# include&at89x52.h&&&&&&&&&&&&& //51ú# include&at89x51.h&# define uchar unsigned char# define uint unsigned int# define Dat_Out P1&&&&&&&&&&&&//P1愀-g倀1 愀倀11戀à# define Wei_Out P3&&&&&&&&&& //P3倀3 倀31倀3 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //P32°倀33§sbit Time_Up=P2^0;&&&&&&&&//°sbit Time_Dn=P2^1;&&&&&& //°sbit Key_Com=P2^2;&&&&&&&&&&&& //¨±è¨±à±èsbit Relay=P2^2;&&&&&&&&&&&&&&//÷sbit Star=P2^3;&&&&&&&&&&&&&&&&&&&&&&&&&&&& //°°±uint Time_0=10;&&&&&&&&&&&&&&&& //¨±÷¨±±è10è±uint Time_1;&&&&&&&&&&&&&&&&&&&&&&//¨±÷à±uchar Time_C&&&&&&&&&&&&&&&&&&&&&&&&&&&&//¨±÷0±uchar code Table_Cod[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x39,0x58}; &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//±·¨°0,1,2,3,4,5,6,7,8,9,C,c±uchar Table_Wei[]={0x01,0x02,0x04,0x08};&&&&&&&&&&&& //uchar Table_Dau[4];&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&// /************************************************************瘀漀椀搀 Delay(uchar x)±±x************************************************************/void Delay(uchar x){&&&&uchar i,j;&&&&for(;x&0;x--)&&&&&&&&for(i=142;i&0;i--)&&&&&&&&&&&&for(j=2;j&0;j--);}/************************************************************瘀漀椀搀 Time_Init()¨±÷¨±÷08×°************************************************************/void Time_Init()&&&&{&&&&TMOD=0x10;&&&&TL0=0x06;&&&&TH0=0x06;&&&&EA=1;&&&&ET0=1;&&&&}/************************************************************瘀漀椀搀 Time_Up()¨±************************************************************/void time_Up(){&&&&while(Time_Up==0)&&&&{&&&&&&&&Delay(5);&&&&&&&&if(Time_Up==0)&&&&&&&&{&&&&&&&&&&&&Time_0++;&&&&&&&&&&&&Delay(100);&&&&&&&&}&&&&}}/************************************************************瘀漀椀搀 Time_Dn()¨±************************************************************/void time_Dn(){&&&&while(Time_Dn==0)&&&&{&&&&&&&&Delay(5);&&&&&&&&if(Time_Dn==0)&&&&&&&&{&&&&&&&&&&&&Time_0--;&&&&&&&&&&&&Delay(100);&&&&&&&&}&&&&}}/************************************************************瘀漀椀搀 Seg_Disp(uint z)¨±à±ò¨±è±Led************************************************************/void Seg_Disp(){&&&&&&&&&&&&if(Key_Com==1)&&&&&&&&&&&&//ü1許±×°C±¨ó&&&&{&&&&&&&&z=Time_0;&&&&&&&&Table_Dau[3]=0x39;&&&&}&&&&else&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//ü ¨±à±×°c±¨&&&&{&&&&&&&&z=Time_0-Time_1;&&&&&&&&Table_Dau[3]=0x58;&&&&}&&&&Table_Dau[0]=z%10;&&&&Table_Dau[1]=z/10%10;&&&&Table_Dau[2]=z/100%10;&&&&for(i=0;i&4;i++)&&&&{&&&&&&&&Wei_Out=0x0;&&&&&& //·í°&&&&&&&&Dat_Out=Table_Dau[Table_Cod];&&&&&&&&// 4ú&&&&&&&&Wei_Out=Table_Wei;&&&&&&&&&&&&&&&&&&&&&&&&&&&&//&&&&&&&&Delay(5);&&&&&&&&}}/************************************************************瘀漀椀搀 Time_Cont() interrupt 1¨±************************************************************/void Time_Cont() interrupt 1{&&&&Time_Con++;&&&&if(Time_Con==4000)&&&&{&&&&&&&&Time_Con=0;&&&&&&&&Time_1++;&&&&&&&&&&&&if(Time_1==Time_0)&&&&&&&&&&//許÷ü&&&&&&&&{&&&&&&&&&&&&Relay=0;&&&&&&&&&&&&TR0=0;&&&&&&&&}&&&&}}void main(){&&&&Relay=0;&&&&Time_Init();&&&&while(1)&&&&{&&&&&&&&void time_Up();&&&&&&&&void time_Dn();&&&&&&&&void Seg_Disp();&&&&&&&&if(Star==0)&&&&&&&&{&&&&&&&&&&&&TR0=1;&&&&&&&&&&&&&&&&&&//°°±÷üò&&&&&&&&&&&&Relay=1;&&&&&&&&}&&&&}&&&&&&&&}要五个汉子才能发贴。
人最多可获奖
单片机倒计时控制继电器,网上搜搜看
回复本帖可获得1M币奖励!每人最多可获奖1次,奖池剩余573M币 (中奖几率99%)
回复本帖可获得1M币奖励!每人最多可获奖1次,奖池剩余573M币 (中奖几率99%)回复本帖可获得1M币奖励!每人最多可获奖1次,奖池剩余573M币 (中奖几率99%)
好像看过类似的教程
来,把你的材料亮出来。如果没有就给你一个最简单的图纸和程序。
用单片机应该很容易做,但成本可能比买成品要高
买个倒计时插座改造一下。
需要设计方案可以联系我
需要设计方案可以联系我
网上有很多现成的例子
用普通小闹钟做定时就好了
帮忙设计一个单片机倒计时控制继电器
这个不懂,帮顶,让大神看到
改天我闲的蛋疼的时候帮你做
时间继电器可以达到你的要求,最小分度值是秒的那种,直接使用220伏。
查看完整版本: [--
Powered by
Time 0.185931 second(s),query:5 Gzip enabled单片机8位数改成两位数亮倒计时9秒到1秒编码是多少_百度知道
单片机8位数改成两位数亮倒计时9秒到1秒编码是多少
单片机8位数改成两位数亮倒计时9秒到1秒编码是多少帮我看看怎么弄
我有更好的答案
最应该贴是是原理图,实物图没用#include&reg51.h&#define&uchar&unsigned&charuchar&sec,tcnt,uchar&ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}void&t1isr()&interrupt&3{ TH1=()/256; TL1=()%256; if(ledc==0)
P0=ledtab[sec%10];
} if(ledc==1)
P0=ledtab[sec/10];
ledc%=2;}void&t0isr()&interrupt&1{ TH0=()/256; TL0=()%256; tcnt++; if(tcnt&=20)
if(sec&0)sec--;
}}main(){ TMOD=0x11; TH0=()/256; TL0=()%256; TH1=()/256; TL1=()%256; ET1=1; TR1=1; P2=0; tcnt=0; sec=9; ET0=1; EA=1; TR0=1; while(1);}
你这个编码好像跟我老师说的不一样?
高级工程师
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 51单片机入门 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信