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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1578|回復: 6
打印 上一主題 下一主題
收起左側

這個單片機程序有什么錯?如何修改

[復制鏈接]
跳轉到指定樓層
樓主

單片機源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. sbit start=P1^1;
  4. sbit stop=P1^0;
  5. uchar code dulatab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40} ;//數字編碼0-9
  6. uchar code welatab[]={0xfe, 0xfd} ;//位控制字
  7. uchar msec, sec;
  8. void delay(uchar time)// 延時
  9. {
  10. uchar i, j;
  11. for (i=0;i<time;i++) ;
  12. {
  13. for (i=0;j<110;j++) ;
  14. }
  15. }
  16. void writeled(uchar num ,addr)
  17. {
  18. P2=0xff;
  19. P0=dulatab[num];
  20. P2=welatab[addr];
  21. delay(4);
  22. }
  23. void display(uchar sec)
  24. {
  25. uchar sech,secl ;
  26. sech=sec/10;
  27. secl=sec%10;
  28. writeled(sech,0);
  29. writeled(secl,1) ;
  30. }
  31. void init ()
  32. {
  33. TMOD=0x10;//定時器1工作方式1
  34. TH1=0xd8;
  35. TL1=0xf0;
  36. TR1=1;
  37. EA=1;
  38. ET1=1;
  39. }
  40. void keyscan()
  41. {
  42. if(start==0)
  43. {
  44. delay(2) ;
  45. if(start==0)
  46. {
  47. TR1=~TR1;
  48. while(start==0)
  49. {
  50. display(sec);
  51. }
  52. }
  53. }
  54. }
  55. if(stop==0&&TR1==0)
  56. {               
  57. delay(2);//延時方抖
  58. if(stop==0)
  59. {
  60. sec=0;
  61. while(stop==0)
  62. {
  63. display(sec);
  64. }}}
  65. void main()
  66. {
  67. init();
  68. while(1)
  69. {
  70. display(sec);
  71. keyscan();
  72. }}
  73. void timer1()  interrupt 3
  74. {
  75. TH1=0xd8;
  76. TL1=0xf0;
  77. msec++;
  78. if(msec==100)
  79. {
  80. msec=0
  81. sec++;
  82. if(sec==100)
  83. {
  84. sec=0
  85. }}}
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:546770 發表于 2021-12-14 18:52 | 只看該作者
第55行改成if((stop==0)&&(TR1==0))試試。
回復

使用道具 舉報

板凳
ID:213173 發表于 2021-12-14 20:09 | 只看該作者
#include<reg51.h>
#define uchar unsigned char
sbit start=P1^1;
sbit stop=P1^0;
uchar code dulatab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40} ;//數字編碼0-9
uchar code welatab[]={0xfe, 0xfd} ;//位控制字
uchar msec, sec;
void delay(uchar time)// 延時
{
        uchar i, j;
        for (i=0;i<time;i++)
                for (i=0;j<110;j++);
}
void writeled(uchar num ,addr)
{
        P2=0xff;
        P0=dulatab[num];
        P2=welatab[addr];
        delay(4);
}
void display(uchar sec)
{
        uchar sech,secl ;
        sech=sec/10;
        secl=sec%10;
        writeled(sech,0);
        writeled(secl,1) ;
}
void init ()
{
        TMOD=0x10;//定時器1工作方式1
        TH1=0xd8;
        TL1=0xf0;
        TR1=1;
        EA=1;
        ET1=1;
}
void keyscan()
{
        if(start==0)
        {
                delay(2) ;
                if(start==0)
                {
                        TR1=~TR1;
                        while(start==0)
                        {
                                display(sec);
                        }
                }
        }
        if(stop==0&&TR1==0)
        {               
                delay(2);//延時方抖
                if(stop==0)
                {
                        sec=0;
                        while(stop==0)
                        {
                                display(sec);
                        }
                }
        }
}

void main()
{
        init();
        while(1)
        {
                display(sec);
                keyscan();
        }
}
void timer1()  interrupt 3
{
        TH1=0xd8;
        TL1=0xf0;
        msec++;
        if(msec==100)
        {
                msec=0;
                sec++;
                if(sec==100)
                {
                        sec=0;
                }
        }
}
回復

使用道具 舉報

地板
ID:883242 發表于 2021-12-14 21:12 | 只看該作者
連縮進都不愿意,出這種錯誤就是活該。
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. sbit start=P1^1;
  4. sbit stop=P1^0;
  5. uchar code dulatab[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40} ; //數字編碼0-9
  6. uchar code welatab[]= {0xfe, 0xfd} ; //位控制字
  7. uchar msec, sec;
  8. void delay(uchar time) { // 延時
  9.         uchar i, j;
  10.         for (i=0; i<time; i++) ;
  11.         {
  12.                 for (i=0; j<110; j++) ;
  13.         }
  14. }
  15. void writeled(uchar num,addr) {
  16.         P2=0xff;
  17.         P0=dulatab[num];
  18.         P2=welatab[addr];
  19.         delay(4);
  20. }
  21. void display(uchar sec) {
  22.         uchar sech,secl ;
  23.         sech=sec/10;
  24.         secl=sec%10;
  25.         writeled(sech,0);
  26.         writeled(secl,1) ;
  27. }
  28. void init () {
  29.         TMOD=0x10;//定時器1工作方式1
  30.         TH1=0xd8;
  31.         TL1=0xf0;
  32.         TR1=1;
  33.         EA=1;
  34.         ET1=1;
  35. }
  36. void keyscan() {
  37.         if(start==0) {
  38.                 delay(2) ;
  39.                 if(start==0) {
  40.                         TR1=~TR1;
  41.                         while(start==0) {
  42.                                 display(sec);
  43.                         }
  44.                 }
  45.         }
  46. }
  47. if(stop==0&&TR1==0) {
  48.         delay(2);//延時方抖
  49.         if(stop==0) {
  50.                 sec=0;
  51.                 while(stop==0) {
  52.                         display(sec);
  53.                 }
  54.         }
  55. }
  56. void main() {
  57.         init();
  58.         while(1) {
  59.                 display(sec);
  60.                 keyscan();
  61.         }
  62. }
  63. void timer1()  interrupt 3 {
  64.         TH1=0xd8;
  65.         TL1=0xf0;
  66.         msec++;
  67.         if(msec==100) {
  68.                 msec=0
  69.                      sec++;
  70.                 if(sec==100) {
  71.                         sec=0
  72.                 }
  73.         }
  74. }
復制代碼
回復

使用道具 舉報

5#
ID:161164 發表于 2021-12-14 21:56 | 只看該作者
第55行的if跑到keyscan外了
回復

使用道具 舉報

6#
ID:139866 發表于 2021-12-17 14:01 | 只看該作者
你真應該感謝這些替你找到錯誤的人,畢竟你這代碼我看一眼就不想看了,他們忍著吃%一樣的惡心給你找錯誤挺不容易的
回復

使用道具 舉報

7#
ID:740383 發表于 2021-12-23 15:21 | 只看該作者
天ノ憶 發表于 2021-12-17 14:01
你真應該感謝這些替你找到錯誤的人,畢竟你這代碼我看一眼就不想看了,他們忍著吃%一樣的惡心給你找錯誤挺 ...

哈哈哈
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 1000部精品久久久久久久久 | 99精品免费久久久久久久久日本 | 亚洲精品乱码久久久久久按摩观 | 久久成人免费视频 | 狠狠色综合久久婷婷 | 亚洲伦理自拍 | 国产伦精品一区二区三区照片91 | 在线观看免费高清av | 国产成人免费视频网站视频社区 | 麻豆久久久久久久久久 | 日日操操操 | 超黄视频网站 | 国产高清一区二区三区 | 爱爱小视频 | 黑人性hd| 极品在线 | 国产日韩一区二区 | 国产精品中文字幕在线观看 | 超碰在线久 | 成人一区在线观看 | 亚洲人成在线播放 | jvid精品资源在线观看 | 精品欧美一区二区三区 | 日本在线综合 | 欧美一级毛片久久99精品蜜桃 | 亚洲综合一区二区三区 | 亚洲精品在线免费 | 成人在线免费 | 人人干人人看 | 欧美专区在线视频 | 亚洲一区二区电影在线观看 | 最新日韩在线视频 | 欧美a区| 在线视频一区二区 | www.99热 | 亚洲精品久久久一区二区三区 | 草草草网站| 色999日韩 | 国产精品中文在线 | 中文字幕免费视频 | 欧美成人精品一区二区男人看 |