typedef unsigned char uint8 //简写unsigned char 为uint8
typedef unsigned intuint16
sbit s1 =P1^0sbit s3=P3^2 //定义报警触发端口
sbit light=P3^0sbitspeaker=P3^1//定义灯和报警器响声端口
sbit zhishi=P1^2//未用
void baojing()
{
uint8 counter //计时标志
TMOD = 0x01 //设置中断模式
TH0 = 0xB8//计时时间高位
TL0 = 0x00//计时时间低位
TR0 = 1 //中断标志
while(s3)
{
if(1 == TF0)
{
TF0 = 0
TH0= 0xB8//重新赋值
TL0 = 0x00
counter++//累加
}
if(25 == counter) // 累加到25则清零
{
counter = 0
light = ~light //效果是灯闪
speaker=~speaker //效果是声音叫
}
}
}
void zs()
{
zhishi=s3zhishi=s1 //忽视
}
void fun()
{
if(s1==0) baojing() //因为该函数只调用一次 所以要么一上电报警 要么程序跑飞
}
void main()
{
zs()
fun()
}
求采纳 谢谢
三菱 M70系统报警程序显示c怎么解除是修改9000开头的程序,机床厂家一般用作辅助动作的程序,一般做了保护。
参数 1121 :1
1122 : 2
都改为 0,就可以对9000开头的程序进行编辑和复制了。
请注不要更改里面的内容,
另 参数 8105 编辑锁定B 也需要改成 0。 三善精密机械为你解答
K1你就作一个电源开关吧#include<reg52.h>
sbit beep=P1^0 // 定义蜂鸣器
long int code table[]= // 定义发出不同频率的各个时间长度table表,因为定义
//晶振为12MHZ,所以一个周期也正好为1US。
{
2000,4000
}
long int num1,num2
char num
void main()
{
TMOD=0x11 //定义定时器0,1工作方式1
EA=1ET0=1ET1=1
TH0=(65535-50000)/256 //装载定时器0初值,50ms为一次中断
TL0=(65535-50000)%256
TH1=(65535-1)/256 //装载定时器1初值,1us为一次中断
TL1=(65535-1)%256
TR0=1 //打开定时器0
while(1)
{
if(num1==2) //判断定时器0中断了2次,也就是100ms
{
TR0=0 //关闭定时器0
TR1=1 //打开定时器1
beep=0 //蜂鸣器报警
num1=0//让num1清零,以备再次计数
}
if(num2==table[num]) //判断当时间达到第num个秒数
{
TR1=0 //关闭定时器1
TR0=1 //打开定时器0
num2=0 //让num2清零,以备再次计数
beep=1 //关闭蜂鸣器
num++ //让num循环计数
}
if(num==2)
{
num=0
}
}
}
void T0_time()interrupt 1
{
TH0=(65535-50000)/256
TL0=(65535-50000)%256
num1++
}
void T1_time()interrupt 3
{
TH1=(65535-1000)/256
TL1=(65535-1000)%256
num2++
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)