导航:首页 > 操作系统 > stc89c52单片机程序

stc89c52单片机程序

发布时间:2022-12-22 08:17:53

㈠ stc89c52单片机如何烧程序

利用串口烧写,和电脑连接硬件可以是RS232转TTL,也可以是USB转232,再转TTL,也可以直接用uSB转TTL,最后一种最简单,开发板还可以用转换线提供的电源。硬件搭建好后,打开STC提供的烧写软件,经简单设置即可进行下载。

㈡ stc89c52单片机下载程序时一直停在 “正在检测目标单片机” 怎么解决

stc89c52单片机下载程序时一直停在 “正在检测目标单片机”,是设置错误造成的,解决方法如下:

1、首先打开电脑中的keil软件,点击“工程”新建一个工程,命名为“点亮LED”,点击确定。

㈢ STC89C52单片机C语言程序求解

你的问题是什么,要大胆说出来啊

㈣ 怎样用stc89c52单片机控制蜂鸣器发出音乐的c语言程序

#include #include //本例采用89C52,晶振为11.0592MHZ //关于如何编制音乐代码,其实十分简单,各位可以看以下代码. //频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍; //所以拿出谱子,试探编吧! sbitBeep=P1^5; unsignedcharn=0;//n为节拍常数变量 unsignedcharcodemusic_tab[]={ 0x18,0x30,0x1C,0x10,//格式为:频率常数,节拍常数,频率常数,节拍常数, 0x20,0x40,0x1C,0x10, 0x18,0x10,0x20,0x10, 0x1C,0x10,0x18,0x40, 0x1C,0x20,0x20,0x20, 0x1C,0x20,0x18,0x20, 0x20,0x80,0xFF,0x20, 0x30,0x1C,0x10,0x18, 0x20,0x15,0x20,0x1C, 0x20,0x20,0x20,0x26, 0x40,0x20,0x20,0x2B, 0x20,0x26,0x20,0x20, 0x20,0x30,0x80,0xFF, 0x20,0x20,0x1C,0x10, 0x18,0x10,0x20,0x20, 0x26,0x20,0x2B,0x20, 0x30,0x20,0x2B,0x40, 0x20,0x20,0x1C,0x10, 0x18,0x10,0x20,0x20, 0x26,0x20,0x2B,0x20, 0x30,0x20,0x2B,0x40, 0x20,0x30,0x1C,0x10, 0x18,0x20,0x15,0x20, 0x1C,0x20,0x20,0x20, 0x26,0x40,0x20,0x20, 0x2B,0x20,0x26,0x20, 0x20,0x20,0x30,0x80, 0x20,0x30,0x1C,0x10, 0x20,0x10,0x1C,0x10, 0x20,0x20,0x26,0x20, 0x2B,0x20,0x30,0x20, 0x2B,0x40,0x20,0x15, 0x1F,0x05,0x20,0x10, 0x1C,0x10,0x20,0x20, 0x26,0x20,0x2B,0x20, 0x30,0x20,0x2B,0x40, 0x20,0x30,0x1C,0x10, 0x18,0x20,0x15,0x20, 0x1C,0x20,0x20,0x20, 0x26,0x40,0x20,0x20, 0x2B,0x20,0x26,0x20, 0x20,0x20,0x30,0x30, 0x20,0x30,0x1C,0x10, 0x18,0x40,0x1C,0x20, 0x20,0x20,0x26,0x40, 0x13,0x60,0x18,0x20, 0x15,0x40,0x13,0x40, 0x18,0x80,0x00 }; voidint0()interrupt1//采用中断0控制节拍 {TH0=0xd8; TL0=0xef; n--; } voiddelay(unsignedcharm)//控制频率延时 { unsignedi=3*m; while(--i); } voiddelayms(unsignedchara)//豪秒延时子程序 { while(--a);//采用while(--a)不要采用while(a--);各位可编译一下看看汇编结果就知道了! } voidmain() {unsignedcharp,m;//m为频率常数变量 unsignedchari=0; TMOD&=0x0f; TMOD|=0x01; TH0=0xd8;TL0=0xef; IE=0x82; play: while(1) { a:p=music_tab[i]; if(p==0x00){i=0,delayms(1000);gotoplay;}//如果碰到结束符,延时1秒,回到开始再来一遍 elseif(p==0xff){i=i+1;delayms(100),TR0=0;gotoa;}//若碰到休止符,延时100ms,继续取下一音符 else{m=music_tab[i++],n=music_tab[i++];}//取频率常数和节拍常数 TR0=1;//开定时器1 while(n!=0)Beep=~Beep,delay(m);//等待节拍完成,通过P1口输出音频(可多声道哦!) TR0=0;//关定时器1 } } 你参考这个吧

㈤ 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;//一直到移除障碍,则关闭蜂鸣器报警回到主程序。
}

阅读全文

与stc89c52单片机程序相关的资料

热点内容
android短信验证码倒计时 浏览:641
排课走班源码 浏览:222
程序员刚毕业去了小公司有发展吗 浏览:90
速腾怎么安装安卓手机互联 浏览:143
linux设备驱动程序代码 浏览:301
服务器的功耗怎么看 浏览:651
app组件哪里找 浏览:87
androidqq红包 浏览:412
服务器如何传输 浏览:456
如何快速将多个文件夹快速解压缩 浏览:114
程序员睡前都在想什么 浏览:37
少儿编程技能培训心得 浏览:458
白命令 浏览:816
headfirstjavapdf 浏览:552
广数980t怎么编程 浏览:592
无邪app在哪里下载 浏览:462
mac自带php目录 浏览:632
海淘小程序源码 浏览:750
哪里下载苏宁秒达app 浏览:643
androidcmnet 浏览:31