找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8459|回复: 39
收起左侧

学习单片机10多天啦,终于自己摸索的写出了倒计时程序

  [复制链接]
ID:194752 发表于 2017-5-16 10:07 | 显示全部楼层 |阅读模式
自己看看视频,然后折腾折腾学习板,10天时间过去了,终于写了个像样的程序。
写完程序能正常运行的时候,心里感觉是非常的爽快啊。
虽然写程序过程中遇到不少问题,有问题了就网上搜索,或者教学视频再反复的多看几次,然后一边写一边改,一边改一边试,在失败了N次之后终于有成果了哈,我用的是TX的学习板,程序能实现100分钟内的任意时间的倒计时,倒计时显示分钟和秒。只要在程序内设定计时时间,程序运行之后就自动开始倒计时,倒计时到0的时候显示0000并且蜂鸣器响。
我只是来分享一下我的喜悦哈,不知道是不是还有比我菜的,要是想要我写的程序可以留言,我可以写上来。因为我觉得这对高手来说可能是再简单不过的程序了。随便贴上来怕被笑话。。。

评分

参与人数 1黑币 +60 收起 理由
admin + 60 很给力!

查看全部评分

回复

使用道具 举报

ID:1 发表于 2017-5-16 16:26 | 显示全部楼层
10天就能写这样的程序 已经很牛了 能分享下程序吗?
回复

使用道具 举报

ID:184886 发表于 2017-5-16 16:32 | 显示全部楼层
一步一步慢慢来,享受编程的乐趣
回复

使用道具 举报

ID:157057 发表于 2017-5-16 17:12 | 显示全部楼层
恭喜楼主。加油。
回复

使用道具 举报

ID:47286 发表于 2017-5-16 20:48 | 显示全部楼层
恭喜啊 你已经很不错了 我好几个月才点亮一个led呢 呵呵
回复

使用道具 举报

ID:123289 发表于 2017-5-16 23:02 | 显示全部楼层
恭喜同行取得大的进步!
回复

使用道具 举报

ID:201611 发表于 2017-5-16 23:20 | 显示全部楼层
恭喜楼主。加油。
回复

使用道具 举报

ID:201612 发表于 2017-5-17 08:41 | 显示全部楼层
我正在ad的路上奋战
回复

使用道具 举报

ID:189602 发表于 2017-5-17 09:58 | 显示全部楼层
你真厉害哦,,好棒哦
回复

使用道具 举报

ID:162136 发表于 2017-5-17 09:59 | 显示全部楼层
做成了一件事,要分享给明白这件事的人,这是非常舒心的一件事。做电子和程序的人都懂。
回复

使用道具 举报

ID:149221 发表于 2017-5-17 10:53 | 显示全部楼层
可以上传啊,贴里有很多是新手,我也是,跟我们分享下方法,编程思维
回复

使用道具 举报

ID:200886 发表于 2017-5-17 11:30 | 显示全部楼层
谢谢分享,正在努力中
回复

使用道具 举报

ID:96072 发表于 2017-5-17 12:29 | 显示全部楼层
能分享下程序
回复

使用道具 举报

ID:111634 发表于 2017-5-17 13:27 | 显示全部楼层
如果再能找几个别人(例如教材和贴在网上)的程序,对照一下,看看别人有什么比自己更好的思路和方法,要是程序更精炼更合理更易读更易于移植,那就更进一步了。
回复

使用道具 举报

ID:111634 发表于 2017-5-17 13:29 | 显示全部楼层
本帖最后由 zl2168 于 2017-5-17 19:59 编辑

介绍你一个案例,看看其中有否让你有改进的地方。
实例96  能预置初值的倒计时秒表
Proteus仿真一下,确认有效。
实例96 能设置初值的倒计时秒表.rar (40 KB, 下载次数: 46)
回复

使用道具 举报

ID:194752 发表于 2017-5-18 22:13 | 显示全部楼层
admin 发表于 2017-5-16 16:26
10天就能写这样的程序 已经很牛了 能分享下程序吗?

因为只学了视频前面5节课,语句的应用还不够熟练,很多东西都还不会,硬生升的让我编出来了,希望高手帮我分析一下,有哪里需要改进。
我现在想写一个能用按键设置倒计时时间,并且可以开始可以复位功能的程序。可以一直实现不了。

/*99分钟内任意时间定时程序,修改m值即可改变定时时间
。定时结束后蜂鸣器响,时间显示为0000闪动。*/

  1. #include<reg52.h>
  2. sbit wei=P2^7;
  3. sbit duan=P2^6;
  4. sbit bb=P2^3;
  5. #define uchar unsigned char
  6. #define uint unsigned int
  7. uchar a,b,c,d,m,s;
  8. uint x,y,tt,num;
  9. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
  10. void display(num);
  11. void display2();
  12. void delay(uint z);
  13. void first();
  14. void main()
  15. {
  16.         first();
  17.         while(1)
  18.         {
  19.           display(num) ;
  20.           TR0=1;
  21.           if(tt==20)
  22.             {
  23.               tt=0;
  24.               s--;
  25.              if(s==255)
  26.                 {
  27.                   s=59;
  28.                   m--;
  29.                 }
  30.             }
  31.           if((m==0)&&(s==0))
  32.             {
  33.               TR0=0;
  34.                   display2();
  35.              }        
  36.         }
  37. }

  38. void first()                              
  39.         {        
  40.                 num=100*m+s;
  41.                 m=60;            //修改m值即可修改定时时间(m取值范围:0<=m<=99)。
  42.                 s=0;             //s值也可以修改,但是修改的时候不要大于59,否则显示的时候会出错。
  43.                 TMOD=0X01;
  44.                 TH0=(65536-46080)/256;
  45.                 TL0=(65536-46080)%256;
  46.                 EA=1;
  47.                 ET0=1;
  48.                
  49.         }
  50.         void timer() interrupt 1     
  51.                 {
  52.                         TH0=(65536-46080)/256;
  53.                         TL0=(65536-46080)%256;
  54.                         tt++;
  55.                 }
  56.         void delay(uint z)   
  57.         {
  58.                 for(x=100;x>0;x--)
  59.                 for(y=z;y>0;y--);
  60.         }
  61. void display(num)      
  62. {        
  63.         a=m/10;
  64.         b=m%10;
  65.         c=s/10;
  66.         d=s%10;

  67.         wei=0;
  68.         duan=0;
  69.         P0=table[a];
  70.         duan=1;
  71.         duan=0;
  72.         P0=0xfb;
  73.         wei=1;
  74.         wei=0;
  75.         delay(1);
  76.         P0=table[b];
  77.         duan=1;
  78.         duan=0;
  79.         P0=0xf7;
  80.         wei=1;
  81.         wei=0;
  82.         delay(1);
  83.         P0=table[c];
  84.         duan=1;
  85.         duan=0;
  86.         P0=0xef;
  87.         wei=1;
  88.         wei=0;
  89.         delay(1);
  90.         P0=table[d];
  91.         duan=1;
  92.         duan=0;
  93.         P0=0xdf;
  94.         wei=1;
  95.         wei=0;
  96.         delay(1);
  97. }
  98. void display2()
  99. {
  100.         while(1)
  101.         {
  102.         P0=0xc3;
  103.         wei=1;
  104.         wei=0;
  105.         P0=table[0];
  106.         duan=1;
  107.         bb=0;
  108.         delay(100);
  109.         bb=1;
  110.         delay(100);
  111.         bb=0;
  112.         delay(100);
  113.         bb=1;
  114.         P0=table[10];
  115.         duan=0;
  116.         delay(500);
  117.         }
  118. }
复制代码

评分

参与人数 1黑币 +5 收起 理由
wlk + 5 很给力!

查看全部评分

回复

使用道具 举报

ID:194752 发表于 2017-5-18 22:29 | 显示全部楼层
zl2168 发表于 2017-5-17 13:29
介绍你一个案例,看看其中有否让你有改进的地方。
实例96  能预置初值的倒计时秒表
先Proteus仿真一下, ...

嗯嗯。。。多谢多谢。。我就是想设计这样的程序。。我想用调音量的旋钮来做倒计时时间调节。现在想先把程序写出来。能在单片机学习板上实现。那问题就不大了。。
回复

使用道具 举报

ID:202424 发表于 2017-5-19 09:48 | 显示全部楼层
挺牛的,正好可以学习下!!!
回复

使用道具 举报

ID:203313 发表于 2017-5-22 01:04 | 显示全部楼层
楼主求经验分享,谢谢
回复

使用道具 举报

ID:203498 发表于 2017-5-22 15:49 | 显示全部楼层
加油,我也是新手
回复

使用道具 举报

ID:203498 发表于 2017-5-22 15:49 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

ID:203504 发表于 2017-5-22 16:29 | 显示全部楼层
很不错,受用了
回复

使用道具 举报

ID:203761 发表于 2017-5-23 09:54 | 显示全部楼层
厉害厉害
回复

使用道具 举报

ID:203791 发表于 2017-5-23 10:48 | 显示全部楼层
0天就能写这样的程序 已经很牛了 能分享下程序吗?
回复

使用道具 举报

ID:111634 发表于 2017-5-24 08:45 | 显示全部楼层
elise 发表于 2017-5-18 22:29
嗯嗯。。。多谢多谢。。我就是想设计这样的程序。。我想用调音量的旋钮来做倒计时时间调节。现在想先把程 ...

用调音量的旋钮设置初值,可以。那先要AD转换。
回复

使用道具 举报

ID:204306 发表于 2017-5-24 15:28 | 显示全部楼层
万事开头难,我也在学习,加油
回复

使用道具 举报

ID:40244 发表于 2017-5-24 16:37 | 显示全部楼层
这么短时间就能吃透,牛
回复

使用道具 举报

ID:40244 发表于 2017-5-24 16:38 | 显示全部楼层
厉害厉害
回复

使用道具 举报

ID:254251 发表于 2018-1-10 11:08 | 显示全部楼层
学10多天就这样,以后是个大神
回复

使用道具 举报

ID:274209 发表于 2018-1-10 22:26 | 显示全部楼层
很强,比我好多了
回复

使用道具 举报

ID:274615 发表于 2018-1-11 00:59 | 显示全部楼层
厉害,我学了一学期 什么都不会
回复

使用道具 举报

ID:274748 发表于 2018-1-11 12:30 | 显示全部楼层
恭喜楼主,加油
回复

使用道具 举报

ID:274748 发表于 2018-1-11 12:30 | 显示全部楼层
恭喜楼主,加油
回复

使用道具 举报

ID:274814 发表于 2018-1-11 15:29 | 显示全部楼层
加油 楼主
回复

使用道具 举报

ID:363641 发表于 2018-7-3 08:35 来自手机 | 显示全部楼层
求分享
回复

使用道具 举报

ID:363762 发表于 2018-7-3 10:28 | 显示全部楼层
很牛逼
回复

使用道具 举报

ID:363686 发表于 2018-7-3 11:54 | 显示全部楼层
向你学习,继续努力
回复

使用道具 举报

ID:448822 发表于 2019-2-21 12:35 | 显示全部楼层
elise 发表于 2017-5-18 22:13
因为只学了视频前面5节课,语句的应用还不够熟练,很多东西都还不会,硬生升的让我编出来了,希望高手帮 ...

谢谢楼主分享
回复

使用道具 举报

ID:461428 发表于 2019-2-21 19:03 | 显示全部楼层
继续努力,,,分享你的喜悦。。
回复

使用道具 举报

ID:473159 发表于 2019-2-22 23:19 | 显示全部楼层
一看就一眼高手低的谷人
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表