500HZ方波周期是2ms,只需定时器1ms,将管脚状态取反一次就其可,若按下按键,改为定时500us即可,程序如下:
#include <reg51h>
sbit key=P1^0;
void main()
{
unsigned int n=1000;
TMOD=0X01;//定时器0工作方式1
TH0=(65536-N)/256;//定时器初值,先是定时1000US
TL0=(65536-N)%256;
ET0=1;//开定时器0中断
EA=1;//开总中断
TR0=1;//启动定时器0
while(1)
{
if(key==0)//判断按键是否按下
{
delay_ms(20);//延时消抖动
if(key==0)n=500;
}
}
}
中断程序如下:
void timer0() interrupt 1
{
TH0=(65536-N)/256;
TL0=(65536-N)%256;
P2^0=~P2^0;//P20输出方波
}
延时子程序略
您好,我认为是hex 文件没有改变。用keil修改后,要编译运行一次,并且要注意是否重新生成 hex 文件(最好去设置里面重新勾选一下,再编译运行改之后的程序)。
扫描一次按键,得到一个按键数值 0~15,先临时保存一下。
扫描一次按键,得到一个按键数值 16,说明已经释放,就把刚才保存的键值,存入数组input。
存入六次后,再转换,再输出。
你的程序,把这些过程,交错的运行,都混在一起了。
如上图所示,h的作用域,只是仅仅作用于main函数中,而不能直接出现time0函数中,如果想在time0函数中,要么使用入参进入time0中,time0(int h),要么将定义h的作用域放大,设置到作用于整个程序中,定义成静态变量试试 static变量,且定义到整个程序开始位置
1先安装Keil C51并破解,再安装MDK5并破解。
2分别打开Keil C51和MDK5的安装目录。将Keil C51安装目录下的C51文件夹复制到MDK5的安装目录文件夹下。
3分别打开TOOLSINI文件;将Keil C51下TOOLSINI文件的内容复制,粘贴到MDK5下TOOLSINI文件内容的最低端。
4注意查看并找到粘贴到MDK5下TOOLSINI文件中如下行代码:
[C51]
PATH="D:\Keil\C51\"(Keil C51安装目录下TOOLSINI文件中的内容)
将Keil处的内容改成与MDK5下TOOLSINI文件中如下行代码:
RTEPATH="D:\Keil_v5\ARM\PACK"
Keil_v5处的内容一样。
目的是让软件在MDK5安装目录内找到C51文件。
5完成以上 *** 作,就可以将安装的Keil C51软件卸载,在MDK5软件上就可以编译C51单片机程序了。亲自测试可行。
来自:网页链接
系统要求:
安装Keil
C51集成开发软件,必须满足一定的硬件和软件要求,才能确保编译器以及其他程序功能正常,必须具有:
Pentium、Pentium-II或兼容处理器的PC;
Windows95、Windows98、WindowsNT40、
Windows2000、Windowsxp;
至少16MRAM;
至少20MB硬盘。
2)
软件的安装
下面以Keil
C51
V710版为例,介绍如何安装Keil
uVision3集成开发环境。
21拿出随机赠送的系统光盘放入光驱中(假设E盘),进入E:\单片机开发工具\Keil3_Full\setup目录,这时你会看到SetupEXE文件,双击该文件即可安装。
22
这时会出现如图21所示的安装初始画面,稍后d出一个安装向导对话框如图22所示,询问用户是安装评估版(Eval
Version)还是完全版(Full
Version),可以选Full
Version。
以上就是关于利用KEIL(C51)编写程序, 1) 利用设计的程序使单片机产生1KHz方波全部的内容,包括:利用KEIL(C51)编写程序, 1) 利用设计的程序使单片机产生1KHz方波、修改keilC51里的程序,但是Proteus仿真没有变化,求助!、keilC51单片机中断程序老是提示undefined identifier,明明在前面已经定义了。求大佬解答,感激不尽等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)