找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4422|回复: 32
收起左侧

AT89C51单片机可以有另个主程序吗?

  [复制链接]
ID:336971 发表于 2018-5-29 10:40 | 显示全部楼层 |阅读模式
在网上找了两个比较复杂的程序,更改难度很大 ,但是设计的要求要一起使用,但是使用的时间段上是可以分开的。可以设置某个时间段运行主程序A,哪个时间段运行主程序B吗?
回复

使用道具 举报

ID:213173 发表于 2018-5-29 12:00 | 显示全部楼层
主程序main()只能是唯一的,除了中断程序其他程序都是在main()内运行,如果两个互不关联的程序功能完全可以在主程序中分时调度运行。不过这种方法对初学者同样具有难度。
回复

使用道具 举报

ID:340519 发表于 2018-5-29 13:23 | 显示全部楼层
如果是条件触发的话可以采用的中断方式
回复

使用道具 举报

ID:340849 发表于 2018-5-29 20:01 | 显示全部楼层
main函数只能有一个
回复

使用道具 举报

ID:331575 发表于 2018-5-29 22:51 | 显示全部楼层
可以,你要是用定时器中断可以达到你的目的,前提你需要算好A程序什么时间运算,B程序什么时间运算,希望可以给你点思路
回复

使用道具 举报

ID:123289 发表于 2018-5-29 22:56 | 显示全部楼层
用定时器做一个时间中断,中断服务程序中将标记位变量B求反后退出。
主程序中:
当B=1时执行你的1号程序。
当B=0时执行你的2号程序。
回复

使用道具 举报

ID:111634 发表于 2018-5-30 06:32 | 显示全部楼层
c51中,主程序main()只能是唯一的。但可分条件运行2个不同的主体函数,此时,该2个主体函数都不是主函数(名称而已)。
回复

使用道具 举报

ID:341070 发表于 2018-5-30 07:17 | 显示全部楼层
运用抢占中断优先级啊。
回复

使用道具 举报

ID:341279 发表于 2018-5-30 12:08 | 显示全部楼层
怕是不行吧?
回复

使用道具 举报

ID:186734 发表于 2018-5-30 16:20 | 显示全部楼层
焊两个单片机一起用得了
回复

使用道具 举报

ID:341584 发表于 2018-5-30 18:15 | 显示全部楼层
主程序肯定是只能有一个
回复

使用道具 举报

ID:341584 发表于 2018-5-30 18:16 | 显示全部楼层
主程序是肯定只能有一个的
回复

使用道具 举报

ID:341626 发表于 2018-5-30 19:05 | 显示全部楼层
只有一个程序
回复

使用道具 举报

ID:341638 发表于 2018-5-30 19:16 | 显示全部楼层
不可以
回复

使用道具 举报

ID:341716 发表于 2018-5-30 20:56 | 显示全部楼层
只能有一个主函数呦
回复

使用道具 举报

ID:223470 发表于 2018-5-30 21:12 | 显示全部楼层
一个工程必定是从main开始执行的,不过你可以通过设计定时器,通过设定定时次数来确定不同的执行时间
举例就是
中断服务函数
{
  if(time==100)
   {
     中断事件;
   }
   time=0;
}else
time++;
如此。
回复

使用道具 举报

ID:341747 发表于 2018-5-30 21:14 | 显示全部楼层
可以的,在主程序中设置一下时间,用switch应该可以吧
回复

使用道具 举报

ID:341786 发表于 2018-5-30 22:02 | 显示全部楼层
主程序main()只能是唯一的,除了中断程序其他程序都是在main()内运行,如果两个互不关联的程序功能完全可以在主程序中分时调度运行。不过这种方法对初学者同样具有难度。
回复

使用道具 举报

ID:243798 发表于 2018-5-30 22:17 | 显示全部楼层
可以用定时器,中断时在两个循环中切换。
回复

使用道具 举报

ID:341842 发表于 2018-5-30 23:17 | 显示全部楼层
如果A,B程序中都同时都启用了同个中断或定时器,那就需要调整修改,那比较麻烦,如果其中一个程序只是用了几个函数实现了功能,完全可以复制到另一个程序中,进行调用即可
回复

使用道具 举报

ID:342037 发表于 2018-5-31 11:29 | 显示全部楼层
定时器中断
回复

使用道具 举报

ID:342110 发表于 2018-5-31 13:50 | 显示全部楼层
主程序main()只能有一个,但依据你的情况,可以将你所说的主程序设置为两个子函数或进程,在主函数中实现分时调用
回复

使用道具 举报

ID:342119 发表于 2018-5-31 13:52 | 显示全部楼层
只有一个主循环
回复

使用道具 举报

ID:325374 发表于 2018-5-31 14:30 | 显示全部楼层
主程序必须是唯一的
回复

使用道具 举报

ID:339629 发表于 2018-5-31 15:05 | 显示全部楼层
中断程序其他程序都是在main()内运行
回复

使用道具 举报

ID:278954 发表于 2018-5-31 15:59 | 显示全部楼层
主程序main()只能有一个呀,你可以将两个程序包含到主程序运行就可以的了
回复

使用道具 举报

ID:278954 发表于 2018-5-31 16:00 | 显示全部楼层
主程序main()只能是一个的呀,你可以将两个程序合在主程序里运行的
回复

使用道具 举报

ID:342371 发表于 2018-5-31 18:19 | 显示全部楼层
主程序main()只能是唯一
回复

使用道具 举报

ID:390775 发表于 2018-9-4 17:34 | 显示全部楼层
主程序  只能有一个  你可以  在一个主程序里 添加 函数 (就是把另一个程序 写成一个函数 插入到  主程序里 )
加油
回复

使用道具 举报

ID:393670 发表于 2018-9-4 18:40 | 显示全部楼层

main函数只能有一个
回复

使用道具 举报

ID:393690 发表于 2018-9-4 20:04 | 显示全部楼层
主程序应该只有一个吧
回复

使用道具 举报

ID:137736 发表于 2018-9-4 20:37 | 显示全部楼层
用定时器中断和标志变量进行切换
回复

使用道具 举报

ID:375161 发表于 2018-9-4 21:58 | 显示全部楼层
main函数基本上在哪都只能有一个。用中断,或者可以加个条件判断,在两个程序之间切换。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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