STC单片机创新实践应用课件汇总完整版课件全套ppt最全教学教程整本书电子教案.pptx
《STC单片机创新实践应用课件汇总完整版课件全套ppt最全教学教程整本书电子教案.pptx》由会员分享,可在线阅读,更多相关《STC单片机创新实践应用课件汇总完整版课件全套ppt最全教学教程整本书电子教案.pptx(93页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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(l
2、ong int n);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
3、x7C,0 x39,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=
4、1;return 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个字节的数据WriteT
5、M1638(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|(col
7、*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,n);/把
8、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);/显示负号i=1;
9、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;FontToSEG(i+4
10、,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,送到数码管显示CharToAllLED(1key);/点亮对应的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STC 单片机 创新 实践 应用 课件 汇总 完整版 全套 ppt 教学 教程 电子 教案
限制150内