找回密码
 立即注册
楼主: hl12***

修个设备的电路板,持续更新。

[复制链接]
  • TA的每日心情
    奋斗
    6 小时前
  • 签到天数: 164 天

    [LV.7]常住居民III

    8

    主题

    82

    回帖

    1086

    积分

    金牌会员

    积分
    1086
    发表于 2023-12-10 11:32:21 | 显示全部楼层
    牛人,修个件,搞成开发了。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-5-4 13:59
  • 签到天数: 102 天

    [LV.6]常住居民II

    13

    主题

    60

    回帖

    376

    积分

    中级会员

    积分
    376
     楼主| 发表于 2023-12-10 14:25:10 | 显示全部楼层
    本帖最后由 hl1200aa 于 2023-12-10 14:28 编辑

    再刷了一下陈老师的定时器和中断,把5秒超时关闭加了上去,基本完成了。

    1. /*********************************************************/
    2. #define MAIN_Fosc        11059200L        //定义主时钟
    3. #include        "STC8Gxxx.h"
    4. /*************        功能说明        *************
    5. 整体布局
    6. 功能        管脚        用途                 输入输出     类型      PXM1  PXM0
    7. P10         PIN19       传感器输入      输入         高阻           1     0
    8. P11         PIN20       seg_a           输出         开漏输出  1     1
    9. P12         PIN1        seg_e           输出         开漏输出  1     1
    10. P13         PIN2        seg_f           输出         开漏输出  1          1
    11. P14         PIN3        seg_b           输出         开漏输出  1          1
    12. P15         PIN4        seg_d           输出         开漏输出  1          1
    13. P16         PIN5        seg_c           输出         开漏输出  1          1
    14. P17         PIN6        seg_g           输出         开漏输出  1          1
    15. P0M1 = 11111110B 0xff
    16. P0M0 = 11111110B 0xfe
    17. 功能        管脚        用途                 输入输出     类型      PXM1  PXM0
    18. P30         PIN11       RX  不分配                                                           0         0
    19. P31         PIN12       TX  不分配                                                           0         0
    20. P32         PIN13       NO2输入         输入         准双口    0         0    设置为高电平
    21. P33         PIN14       NO1输出         输出         推挽输出  0     1    缺省高电平。
    22. P34         PIN15       NO2输出         输出         推挽输出  0     1    缺省高电平。
    23. P35         PIN16       数码管共阳G1    输出         推挽输出  0     1
    24. P36         PIN17       数码管共阳G2    输出         推挽输出  0     1
    25. P37         PIN18       红外管输出      输出         开漏输出  1         1    0发光,1灭光
    26. P3M1 = 1000 0000B 0x80
    27. P3M0 = 1111 1000B 0xf8
    28. 功能        管脚        用途                 输入输出     类型      PXM1  PXM0
    29. P54         PIN7        seg_dp          输出         开漏输出  1         1
    30. P55         PIN9        NO1输入         输入         准双口    0     0    设置为高电平  
    31. P5M0 = 0001 0000B 0x10
    32. P5M1 = 0001 0000B 0x10
    33.       
    34. ******************************************/
    35. /*************        本地常量声明        **************/
    36. #define timeout_ms 5000
    37. #define NO1_IN_ON (P55 == 1)
    38. #define NO2_IN_ON (P32 == 1)
    39. #define NO1_OPEN   (P33 = 0)
    40. #define NO1_CLOSE   (P33 = 1)
    41. #define NO2_OPEN   (P34 = 0)
    42. #define NO2_CLOSE   (P34 = 1)
    43. #define IR_ON           (P37 = 0)
    44. #define IR_OFF           (P37 = 1)
    45. #define G1_ON    (P35 = 1)
    46. #define G1_OFF    (P35 = 0)
    47. #define G2_ON    (P36 = 1)
    48. #define G2_OFF    (P36 = 0)
    49. #define SENSOR_ON  (P10 == 0)
    50. /*************        本地变量声明        **************/
    51. //用一个变量记录时间
    52. unsigned int time_count_ms = 0;
    53. /*************        本地函数声明        **************/
    54. /****************  外部函数声明和外部变量声明 *****************/
    55. /**********************************************/
    56. void Delay100ms(void)        //@11.0592MHz
    57. {
    58.         unsigned char data i, j, k;
    59.         _nop_();
    60.         _nop_();
    61.         i = 5;
    62.         j = 52;
    63.         k = 195;
    64.         do
    65.         {
    66.                 do
    67.                 {
    68.                         while (--k);
    69.                 } while (--j);
    70.         } while (--i);
    71. }
    72. //初始化T0
    73. void time_init_T0(void)
    74. {
    75.     AUXR &= 0x7f;  //定时器时钟12T模式
    76.         TMOD &= 0xf0;  //设置定时器模式
    77.        
    78. }
    79. //开启T0 50ms计时,并且开启中断
    80. void time_start_T0(void)
    81. {
    82.     TL0  =  0x00;  //设置定时器初始值
    83.         TH0  =  0x4c;  //设置定时器初始值
    84.         TF0  =  0;     //清除TF位
    85.         ET0  =  1;     //允许T0中断
    86.         time_count_ms = 0;
    87.         TR0  =  1;     //定时器0开始计数   
    88. }
    89. //关闭T0 50ms计时,并且开启中断
    90. void time_stop_T0(void)
    91. {
    92.     ET0  =  1;     //禁止T0中断
    93.         TF0  =  0;     //清除TF位
    94.         TR0  =  0;     //禁止器0开始计数
    95.         TL0  =  0x00;  //设置定时器初始值
    96.         TH0  =  0x4c;  //设置定时器初始值
    97.         time_count_ms = 0;            
    98. }
    99. //定时器0中断函数
    100. void T0_ISR(void) interrupt 1
    101. {
    102.     TF0  =  0;     //清除TF位
    103.         time_count_ms += 50;
    104. }
    105. void main(void)
    106. {
    107.         int time100ms = 0;
    108.                 char statu_g1 = 0;
    109.                 char statu_g2 = 0;
    110.         P_SW2 |= 0x80;        //允许访问XSFR(扩展特殊功能寄存器)
    111.         //设置管脚模式
    112.         P1M1 = 0xff;
    113.         P1M0 = 0xfe;
    114.         P3M1 = 0x80;
    115.         P3M0 = 0xf8;
    116.         P5M1 = 0x10;                 
    117.         P5M0 = 0x10;
    118.         //P32, P55设置上拉电阻
    119.                 P32 = 1;
    120.                 P55 = 1;
    121.                 //关闭开关
    122.                 NO1_CLOSE;
    123.                 NO2_CLOSE;
    124.                 //关闭IR
    125.         IR_OFF;
    126.                 //关闭G1,G2
    127.                 G1_OFF;
    128.                 G2_OFF;
    129.                 //全部打开数码管的seg
    130.                 P1 &= 0x01;
    131.                 P54 = 0;
    132.                 G1_ON;
    133.                 G2_ON;
    134.                 for(time100ms = 10; time100ms > 0; time100ms--)
    135.         {
    136.              Delay100ms();   
    137.         }
    138.                 G1_OFF;
    139.                 G2_OFF;
    140.                 //初始化计数器
    141.                 time_init_T0();
    142.                 //打开全局中断
    143.                 EA = 1;
    144.         while (1)
    145.         {
    146.         /*
    147.             for(time100ms = 10; time100ms > 0; time100ms--)
    148.                 {
    149.                      Delay100ms();   
    150.                 }
    151.                 P54 = 1;
    152.                 P1 = P1 | 0xfe;
    153.                   for(time100ms = 10; time100ms > 0; time100ms--)
    154.                 {
    155.                      Delay100ms();   
    156.                 }
    157.                 P54 = 0;
    158.                 P1 = P1 & 0x01;
    159.         */
    160.         
    161.             if(NO1_IN_ON)//        NO1 按下按键高电平
    162.             {
    163.                 //如果G1, G2处于关闭状态
    164.                                 if (statu_g2 == 0)
    165.                                 {
    166.                                     G1_ON;//点亮1号数码管
    167.                                         statu_g1 = 1; //改g1状态
    168.                                         IR_ON; //打开红外
    169.                                         //启动定时器
    170.                                         time_stop_T0();
    171.                                         time_start_T0();
    172.                                 }
    173.                                
    174.             }
    175.             if(NO2_IN_ON)//        NO2 按下按键高电平
    176.             {
    177.                //如果G1处于关闭状态
    178.                            if (statu_g1 == 0)
    179.                 {
    180.                                     G2_ON;//点亮2号数码管
    181.                                         statu_g2 = 1;
    182.                                         IR_ON; //打开红外
    183.                                         //启动定时器
    184.                                         time_stop_T0();
    185.                                         time_start_T0();
    186.                                 }
    187.             }
    188.                         if(SENSOR_ON || (time_count_ms > timeout_ms))
    189.                         {
    190.                            //关闭计数器
    191.                            time_stop_T0();
    192.                            //关闭红外
    193.                            IR_OFF;
    194.                            //关闭数码管
    195.                            G1_OFF;
    196.                            G2_OFF;
    197.                            //改状态
    198.                            statu_g1 = 0;
    199.                            statu_g2 = 0;
    200.                         }
    201.                                           
    202.         }
    203. }
    204. /**********************************************/
    复制代码


    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-5-4 13:59
  • 签到天数: 102 天

    [LV.6]常住居民II

    13

    主题

    60

    回帖

    376

    积分

    中级会员

    积分
    376
     楼主| 发表于 2023-12-10 14:45:39 | 显示全部楼层
    其实搞这个原意并非和供应商夺食,只是这两年经历太多昨晚还推杯换盏,规划宏图,一觉醒来就科目三的事情,老板的消息比较灵通,他叫不要麻烦供应商实情可能是不久的将来麻烦不到供应商,只能凭自己的能力维护设备了,经历过的都懂。
    在这个市场风雨飘摇的时局中,写一下与诸位共勉。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 144 天

    [LV.7]常住居民III

    1

    主题

    37

    回帖

    477

    积分

    中级会员

    积分
    477
    发表于 2023-12-10 16:09:14 | 显示全部楼层
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 133 天

    [LV.7]常住居民III

    2

    主题

    27

    回帖

    598

    积分

    高级会员

    积分
    598
    发表于 2023-12-13 08:17:23 | 显示全部楼层
    楼主厉害了!修个设备马上就能开发了!
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 133 天

    [LV.7]常住居民III

    10

    主题

    220

    回帖

    530

    积分

    高级会员

    积分
    530
    发表于 2023-12-13 09:11:04 | 显示全部楼层
    买个芯片?不用写程序的吗
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    9 小时前
  • 签到天数: 168 天

    [LV.7]常住居民III

    10

    主题

    106

    回帖

    178

    积分

    注册会员

    积分
    178
    发表于 2023-12-13 10:52:16 | 显示全部楼层
    有钱赚,有兴趣,就有动力,加油楼主。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    9 小时前
  • 签到天数: 74 天

    [LV.6]常住居民II

    13

    主题

    45

    回帖

    537

    积分

    高级会员

    积分
    537
    发表于 2023-12-13 11:03:57 | 显示全部楼层
    加油,我们也是。以前设备上的驱动板也是买的,后来我们要更改一些功能,厂家这个不能改那个不能改,还涨价。后来干脆自已搞一个,经过差不多3个月的学习(听陈老师的课,边学边弄边测试,不懂的就在论坛内问问),竞然被我搞成了。自已都不相信自已能够搞成功
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-5-4 13:59
  • 签到天数: 102 天

    [LV.6]常住居民II

    13

    主题

    60

    回帖

    376

    积分

    中级会员

    积分
    376
     楼主| 发表于 2023-12-17 20:48:17 来自手机 | 显示全部楼层
    掌握核心技术就是爽,星期四客户有个机器坏了,供应商说零件下周三才能到,客户则要星期一修好,最后修修改改这个板,通宵肝出来去打样,再修改一下代码,今天星期日打样到了,零件也到了,焊起来刷好hex一切正常,晚上给客户装起来ok了。

    装前留念
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-5-6 11:54
  • 签到天数: 79 天

    [LV.6]常住居民II

    0

    主题

    65

    回帖

    360

    积分

    中级会员

    积分
    360
    发表于 2023-12-18 07:56:00 | 显示全部楼层
    hl1200aa 发表于 2023-12-17 20:48
    掌握核心技术就是爽,星期四客户有个机器坏了,供应商说零件下周三才能到,客户则要星期一修好,最后修修改 ...

    成就感爆棚
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-20 18:41 , Processed in 0.075303 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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