电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

单片机编程培训VIP免费

单片机编程培训_第1页
单片机编程培训_第2页
单片机编程培训_第3页
单片机编程培训(可用C语言/汇编语言)要求:每周做一个实验(共六周),做完后要写好实验总结(侧重于对实验内容的认识与心得)并提交。实验有用编程软件(如KEIL)做,然后用仿真软件(如proteus)或单片机(如情况允许)调试仿真;实验要自己独立完成,可参考一些例程。1.I/0口控制:P1口接八个独立按键,P3口接八个LED灯。当P1口有按键按下时,P3口对应的灯亮。2.流水灯:循环控制八个LED灯。3.数码管动态扫描:八个数码管,每位显示不同的数字。4.独立按键与数码管显示:对若干个独立按键赋予不同的数值,当键盘按下时,数码管显示数字。5.矩阵键盘:掌握行列扫描方法,和去抖方法;6.定时器/中断:主程序:自己设计(如点亮LED1灯);定时器0中断程序:自己设计(如主程序的LED1灯熄灭,点亮另外一盏LED2灯。);要求中断过后(LED2灯灭),主程序正常执行(LED1灯亮);02.点亮P1口的一个灯03.IO口信号输入while(1){P1=P3;}04.IO读写操作程序按下P3口的按键,P1显示相应的位置#includesbitKEY=P3^0;//定义按键的接口sbitLED=P1^0;//定义灯的接口voidmain(void){P1=0xFF;//所有的灯灭while(1){LED=KEY;//灯的状态由按键的状态决定}}05.流水灯#includevoiddelay(unsignedintcnt){while(--cnt);}main(){P1=0xfe;//给初始化值换算成二进制是11111110while(1){delay(3000);//延时程序P1<<=1;//左移一位该语句等效于P1=P1<<1P1|=0x01;//最后一位补1,该语句等效于P1=P1|0x01符号"|"表示"或"if(P1==0x7f)//检测是否移到最左端?"=="表示检测符号2端的值是否相等{delay(30000);P1=0xfe;//重新赋值}}}06.//按下P3口的按键,P1显示相应的位置,IO读写操作程序sfrP1=0x90;/*SFRdefinitionforPort1*/sfrP3=0xB0;/*SFRdefinitionforPort3*/voidmain(void){unsignedcharpval;P1=0xFF;while(1){pval=P3;/*ReadP1intopval*/P1=pval;/*WritepvaltoP3*/}}08.数码管动态扫描#includeUnsignedcharconstdofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示段码值01234567unsignedcharcodeseg[]={0,1,2,3,4,5,6,7};//分别对应相应的数码管点亮,即位码voiddelay(unsignedintcnt){while(--cnt);}main(){unsignedchari;while(1){P0=dofly[i];//取显示数据,段码P2=seg[i];//取位码delay(200);//扫描间隙延时,时间太长会闪烁,太短会造成重影i++;if(8==i)//检测8位扫描完全?i=0;}}11.独立按键内容:切换到独立按键模式,通过按键在数码管显示对应的数字#includesbitkey1=P3^0;//定义按键位置sbitkey2=P3^1;sbitkey3=P3^2;sbitkey4=P3^3;voiddelay(unsignedintcnt){while(--cnt);}main(){P2=0x00;while(1){if(!key1)//按下相应的按键,数码管显示相应的码值P0=0x06;//数码管显示"1"if(!key2)P0=0x5B;//2if(!key3)P0=0x4F;//3if(!key4)P0=0x66;//4}}//如果有干扰请加去抖程序//红外接收头部分用黑色物质遮光,防止干扰按键,因为红外接收和按键使用同一个端口15.去抖独立按键#includesbitkey1=P3^0;//定义按键位置sbitkey2=P3^1;sbitkey3=P3^2;sbitkey4=P3^3;voiddelay(unsignedintcnt){while(--cnt);}main(){P2=0x00;while(1){if(!key1){//按下相应的按键,数码管显示相应的码值delay(1000);if(!key1){P0=0x06;//数码管显示"1"}}if(!key2){//按下相应的按键,数码管显示相应的码值delay(1000);//去抖动if(!key2)//检测按键确实按下,进行按键处理{P0=0x5B;//数码管显示"2"//这里可以添加按键按下所需要的操作,如数据加减乘除,蜂鸣器等设备开关}}if(!key3){//按下相应的按键,数码管显示相应的码值delay(1000);if(!key3){P0=0x4F;//数码管显示"3"}}if(!key4){//按下相应的按键,数码管显示相应的码值delay(1000);if(!key4){P0=0x66;//数码管显示"4"}}}}矩阵键盘//行列扫描程序,可以自己定义端口和扫描方式,这里做简单介绍#include//包含头文件#defineucharunsignedchar#defineuintunsignedintunsignedcharconstdofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-Fuc...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部