标题:
单片机0-99计数器电路程序与流程图设计
[打印本页]
作者:
书睫毛
时间:
2018-12-20 19:02
标题:
单片机0-99计数器电路程序与流程图设计
实验总结:
1, 在最后加到99时要进行判断使其在加等于一。
2, 在减到0时再减时进行判断使其再减等于99。
3, 在编程时进行循环的语句时经常出错,但在舍友的帮助下完成了。
4, 刚开始电源接错了。
电路原理图如下:
0.png
(90.85 KB, 下载次数: 57)
下载附件
2018-12-21 01:26 上传
程序流程图:
0.png
(8.16 KB, 下载次数: 56)
下载附件
2018-12-21 01:26 上传
单片机源程序如下:
#include<reg52.h>
#include<intrins.h>
#define ucharunsigned char
#define uint unsigned int
sbit key1=P3^2; //将按键1接到p3.2
sbit key2=P3^3; //将按键2接到p3.3
charled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //
char i;
void delay(uint z) //延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main(){
EA=1; //总中断允许
EX0=1; //INT0允许
EX1=1; //脉冲触发
while(1);
}
void INT0_srv(void) interrupt 0 using 1
{
delay(300);
if(INT0==0) //INT0按下
{i++; //向后加一位
if(i==100) //当数字为100是输零
i=0;
P1=led_mod[i/10]; //p1输出十位
P2=led_mod[i%10];
while(key1==1); //p2输出个位
}
}
void INT1_srv(void) interrupt 2 using 2
{
delay(30);
if(INT1==0) //INT1触发
{i--; //后减一位
if(i<0)
i=99; //零减一位输出99
P1=led_mod[i/10]; //
P2=led_mod[i%10]; //
while(key2==0);
}
复制代码
实验二 单片机.docx
(178.95 KB, 下载次数: 14)
2018-12-20 19:00 上传
点击文件名下载附件
定时
下载积分: 黑币 -5
作者:
书睫毛
时间:
2018-12-20 19:04
还挺好的
作者:
hubide
时间:
2019-6-4 12:51
代码不对啊
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1