找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3715|回復: 15
收起左側(cè)

單片機reg52.h可以直接改為reg51.h嗎?

  [復制鏈接]
ID:989372 發(fā)表于 2021-12-7 22:48 來自觸屏版 | 顯示全部樓層 |閱讀模式
  1. #include <reg52.h>                        //        定義頭文件
  2. #define        SEG7 P0                                //        定義7段數(shù)碼管接至P0
  3. char code TAB[10]={        0xc0, 0xf9, 0xa4, 0xb0, 0x99,        // 數(shù)字0-4
  4.                                         0x92, 0x83, 0xf8, 0x80, 0x98};        // 數(shù)字5-9
  5. void delay1ms(int);                        //        聲明延遲函數(shù)

  6. main()                                                //        主程序開始
  7. {               
  8.         P2=0xf7;                                //        P2.3為0,讓最右邊數(shù)碼管顯示
  9.         IE=0x85;                                //        打開外部中斷INT0和INT1
  10.         IP=0x04;                                //        設置INT1優(yōu)先級高于INT0
  11.         SEG7=0xbf;                                //        數(shù)碼管初始時顯示“-
  12.         while(1);                                //        無窮等待,主程序無任何動作
  13. }                                                        //        主程序結(jié)束
  14. // INT 0的中斷子程序 - 數(shù)碼管從0加到9
  15. void add_int0(void) interrupt 0//INT0中斷子程序開始
  16. {        char i;
  17.         unsigned saveSEG7=SEG7;        //        儲存中斷前數(shù)碼管狀態(tài)
  18.         for(i=0;i<10;i++)                //        顯示0-9,共10次循環(huán)
  19.                 {        
  20.                         SEG7=TAB[i];        //        顯示數(shù)字,使用實驗板需改為"SEG7=~TAB[i];"
  21.                         delay1ms(500);        //        延遲500ms
  22.                 }                                        //        for循環(huán)結(jié)束;
  23.         SEG7=saveSEG7;                        //        寫回中斷前數(shù)碼管狀態(tài)
  24. }                                                        //        結(jié)束INT0 中斷子程序
  25. // INT 1的中斷子程序 - 數(shù)碼管從9減到0
  26. void subb_int1(void) interrupt 2//INT0中斷子程序開始
  27. {        char i;
  28.         unsigned saveSEG7=SEG7;        //        儲存中斷前數(shù)碼管狀態(tài)
  29.         for(i=9;i>=0;i--)                //        顯示0-9,共10次循環(huán)
  30.                 {        
  31.                         SEG7=TAB[i];        //        顯示數(shù)字,使用實驗板需改為"SEG7=~TAB[i];"
  32.                         delay1ms(500);        //        延遲500ms
  33.                 }                                        //        for循環(huán)結(jié)束;
  34.         SEG7=saveSEG7;                        //        寫回中斷前數(shù)碼管狀態(tài)
  35. }                                                        //        結(jié)束INT0 中斷子程序
  36. // 延遲函數(shù),延遲約x ms
  37. void delay1ms(int x)                //        延遲函數(shù)開始
  38. {        int i,j;                                //        聲明整數(shù)變數(shù)i,j
  39.         for (i=0;i<x;i++)                //        計數(shù)x次,延遲x ms
  40.                 for (j=0;j<120;j++);//        計數(shù)120次,延遲1ms
  41. }                                                        //        延遲函數(shù)結(jié)束
復制代碼
回復

使用道具 舉報

ID:883242 發(fā)表于 2021-12-7 23:01 | 顯示全部樓層
你可以踹(try)一踹,看看有什么后果。
回復

使用道具 舉報

ID:624769 發(fā)表于 2021-12-8 00:02 | 顯示全部樓層
理論上,別說改REG51.H  就算改成別奇奇怪怪的,甚至就算刪掉也沒有什么不可以。

關鍵是,你改的目的是什么? 你想達到的效果是什么?  
然后,改一個數(shù)字,點一下編譯, 最多最多最多,就是再下載一下看看實際效果的事情,值得寫那么多字來問么?
回復

使用道具 舉報

ID:975422 發(fā)表于 2021-12-8 08:08 | 顯示全部樓層
二樓說的有道理!你的目的是什么???
回復

使用道具 舉報

ID:975422 發(fā)表于 2021-12-8 08:09 | 顯示全部樓層
樓上說的有道理!樓主你的目的是什么??
回復

使用道具 舉報

ID:752974 發(fā)表于 2021-12-8 08:23 | 顯示全部樓層
不用改,直接用就可以了。REG52.H包括了改REG51.H的全部。
回復

使用道具 舉報

ID:976767 發(fā)表于 2021-12-8 08:45 | 顯示全部樓層
reg52.h可以直接替換,不用改
回復

使用道具 舉報

ID:514901 發(fā)表于 2021-12-8 09:02 | 顯示全部樓層
程序如果有用到定時器2就不可以改,否則就行
回復

使用道具 舉報

ID:313854 發(fā)表于 2021-12-8 09:05 | 顯示全部樓層
可以改,只是reg52中有部分特殊寄存器在reg51.h中沒有定義
回復

使用道具 舉報

ID:277550 發(fā)表于 2021-12-8 09:09 | 顯示全部樓層

不要任何頭文件都可以,自己寫各寄存器就好了
回復

使用道具 舉報

ID:983394 發(fā)表于 2021-12-8 11:28 | 顯示全部樓層
沒啥用 因為52是51的升級版本
回復

使用道具 舉報

ID:908826 發(fā)表于 2021-12-8 16:40 | 顯示全部樓層
看你用啥了,你要是用的東西只有reg52.h里面有,那就不能換。
回復

使用道具 舉報

ID:523803 發(fā)表于 2021-12-11 21:03 | 顯示全部樓層
188610329 發(fā)表于 2021-12-8 00:02
理論上,別說改REG51.H  就算改成別奇奇怪怪的,甚至就算刪掉也沒有什么不可以。

關鍵是,你改的目的是 ...

不可以刪掉吧,這是頭文件來的。
回復

使用道具 舉報

ID:863590 發(fā)表于 2021-12-11 21:06 | 顯示全部樓層
可以改的吧,你想干嘛呢
回復

使用道具 舉報

ID:908826 發(fā)表于 2021-12-12 08:59 | 顯示全部樓層
這倆頭文件里面的東西是被包含的52包含51。
回復

使用道具 舉報

ID:979892 發(fā)表于 2021-12-12 09:31 | 顯示全部樓層
如果是個小系統(tǒng),不用Time2等一些89C52的資源,是可以改成REG51.H的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表