×
单片机 > 单片机程序设计 > 详情

单片机啤酒瓶计数实验源程序

发布时间:2023-06-08 发布时间:
|

实验说明:在源程序中计算初值为0xf7,运用定时计数的方式2对程序进行计数,当程序开始运行,每按下一次按键(即每装一瓶啤酒)LED显示的计数就会+1直到8为止,当装满8瓶时再加1时LED的计数溢出就会跳转到0,这时相当于装满了9瓶,程序停止。直到下一箱啤酒开始装箱,依次反复进行。

单片机源程序如下:

#include

char led[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f}; //led显示字模

sbit P37=P3^7;

sbit P34=P3^4;

void delay(unsigned int time) //约4ms的延时函数

{

unsigned int j;

for (;time>0;time--);

for (j=0;j<500;j++);

}


void t0() interrupt 1

{

TR0=0; //停止计数

P37=0; //启动电机运转

delay(1000); //延时,等待下一空箱运转到位待装啤酒

P37=1; //停止电机运转

TR0=1; //启动计数

}

/**********主函数**************/

void main()

{

char i;

TMOD=0x06; //T0计数方式

TL0=0xf7; //计数初值247

TH0=0xf7;

TR0=1; //启动T0计数

ET0=1; //开中断

EA=1;

P37=1; //停止电机运转

while(1)

{

i=256-TL0; //获取计数差值

P0=led[9-i]; //显示已装了多少啤酒

delay(1000);

if(i==1) //是否已经装了(9-1)=8瓶

{

while(P34==1); //等待装最后一瓶

P0=0x71; //显示已经装满符号

delay(100);

}

}

}




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32过滤器的作用