STC单片机创新实践应用课件(完整版)_第1页
STC单片机创新实践应用课件(完整版)_第2页
STC单片机创新实践应用课件(完整版)_第3页
STC单片机创新实践应用课件(完整版)_第4页
STC单片机创新实践应用课件(完整版)_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

1、STC单片机创新实践应用课件说明 由于本书面向的是单片机实践,不是理论教学,课件以便于实践为目的,主要包括书中各个案例的电路图,实物图,若干系统调试与运行图示。第一章 TM1638按键显示模块图1-3 TM1638模块及其与单片机的连接第一章 TM1638按键显示模块图1-10 程序运行实况/*File:TM1638.c*/#includevoid InitTM1638(void);unsigned char GetKey(void);void FontToSEG(unsigned char col,unsigned char font);void NumToAllSEG(long int n

2、);void NumTo1234SEG(int n);void NumTo5678SEG(int n);void BitToLED(unsigned char col,bit b);void CharToAllLED(unsigned char c);/*TM1638模块引脚定义*/#defineSTBP00#defineCLKP01#defineDIOP02/*共阴数码管显示代码*/unsigned char code tab=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F;/09/*,0 x77,0 x7C,0 x39

3、,0 x5E,0 x79,0 x71*/*向TM1638写字节数据函数c: 要写入的字节数据*/void WriteTM1638(unsigned charc)unsigned char i;for(i=0;i=1;CLK=1;/*从TM1638读数据函数返回:读取的字节数据*/unsigned char ReadTM1638 (void)unsigned char i;unsigned char temp=0;DIO=1;/设置为输入for(i=0;i=1;CLK=0;_nop_();_nop_();_nop_();_nop_();if(DIO)temp|=0 x80;CLK=1;retur

4、n temp;/*向TM1638发送命令字函数cmd:1字节的命令*/void WriteTM1638CMD(unsigned char cmd)STB=0;WriteTM1638(cmd);STB=1;/*TM1638初始化函数*/void InitTM1638(void)unsigned char i;WriteTM1638CMD(0 x8b); /亮度 (0 x88-0 x8f)8级亮度可调WriteTM1638CMD(0 x40); /采用地址自动加1STB=0;WriteTM1638 (0 xc0); /设置起始地址for(i=0;i16;i+)/传送16个字节的数据WriteTM1

5、638(0 x00);STB=1;/*读TM1638按键函数,返回:按键键值:从左到右键值依次为0.7,其它值无效*/unsigned char GetKey(void)unsigned char c4,i,key_value=0;STB=0;WriteTM1638(0 x42); /读按键命令for(i=0;i4;i+)ci= ReadTM1638 ();STB=1; /4个字节数据合成一个字节for(i=0;i4;i+)key_value|=cii;for(i=0;i8;i+)if(0 x01i)=key_value)break;return i;/*TM1638数码管显示字型的函数col

6、:数码管序号,从左到右依次为0.7*/void FontToSEG (unsigned char col,unsigned char font)WriteTM1638CMD(0 x44);STB=0;WriteTM1638(0 xc0|(col*2);WriteTM1638(font);STB=1;/*控制TM1638一个LED的函数num:要控制的led序号,从左到右依次为0.7flag:0时熄灭LED,非0时点亮LED*/void BitToLED(unsigned char col,bit b)WriteTM1638CMD(0 x44);STB=0;WriteTM1638(0 xc0|(

7、col*2+1);WriteTM1638(b?1:0);STB=1; /*控制TM1638全部LED函数c:D7.D0输出到LED1.LED8*/void CharToAllLED(unsigned char c)unsigned char i;for(i=0;i8;i+)BitToLED(i, c&(1i);/*用TM1638的8个数码管显示1个整数n:要显示的整数*/#include#includevoid NumToAllSEG(long int n)unsigned char buf16,font,i;for(i=0;i8;i+)bufi=0;/清缓冲区sprintf(buf,%Ld,

8、n);/把n格式化为ASCII字符串i=0;if(buf0=-)FontToSEG(0,0 x40);/显示负号i=1;for(;i8;i+)font= isdigit(bufi)?tabbufi-0:0;FontToSEG(i,font); /*用TM1638的左边4个数码管显示1个整数n:要显示的整数*/void NumTo1234SEG(int n)unsigned char buf16,font,i;for(i=0;i8;i+)bufi=0;/清缓冲区sprintf(buf,%d,n);/把n格式化为ASCII字符串i=0;if(buf0=-)FontToSEG(0,0 x40);/显

9、示负号i=1;for(;i4;i+)font= isdigit(bufi)?tabbufi-0:0;FontToSEG(i,font); /*用TM1638的右边4个数码管显示1个整数n:要显示的整数*/void NumTo5678SEG(int n)unsigned char buf16,font,i;for(i=0;i8;i+)bufi=0;/清缓冲区sprintf(buf,%d,n);/把n格式化为ASCII字符串i=0;if(buf0=-)FontToSEG(4,0 x40);/显示负号i=1;for(;i4;i+)font= isdigit(bufi)?tabbufi-0:0;Fon

10、tToSEG(i+4,font); /*File:P1_4.c*/#include#includemain()/*主函数*/InitTM1638();/初始化TM1638模块NumToAllSEG(12345678);/显示12345678while(1)/主循环char key,i;/ 定义key,i为字符型(char)变量switch(key=GetKey()/读TM1638模块按键键值case 0: case 1: case 2: case 3:case 4:case 5:case 6:case 7:NumToAllSEG(key);/如果键值为0.7,送到数码管显示CharToAllL

11、ED(1key);/点亮对应的LEDbreak; default: /无键按下(键值为8),清除显示/*for(i=0;i8;i+)FontToSEG(i,0);/熄灭所有数码管CharToAllLED(0);/熄灭所有LED*/break;2.1 ADC应用电位器输入检测图2-3 电位器输出检测接线图图2-6 电位器输入检测实况2.2 T0计数应用光电开关脉冲计数图2-10 T0计数应用接线图图2-12 T0脉冲计数运行实况2.3 T0定时应用继电器控制图2-15 继电器控制接线图图2-17 继电器控制运行实况2.4 T0、T1联合定时舵机控制图2-20 舵机控制接线图图2-21 舵机控制实

12、况2.5 T0、T1、ADC、并口应用直流电机控制图2-25 直流电机控制接线图图2-26 直流电机PWM调速运行实况2.6 T0、T1、ADC、并口应用步进电机控制图2-28 步进电机控制接线图图2-29 步进电机控制运行实况3.1 PCA捕获功能应用旋转编码器脉冲计数图3-3 旋转编码器应用接线图图3-4 旋转编码器脉冲检测实况3.2 PWM输出应用直流电机调速图3-7 直流电机调速与测速接线图图3-9 直流电机PWM调速与测速实况3.3 PCA0、PCA1应用直流电机滑台控制图3-11 直流电机滑台控制接线图图3-13 直流电机滑台控制运行实况3.4 PCA脉冲输出应用步进电机微步控制图

13、3-15 步进电机微步控制接线图图3-17 步进电机微步控制运行实况3.5 串口应用串口舵机控制图3-18 串口舵机控制接线图图3-20 串口舵机控制实况3.6 串口应用蓝牙传输超声测距值图3-22 超声测距应用接线图图3-24 超声测距应用硬件组成 3-25 手机接收与发送4.1 红外遥控器键码检测图4-4 红外遥控器键码检测接线图图4-5 红外遥控器键码测试硬件组成4.2 红外遥控器遥控步进电机运行图4-7 配有IR和A4988的单片机控制接线图图4-9 红外遥控器遥控步进电机硬件组成4.3 SPI总线应用DS1302模块测试图4-12 DS1302应用接线图图4-13 DS1302测试硬

14、件组成 4.4 单总线应用DHT11模块测试图4-16 DHT11模块测试接线图图4-17 DHT11测试硬件组成 5.1 增强型PWM输出测试图5-3 增强型PWM测试接线图图5-5 增强型PWM测试实物5.2 PWM输出与引脚置换应用双驱小车控制图5-8 双驱小车的调速与换向接线图图5-10 STC15控制的双驱小车5.3 ADC与PWM应用舵机机械手的操控图5-13 舵机机械手操控接线图图5-14 STC15控制的三舵机机械手5.4 CCP应用三路超声测距的实现图5-16 三路超声测距小车模块接线图图5-18 三路超声测距小车5.5 外部中断应用滑块自动往返控制图5-21 滑块自动往返控

15、制接线图图5-23 滑台自动往返控制实物5.6 SPI应用MAX6675测温与NRF24L01无线通信图5-30 MAX6675测温与NRF24L01发射应用接线图图5-31 NRF24L01接收与STC15串口发送接线图图5-32 MAX6675测温与NRF24L01发射图5-33 NRF24L01接收与STC15串口发送5.7 比较器测试图5-36 比较器测试接线图图5-37 比较器测试的硬件组成及运行实况6.1 三色LED控制图6-2 三色LED控制接线图图6-3USART HMI触控三色LED6.2 电位器输入测试图6-8 ADC测试接线图图6-9ADC测试实况6.3 舵机操控图6-1

16、2 USART HMI触控舵机接线图图6-13 舵机操控实况6.4 MAX6675测温曲线显示图6-17 MAX6675测温及曲线显示接线图图6-18 MAX6675测温与HMI显示6.5 步进电机滑台与安卓app设计图6-19 步进电机滑台控制接线图图6-20 安卓app主窗口及其组件列表图 6-22 步进电机滑台系统及运行实况/main函数main()EXInit();T0Init();T4Init();/初始化T4S1Init();P4M1=0 x00,P4M0=0 xf0;/P4.4.P4.7推挽输出P3M1=0 x00,P3M0=0 x00;P1M1=0 x00,P1M0=0 x00

17、;EA=1;while(1)/主循环bit b;unsigned int n;int last;if(S1Rcv(RcvBuf,7) /如果S1成功接收了信息 switch(RcvBuf0) case P:/滑块右移1步 Xcmd = Xpos + 1;TR0 = 1;break; case N:/滑块左移1步 Xcmd = Xpos - 1;TR0 = 1;break; case Y:/滑块右行到终点 Xcmd = Xpos + 5000;TR0 = 1;break; case Z:/滑块左行到终点 Xcmd = Xpos - 5000;TR0 = 1;break; case T:/电机停止

18、命令 TR0=0;IN1=IN2=IN3=IN4=0;/定子绕组断电break; case F:/电机频率指令n = atoi(RcvBuf+1);/取频率值,即T0溢出频率if(n8;/向T0装入计数初值TL0 = (65536-n);TR0 = b;break; case W:/设定位置指令n = atoi(RcvBuf+1);/取设定位置值Xcmd = n;TR0 = 1;break; for(n=0;n8;n+)RcvBufn=0;/清RcvBuf缓存if(S1Send & last!=Xpos) /发送标志S1Send = 0;last=Xpos;if(!SWl | !SWr)TR0=0;printf( %d,last);6.6 直流电机滑台与安卓app设计图6-23 直流电机驱动的光栅定位应用接线图图6-24 光栅尺和光栅测头组件图6-25 安卓app主窗口及其组件列表图6-28 直流电机滑台的硬件组成和运行实况6.7 圆盘式点胶机与安卓app设计图6-29 圆盘式点胶机控制接线图图6-30 安卓app主窗口及其组件列表图6-33 圆盘式点胶机硬件组成6.8 XY打标机与安卓app设计图6-35 XY打标机控制接线图图6-36 安卓app主窗口及其组件列表图6-38 XY打标机实物7.1 I/O接点的PC

温馨提示

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

评论

0/150

提交评论