#include<reg51.h>
void proga()//声明程序a
void progb()//声明程序b
void progc()//声明程序c
sbit a=P1^0
sbit b=P1^1
sbit c=P1^2
void main()
{
EA=1//开总中断
EX0=1//开外部中断0
IT0=0//外部中断0设为低电平触发
while(1)
{
if(!a)
{
proga()
}
if(!b)
{
progb()
}
if(!c)
{
progc()
}
}
}
void proga() //定义程序a
{
}
void progb() //定义程序b
{
}
void progc() //定义程序c
{
}
int0() interrupt 0 //中断程序
{
}
这是最简单的,给你参考:#include<reg51.h>
sbit LED=P1^0
//程序一:LED闪亮
void delay()
{
unsigned char i,j
for(i=0i<255i++)
for(j=0j<255j++)
}
void main()
{
while(1)
{
LED=0
delay()
LED=1
delay()
}
}
你好:如果你想直接知道答案,那么我告诉你,12MHz晶振:
void delayms(unsigned int t)
{
unsigned int i,j
for(i=ti>0i--)
for(j=123j>0j--)
}
能精确到1ms。
如果是11.0592MHz晶振,只需把上面的“j=123”改为“j=114”,都是调试过的,没问题。
然后你要想知道是怎么调试的,很简单,打开uv2编程软件,在最上边的工具栏里边有个“Debug”,点击后出现下拉菜单,选择第一个“start/stop Debug Session”,然后在最右边有一个Watch栏,有两个项目,一个是“Register”,一个是“value”,然后在“Register”栏下边的“Sys”里边有个“sec”,你只要单击“Step over”运行程序并观察“sec”的值就能调试出你程序的执行时间了。
注意,一定要先选择晶振频率,不然会默认24MHz。
希望我的回答能帮助到你。你好:
如果你想直接知道答案,那么我告诉你,12MHz晶振:
void delayms(unsigned int t)
{
unsigned int i,j
for(i=ti>0i--)
for(j=123j>0j--)
}
能精确到1ms。
如果是11.0592MHz晶振,只需把上面的“j=123”改为“j=114”,都是调试过的,没问题。
然后你要想知道是怎么调试的,很简单,打开uv2编程软件,在最上边的工具栏里边有个“Debug”,点击后出现下拉菜单,选择第一个“start/stop Debug Session”,然后在最右边有一个Watch栏,有两个项目,一个是“Register”,一个是“value”,然后在“Register”栏下边的“Sys”里边有个“sec”,你只要单击“Step over”运行程序并观察“sec”的值就能调试出你程序的执行时间了。
注意,一定要先选择晶振频率,不然会默认24MHz。
希望我的回答能帮助到你。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)