久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3220|回復: 15
收起左側

AT89C52仿真為什么不能實現1秒啊,求大神!慢一點點

  [復制鏈接]
ID:660069 發表于 2020-1-29 21:19 | 顯示全部樓層 |閱讀模式
#include<reg52.h>
sbit A = P1^0;
sbit C = P1^1;
sbit E = P1^2;
unsigned char code LedChar[]=
{0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,
0X80,0X90,0X88,0X83,0XC6,0XA1,0X86,0X8E
};
void main()
{
unsigned char cnt = 0;
unsigned char sec = 0;
   E = 0;
   C = 0;
   A = 0;
EA = 1;
ET0 = 1;
TMOD = 0X01;
TH0 = 0XB8;
TL0 = 0X00;
TR0 = 1;
while(1)
{
  if(TF0==1)
  {
   TF0 = 0;
   TH0 = 0XB8;
   TL0 = 0X00;
   cnt++;
   if(cnt>=50)
   {
        cnt = 0;
        P0 = LedChar[sec];
        sec++;
        if(sec>=16)
        sec = 0;
   }
  }
}
}

51hei截圖20200129211855.png
回復

使用道具 舉報

ID:687694 發表于 2020-3-4 16:27 | 顯示全部樓層
修改89C52芯片屬性的晶振頻率。
回復

使用道具 舉報

ID:407089 發表于 2020-3-3 17:51 | 顯示全部樓層
試一下看看
  1. #include<reg52.h>
  2. sbit A = P1^0;
  3. sbit C = P1^1;
  4. sbit E = P1^2;
  5. unsigned char code LedChar[]=
  6. {0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,
  7. 0X80,0X90,0X88,0X83,0XC6,0XA1,0X86,0X8E
  8. };

  9. void main()
  10. {
  11.         unsigned char cnt = 0;
  12.         unsigned char sec = 0;
  13.         E = 0;
  14.         C = 0;
  15.         A = 0;
  16.         EA = 1;
  17.         ET0 = 1;
  18.         TMOD = 0X01;
  19.         TH0 = 0XB8;
  20.         TL0 = 0X00;
  21.         TR0 = 1;

  22.         while(1);
  23. }

  24. void timer0_service(void) interrupt 1
  25. {
  26.         TH0 = 0XB8;
  27.         TL0 = 0X00;
  28.         cnt++;
  29.         if(cnt==50)
  30.         {
  31.                 cnt = 0;
  32.                 P0 = LedChar[sec];
  33.                 sec++;
  34.                 if(sec==16)sec = 0;
  35.         }
  36. }
復制代碼



回復

使用道具 舉報

ID:696129 發表于 2020-3-3 16:21 | 顯示全部樓層
仿真和實際時間不一樣,和你當前的CPU的運行情況有關
回復

使用道具 舉報

ID:240034 發表于 2020-2-4 19:54 | 顯示全部樓層
if(cnt>=50)   50改成49,
回復

使用道具 舉報

ID:660069 發表于 2020-2-4 18:45 | 顯示全部樓層
wulin 發表于 2020-1-31 08:46
你的程序定時器是按晶振頻率11.0592MHz設置20ms的,仿真時也得把單片機屬性里的時鐘設置一致,否則當然不準 ...

謝謝您,參數是對的,就是不行
回復

使用道具 舉報

ID:660069 發表于 2020-2-4 18:44 | 顯示全部樓層
v115488 發表于 2020-1-31 21:22
用仿真做時鐘,跑不準的因素太多.先不說運行仿真的硬件因素,晶振就是一大問題,51單片機不使用定時計數器做時 ...

謝謝您
回復

使用道具 舉報

ID:152785 發表于 2020-1-31 21:22 | 顯示全部樓層
用仿真做時鐘,跑不準的因素太多.先不說運行仿真的硬件因素,晶振就是一大問題,51單片機不使用定時計數器做時鐘,本身誤差就很大.
回復

使用道具 舉報

ID:213173 發表于 2020-1-31 08:46 | 顯示全部樓層
你的程序定時器是按晶振頻率11.0592MHz設置20ms的,仿真時也得把單片機屬性里的時鐘設置一致,否則當然不準。 無標題.jpg


回復

使用道具 舉報

ID:660069 發表于 2020-1-30 13:38 | 顯示全部樓層
odfggf 發表于 2020-1-30 12:03
估計晶振頻率沒選對,這個對應的11.059M晶振

晶振是11.0592  不知道咋的就不對
回復

使用道具 舉報

ID:660069 發表于 2020-1-30 13:37 | 顯示全部樓層
王可樂_ 發表于 2020-1-30 10:43
你好,你的TH0應該是B1,TL0應該是E0,才是20ms,然后cnt=50的時候才是1秒

改成您這個又快了一點
回復

使用道具 舉報

ID:642838 發表于 2020-1-30 12:03 | 顯示全部樓層
估計晶振頻率沒選對,這個對應的11.059M晶振
回復

使用道具 舉報

ID:685478 發表于 2020-1-30 10:43 | 顯示全部樓層
你好,你的TH0應該是B1,TL0應該是E0,才是20ms,然后cnt=50的時候才是1秒
回復

使用道具 舉報

ID:660069 發表于 2020-1-30 10:23 | 顯示全部樓層
csmyldl 發表于 2020-1-30 09:51
定時計數器改用中斷方式或者修改TH0和TL0的值(慢改大,快改小)

10秒的話慢了2.7秒左右
回復

使用道具 舉報

ID:660069 發表于 2020-1-30 10:20 | 顯示全部樓層
csmyldl 發表于 2020-1-30 09:51
定時計數器改用中斷方式或者修改TH0和TL0的值(慢改大,快改小)

我還沒有學中斷,我看視頻一樣的程序,人家的可以實現1s,但是他直接用的板子,我這個仿真不知道為啥慢0.幾秒,求大神指點
回復

使用道具 舉報

ID:235200 發表于 2020-1-30 09:51 | 顯示全部樓層
定時計數器改用中斷方式或者修改TH0和TL0的值(慢改大,快改小)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产清纯白嫩初高生视频在线观看 | 成人亚洲在线 | 日本在线免费看最新的电影 | 中文字幕在线网 | 99日韩| 九九九视频在线 | 成人性视频免费网站 | 九九伦理电影 | 98久久| 五月激情综合网 | 麻豆av在线免费观看 | 天天看夜夜| 黄色网毛片 | 亚洲精品大片 | 成人妇女免费播放久久久 | 色呦呦网站| 日韩精品a在线观看图片 | 在线色网 | 亚洲网站在线观看 | 91在线 | 精品视频在线观看 | 草久久久| 精品一区二区三区四区 | 一区二区成人在线 | 99精品在线 | 日韩一区二区av | 久久国 | 久久久av中文字幕 | 国产一区视频在线 | 精品成人在线视频 | 欧美一级毛片久久99精品蜜桃 | 亚洲精品日韩综合观看成人91 | 精品久久久久久久久久 | 久久久国产一区二区三区四区小说 | 欧美一区二区三区四区视频 | 久久大 | 免费黄色av | 精品国产一区二区三区性色 | 中文字幕第100页 | 91影院在线观看 | 午夜久久av |