找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

自学单片机遇到一些程序问题,求分析解决

查看数: 1713 | 评论数: 16 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-4-16 17:59

正文摘要:

最近在自学STC89C52单片机,也看了许多的老师的讲解,有些问题没有弄明白,向大家求教一下。 外部中断,我明白有两种触发方式,一种电平触发,一种下降沿触发,也看了单片机的原理图。 我理解的外部中断,电平 ...

回复

ID:505803 发表于 2019-4-17 15:05
yzwzfyz 发表于 2019-4-17 11:29
“还有定时器,感觉怎么这么复杂,可以一会语句循环,一会定时器控制,都不知道到底该用哪种了。
到现在定 ...

大哥您好
这个定时器,听了一些视频资料的讲解,大概知道它是什么原理,但就是具体的该怎么用还不太清楚。
程序方面流程图画的有,都说的通。就是不知道该如何下手。
看一些例程,自己分析,就是先,头文件,定义引脚,然后程序的流程。引用的函数。等。自己写的时候就完全不知道该怎么写了。之前也按照流程写过了,当时想的是。我需要的程序就和点亮LED灯一样,不过是时间不一样,但就是时间不知道该如何计算,怎么样才能一会定时4秒 一会定时10秒,
ID:123289 发表于 2019-4-17 11:50
如果离我近,不出一周教会你单片机。
ID:123289 发表于 2019-4-17 11:49
你的原理图上可以省去四个元件:D1、C3、C7、Y1。
D1省去后:短接。
C3、C7、Y1省去后,从U2-8引一条线至OSCIN。不过CPU的主频就统一成12M了,这一点软件上是可以克服的(相关时序的参数调整一下)。
ID:123289 发表于 2019-4-17 11:41
我的分很多,你就留着用吧,不别给我了。不够用我可以赞助你一点。
ID:123289 发表于 2019-4-17 11:39
你留的不是程序,只是定义接口接的是什么东西。
ID:123289 发表于 2019-4-17 11:35
“程序方面,看了许多的例程,里面的代码,最后感觉有很多的相似,就好像有固定的框框,写程序的时候只需要朝里面套自己的东西一样。”
写程序很容易,就那么几个句子抄抄。但架构程序,是需要相当的智慧!!!脑子不太好使用的,不好学这一行。你必须学会构建程序,第一步就是必须会画流程图,流程图说得通道理,达得成目的。再依流程图写程序,余下的就是抄抄句子了。
看别人的程序,要点是了解它的构思、目的、达成目的所采用的方式。语句不重要!
ID:286252 发表于 2019-4-17 11:32
51单片机就是这样,它只有两个外部中断输入口,如果你中断输入口不够,你可以使用与非门连接(将普通的IO口连接在门电路的输入口,门电路的输出口接单片机中断口)。
ID:123289 发表于 2019-4-17 11:29
“还有定时器,感觉怎么这么复杂,可以一会语句循环,一会定时器控制,都不知道到底该用哪种了。
到现在定时器都没弄懂。”
它就是个计数器,即然是计数器就有以下:
1、输入时钟脉冲CLK,来一个计一次。如果CLK间隔很准时(来自晶振),自然就可以用来“定时”,这时可以美其名曰“定时器”了;如果间隔很随机(来自引脚的外接脉冲),就只能数数脉冲的个数,就只能是“计数器”了。如果切断(TR=0)它,当然就停止计数了;如果接通它(TR=1),就又计数了。这样说不就知道“定时”、“计数”、“起动”、“停止”了吗。
2、是计数器就有位数限制,计满会发生什么?会输出一个脉冲至中断标记位。这就是“定时器中断”的道理。
3、这个计数器是可以预置转数的,在任何时候你都可以预置数,你瞎置它就瞎数,为了有规律,你通常会选择一个特定的时刻置数,当然最有特点的时刻就是它计满的时候!例如:65536计满,计满后你置数据60000,这样它就每计5536次发出一次中断申请。如果你不置数,它就每65536次发出一次中断申请。
4、中断申请发出后,如果没有被清除(用其它方式清除),那么再次申请就没有意义了。这就是中断响应后为什么要复位中断标记的道理,当然有些机型是硬件复位的,即一响应就自动清除它,也就不要你操心了。
ID:505803 发表于 2019-4-17 11:25
robinsonlin 发表于 2019-4-17 08:51
定时器是单片机内部的硬件,而中断只是单片机的一种机制,在使用计时器的时候,你可以用中断机制,也可以不 ...

这个视频就是我正在看的,宋老师讲的很好,我也在认真学习,有的视频会反反复复的看,了解他讲的一些知识点。
另外,大哥我想问一下,我想一步一步的把我上边的这个程序给推敲出来,这样更能加深我的理解,
就是单片机怎么接受高电平的输入,现在这个遥控接收表只能输出高电平,有什么办法在程序上调整或者是硬件上加什么东西,
谢谢大哥的回复
ID:505803 发表于 2019-4-17 11:18
那想是有3 个4个的中断源怎么办?换板子吗?
ID:123289 发表于 2019-4-17 11:05
“就一点不明白,外部中断一定要接在INT0,INT1引脚上才可以吗?别的端口不可以吗?那如果需要用传感器控制的外部中断多几个,好像局限性很大”
你的想法,设计大师们已经考虑到了:后期改进型51计算机的确可以在别的端口中断,如P2.0。STC的机型就是你想像的。传统51没有。
ID:123289 发表于 2019-4-17 11:02
“我理解的外部中断,电平触发就是一个按键或是什么东西,在单片机引脚上输入了一个电平,这个电平一直存在使其一直保持中断,松开按键就外部中断停止了,
下沿触发像是在引脚上输入一个电平的信号,就像一个波形一样,触发不需要保持住,单片机检测到这个波形了就触发外部中断。”
你说对了一半:准确地说,不是“就中断了”,而是产生中断申请标记位了,离中断还差一步:你让不让它中断!
ID:149799 发表于 2019-4-17 09:41
总工讲解的很详细了
ID:451718 发表于 2019-4-17 08:51
定时器是单片机内部的硬件,而中断只是单片机的一种机制,在使用计时器的时候,你可以用中断机制,也可以不用。 有个教程推荐给你, 用一天的时间就可以读完这个教程,一定对你有很大的帮助。
下载地址:http://www.51hei.com/bbs/dpj-26246-1.html
ID:164602 发表于 2019-4-17 08:12
只说一点:外部中断的IO口

外部中断的IO口,只能是P32、P33,不能是其它的。因为这是由单片机的内部硬件电路决定的,不是由软件可以决定的。
如果你使用中断,就只能是对应的IO口。
另外,中断源也是由单片机电路决定的,看手册就知道。
ID:310519 发表于 2019-4-16 20:49
中断和定时正是单片机的“精要”啊。

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

Powered by 单片机教程网

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