找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4090|回复: 1
打印 上一主题 下一主题
收起左侧

ATMEGA48利用按键控制时钟proteus仿真+源码

[复制链接]
跳转到指定楼层
楼主
一份大一新生的小作业


ATMEGA48时钟程序源码:
  1. #include<iom48v.h>
  2. //共阳数码管键码
  3. const unsigned char disp_table_ca[]=
  4. {  0xC0,0xF9,0xA4,0xB0,0x99,
  5.     0x92,0x82,0xF8,0x80,0x90  };
  6. char a_second=0;
  7. char b_second=0;
  8. int count=0,flag;

  9. void delay(unsigned int x)
  10. { int i,j; for(i=0;i<x;i++) for(j=0;j<1141;j++); }

  11. void main()
  12. { DDRD=0xff;
  13.   DDRB=0XFF;
  14.   PORTC=0XFF;
  15.   
  16.   while(1)
  17.   {
  18.            PORTB=0B00000001;
  19.         PORTD=disp_table_ca[a_second];
  20.         delay(1);
  21.        
  22.         PORTB=0B00000010;
  23.         PORTD=disp_table_ca[b_second];
  24.         delay(1);
  25.        
  26.         if((PINC&0B00000001)==0)
  27.         {
  28.           delay(20);
  29.           if((PINC&0B00000001)==0)
  30.           flag=1;
  31.           while((PINC&0B00000001)==0);
  32.         }
  33.        
  34.         if((PINC&0B00000010)==0)
  35.         {
  36.           delay(20);
  37.           if((PINC&0B00000010)==0)
  38.           flag=2;
  39.           while((PINC&0B00000010)==0);
  40.         }
  41.        
  42.         if((PINC&0B00000100)==0)
  43.         {
  44.           delay(20);
  45.           if((PINC&0B00000100)==0)
  46.           flag=3;
  47.           while((PINC&0B00000100)==0);
  48.         }
  49.        
  50.         if(flag==1)
  51.         {
  52.            count++;
  53.            if(count%49==0)
  54.            b_second++;
  55.           
  56.               if(b_second==10)
  57.              {
  58.                b_second=0;
  59.                a_second++;   
  60.                       if(a_second==6)
  61.                       a_second=0;
  62.              }
  63.         }
  64.        
  65.         if(flag==2)
  66.         {
  67.            count++;
  68.            if(count%49==0)
  69.            b_second--;
  70.           
  71.               if(b_second==-1)
  72.              {
  73.                b_second=9;
  74.                a_second--;   
  75.                       if(a_second==-1)
  76.                       a_second=5;
  77.              }
  78.         }
  79.        
  80.         if(flag==3)
  81.         {
  82.            a_second=0;
  83.            b_second=0;
  84.         }
  85.        
  86.   }
  87.   
  88. }
复制代码



下载:
电气164-张洪栩.zip (54.42 KB, 下载次数: 37)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:316832 发表于 2018-12-4 10:42 | 只看该作者
谢谢分享,有空下载测试学习一下
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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