㈠ stc89c52单片机如何烧程序
利用串口烧写,和电脑连接硬件可以是RS232转TTL,也可以是USB转232,再转TTL,也可以直接用uSB转TTL,最后一种最简单,开发板还可以用转换线提供的电源。硬件搭建好后,打开STC提供的烧写软件,经简单设置即可进行下载。
㈡ stc89c52单片机下载程序时一直停在 “正在检测目标单片机” 怎么解决
stc89c52单片机下载程序时一直停在 “正在检测目标单片机”,是设置错误造成的,解决方法如下:
1、首先打开电脑中的keil软件,点击“工程”新建一个工程,命名为“点亮LED”,点击确定。
㈢ STC89C52单片机C语言程序求解
你的问题是什么,要大胆说出来啊
㈣ 怎样用stc89c52单片机控制蜂鸣器发出音乐的c语言程序
#include
㈤ STC89C52单片机C程序求解(有完整程序)
我给你解释一下吧 希望帮得上你
#include <reg52.h> // 头文件
#define uint unsigned int //宏定义 把uint 等价为 unsigned int
#define uchar unsigned char
sbit CS = P2^0; //定义三个特殊功能位, 我感觉应该是驱动一个东西吧,CS
sbit CLK = P2^1; 是片选 高选中或者低选中, CLK是通信的时钟线,
sbit SDO = P2^2; SDO应该是驱动芯片的数据输出口, 不过应该有输入口的??
怎么没看到程序里有????
void DELAY(void) //简单的延时子程序
{
uint x,y;
for(y = 5;y > 0;y--)
for(x = 110;x > 0;x--);
}
void main(void)
{
uint i = 0;
uint j = 0;
uint k = 0; 定义三个变量
TMOD = 0X20;
TH1 = 0XF3; 定时器工作方式 和初值
TL1 = 0XF3;
TR1 = 1; 打开定时器
REN = 1; REN SM0 SM1 是串口这里的设置 具体的你自己看文档 我就不
SM0 = 0; 细说了
SM1 = 1;
while(1)
{
CLK = 0;
CS = 1;
SDO = 0;
DELAY();
for(i=0;i<16;i++) 循环16次 应该是要传输2个字节的数据吧吧
{
CS = 0; 这个片选貌似应该放在循环外面
CLK = 1; 时钟线的控制
DELAY();
k = SDO; 把驱动芯片输出的数据赋值给K
j = j + k;
j = j << 1; 刚才的K 只是一个位, 这里两句是要把它整理成uint型的即16位的,
DELAY();
CLK = 0; 进行延时 和CLK时钟控制,即模拟驱动芯片的驱动时序
DELAY();
DELAY();
}
CS = 1; 选中或者取消片选 我感觉应该是取消
SBUF = (j >> 8) & 0XFF; 把刚才从驱动芯片里读出的uint 16位数据 取高八位 送入
while(!TI); 串口的SBUF 寄存器 貌似是要传给电脑 或者上位机软件
TI = 0; 等待传输完成 清 标志位
SBUF = j & 0XFF; 把刚才从驱动芯片里读出的uint 16位数据 取低八位 送入
while(!TI); 串口的SBUF 寄存器 貌似是要传给电脑 或者上位机软件
TI = 0; 等待传输完成 清 标志位
上面这次 正好把 UINT型的 16位 2个字节全部传输到上位机
SBUF = 0XFF; 最后在传输0xff 这个数据给上位机
while(!TI);
TI = 0;
}
}
好了 回答完了 , 希望能帮得上你。
㈥ STC89C52单片机避障小车程序编写
void Avoid()
{
while(S<400)//小于避障距离就停车同时报警
{
beep=0;//使能蜂鸣器
stop();//停车
}
beep=1;//一直到移除障碍,则关闭蜂鸣器报警回到主程序。
}