打印
[AVR单片机]

单片机简单的应用《电子表仿真》

[复制链接]
1879|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ziyun5|  楼主 | 2011-10-8 21:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
学单片机这么久了,今天又时间把以前做过的电子表proteus仿真拿出来跟立志想学单片机的各位分享一下,希望能给予帮助。/********电子表源程序********/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar num,a1,a2,a3,a4,a5,a6;
uchar code LED[]={

                 0xC0,  //"0"
                0xF9,  //"1"
                0xA4,  //"2"
                0xB0,  //"3"
                0x99,  //"4"
                0x92,  //"5"
                0x82,  //"6"
                0xF8,  //"7"
                0x80,  //"8"
                0x90,  //"9"

  };
void delay(uint z)
{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);
}

void jisuan()
{

a1++;

if(a1==9)

{

a1=0;

a2++;

if(a2==6)

{

a2=0;

a3++;

if(a3==9)

{

a3=0;

a4++;

if(a4==6)

{

a4=0;

a5++;

if(a5==9)

{

a5=0;

a6++;

if(a6==2)

{

a6=0;

}

}

}

}

}

}
}

void display(uchar a1,uchar a2,uchar a3,uchar a4,uchar a5,uchar a6)
{

P2=0x01;

P0=LED[a6];

delay(5);

P2=0x02;

P0=LED[a5];

delay(5);

P2=0x04;

P0=0xb7;

delay(5);

P2=0x08;

P0=LED[a4];

delay(5);

P2=0x10;

P0=LED[a3];

delay(5);

P2=0x20;

P0=0xb7;

delay(5);

P2=0x40;

P0=LED[a2];

delay(5);

P2=0x80;

P0=LED[a1];

delay(5);

}

void timer()
{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;
}

void timer0() interrupt 1
{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

num++;
}


void init()
{

num=0;

a1=0;

a2=0;

a3=0;

a4=0;

a5=0;

a6=0;
}
void  main()
{

init();

timer();

while(1)

{

if(num==20)

{

num=0;

jisuan();

delay(10);

}

display(a1,a2,a3,a4,a5,a6);

}

}

电子秒表设计.rar

13.02 KB

相关帖子

沙发
airwill| | 2011-10-8 21:33 | 只看该作者
不知楼主学习单片机多久了, 首先鼓励这种分享精神.
不过还想提点意见.
1. 代码书写规范(也许是网站的问题) 但是看着感觉不好.
2. 居然没有任何注释, 我觉得起码程序结构和硬件说明, 函数功能等方面的注释应该的
3. 居然学习单片机久了, 应该从程序上看到楼主长久以来的沉淀. 跟开始的时候, 进步了多少. 其实这段程序还有改进的地方. 比如有没有发现 C51 对过多的参数的函数, 处理效率比较差, 这个 display() 弄这么多参数, 是否可以改造一下; 是否可以用定时器来取代 delay() 函数, 因为它消耗太多 CPU 时间. 如果把这段程序移植到其他的应用中. 很可能因为 display() 耗时太多, 影响其他功能的实时响应!

使用特权

评论回复
板凳
ziyun5|  楼主 | 2011-10-8 22:13 | 只看该作者
,首先,非常谢谢点评 。这个是以前写的程序,没怎么看就发表了,现在看了哈,确实是问题不少,等有时间了就去改哈。

使用特权

评论回复
地板
ziyun5|  楼主 | 2011-10-9 00:26 | 只看该作者
看了哈这个格式的问题,可能是这个编辑器的问题,发的源代码都是这样的,没法改

使用特权

评论回复
5
airwill| | 2011-10-9 08:27 | 只看该作者
我居然给了这么多批评, 真抱歉!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

12

帖子

1

粉丝