找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6441|回复: 2
收起左侧

51单片机智能秒表的原理图与源代码

[复制链接]
ID:161768 发表于 2017-8-15 02:45 | 显示全部楼层 |阅读模式
智能秒表的设计与制作
一、电路原理及仿真效果图
1.001.jpg
二、STC90C516RD+单片机引脚排列图
1.002.jpg

三、四位共阴极数码管引脚排列图
1.003.jpg 1.004.jpg
1.005.jpg
四、元器件清单
序号
元件名称
规格型号
数量
1
单片机
STC89C51
1
2
四位共阴数码管
3641AS
1
3
轻触按键
45*45mm
5
4
晶振
12MHz
1
5
瓷片电容
20pF
2
6
电解电容
10uF/10V
1
7
电阻
10KΩ
1
8
排电阻
1KΩ
1
9
单片机插座
40PIN
1
10
电路板
12674-b
1
11
电池
+5V
1
C语言程序

单片机源程序如下:
  1. *******************************/
  2. /*     智能秒表(完美版)      */
  3. /*******************************/
  4. #include
  5. #define uint unsigned int
  6. #define uchar unsigned char
  7. sbit key1=P2^0;                //定义"启动/暂停"按钮
  8. sbit key2=P2^1;                //定义"复位"按钮
  9. sbit key3=P2^2;                                                        //定义"模式"按钮
  10. sbit key4=P2^3;                                                        //定义"查看"按钮
  11. sbit wei1=P2^4;                //定义位选
  12. sbit wei2=P2^5;
  13. sbit wei3=P2^6;               
  14. sbit wei4=P2^7;
  15. bit flag_start,flag_mode,flag_5sec;
  16. uchar temp,temp1,aa,aa1,shi,ge,shifen,baifen,num,i,j;
  17. uchar time_data1[11],time_data2[11];
  18. uchar code table[]={
  19. 0x3f,0x06,0x5b,0x4f,
  20. 0x66,0x6d,0x7d,0x07,
  21. 0x7f,0x6f,0x77,0x7c,
  22. 0x39,0x5e,0x79,0x71};          //不带小数点共阴极数码管编码
  23. uchar code tabledp[]={
  24. 0xbf,0x86,0xdb,0xcf,
  25. 0xe6,0xed,0xfd,0x87,
  26. 0xff,0xef,0xf7,0xfc,
  27. 0xb9,0xde,0xf9,0xf1};        //带小数点共阴极数码管编码
  28. void display(uchar shi,uchar ge,uchar shifen,uchar baifen);  //声明显示子函数
  29. void delay(uint z);          //声明延时子函数
  30. void init();                  //声明初始化函数
  31. void key();                                                           //声明键扫描函数
  32. void display_process();                              //声明显示处理函数

  33. void main()
  34. {            
  35.               init();                                      //调用初始化子程序
  36.               while(1)
  37.               {                           
  38.                 key();
  39.                 display_process();            
  40.                 display(shi,ge,shifen,baifen);        //调用显示子函数
  41.               }
  42. }

  43. void delay(uint z)                       //延时子函数
  44. {
  45.               uint x,y;
  46.               for(x=z;x>0;x--)
  47.                             for(y=110;y>0;y--);
  48. }

  49. void display(uchar shi,uchar ge,uchar shifen,uchar baifen)   //显示子程序
  50. {            
  51.                             P0=table[shi];        //使用动态扫描的方法实现数码管显示
  52.                             wei1=0;
  53.                             delay(1);
  54.                             wei1=1;

  55.                             P0=tabledp[ge];
  56.                             wei2=0;
  57.                             delay(1);            
  58.                             wei2=1;

  59. ……………………

  60. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
0.png
所有资料51hei提供下载:
http://www.51hei.com/bbs/dpj-41282-1.html



回复

使用道具 举报

ID:295266 发表于 2018-3-21 22:11 | 显示全部楼层
好呀好呀,棒棒哒
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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