STC15F104E最小板产品使用手册_第1页
STC15F104E最小板产品使用手册_第2页
STC15F104E最小板产品使用手册_第3页
STC15F104E最小板产品使用手册_第4页
STC15F104E最小板产品使用手册_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 STC15F104E 单片机开发学习板单片机开发学习板产品使用手册产品使用手册 【简要说明简要说明】 一、尺寸:长 25mmX 宽 18mmX 高 10mm 二、主要芯片:主要芯片:STC15F104E 单片机、MAX232 三、工作电压:输入电压直流 5 至 15V 四、电脑串口下载,或者 STC 单片机专用下载线 五、特点: 1、具有电源指示。 2、所有 I/O 口都以引出。 3、可以实现与电脑串口通信。 4、使用内部晶振。 5、具有上电复位功能。 6、支持 STC15F1XX 系列单片机 7、支持 STC 串口下载; 8、具有滤波电容; 9、具有 7805 稳压芯片; 10、可排针引

2、电; 2 六、提供相关软件、资料、原理图 适用场合:单片机学习、电子竞赛、产品开发、毕业设计。适用场合:单片机学习、电子竞赛、产品开发、毕业设计。 注意啦:本产品提供的所有程序都附带原理图以及说明!注意啦:本产品提供的所有程序都附带原理图以及说明! 【图片标注图片标注】 【原理图原理图】 3 【PCBPCB 尺寸图尺寸图】 【开发板支持同系列单片机的型号开发板支持同系列单片机的型号】 【产品展示】【产品展示】 4 5 6 【单片机下载接线图单片机下载接线图】 7 【单片机编程软件单片机编程软件 KEILKEIL】 【单片机编程软件界面如下单片机编程软件界面如下】 8 【单片机下载软件单片机下载

3、软件】 【单片机下载软件界面单片机下载软件界面】 9 【STC15F104ESTC15F104E 系列单片机单片机开发应用参考程序系列单片机单片机开发应用参考程序】 001001、STC15F104ESTC15F104E 系列单片机之闪烁灯:系列单片机之闪烁灯: /* 汇诚科技 实现功能:闪烁灯 使用芯片:STC15F104E 系列单片机 晶振:11.0592MHZ 波特率:9600 编译环境:Keil 作者:zhangxinchun .淘宝店: 汇诚科技 郑兴电子直销部 .6. 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */ /*/ #include/库文件 #includ

4、e 10 #define uchar unsigned char/宏定义无符号字符型 #define uint unsigned int/宏定义无符号整型 /* I/O 定义 */ sbit LED=P35;/定义单片机 P3 口的第 5 位 (即 P0.0) /* 延时 100MS 函数 */ void Delay100ms() uchar i, j, k; _nop_(); i = 5; j = 144; k = 71; do do while (-k); while (-j); while (-i); /* 延时 1S 函数 */ void Delay1s(uint s) uchar m

5、,n; for(m=s;m0;m-) for(n=10;n0;n-) Delay100ms(); /* 主函数 */ void main() 11 while(1)/无限循环 LED=0;/点亮 P3.5 口灯 Delay1s(1);/延时 LED=1;/熄灭 P3.5 口灯 Delay1s(1);/延时 /* 结束 */ 002002、STC15F104ESTC15F104E 系列单片机之流水灯:系列单片机之流水灯: /* 汇诚科技 实现功能:流水灯 使用芯片:STC15F104E 系列单片机 晶振:11.0592MHZ 波特率:9600 编译环境:Keil 作者:zhangxinchun

6、.淘宝店: 汇诚科技 郑兴电子直销部 .6. 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */ #include/库文件 #define uchar unsigned char/宏定义无符号字符型 #define uint unsigned int/宏定义无符号整型 /* 初始定义 */ uchar temp;/定义字符型变量 uchar a,b,i; /* 延时函数 */ void delay()/延时程序 uchar m,n,s; 12 for(m=10;m0;m-) for(n=200;n0;n-) for(s=248;s0;s-); /* 主函数 */ void mai

7、n() temp=0 xfe; /11111110 定义每次一个灯亮 while(1) P3=temp;/直接对 1/0 口赋值,使批输出低电平。 delay();/延时 for(i=1;i8;i+)/实现广告灯的从右到左移动 a=tempi;/左移 i 位 P3=a;/相与求值 delay(); /* 结束 */ 003003、STC15F104ESTC15F104E 系列单片机之跑马灯:系列单片机之跑马灯: /* 汇诚科技 实现功能:跑马灯 使用芯片:STC15F104E 系列单片机 晶振:11.0592MHZ 波特率:9600 编译环境:Keil 作者:zhangxinchun .淘宝店

8、: 汇诚科技 郑兴电子直销部 .6. 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */ 13 #include/库文件 #define uchar unsigned char/宏定义无符号字符型 #define uint unsigned int/宏定义无符号整型 /* 初始定义 */ uchar temp;/定义字符型变量 uchar a,b,i; /* 延时函数 */ void delay()/延时程序 uchar m,n,s; for(m=20;m0;m-) for(n=20;n0;n-) for(s=248;s0;s-); /* 主函数 */ void main() w

9、hile(1) temp=0 xfe; /11111110 定义每次一个灯亮 P3=temp;/直接对 1/0 口赋值,使批输出低电平。 delay();/延时 for(i=1;i8;i+)/实现广告灯的从右到左移动 a=temp(8-i);/右移 8-i 位 P3=a|b;/相与求值 delay(); for(i=1;ii;/右移 i 位 b=temp(8-i);/左移 8-i 位 P3=a|b;/相与求值 delay(); 14 /* 结束 */ 004004、STC15F104ESTC15F104E 系列单片机之简单的按键识别:系列单片机之简单的按键识别: /* 汇诚科技 实现功能:简单

10、的按键识别 使用芯片:STC15F104E 系列单片机 晶振:11.0592MHZ 波特率:9600 编译环境:Keil 作者:zhangxinchun .淘宝店: 汇诚科技 郑兴电子直销部 .6. 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */ #include/库文件 #define uchar unsigned char/宏定义无符号字符型 #define uint unsigned int/宏定义无符号整型 /* I/O 定义 */ sbit LED1=P35;/定义单片机 P3 口的第 5 位 (即 P3.5)/为输出 sbit key1=P33;/定义单片机 P3

11、 口的第 3 位 (即 P3.3)/为输入 /* 延时函数 */ void delay()/延时程序 uchar m,n,s; for(m=20;m0;m-) for(n=20;n0;n-) for(s=248;s0;s-); /* 主函数 */ 15 void main() while(1) if(key1=0)delay();if(key1=0)LED1=0;while(!key1);LED1=1; /如果 key1 按键按下,P3.5 口输 出低电平,指示灯亮。 /* 结束 */ 005005、STC15F104ESTC15F104E 系列单片机之定时器产生延时系列单片机之定时器产生延时

12、 1 1 秒程序:秒程序: /* 汇诚科技 实现功能:定时器产生延时 1 秒程序 使用芯片:STC15F104E 系列单片机 晶振:11.0592MHZ 波特率:9600 编译环境:Keil 作者:zhangxinchun .淘宝店: 汇诚科技 郑兴电子直销部 .6. 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */ /*/ #include/库文件 #define uchar unsigned char/宏定义无符号字符型 #define uint unsigned int/宏定义无符号整型 /* 初始定义 */ uchar sec; /定义计数值,每过 1/10 秒,sec

13、 加一 uchar keycnt=0;/按下次数值 uint tcnt; /键值判断 /* I/O 定义 */ sbit P33=P33;/定义单片机 P3 口的第 3 位 (即 P3.3) /* 定时中断服务函数 16 */ void t0(void) interrupt 1 using 0 /定时中断服务函数 tcnt+; /每过 250ust tcnt 加一 if(tcnt=400) /计满 400 次(1/10 秒)时 tcnt=0; /重新再计 sec+; if(sec=10) /定时 10 秒,在从零开始计时 sec=0; P33=!P33;/取反 P3.3 /* 主函数 */ v

14、oid main() TMOD=0 x02; /定时器工作在方式 2 TH0=0 x06; /对 TH0 TL0 赋值 TL0=0 x06; TR0=1; /开始定时 ET0=1; EA=1; sec=0; while(1) /* 结束 */ 006006、STC15F104ESTC15F104E 系列单片机之按键控制继电器通断系列单片机之按键控制继电器通断 1 1 秒启秒启 动停止:动停止: /* 汇诚科技 实现功能:按键控制继电器通断 1 秒启动停止 使用芯片:STC15F104E 系列单片机 晶振:11.0592MHZ 17 波特率:9600 编译环境:Keil 作者:zhangxinc

15、hun .淘宝店: 汇诚科技 郑兴电子直销部 .6. 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */ /*/ #include/库文件 #define uchar unsigned char/宏定义无符号字符型 #define uint unsigned int/宏定义无符号整型 /* 初始定义 */ uchar sec; /定义计数值,每过 1/10 秒,sec 加一 uchar keycnt=0;/按下次数值 uint tcnt; /键值判断 /* I/O 定义 */ sbit P33=P33;/定义单片机 P3 口的第 3 位 (即 P3.3)为输出口 sbit P3_

16、5=P35;/定义单片机 P3 口的第 5 位 (即 P3.5)位输入口 /* 延时函数 */ void delay(uchar t) uchar i,j; for(i=0;i0;j-); ; /* 按键扫描函数 */ void KEY() /按键扫描程序 if(P3_5=0) 18 delay(20); if(P3_5=0) keycnt+; /* 按下次数判断函数 */ switch(keycnt) /按下次数判断 case 1: /第一次按下 TH0=0 x06; /对 TH0 TL0 赋值 TL0=0 x06; TR0=1; /开始定时 break; case 2: /第二次按下 TR

17、0=0; /定时结束 keycnt=0; /重新开始判断键值 break; while(P3_5=0); /* 定时中断服务函数 */ void t0(void) interrupt 1 using 0 /定时中断服务函数 tcnt+; /每过 250ust tcnt 加一 if(tcnt=400) /计满 400 次(1/10 秒)时 tcnt=0; /重新再计 sec+; if(sec=10) /定时 10 秒,在从零开始计时 sec=0; P33=!P33;/取反 P3.3 /* 主函数 */ void main() 19 TMOD=0 x02; /定时器工作在方式 2 ET0=1; E

18、A=1; sec=0; TR0=0; while(1) KEY(); /* 结束 */ 007007、STC15F104ESTC15F104E 系列单片机之串口通讯应用程序:系列单片机之串口通讯应用程序: /* 汇诚科技 实现功能:STC15F104E 系列单片机之串口通讯应用程序 使用芯片:STC15F104E 系列单片机 晶振:11.0592MHZ 波特率:9600 编译环境:Keil 作者:zhangxinchun .淘宝店: 汇诚科技 郑兴电子直销部 .6. 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */ /* 单片机与 PC 机采用 9 针串口,MAX232 通讯,

19、波特率默认为 9600. 单片机接收 PC 机发送的数据码表如下: 01、开:PC 发送AIO 口输出高电平; 02、关:PC 发送BIO 口输出低电平; 03、输出状态查询:PC 发送 C;单片机返回输出状态A表示开 B表示关; 04、继电器状态取反:PC 发送 D继电器状态取反 */ #include reg52.h #include #define uchar unsigned char /宏定义字符型变量 20 #define uintunsigned int/宏定义整型变量 /* 波特率设定 */ /#define BAUD 0XF400/1200bps 11.0592MHZ /#d

20、efine BAUD 0XFA00/2400bps 11.0592MHZ /#define BAUD 0XFD00/4800bps 11.0592MHZ #define BAUD 0XFE80/9600bps 11.0592MHZ /#define BAUD 0XFF40/19200bps 11.0592MHZ /#define BAUD 0XFFA0/38400bps 11.0592MHZ uchar dat; /用于存储单片机接收发送缓冲寄存器 SBUF 里面的内容 sbitP33=P33; /定义继电器控制输出脚 /* 定义特殊寄存器 */ sfr AUXR=0 x8E;/辅助寄存器 s

21、bit RXB=P30; sbit TXB=P31; /* 定义数据类型 */ uchar TBUF,RBUF; uchar TDAT,RDAT; uchar TCNT,RCNT; uchar TBIT,RBIT; uint TING,RING; uint TEND,REND; void UART_INIT(); /声明函数 uchar t,r;/定义数据类型 uchar but16;/数据存储数组 /* 延时函数 */ void delay(uchar t) uchar i,j; for(i=0;i0;j-); ; 21 /* 主函数 */ void main() TMOD=0X00;/定时

22、器 T0 设定 AUXR=0X80;/辅助寄存器 TL0=BAUD;/十六位寄存器 TH0=BAUD8;/十六位寄存器 TR0=1;/开定时器 ET0=1; PT0=1; EA=1;/开总中断 UART_INIT();/串口初始化 while(1)/无线循环 if(REND) REND=0; r+; /butr+ dat=RBUF; if(TEND) if(t!=r) TEND=0; /TBUF=dat; switch(dat) /接收数据判断 uchar k; k=10; case A: P33=1;delay(k);TBUF = dat;dat=0 xee;break;/开,并返回数据值

23、case B: P33=0;delay(k);TBUF = dat;dat=0 xee;break;/关,并返回数据值 case C: if(P33=1)TBUF = A;if(P33=0)TBUF = B;delay(k);dat=0 xee;break;/ 读输出口状态,并返回数据值 case D: P33=!P33;delay(k);TBUF = dat;dat=0 xee;break;/输出口取反 default:break;/跳出 t+; 22 /TBUF=butt+ TING=1; /* 定时器 T0 */ void tm0()interrupt 1 using 1 if(RING

24、) if(-RCNT=0) RCNT=3; if(-RBIT=0) RBUF=RDAT; RING=0; REND=1; else RDAT=1; if(RXB)RDAT|=0X80; else if(!RXB) RING=1; RCNT=4; RBIT=9; if(-TCNT=0) TCNT=3; if(TING) if(TBIT=0) TXB=0; TDAT=TBUF; 23 TBIT=9; else TDAT=1; if(-TBIT=0) TXB=1; TING=0; TEND=1; else TXB=CY; /* 功能:串口初始化,波特率 9600,方式 1 */ void UART_

25、INIT() TING=0; RING=0; TEND=1; REND=0; TCNT=0; RCNT=0; /* 结束 */ 008008、STC15F104ESTC15F104E 系列单片机之系列单片机之 EEPROMEEPROM 应用程序:应用程序: /* 汇诚科技 实现功能:STC15F104E 系列单片机之 EEPROM 应用程序 使用芯片:STC15F104E 系列单片机 晶振:11.0592MHZ 波特率:9600 24 编译环境:Keil 作者:zhangxinchun .淘宝店: 汇诚科技 郑兴电子直销部 .6. 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! *

26、/ /*/ #include reg52.h #include #define uchar unsigned char /宏定义字符型变量 #define uintunsigned int/宏定义整型变量 /* 寄存器设置 */ sfr IAP_DATA=0 xc2;/数据寄存器 sfr IAP_ADDRH =0 xc3;/地址寄存器 sfr IAP_ADDRL =0 xc4;/地址寄存器 sfr IAP_CMD=0 xc5;/命令寄存器 sfr IAP_TRIG=0 xc6;/触发寄存器 sfr IAP_CONTR =0 xc7;/擦除寄存器 sbitP33=P33;/定义继电器控制输出脚

27、/* 命令定义 */ #define CMD_IDLE0/EEPROM 无操作 #define CMD_READ1/读取字节 #define CMD_PROGRAM2/写入字节 #define CMD_ERASE3/擦除字节 /* 编程周期由晶振决定 */ /#define ENABLE_IAP 0X80/编程周期由晶振决定(如果30MHZ 选用此项) /#define ENABLE_IAP 0X81/编程周期由晶振决定(如果24MHZ 选用此项) /#define ENABLE_IAP 0X82/编程周期由晶振决定(如果20MHZ 选用此项) #define ENABLE_IAP 0X83/

28、编程周期由晶振决定(如果12MHZ 选用此项) /#define ENABLE_IAP 0X84/编程周期由晶振决定(如果6MHZ 选用此项) /#define ENABLE_IAP 0X85/编程周期由晶振决定(如果3MHZ 选用此项) /#define ENABLE_IAP 0X86/编程周期由晶振决定(如果2MHZ 选用此项) /#define ENABLE_IAP 0X87/编程周期由晶振决定(如果1MHZ 选用此项) #define IAP_ADDRESS 0X0000/内部 EEPROM 地址 25 /* 函数初始化 */ void Delay(uchar n);/延时函数 voi

29、d IapIdle();/操作函数 uchar IapReadByte(uint addr); /读取函数 void IapProgramByte(uint addr,uchar dat); /写入函数 void IapEraseSector(uint addr);/擦除函数 /* 主函数 */ void main() uint i; /定义整型变量 i P33=0; Delay(10);/延时 IapEraseSector(IAP_ADDRESS);/擦除扇区 for(i=0;i512;i+)/擦除 512 个字节的扇区 if(IapReadByte(IAP_ADDRESS+i)!=0 xf

30、f)/判断是否完全擦除 goto Error;/如果没有擦除跳转到报错位置 Delay(10); /延时 for(i=0;i512;i+)/对 512 个字节进行数据写入 IapProgramByte(IAP_ADDRESS+i,(uchar)i);/写入数据 Delay(10);/延时 for(i=0;i8; IAP_TRIG=0X5A; IAP_TRIG=0XA5; _nop_(); _nop_(); _nop_(); dat=IAP_DATA; IapIdle(); return dat; /* 27 写入一个字节函数 */ void IapProgramByte(uint addr,u

31、char dat) IAP_CONTR=ENABLE_IAP; IAP_CMD=CMD_PROGRAM; IAP_ADDRL=addr; IAP_ADDRH=addr8; IAP_DATA=dat; IAP_TRIG=0X5A; IAP_TRIG=0XA5; _nop_(); _nop_(); _nop_(); IapIdle(); /* 擦除一个字节函数 */ void IapEraseSector(uint addr) IAP_CONTR=ENABLE_IAP; IAP_CMD=CMD_ERASE; IAP_ADDRL=addr; IAP_ADDRH=addr8; IAP_TRIG=0X5

32、A; IAP_TRIG=0XA5; _nop_(); _nop_(); _nop_(); IapIdle(); /* 结束 */ 009009、STC15F104ESTC15F104E 系列单片机之产生系列单片机之产生 PWMPWM 信号测试程序:信号测试程序: /* 汇诚科技 实现功能:STC15F104E 系列单片机之产生 PWM 信号测试程序 28 使用芯片:STC15F104E 系列单片机 晶振:11.0592MHZ 波特率:9600 编译环境:Keil 作者:zhangxinchun .淘宝店: 汇诚科技 郑兴电子直销部 .6. 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */ /*/ #includ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论