找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3669|回复: 15
打印 上一主题 下一主题
收起左侧

单片机reg52.h可以直接改为reg51.h吗?

  [复制链接]
跳转到指定楼层
楼主
ID:989372 发表于 2021-12-7 22:48 来自触屏版 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include <reg52.h>                        //        定义头文件
  2. #define        SEG7 P0                                //        定义7段数码管接至P0
  3. char code TAB[10]={        0xc0, 0xf9, 0xa4, 0xb0, 0x99,        // 数字0-4
  4.                                         0x92, 0x83, 0xf8, 0x80, 0x98};        // 数字5-9
  5. void delay1ms(int);                        //        声明延迟函数

  6. main()                                                //        主程序开始
  7. {               
  8.         P2=0xf7;                                //        P2.3为0,让最右边数码管显示
  9.         IE=0x85;                                //        打开外部中断INT0和INT1
  10.         IP=0x04;                                //        设置INT1优先级高于INT0
  11.         SEG7=0xbf;                                //        数码管初始时显示“-
  12.         while(1);                                //        无穷等待,主程序无任何动作
  13. }                                                        //        主程序结束
  14. // INT 0的中断子程序 - 数码管从0加到9
  15. void add_int0(void) interrupt 0//INT0中断子程序开始
  16. {        char i;
  17.         unsigned saveSEG7=SEG7;        //        储存中断前数码管状态
  18.         for(i=0;i<10;i++)                //        显示0-9,共10次循环
  19.                 {        
  20.                         SEG7=TAB[i];        //        显示数字,使用实验板需改为"SEG7=~TAB[i];"
  21.                         delay1ms(500);        //        延迟500ms
  22.                 }                                        //        for循环结束;
  23.         SEG7=saveSEG7;                        //        写回中断前数码管状态
  24. }                                                        //        结束INT0 中断子程序
  25. // INT 1的中断子程序 - 数码管从9减到0
  26. void subb_int1(void) interrupt 2//INT0中断子程序开始
  27. {        char i;
  28.         unsigned saveSEG7=SEG7;        //        储存中断前数码管状态
  29.         for(i=9;i>=0;i--)                //        显示0-9,共10次循环
  30.                 {        
  31.                         SEG7=TAB[i];        //        显示数字,使用实验板需改为"SEG7=~TAB[i];"
  32.                         delay1ms(500);        //        延迟500ms
  33.                 }                                        //        for循环结束;
  34.         SEG7=saveSEG7;                        //        写回中断前数码管状态
  35. }                                                        //        结束INT0 中断子程序
  36. // 延迟函数,延迟约x ms
  37. void delay1ms(int x)                //        延迟函数开始
  38. {        int i,j;                                //        声明整数变数i,j
  39.         for (i=0;i<x;i++)                //        计数x次,延迟x ms
  40.                 for (j=0;j<120;j++);//        计数120次,延迟1ms
  41. }                                                        //        延迟函数结束
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2021-12-7 23:01 | 只看该作者
你可以踹(try)一踹,看看有什么后果。
回复

使用道具 举报

板凳
ID:624769 发表于 2021-12-8 00:02 | 只看该作者
理论上,别说改REG51.H  就算改成别奇奇怪怪的,甚至就算删掉也没有什么不可以。

关键是,你改的目的是什么? 你想达到的效果是什么?  
然后,改一个数字,点一下编译, 最多最多最多,就是再下载一下看看实际效果的事情,值得写那么多字来问么?
回复

使用道具 举报

地板
ID:975422 发表于 2021-12-8 08:08 | 只看该作者
二楼说的有道理!你的目的是什么???
回复

使用道具 举报

5#
ID:975422 发表于 2021-12-8 08:09 | 只看该作者
楼上说的有道理!楼主你的目的是什么??
回复

使用道具 举报

6#
ID:752974 发表于 2021-12-8 08:23 | 只看该作者
不用改,直接用就可以了。REG52.H包括了改REG51.H的全部。
回复

使用道具 举报

7#
ID:976767 发表于 2021-12-8 08:45 | 只看该作者
reg52.h可以直接替换,不用改
回复

使用道具 举报

8#
ID:514901 发表于 2021-12-8 09:02 | 只看该作者
程序如果有用到定时器2就不可以改,否则就行
回复

使用道具 举报

9#
ID:313854 发表于 2021-12-8 09:05 | 只看该作者
可以改,只是reg52中有部分特殊寄存器在reg51.h中没有定义
回复

使用道具 举报

10#
ID:277550 发表于 2021-12-8 09:09 | 只看该作者

不要任何头文件都可以,自己写各寄存器就好了
回复

使用道具 举报

11#
ID:983394 发表于 2021-12-8 11:28 | 只看该作者
没啥用 因为52是51的升级版本
回复

使用道具 举报

12#
ID:908826 发表于 2021-12-8 16:40 | 只看该作者
看你用啥了,你要是用的东西只有reg52.h里面有,那就不能换。
回复

使用道具 举报

13#
ID:523803 发表于 2021-12-11 21:03 | 只看该作者
188610329 发表于 2021-12-8 00:02
理论上,别说改REG51.H  就算改成别奇奇怪怪的,甚至就算删掉也没有什么不可以。

关键是,你改的目的是 ...

不可以删掉吧,这是头文件来的。
回复

使用道具 举报

14#
ID:863590 发表于 2021-12-11 21:06 | 只看该作者
可以改的吧,你想干嘛呢
回复

使用道具 举报

15#
ID:908826 发表于 2021-12-12 08:59 | 只看该作者
这俩头文件里面的东西是被包含的52包含51。
回复

使用道具 举报

16#
ID:979892 发表于 2021-12-12 09:31 | 只看该作者
如果是个小系统,不用Time2等一些89C52的资源,是可以改成REG51.H的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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