找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4083|回复: 1
收起左侧

51单片机计时器0-9999proteus仿真图及源码

[复制链接]
ID:198808 发表于 2017-5-9 20:25 | 显示全部楼层 |阅读模式
51单片机计时器0-9999
proteus仿真原理图:
0.png 0.png

单片机源码:
  1. #include<reg51.h>

  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. uchar table[]={
  5. 0x3f,0x06,0x5b,0x4f,
  6. 0x66,0x6d,0x7d,0x07,
  7. 0x7f,0x6f,0x77,0x7c,
  8. 0x39,0x5e,0x79,0x71
  9. };

  10. uint i=0, cnt = 9998;

  11. void IntConfiguration();
  12. void TimeConfig();
  13. void display(uint,uint,uint,uint);
  14. void delay(int);

  15. void main()
  16. {
  17.         IP = 0x04;
  18.         IntConfiguration();
  19.         TimeConfig();
  20.         while(1)
  21.         {
  22.                 display(cnt/1000,(cnt%1000)/100,((cnt%1000)%100)/10,((cnt%1000)%100)%10);
  23.         }
  24. }

  25. void display(uint a,uint b,uint c,uint d)
  26. {
  27. P2=0x0e;
  28. P0=table[a];
  29. delay(1);

  30. P2=0x0d;
  31. P0=table[b];
  32. delay(1);

  33. P2=0x0b;
  34. P0=table[c];
  35. delay(1);

  36. P2=0x07;
  37. P0=table[d];
  38. delay(1);
  39. }

  40. void delay(int z)
  41. {
  42. uint x,y;
  43. for(x=z;x>0;x--)
  44. for(y=110;y>0;y--);
  45. }

  46. void IntConfiguration()
  47. {
  48.         IT0=0;
  49.         EX0=1;
  50.         IT1=0;
  51.         EX1=1;
  52.         EA=1;       
  53. }

  54. void TimeConfig()
  55. {
  56. //  TMOD = 0x10;
  57. //  TH1 = (65536-10000)/256;
  58. //  TL1 = (65536-10000)%256;
  59.   TMOD = 0x01;
  60.   TH0 = (65536-10000)/256;
  61.   TL0 = (65536-10000)%256;
  62.   EA = 1;
  63. //  ET1 = 1;
  64. //  TR1 = 1;
  65.   ET0 = 1;
  66.   TR0 = 1;       
  67. }

  68. void Int0() interrupt 0                 
  69. {
  70.    cnt = 0;
  71. }

  72. void Int1() interrupt 2                 
  73. {
  74.    cnt = 1111;
  75. }

  76. void mytimer() interrupt 1
  77. {
  78.   uint flag = 0;
  79. //  TH1 = (65536-10000)/256;
  80. //  TL1 = (65536-10000)%256;
  81.   TH0 = (65536-10000)/256;
  82.   TL0 = (65536-10000)%256;
  83.   i++;
  84.   if(i >= 100)
  85.   {
  86.           i = 0;


  87. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码


全部资料下载:
计时器.rar (60.13 KB, 下载次数: 100)
回复

使用道具 举报

ID:216609 发表于 2017-7-3 16:06 | 显示全部楼层
您能帮我看一个原理图,改写一下程序么?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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