标题:
51单片机计时器0-9999proteus仿真图及源码
[打印本页]
作者:
kkzzr
时间:
2017-5-9 20:25
标题:
51单片机计时器0-9999proteus仿真图及源码
51单片机计时器0-9999
proteus仿真原理图:
0.png
(23.31 KB, 下载次数: 62)
下载附件
2017-5-9 23:07 上传
0.png
(62.82 KB, 下载次数: 78)
下载附件
2017-5-9 23:06 上传
单片机源码:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
uint i=0, cnt = 9998;
void IntConfiguration();
void TimeConfig();
void display(uint,uint,uint,uint);
void delay(int);
void main()
{
IP = 0x04;
IntConfiguration();
TimeConfig();
while(1)
{
display(cnt/1000,(cnt%1000)/100,((cnt%1000)%100)/10,((cnt%1000)%100)%10);
}
}
void display(uint a,uint b,uint c,uint d)
{
P2=0x0e;
P0=table[a];
delay(1);
P2=0x0d;
P0=table[b];
delay(1);
P2=0x0b;
P0=table[c];
delay(1);
P2=0x07;
P0=table[d];
delay(1);
}
void delay(int z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void IntConfiguration()
{
IT0=0;
EX0=1;
IT1=0;
EX1=1;
EA=1;
}
void TimeConfig()
{
// TMOD = 0x10;
// TH1 = (65536-10000)/256;
// TL1 = (65536-10000)%256;
TMOD = 0x01;
TH0 = (65536-10000)/256;
TL0 = (65536-10000)%256;
EA = 1;
// ET1 = 1;
// TR1 = 1;
ET0 = 1;
TR0 = 1;
}
void Int0() interrupt 0
{
cnt = 0;
}
void Int1() interrupt 2
{
cnt = 1111;
}
void mytimer() interrupt 1
{
uint flag = 0;
// TH1 = (65536-10000)/256;
// TL1 = (65536-10000)%256;
TH0 = (65536-10000)/256;
TL0 = (65536-10000)%256;
i++;
if(i >= 100)
{
i = 0;
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
全部资料下载:
计时器.rar
(60.13 KB, 下载次数: 100)
2017-5-9 20:24 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
echo0127
时间:
2017-7-3 16:06
您能帮我看一个原理图,改写一下程序么?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1