STC15F104E单片机最小系统开发板完全指南

张开发
2026/4/16 13:25:17 15 分钟阅读

分享文章

STC15F104E单片机最小系统开发板完全指南
一、STC15F104E单片机核心规格1. 基本参数参数规格说明封装SOP-8 / DIP-88引脚封装体积小巧内核增强型80511T单时钟周期比传统8051快6-12倍工作电压3.8V-5.5V宽电压范围兼容5V和3.3V系统主频最高35MHz内部RC时钟±1%温飘精度Flash4KB程序存储器擦写10万次以上RAM128字节数据存储器I/O数量6个P3.0-P3.5全部可配置定时器2个16位Timer0和Timer1串口1个UART全双工异步通信中断源5个外部中断INT0-INT4支持掉电唤醒EEPROM1KB数据存储擦写10万次2. 引脚功能定义引脚1 (VCC): 电源正极 (3.8V-5.5V) 引脚2 (P3.0/RxD): 通用I/O 或 串行输入(接收端) 引脚3 (P3.1/TxD): 通用I/O 或 串行输出(发送端) 引脚4 (P3.2/INT0): 通用I/O 或 外部中断0输入 引脚5 (P3.3/INT1): 通用I/O 或 外部中断1输入 引脚6 (P3.4/T0): 通用I/O 或 定时器0外部计数输入 引脚7 (P3.5/T1): 通用I/O 或 定时器1外部计数输入 引脚8 (GND): 电源地二、最小系统开发板设计1. 开发板基本组成根据搜索结果典型的STC15F104E最小系统开发板包含以下核心组件主控芯片STC15F104E单片机电源管理7805稳压芯片输入5-15V输出稳定5V通信接口MAX232芯片实现RS232电平转换滤波电容电源滤波提高稳定性电源指示LED指示灯I/O排针全部6个I/O口引出方便扩展复位电路上电复位功能部分设计利用内部复位下载接口串口下载或专用下载线接口2. 最小系统原理图设计要点2.1 电源电路// 典型电源设计外部电源(5-15V)→7805稳压 →5V输出 → 滤波电容 ↓ STC15F104E VCC// 滤波电容配置VCC与GND之间10μF电解电容0.1μF陶瓷电容2.2 复位电路可选由于STC15F104E内部集成高可靠复位电路支持8级可选复位门槛电压可彻底省掉外部复位电路。如需外部复位按钮VCC → 10kΩ电阻 → RST引脚 ↓ 按钮 → GND2.3 时钟电路可选内部集成高精度R/C时钟±1%温飘5MHz-35MHz宽范围可设置可彻底省掉外部晶振。2.4 下载电路单片机TxD(P3.1) → MAX232 → DB9接口(PC串口) 单片机RxD(P3.0) ← MAX232 ← DB9接口(PC串口)3. PCB布局建议尺寸约25mm×18mm×10mm层数双面板即可满足需求布局原则电源部分靠近输入接口滤波电容尽量靠近芯片电源引脚数字地与模拟地分开单点连接信号线避免平行长距离走线三、开发环境与编程1. 所需软件工具工具用途下载来源Keil C51程序编译开发Keil官网STC-ISP程序下载烧录宏晶科技官网串口调试助手串口通信测试第三方工具2. 程序下载步骤硬件连接开发板通过串口线连接电脑选择芯片型号STC-ISP中选择STC15F104E设置串口参数选择正确COM口波特率9600打开程序文件选择编译好的.hex文件下载操作点击下载/编程然后给开发板上电3. 基础程序框架#includeSTC15F104E.H// 头文件包含// 宏定义#defineucharunsignedchar#defineuintunsignedint// I/O定义sbit LEDP3^3;// LED连接P3.3sbit KEYP3^2;// 按键连接P3.2// 延时函数voidDelayMS(uint ms){uint i,j;for(ims;i0;i--)for(j114;j0;j--);}// 主函数voidmain(){// 初始化P3M00x00;// 设置P3口为准双向模式P3M10x00;LED1;// 初始LED熄灭while(1){if(KEY0){// 按键按下DelayMS(10);// 消抖if(KEY0){LED~LED;// LED状态翻转while(!KEY);// 等待按键释放}}}}参考代码 STC15F104E单片机最小系统开发板www.youwenfan.com/contentcst/134063.html四、实用应用示例1. 按键控制LED基础示例/* * 功能按键控制LED亮灭 * 硬件按键接P3.2LED接P3.3 * 原理检测按键下降沿控制LED翻转 */#includeSTC15F104E.Hsbit KEYP3^2;sbit LEDP3^3;voidDelay10ms(){uchar i,j;i108;j145;do{while(--j);}while(--i);}voidmain(){LED1;// 初始熄灭while(1){if(KEY0){Delay10ms();if(KEY0){LED~LED;while(!KEY);// 等待释放}}}}2. 串口通信示例/* * 功能串口收发数据 * 硬件P3.0(RxD)接收P3.1(TxD)发送 * 参数波特率96008位数据无校验 */#includeSTC15F104E.H#includeintrins.h#defineFOSC11059200L// 系统频率#defineBAUD9600// 波特率// 串口初始化voidUART_Init(){SCON0x50;// 8位数据可变波特率AUXR|0x40;// 定时器1时钟为FoscAUXR0xFE;// 定时器1为12T模式TMOD0x0F;// 清除定时器1模式位TMOD|0x20;// 定时器1为8位自动重装TH1TL1256-FOSC/12/32/BAUD;TR11;// 启动定时器1ES1;// 使能串口中断EA1;// 开启总中断}// 发送一个字节voidUART_SendByte(uchar dat){SBUFdat;while(!TI);// 等待发送完成TI0;// 清除发送标志}// 发送字符串voidUART_SendString(char*s){while(*s){UART_SendByte(*s);}}// 串口中断服务函数voidUART_ISR()interrupt4{if(RI){RI0;// 清除接收标志// 处理接收到的数据UART_SendByte(SBUF);// 回传接收的数据}}voidmain(){UART_Init();UART_SendString(STC15F104E UART Ready!\r\n);while(1){// 主循环_nop_();}}3. PWM信号生成/* * 功能生成PWM信号控制LED亮度 * 硬件P3.4输出PWMLED串联限流电阻 * 原理定时器中断调整占空比 */#includeSTC15F104E.H#definePWM_PINP3_4uchar pwm_duty50;// 占空比0-100uchar pwm_counter0;// 定时器0初始化voidTimer0_Init(){AUXR|0x80;// 定时器0为1T模式TMOD0xF0;// 清除定时器0模式位TMOD|0x01;// 定时器0为16位定时器TH00xFF;// 定时100usTL00x9C;ET01;// 使能定时器0中断TR01;// 启动定时器0EA1;// 开启总中断}// 定时器0中断服务函数voidTimer0_ISR()interrupt1{TH00xFF;// 重装定时值TL00x9C;pwm_counter;if(pwm_counter100){pwm_counter0;}if(pwm_counterpwm_duty){PWM_PIN1;// 高电平}else{PWM_PIN0;// 低电平}}voidmain(){PWM_PIN0;// 初始低电平Timer0_Init();while(1){// 呼吸灯效果for(pwm_duty0;pwm_duty100;pwm_duty){DelayMS(10);}for(pwm_duty100;pwm_duty0;pwm_duty--){DelayMS(10);}}}4. 外部中断应用/* * 功能外部中断控制 * 硬件INT0(P3.2)接按键触发外部中断 */#includeSTC15F104E.Hsbit LEDP3^3;// 外部中断0初始化voidINT0_Init(){IT01;// 下降沿触发EX01;// 使能外部中断0EA1;// 开启总中断}// 外部中断0服务函数voidINT0_ISR()interrupt0{LED~LED;// LED状态翻转DelayMS(10);// 简单消抖}voidmain(){LED1;INT0_Init();while(1){// 主循环可执行其他任务_nop_();}}五、进阶应用项目1. 红外遥控系统/* * 项目红外遥控灯扇 * 功能接收红外信号控制LED和风扇 * 硬件红外接收头接P3.2(INT0)LED接P3.3风扇控制接P3.4 */#includeSTC15F104E.H// 红外解码相关变量uchar IR_code;// 红外键码bit IR_Flag0;// 红外接收标志// 初始化voidInit_System(){// 外部中断0用于红外解码IT01;// 下降沿触发EX01;// 定时器0用于红外时序测量TMOD|0x01;// 定时器0模式1TH00;TL00;EA1;// 总中断使能}// 红外解码中断服务voidINT0_ISR()interrupt0{staticuchar bit_cnt0;staticuchar ir_data[4];uint time_val;TR01;// 启动定时器TH00;TL00;while(!INT0);// 等待高电平TR00;// 停止定时器time_val(TH08)|TL0;if(time_val4000time_val5000){// 引导码bit_cnt0;ir_data[0]ir_data[1]ir_data[2]ir_data[3]0;}elseif(time_val1000time_val2000){// 数据1ir_data[bit_cnt/8]|(1(bit_cnt%8));bit_cnt;}elseif(time_val200time_val800){// 数据0bit_cnt;}if(bit_cnt32){// 解码完成IR_codeir_data[2];// 取键码IR_Flag1;bit_cnt0;}}voidmain(){Init_System();while(1){if(IR_Flag){IR_Flag0;switch(IR_code){case0x45:// 电源键P3_3~P3_3;// 控制LEDbreak;case0x46:// 模式键P3_4~P3_4;// 控制风扇break;// 其他按键处理...}}}}2. 继电器控制系统/* * 项目按键控制继电器 * 功能按键控制继电器通断1秒启动停止 * 硬件按键接P3.5继电器控制接P3.3 */#includeSTC15F104E.Hsbit RELAYP3^3;// 继电器控制sbit KEYP3^5;// 控制按键uchar sec_count0;bit relay_state0;// 定时器1初始化1ms中断voidTimer1_Init(){AUXR|0x40;// 1T模式TMOD0x0F;TMOD|0x10;// 定时器1模式1TH10xFC;// 1ms定时TL10x67;ET11;TR11;EA1;}// 定时器1中断voidTimer1_ISR()interrupt3{TH10xFC;TL10x67;sec_count;if(sec_count1000){// 1秒sec_count0;if(relay_state){RELAY~RELAY;// 继电器状态翻转}}}voidmain(){RELAY0;// 继电器初始断开Timer1_Init();while(1){if(KEY0){DelayMS(10);if(KEY0){relay_state~relay_state;// 启动/停止while(!KEY);// 等待释放}}}}六、开发注意事项1. 电源设计要点输入电压开发板通常设计为5-15V直流输入经7805稳压至5V滤波电容VCC与GND间应并联10μF电解电容和0.1μF陶瓷电容电流需求STC15F104E工作电流约5-20mA考虑外设后建议电源提供200mA以上2. 下载问题排查问题现象可能原因解决方法无法连接芯片1. 串口线错误2. 电源未接通3. 芯片损坏1. 检查接线2. 测量VCC电压3. 更换芯片下载失败1. 波特率不匹配2. 冷启动时序错误1. 降低波特率2. 先点下载再上电程序不运行1. 复位电路问题2. 时钟设置错误1. 检查复位引脚2. 确认时钟源3. I/O使用建议驱动能力每个I/O口最大灌电流20mA总电流不超过100mA上拉电阻内部有弱上拉约20kΩ如需强上拉可外接4.7kΩ电阻电平兼容5V系统可直接驱动3.3V器件但3.3V驱动5V需电平转换4. 资源优化技巧代码压缩4KB Flash有限避免使用大型库函数变量优化多用无符号字符型(uchar)少用整型中断精简中断服务函数尽量简短睡眠模式空闲时进入IDLE模式降低功耗七、学习资源推荐1. 官方资料数据手册STC15F100系列数据手册宏晶科技官网编程手册STC15系列单片机参考手册ISP工具STC-ISP下载软件含示例程序2. 开发工具编译器Keil C51 V9.0以上仿真器STC官方仿真器可选调试工具串口调试助手、逻辑分析仪3. 学习路径建议第一阶段GPIO控制LED、按键第二阶段定时器应用延时、PWM第三阶段中断系统外部中断、定时中断第四阶段通信接口UART、模拟I2C/SPI第五阶段综合项目红外遥控、数据采集4. 常见项目创意智能台灯PWM调光 定时关闭温湿度监控DHT11传感器 串口上报红外遥控器学习型遥控器简单PLC多路输入输出控制数据记录器EEPROM存储关键数据STC15F104E最小系统开发板以其极小的体积、完整的功能和低廉的成本成为入门8051单片机开发和嵌入式系统设计的理想平台。通过合理的设计和编程这个只有8个引脚的小芯片能够实现许多实用的控制功能特别适合空间受限、成本敏感的应用场景。

更多文章