找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4441|回复: 10
收起左侧

单片机网线测试仪程序与电路原理图

  [复制链接]
ID:562099 发表于 2022-4-22 20:38 | 显示全部楼层 |阅读模式
程序是网上的,经过我小改了一下.自已没有做实物,以后要用有可能把它自做出来.5V供电,可改成那充电 ,也方便,可能画得不太好.有原理图,
供大家参考,和修改,有源程序,也可供大家,学习和修改.
电路原理图如下:
51hei.png

单片机源程序如下:
  1. /**********************网线测试仪*****************************
  2.         网线测试仪,定义三个按钮作为速度选择
  3.         速度选择分别有30ms/1s/2s
  4.         程序初始化默认进入1s运行函数
  5.         其中网线扫描口用的P2口
  6. *************************************************************/
  7. #include <STC15.h>
  8. #include <intrins.h>                                  //循环左右移头文件
  9. #define uchar unsigned char
  10. #define uint unsigned int
  11. sbit sw1 = P0^0;                                        //k1按键.定义30ms按钮
  12. sbit sw2 = P0^1;                                        //k2按键,定义1S按钮
  13. sbit sw3 = P0^2;                                        //K3按键,定义2S按钮
  14. uint i,a,b;                                                        //定义变量
  15. void delay(int t)
  16. {
  17.         int y;
  18.         for(;t>0;t--)
  19.                 for(y=110;y>0;y--);
  20. }
  21. void key1();                                                //函数声明
  22. void key2();
  23. void key3();
  24. void key1()                                                        //30ms运行函数
  25. {
  26.         if(sw1 == 0)
  27.         {
  28.                 delay(10);
  29.                 if(sw1 == 0)
  30.                 {
  31.                         sw2 = sw3 = 1;
  32.                         P2 = a;
  33.                         b = 1;
  34.                         while(b)
  35.                         {
  36.                                 for(i=9;i>0;i--)
  37.                                 {
  38.                                         P2 = _crol_(a,1);                 
  39.                                         for(i=30;i>0;i--)                 //1/2s
  40.                                         {
  41.                                                 delay(10);                        
  42.                                                 if(sw2 == 0)
  43.                                                 {
  44.                                                         delay(5);
  45.                                                         if(sw2 == 0)
  46.                                                         {
  47.                                                                 key2();
  48.                                                         }
  49.                                                 }
  50.                                                 if(sw3 == 0)
  51.                                                 {
  52.                                                         delay(5);
  53.                                                         if(sw3 == 0)
  54.                                                         {
  55.                                                                 key3();
  56.                                                         }
  57.                                                 }
  58.                                         }
  59.                                         a = P2;
  60.                                 }
  61.                         }
  62.                 }
  63.         }        
  64. }
  65. void key2()                                                  //1S运行函数
  66. {
  67.         if(sw2 == 0)
  68.         {
  69.                 delay(10);
  70.                 if(sw2 == 0)
  71.                 {
  72.                         sw1 = sw3 =1;
  73.                         P2 = a;
  74.                         b = 1;
  75.                         while(b)
  76.                         {
  77.                                 for(i=8;i>0;i--)
  78.                                 {
  79.                                         P2 = _crol_(a,1);
  80.                                         for(i=60;i>0;i--)                 //1S
  81.                                         {
  82.                                                 delay(10);                        
  83.                                                 if(sw1 == 0)
  84.                                                 {
  85.                                                         delay(5);
  86.                                                         if(sw1 == 0)
  87.                                                         {
  88.                                                                 key1();
  89.                                                         }
  90.                                                 }
  91.                                                 if(sw3 == 0)
  92.                                                 {
  93.                                                         delay(5);
  94.                                                         if(sw3 == 0)
  95.                                                         {
  96.                                                                 key3();
  97.                                                         }
  98.                                                 }
  99.                                         }
  100.                                         a = P2;
  101.                                 }
  102.                         }
  103.                 }
  104.         }        
  105. }
  106. void key3()                                           //2S运行函数
  107. {
  108.         if(sw3 == 0)
  109.         {
  110.                 delay(10);
  111.                 if(sw3 == 0)
  112.                 {
  113.                         sw1 = sw2 = 1;
  114.                         P2 = a;
  115.                         b = 1;
  116.                         while(b)
  117.                         {
  118.                                 for(i=8;i>0;i--)
  119.                                 {
  120.                                         P2 = _crol_(a,1);
  121.                                         for(i=200;i>0;i--)                 //2S
  122.                                         {
  123.                                                 delay(10);                        
  124.                                                 if(sw1 == 0)
  125.                                                 {
  126.                                                         delay(5);
  127.                                                         if(sw1 == 0)
  128.                                                         {
  129.                                                                 key1();
  130.                                                         }
  131.                                                 }
  132.                                                 if(sw2 == 0)
  133.                                                 {
  134.                                                         delay(5);
  135.                                                         if(sw2 == 0)
  136.                                                         {
  137.                                                                 key2();
  138.                                                         }
  139.                                                 }
  140.                                         }
  141.                                         a = P2;
  142.                                 }
  143.                         }
  144.                 }
  145.         }
  146. }
  147. void main()
  148. {
  149.         P2 = 0xff;                                  //IO赋初值
  150.         a = 0xfe;
  151.         sw2 = 0;                                  //初始执行1s函数
  152.         while(1)
  153.         {
  154.                 key1();
  155.                 key2();
  156.                 key3();
  157.         }
  158. }
复制代码

也是刚学单片机,有不足的地方,欢迎指出.
Keil代码和pdf原理图2个文件下载: 网线测试仪改良板.zip (73.88 KB, 下载次数: 45)

评分

参与人数 1黑币 +50 收起 理由
admin + 50

查看全部评分

回复

使用道具 举报

ID:562099 发表于 2023-5-1 21:27 | 显示全部楼层
实物以作出来了,用的现成的DB9.接口作的。STC15单片机制作的,I0改下。跟上面原理图有所不同。三个按键。一个控制常亮。全部亮。一个控制流水灯形式。一个按键手动控制,按一下,灯走动一下。下面是制作的实物图。
e12d32446c932a340a07ac9d8dbb17d.jpg

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:562099 发表于 2022-4-22 20:42 | 显示全部楼层
单片机型号,STC15F2K60S2/LQFP32
回复

使用道具 举报

ID:53813 发表于 2022-12-19 16:38 | 显示全部楼层
这是不是灯珠电源没了?
回复

使用道具 举报

ID:562099 发表于 2022-12-19 19:38 | 显示全部楼层
那你怎么样的说说
回复

使用道具 举报

ID:262356 发表于 2023-1-11 19:01 | 显示全部楼层
三极管一样的人 发表于 2022-12-19 16:38
这是不是灯珠电源没了?

要亮的IO口低电平,其它IO口输出高电平即可。看楼主程序怎么写了
回复

使用道具 举报

ID:492633 发表于 2023-1-15 20:57 | 显示全部楼层
NE555+CD4017就行搞这么复杂成本也高
回复

使用道具 举报

ID:1069621 发表于 2023-4-3 13:58 | 显示全部楼层
将单片机换成AT89C51,咋不亮啊
回复

使用道具 举报

ID:58356 发表于 2024-4-24 22:53 | 显示全部楼层
如果测量50p排线io口不够用
回复

使用道具 举报

ID:30165 发表于 2024-5-12 22:13 | 显示全部楼层
大炮打蚊子  大材小用
回复

使用道具 举报

ID:562099 发表于 2024-8-24 09:05 | 显示全部楼层
dpl123 发表于 2024-4-24 22:53
如果测量50p排线io口不够用

可以扩展的啊
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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