找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9207|回复: 17
收起左侧

一个43岁单片机初学者的心得

  [复制链接]
ID:878420 发表于 2021-1-24 12:45 | 显示全部楼层 |阅读模式
/*****************************************************
结合产品要求编写的电机锁紧部分程序,中年人学习单片机
真心不容易,主要记忆力太差,虽然看得懂书,但是不会运用,
不能举一反三。以前搞三菱PLC编程(PLC偏向逻辑控制),在
学习C51语言编写思路总想往PLC方向靠,固化思维,以至于多
天写不出人家分分钟搞定的程序,真是打击学习地积极性,要
学此功,必废武功。最近学会了国产立创EDA画原理、PCB图,
相当开心,再返回去学英文AD比较容易理解,我是一个EDA MCU
初学者,自学的道路上千辛万苦,只有自己懂,好在西瓜视频、
各大论坛学习资源比较多。远景有一天去搞32位单片机开发。

下面是我按照自己要求编写的程序,请大家多多指教!

MCU的晶振11.0592MHz

目的;1.掌握定时器的程序编写
         2.C51语言格式规范化编写



*****************************************************/

#include<reg52.h>
#define uchar unsigned char
uchar num;
bit m0;

sbit x0=P3^4;     // 关门位置开关
sbit x1=P3^5;     // 锁紧停止开关

sbit y0=P1^0;    // 电机锁紧

void main()
{
        m0=1;                                                                  // 初始化为1,0:故障
        TMOD=0x01;                                                          // 定时器设定
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;
        EA=1;
        ET0=1;
        
        while(1)                                                                // 大循环
        {
                 if(y0==1)                                                        // 中断计数清零
                {
                        num=0;
                }                                                         

                if((x0==0)&&(x1==1)&&(m0==1))               // 电机锁紧
                {
                          y0=0;
                }
                else
                {
                        y0=1;
                }

                if(y0==0)                                                          // 条件符合打开计时器
                {        
                        TR0=1;
                }
                                 
                else
                {
                        TR0=0;
                }

                 if(y0==0)                                                           // 50ms计时器 中断计数100次=5秒
                {               
                        if(num==100)
                        {
                                m0=0;                                        // 锁紧停止开关失效,m0=0故障,控制板断电消除故障
                                num=0;
                        
                        }
                }

        
        }                                                  

}

void T0_time() interrupt 1                                              // 计时器中断程序

{
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;
        num++;
        
}


//开门解锁程序待编写


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:878420 发表于 2021-1-24 12:53 | 显示全部楼层
有必要加按键消抖程序?
回复

使用道具 举报

ID:790408 发表于 2021-1-24 16:37 | 显示全部楼层
有必要,不加的话可能不会被识别
回复

使用道具 举报

ID:878420 发表于 2021-1-24 19:37 | 显示全部楼层
谢谢666666
回复

使用道具 举报

ID:782419 发表于 2021-1-24 22:13 | 显示全部楼层
应该需要优秀的视频教程,不行就看宋雪松的吧!变量使用前需要定义的!多看多练!
回复

使用道具 举报

ID:420836 发表于 2021-1-25 01:41 | 显示全部楼层
很好的经验。 对很多新人很有帮助。
回复

使用道具 举报

ID:86450 发表于 2021-1-25 07:57 | 显示全部楼层
我感觉 你这程序 还是按照 PLC 的风格写更好理解。 加上扫描周期的概念。 不要放到大循环中,搞一个定时器,然后每隔一段时间做一次判断。 然后把开关和电机写成 一个个的驱动。 要分层 分模块去编写。看看“数据结构”,学学“操作系统”。
回复

使用道具 举报

ID:517951 发表于 2021-1-25 08:56 | 显示全部楼层
活到老,学到老, 这个论坛里很多大神共享的代码和电路实例是很好的学习范本,坚持下去,一定会在单片机领域大有作为.
回复

使用道具 举报

ID:880092 发表于 2021-1-25 09:01 | 显示全部楼层
30不学艺,你是要开公司吗?
回复

使用道具 举报

ID:722618 发表于 2021-1-25 10:58 | 显示全部楼层
很不错,现在网上有很多视频,可以手把手教你,一般只要你不是文科出身都能学会。
回复

使用道具 举报

ID:878420 发表于 2021-1-25 15:50 来自手机 | 显示全部楼层
jyb-zl-1 发表于 2021-1-25 09:01
30不学艺,你是要开公司吗?

兴趣,20岁时就想学,那时自学汇编。现在时间比较空闲,就学学。
回复

使用道具 举报

ID:878420 发表于 2021-1-25 15:52 来自手机 | 显示全部楼层
jjwangxu2008 发表于 2021-1-25 07:57
我感觉 你这程序 还是按照 PLC 的风格写更好理解。 加上扫描周期的概念。 不要放到大循环中,搞一个定时器 ...

师傅,谢谢您的指导!
回复

使用道具 举报

ID:390416 发表于 2021-1-25 16:02 | 显示全部楼层
你可以看看 人人学会单片机 这个视频。想办法提高单片机的CPU效率,代码更好认。
回复

使用道具 举报

ID:752974 发表于 2021-1-25 16:11 | 显示全部楼层
学习单片机,我认为,在理论上有了一定的模拟电路,数字电路,单片机的硬件知识;在软件方面,有一定的C语言基础,剩下的一个学习班(或叫开发板),一台计算机,只要勤快,没有问题的,其它的都是GDP!
回复

使用道具 举报

ID:847443 发表于 2021-1-25 16:12 | 显示全部楼层
活到老,学到老,精神可嘉。
回复

使用道具 举报

ID:282850 发表于 2021-1-26 01:03 | 显示全部楼层
我也40多岁学的单片机,爱好吧。没有选错。
现50了,前几天完成一个家用的小系统
2021-01-25 星期一     1:53:20.76
18 c file lines:5061   
3 h file lines:303   
-----------------------  
All file lines:5364
回复

使用道具 举报

ID:96072 发表于 2021-1-29 12:28 | 显示全部楼层
51mcu学习 发表于 2021-1-25 15:50
兴趣,20岁时就想学,那时自学汇编。现在时间比较空闲,就学学。

看看我的STC15W204S开发板,资料集全,很容易上手的
回复

使用道具 举报

ID:382454 发表于 2021-2-2 10:09 | 显示全部楼层
这把年级要改行,如要翻越几座大山,谈何空易。各方面都比不过年轻人。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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