找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5472|回复: 2
收起左侧

单片机0-99计数器电路程序与流程图设计

[复制链接]
ID:450983 发表于 2018-12-20 19:02 | 显示全部楼层 |阅读模式
实验总结:
1,    在最后加到99时要进行判断使其在加等于一。
2,    在减到0时再减时进行判断使其再减等于99。
3,    在编程时进行循环的语句时经常出错,但在舍友的帮助下完成了。
4,    刚开始电源接错了。

电路原理图如下:
0.png

程序流程图:
0.png

单片机源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>  
  3. #define ucharunsigned char  
  4. #define uint  unsigned int
  5. sbit key1=P3^2;                                            //将按键1接到p3.2
  6.   sbit key2=P3^3;                                            //将按键2接到p3.3
  7. charled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  //
  8. char i;                                                     
  9. void delay(uint z)                                             //延时函数
  10. {
  11. uint x,y;
  12. for(x=z;x>0;x--)              
  13. for(y=110;y>0;y--);
  14. }
  15. void main(){
  16.   EA=1;                                                    //总中断允许
  17.   EX0=1;                                                   //INT0允许
  18.   EX1=1;                                                    //脉冲触发
  19.   while(1);
  20. }
  21. void INT0_srv(void) interrupt 0 using 1     
  22. {
  23.    delay(300);
  24.    if(INT0==0)                                               //INT0按下
  25.    {i++;                                                    //向后加一位
  26. if(i==100)                                                 //当数字为100是输零
  27.                       i=0;
  28.      P1=led_mod[i/10];                                       //p1输出十位
  29.                                             P2=led_mod[i%10];
  30.                                                 while(key1==1);                             //p2输出个位
  31.                                                 }
  32.                                           }
  33. void INT1_srv(void) interrupt 2 using 2   
  34. {
  35.    delay(30);
  36.    if(INT1==0)                                                    //INT1触发
  37.    {i--;                                                         //后减一位
  38.    if(i<0)
  39.      i=99;                                                      //零减一位输出99
  40.      P1=led_mod[i/10];                                           //
  41.      P2=led_mod[i%10];                                          //
  42. while(key2==0);                                            
  43. }
复制代码

实验二 单片机.docx (178.95 KB, 下载次数: 13)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:450983 发表于 2018-12-20 19:04 | 显示全部楼层
还挺好的
回复

使用道具 举报

ID:554561 发表于 2019-6-4 12:51 来自手机 | 显示全部楼层
代码不对啊
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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