单片机实验复习

上传人:zw****58 文档编号:57457010 上传时间:2018-10-22 格式:PPT 页数:12 大小:71KB
返回 下载 相关 举报
单片机实验复习_第1页
第1页 / 共12页
单片机实验复习_第2页
第2页 / 共12页
单片机实验复习_第3页
第3页 / 共12页
单片机实验复习_第4页
第4页 / 共12页
单片机实验复习_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《单片机实验复习》由会员分享,可在线阅读,更多相关《单片机实验复习(12页珍藏版)》请在金锄头文库上搜索。

1、I/0口驱动,汇编语言ORG 0000HSJMP MAIN MAIN: MOV P1,#55HEND C语言 #include /定义头文件 Void main(void) P1=0X55; ,延时程序,1S延时(汇编 24M晶振时) DEL: MOV R7,#20 ; DEL1:MOV R6,#200 ; DEL2:MOV R5,#248 ; DJNZ R5,$ ; DJNZ R6,DEL2 ; DJNZ R7,DEL1 ; RET ;,延时程序,C程序 void delay(unsigned int t) unsigned int i,j;for(i=0;it;i+) for(j=0;j2

2、00;j+); 调用时: delay(33);/估计延时在10MS ,24MHZ晶振时,数码管显示,汇编(共阴极)MOV P0,#0FEHMOV DPTR,#TABMOV A,R1 /将R1的值用数码管显示MOVC A,A+DPTRMOV P2,A TAB:DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H,0EEH,数码管显示,C语言(共阴极) /*数码管段代码表(共阴且高位对应a 段)*/ unsigned char Tab= 0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6,0xEE,0x

3、3E,0x9C,0x7A,0x9E,0x8E,0x00; unsigned char temp; void main(void) P0=0XFE;P2=Tabtemp;/用数码管显示temp的值 ,按键识别,汇编: ;按键识别基础程序,为P37口 WAIT: JB P3.7,WAIT ;判断P3.7IO口是否按下,没有按下则跳到WAIT;P37按下时为低电平,放开时为高电平LCALL DELAY ;延时10MS,消除抖动JB P3.7,WAIT ;再判断一次真的已经确定按下 K: JNB P3.7,K ;等待松开按键,当P3.7为低电平时,一直等待直到松开 ;添加按键处理程序LJMP WAIT

4、,按键识别,C程序 #include /定义头文件 void main(void) while(1)if(P3_7=0)delay(33);if(P3_7=0) ; /添加按键处理程序while(P3_7=0); ,外部中断,汇编程序ORG 0000HAJMP MAIN ;上电跳转到主程序ORG 0003HAJMP DEALORG 0030H ;跳转到INT0服务程序 MAIN:SETB EA ;开放CPU中断SETB EX0 ;开放INT0中断SETB IT0 ;设置INT0为边沿触发方式MOV A,#00HMOV P0,#0FFH WAIT:SJMP WAIT ;等待产生中断DEAL:IN

5、C A ;累加器加1CPL AMOV P0,ACPL ARETI ;中断返回END,外部中断,C程序 #include /头文件 unsigned char a=0;/定义变量 void int0(void) interrupt 0 using 0/中断服务程序 a+;a=a;P0=a;a=a; void main(void)/主函数 EA=1;EX0=1;IT0=1;/开启外部中断 while(1); ,定时器(汇编),ORG 0000HLJMP MAINORG 000BH ;T0定时/计数器程序入口地址LJMP INTT0ORG 0030H MAIN: MOV R0,#00HMOV TMO

6、D,#01H ;设置定时/计数器 T0工作在方式1MOV TL0,#0B0H ;定时初值低位 MOV TH0,#3CH ;定时初值高位 晶振24M时 为25MSSETB EA ;总中断允许位SETB ET0 ;定时/计数器T0中断允许控制位SETB TR0 ;定时/计数器TO启动位SJMP $INTT0: ;定时器中断服务程序,每隔25MS产生一次中断MOV TL0,#0B0HMOV TH0,#3CHINC R0CJNE R0,#40,LOOP;25ms*40=1S,执行P10取反程序MOV R0,#00HCPL P1.0 LOOP: RETI ;中断返回END,定时器(C语言),#inclu

7、de “reg51.h“ unsigned char t; void timer0(void) interrupt 1 TH0=0x3c;TL0=0xb0;t+;if(t=40)t=0;P1_0=P1_0; void main(void) TMOD=0x01;TH0=0x3c;TL0=0xb0; TR0=1; ET0=1;EA=1;while(1); ,复习练习1,当P30按键按下,P1口灯循环左移,当P31按键按下,P1口灯循环右移, 2,当P30按键按下,P1.0口灯间隔一秒亮灭闪 烁,数码管显示1 当P31按键按下,停止闪烁,数码管显示2 3,当P30 P31按键同时按下,P2口灯全亮, 当P30 按下 P31放开 ,P2口低四位灯全亮, 当P31 按下 P30放开 ,P2口高四位灯全亮,,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号