欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 關(guān)于郭天祥lesson4-2程序仿真的疑問(wèn) [打印本頁(yè)]

作者: sdwdlst    時(shí)間: 2020-2-20 10:00
標(biāo)題: 關(guān)于郭天祥lesson4-2程序仿真的疑問(wèn)
根據(jù)郭師傅的視頻一步步走下來(lái)的,最終代碼如下,郭師傅在視頻中用實(shí)驗(yàn)板能實(shí)現(xiàn)此功能,但我用proteus仿真仿不出來(lái),在線求助。再就是仿真出現(xiàn)圖二是什么原因。
單片機(jī)源程序如下:
  1. //實(shí)現(xiàn)的功能:第一位亮一,過(guò)一秒種后第二位亮二,再過(guò)一秒后第三位亮三,然后依次類推
  2. #include<reg52.h>
  3. #include<intrins.h>        //流水燈的循環(huán)移動(dòng)
  4. #define uint unsigned int
  5. #define uchar unsigned char
  6. uchar temp,aa,numdu,numwe;
  7. sbit dula=P2^6;//段選
  8. sbit wela=P2^7;//位選
  9. uchar code table[]={
  10. 0x3f,0x06,0x5b,0x4f,
  11. 0x66,0x6d,0x7d,0x07,
  12. 0x7f,0x6f,0x77,0x7c,
  13. 0x39,0x5e,0x79,0x71};
  14. uchar code tablewe[]={                //位的table
  15. 0xfe,0xfd,0xfb,
  16. 0xf7,0xef,0xdf};
  17. //{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  18. //void delay(uint z);        //使用定時(shí)器延時(shí)
  19. void main()
  20. {
  21.         numdu=0;
  22.         numwe=0;
  23.         aa=0;
  24.         TMOD=1;//0x01;確定T0T1的工作方式
  25.         TH0=(65536-50000)/256;//50毫秒產(chǎn)生一次中斷
  26.         TL0=(65536-50000)%256;
  27.         EA=1;//開(kāi)總中斷
  28.         ET0=1;//開(kāi)定時(shí)器0中斷
  29.         TR0=1;//啟動(dòng)定時(shí)器
  30. /*定時(shí)/計(jì)數(shù)器初始化程序應(yīng)完成如下工作:
  31. //對(duì)TMOD賦值,以確定T0和T1的工作方式。
  32. //計(jì)算初值,并將其寫入TH0、TL0或TH1、TL1.
  33. //中斷方式時(shí),則對(duì)IE賦值,開(kāi)放中斷。
  34. //使TR0或TR1置位,啟動(dòng)定時(shí)/計(jì)數(shù)器定時(shí)或計(jì)數(shù)*/
  35.         while(1)
  36.         {
  37. //                delay(1000);//延時(shí)1000毫秒
  38. //                temp=_crol_(temp,1);
  39. //                P1=temp;   
  40.                 if(aa==10)//200毫秒
  41.                         {
  42.                                 aa=0;
  43.                                 numdu++;
  44.                                 if(numdu==7)
  45.                                         numdu=1;
  46.                                 dula=1;
  47.                                 P0=table[numdu];
  48.                                 dula=0;
  49.                                 wela=1;
  50.                                 P0=tablewe[numwe];
  51.                                 wela=0;
  52.                                 numwe++;
  53.                                 if(numwe==6)
  54.                                         numwe=0;
  55.                         }               
  56.         }                                 
  57. }

  58. //void delay(uint z)
  59. //{
  60. //        uint x,y;
  61. //        for(x=z;x>0;x--)
  62. //                for(y=110;y>0;y--);
  63. //}
  64. void timer0() interrupt 1
  65. /*51單片機(jī)中using使用在C51編程中,
  66. 用來(lái)在中斷函數(shù)中指定工作寄存器區(qū),
  67. 工作寄存器共有4個(gè)區(qū),分別代表R0~R7地址是:
  68. 第0工作區(qū):00H~07H
  69. 第1工作區(qū):08H~0FH
  70. 第2工作區(qū):10H~17H
  71. 第3工作區(qū):18H~1FH
  72. using n,那么n就是第幾區(qū),使用方法如下:
  73. void exterint0() interrupt 0 using 1
  74. 這表示外部中斷0使用第1工作區(qū)地址。*/
  75. {
  76.         TH0=(65536-50000)/256;//5毫秒產(chǎn)生一次中斷
  77.         TL0=(65536-50000)%256;
  78.         aa++;
  79. //                if(aa==40)//2秒
  80. //                        {
  81. //                                 aa=0;
  82. //                                 num++;//num不需初始化,默認(rèn)為0
  83. //                                 if(num==16)
  84. //                                         num=0;
  85. //                                 dula=1;
  86. //                                 P0=table[num];
  87. //                                 dula=0;
  88. //                        }               
  89. }
復(fù)制代碼





51黑論壇_TX-1C型實(shí)驗(yàn)板.JPG (156.15 KB, 下載次數(shù): 131)

1

1

1.JPG (108.39 KB, 下載次數(shù): 121)

2

2

作者: wulin    時(shí)間: 2020-2-20 14:42
學(xué)習(xí)板上集成了很多功能,而且常有端口和接口復(fù)用,利用跳線帽切換電路。樓主想完整仿真一個(gè)復(fù)雜的學(xué)習(xí)板上所有功能幾乎是不可能成功。只能把某些功能的相關(guān)電路分離出來(lái)仿真才能成功。程序修改如下:


  1. //實(shí)現(xiàn)的功能:第一位亮一,過(guò)一秒種后第二位亮二,再過(guò)一秒后第三位亮三,然后依次類推
  2. #include<reg52.h>
  3. #include<intrins.h>        //流水燈的循環(huán)移動(dòng)
  4. #define uint unsigned int
  5. #define uchar unsigned char
  6. uchar temp,aa,numdu,numwe;
  7. sbit dula=P2^6;//段選
  8. sbit wela=P2^7;//位選
  9. uchar code table[]={
  10. 0x3f,0x06,0x5b,0x4f,
  11. 0x66,0x6d,0x7d,0x07,
  12. 0x7f,0x6f,0x77,0x7c,
  13. 0x39,0x5e,0x79,0x71};
  14. uchar code tablewe[]={                //位的table
  15. 0xfe,0xfd,0xfb,
  16. 0xf7,0xef,0xdf};
  17. //{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  18. void Timer0Init();
  19. void delay(uint z);        //使用定時(shí)器延時(shí)
  20. void main()
  21. {
  22.         numdu=0;
  23. //        numwe=0;
  24.         aa=0;
  25. //        TMOD=1;//0x01;確定T0T1的工作方式
  26. //        TH0=(65536-50000)/256;//50毫秒產(chǎn)生一次中斷
  27. //        TL0=(65536-50000)%256;
  28.         Timer0Init();
  29.         EA=1;//開(kāi)總中斷
  30.         ET0=1;//開(kāi)定時(shí)器0中斷
  31. //        TR0=1;//啟動(dòng)定時(shí)器
  32.         /*定時(shí)/計(jì)數(shù)器初始化程序應(yīng)完成如下工作:
  33.         //對(duì)TMOD賦值,以確定T0和T1的工作方式。
  34.         //計(jì)算初值,并將其寫入TH0、TL0或TH1、TL1.
  35.         //中斷方式時(shí),則對(duì)IE賦值,開(kāi)放中斷。
  36.         //使TR0或TR1置位,啟動(dòng)定時(shí)/計(jì)數(shù)器定時(shí)或計(jì)數(shù)*/
  37.         while(1)
  38.         {
  39.                 if(aa>=20)//1秒
  40.                 {
  41.                         aa=0;
  42.                         numdu++;
  43.                         if(numdu>=6)
  44.                                 numdu=0;
  45.                 }
  46.                 P0=table[numdu+1];
  47.                 dula=1;
  48.                 dula=0;

  49.                 P0=tablewe[numdu];
  50.                 wela=1;
  51.                 wela=0;
  52. //                numwe++;
  53. //                if(numwe==6)
  54. //                        numwe=0;               
  55.                 delay(2);
  56.         }                                 
  57. }

  58. void Timer0Init()        //50毫秒@11.0592MHz
  59. {
  60.         TMOD= 0x01;                //設(shè)置定時(shí)器模式
  61.         TL0 = 0x00;                //設(shè)置定時(shí)初值
  62.         TH0 = 0x4C;                //設(shè)置定時(shí)初值
  63.         TF0 = 0;                //清除TF0標(biāo)志
  64.         TR0 = 1;                //定時(shí)器0開(kāi)始計(jì)時(shí)
  65. }

  66. void delay(uint z)
  67. {
  68.         uint x,y;
  69.         for(x=z;x>0;x--)
  70.                 for(y=110;y>0;y--);
  71. }

  72. void timer0() interrupt 1
  73. /*51單片機(jī)中using使用在C51編程中,
  74. 用來(lái)在中斷函數(shù)中指定工作寄存器區(qū),
  75. 工作寄存器共有4個(gè)區(qū),分別代表R0~R7地址是:
  76. 第0工作區(qū):00H~07H
  77. 第1工作區(qū):08H~0FH
  78. 第2工作區(qū):10H~17H
  79. 第3工作區(qū):18H~1FH
  80. using n,那么n就是第幾區(qū),使用方法如下:
  81. void exterint0() interrupt 0 using 1
  82. 這表示外部中斷0使用第1工作區(qū)地址。*/
  83. {
  84.         TH0=(65536-50000)/256;//50毫秒產(chǎn)生一次中斷
  85.         TL0=(65536-50000)%256;
  86.         aa++;
  87. //  if(aa==40)//2秒
  88. //  {
  89. //     aa=0;
  90. //     num++;//num不需初始化,默認(rèn)為0
  91. //     if(num==16)
  92. //       num=0;
  93. //     dula=1;
  94. //     P0=table[num];
  95. //     dula=0;
  96. //  }               
  97. }
復(fù)制代碼




作者: sdwdlst    時(shí)間: 2020-3-17 23:13
wulin 發(fā)表于 2020-2-20 14:42
學(xué)習(xí)板上集成了很多功能,而且常有端口和接口復(fù)用,利用跳線帽切換電路。樓主想完整仿真一個(gè)復(fù)雜的學(xué)習(xí)板上 ...

謝謝啦!長(zhǎng)知識(shí)了!




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1