(1/3)求,如何用Keil软件编写一个在STC89C52单片机上运行的有声的倒计时程序?要求:1.时间可以自己设... 30
(1/3)求,如何用Keil软件编写一个在STC89C52单片机上运行的有声的倒计时程序?要求:1.时间可以自己设定。2.倒计时开始时,时间每减...
(1/3)求,如何用Keil软件编写一个在STC89C52单片机上运行的有声的倒计时程序?要求:1.时间可以自己设定。2.倒计时开始时,时间每减
展开
3个回答
展开全部
首先在KEIL窗口中找到一个小榔头一样的图标叫做Options of Target,点击它,跳出一个窗口。在这个窗口中写入你的单片机所使用晶振的频率,然后在OUTPut那个选项页中将“Creat Hex”打钩选中。这样你再编译程序(编译按键就在小榔头的左边第二个两个箭头的那个)就会产生一个HEX文件,所谓的程序下载也就是把这个HEX文件烧制到单片机中。
其次,是把HEX文件烧到单片机中。这里的方法很多,取决于你的单片机板子上用的下载口了。
一般最常看到的是使用单片机板上的串口下载,那么首先需要一条USB转串口线。然后你的电脑需要安装一个烧制软件叫做STC_ISP_V4.83。这个网上很多,可以下载一个然后安装。打开后你首先需要做的就是选择单片机型号,然后点击“打开程序文件”选择相应的HEX文件,然后选择COM口,这个可以在电脑的设备管理器中找到,你的串口线插到电脑上以后就会有的,当然你需要先安装串口线的驱动(USB转串口线插到电脑上后会自动跳出来要求安装),这个也可以在网上找到。在最高波特率那里你可以选择9600,不过我的是115200,也可以用我就懒得动它了。然后点击“DownLoad”就可以了,下面的窗口里出现“请给MCU上电”的信息时你再把板子的电源键打开,就可以了。
其实你可以去网上找一份郭天祥的《十天学会单片机》的视频资料,照着上面的学就可以了。基本上可以知道个大概。
其次,是把HEX文件烧到单片机中。这里的方法很多,取决于你的单片机板子上用的下载口了。
一般最常看到的是使用单片机板上的串口下载,那么首先需要一条USB转串口线。然后你的电脑需要安装一个烧制软件叫做STC_ISP_V4.83。这个网上很多,可以下载一个然后安装。打开后你首先需要做的就是选择单片机型号,然后点击“打开程序文件”选择相应的HEX文件,然后选择COM口,这个可以在电脑的设备管理器中找到,你的串口线插到电脑上以后就会有的,当然你需要先安装串口线的驱动(USB转串口线插到电脑上后会自动跳出来要求安装),这个也可以在网上找到。在最高波特率那里你可以选择9600,不过我的是115200,也可以用我就懒得动它了。然后点击“DownLoad”就可以了,下面的窗口里出现“请给MCU上电”的信息时你再把板子的电源键打开,就可以了。
其实你可以去网上找一份郭天祥的《十天学会单片机》的视频资料,照着上面的学就可以了。基本上可以知道个大概。
展开全部
做个定时器,定时器初始值可以设定,每到一定时间自动减一,同时发出一个声音。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-09-24
展开全部
/*模块低电平有效、外部中断0、1为低电平出发*/
#include "reg52.h"
void delay( char i)
{
unsigned char t;
while(i--)
{
for(t=0;t<108;t++);
}
}
void INT0_ROUTING() interrupt 0//外部中断0子程序
{
P0=0xfe;//LED0点亮
while((P3|0xfb)==0xff);//等待外部中断0口(P3^2松开)
delay(10);//延时去抖动
P0=0xff;//LED0熄灭
}
void INT0_ROUTING() interrupt 2
{
P0=0xfd;//LED1点亮
while((P3|0xf7)==0xff);//等待外部中断1口(P3^3松开)
delay(10);//延时去抖动
P0=0xff;//LED1熄灭
}
void main()
{
EA=1;//中断总开关
EX0=1;//外部中断0开
EX1=1;//外部中断1开
/*默认低电平触发*/
while(1);//死循环 防止跑飞
}
#include "reg52.h"
void delay( char i)
{
unsigned char t;
while(i--)
{
for(t=0;t<108;t++);
}
}
void INT0_ROUTING() interrupt 0//外部中断0子程序
{
P0=0xfe;//LED0点亮
while((P3|0xfb)==0xff);//等待外部中断0口(P3^2松开)
delay(10);//延时去抖动
P0=0xff;//LED0熄灭
}
void INT0_ROUTING() interrupt 2
{
P0=0xfd;//LED1点亮
while((P3|0xf7)==0xff);//等待外部中断1口(P3^3松开)
delay(10);//延时去抖动
P0=0xff;//LED1熄灭
}
void main()
{
EA=1;//中断总开关
EX0=1;//外部中断0开
EX1=1;//外部中断1开
/*默认低电平触发*/
while(1);//死循环 防止跑飞
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询