欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    单片机在线系统AY-MPU89S51E课件.ppt

    • 资源ID:3998197       资源大小:522.50KB        全文页数:43页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机在线系统AY-MPU89S51E课件.ppt

    实验用硬件平台(含USB接口写入线),蜂鸣器,驱动器,AD,EEPROM,232电平转换,晶振,继电器,实验用硬件平台(含并口写入线和电源),单片机在线系统AY-MPU89S51E,AT89S52单片机(跳线接上排针时)6位数码管动态显示(P0输出字形、P2.05选择位)8位LED显示(P1)6位按键输入(P2.72,P3.3)EEPROM:256字节(IIC接口,P3.2 P3.4)8位AD(串行接口)P3.57蜂鸣器(P1.7)、继电器RS232接口(P3.1、P3.2)温度传感器,显示部分,232接口,驱动+继电器,流水灯实验(实验1、2),1、掌握51单片机如何控制信号输出。2、掌握Keil C集成开发环境的使用。3、掌握51开发平台的使用。4、8个发光管(L1L8)接在P1的07,为0时点亮。5、功能:首先点亮L1、然后L2、最后是L8接着点亮L8、然后是L7 L6 L1如此循环,间隔0.11.0秒,实验1:流水灯实验(汇编程序),ORG 000HSTART:MOV A,#0FFHCLR CMOV R2,#08H LOOP:RLC AMOV P1,A;输出至P1口LCALL DELAY;调用延迟子程序(延迟100毫秒)DJNZ R2,LOOP MOV R2,#07H;设右移7次LOOP1:RRC A MOV P1,A;输出至P1口 LCALL DELAYDJNZ R2,LOOP1JMP START;跳回到START,再一次循环。DELAY:MOV R4,#200;延迟子程序(100毫秒)250*2*200=500*200usD1:MOV R5,#248;=50*2ms=100msDJNZ R5,$;2us DJNZ R4,D1;2us RETEND,流水灯实验(C程序),#include reg52.hvoid Delay()unsigned char i,j;for(i=0;i255;i+)for(j=0;j255;j+);void main()unsigned char i,dat;while(1),dat=0 x01;for(i=0;i1;Delay();,查表法点亮LED,给定表格(33个8位数)为1则点亮相应的发光二极管间隔0.30.9秒,实验2:流水灯实验(汇编程序),BEEP BIT P2.0 BUFF_LED_LP EQU 21H;亮灯循环寄存器 org 000h JMP START ORG 100H;-start:mov P1,#0ffh;初始化MCU端口 MOV A,#00H;初始化寄存器 MOV PSW,#00H MOV IE,#00H MOV SP,#30H MOV BUFF_LED_LP,#00HLOOP:MOV DPTR,#TAB_A_LAMP;设置亮灯花型列表地址(32种)MOV A,BUFF_LED_LP;查询方式读取花型 MOVC A,A+DPTR CPL A MOV P1,A;LED小灯控制口 LCALL DEL1S INC BUFF_LED_LP MOV A,BUFF_LED_LP CJNE A,#32,LOOP MOV BUFF_LED_LP,#00H JMP LOOP,实验2:流水灯实验(汇编程序)续,TAB_A_LAMP:DB 00111100B,10000001B,11000011B,11100111B,11111111B,11100111B,11000011B,10000001B,00000000B DB 00011000B,00111100B,01111110B,11111111B,00000000B,10101010B,10101010B,11001100B DB 10000000B,11000000B,11100000B,11110000B,11111000B,11111100B,11111110B,11111111B DB 11111110B,11111100B,11111000B,11110000B,11100000B,11000000B,10000000B,00000000BdeL1S:MOV R5,#03H;延时子程序(约0.5秒)DEL1S0:mov R6,#0ffh DEL1S1:mov R7,#0ffh djnz R7,$djnz R6,del1S1 DJNZ R5,DEL1S0;CPL BEEP ret END,实验2:流水灯实验(C程序),#include reg52.hcode unsigned char tab=0 x3c,0 x81,0 xc3,0 xe7,0 xff,0 xe7,0 xc3,0 x81,0 x00,0 x18,0 x3c,0 x7e,0 xff,0 x00,0 xaa,0 xaa,0 xcc,0 x80,0 xc0,0 xe0,0 xf0,0 xf8,0 xfc,0 xfe,0 xff,0 xfe,0 xfc,0 xf8,0 xf0,0 xe0,0 xc0,0 x80,0 x00;void delay()unsigned char i,j,k;for(i=0;i2;i+)for(j=0;j255;j+)for(k=0;k255;k+);void main()unsigned char i;while(1)for(i=0;i33;i+)P1=tabi;delay();,实验5:按键应用实验(汇编),KEY BIT P3.3 SW1 BIT P2.7;P2.2 by htq ORG 000H START:mov sp,#40h mov p2,#0ffh mov p3,#0ffh MOV P1,#0ffh;clr key WAIT:;JB KEY,$;等候按键!by htq JB SW1,$lcall delay cpl P1.0 JNB SW1,$;wait key is released lcall delay;by htq JMP wait DELAY:MOV R3,#200 D1:MOV R4,#200 DJNZ R4,$DJNZ R3,D1 RET END,功能:按下SW1一次,发光管L1点亮或熄灭,实验5:按键应用实验(C),/key SW1 is down,LED1 is swap(on or off)#include reg52.h#define uchar unsigned charsbit KEY=P33;sbit SW1=P27;sbit LED1=P10;void Delay()uchar i,j;for(i=0;i200;i+)for(j=0;j200;j+);void main()KEY=0;while(1)while(SW1);Delay();LED1=!LED1;while(!SW1);Delay();,;check all 6 key,light correspond LEDs,edit by htq 2009.9.4 keydatequ 22h KEY BIT P3.3ORG 000H START:mov sp,#40h mov p2,#0ffh mov p3,#0ffh MOV P1,#0ffh;clr keyWAIT:;JB KEY,$;等候按键!by htq mov a,P2 cpla;if some key is down,then the bit is 0 anla,#0fch movkeydat,a;mov P0,a jznokey;the down key is 1;some key is down jbkeydat.7,sw1;sw1 is down jbkeydat.6,sw2;sw2 is down jbkeydat.5,sw3;sw3 is down jbkeydat.4,sw4;sw4 is down jbkeydat.3,sw5;sw5 is down jbkeydat.2,sw6;sw6 is down sjmpnokey,实验5:按键应用实验(keylight1.asm),sw1:cplp1.0 sjmpnokey1sw2:cplp1.1 sjmpnokey1sw3:cplp1.2 sjmpnokey1sw4:cplp1.3 sjmpnokey1sw5:cplp1.4 sjmpnokey1sw6:cplp1.5nokey1:call delay;by htqnokey:JMP waitDELAY:movR2,#5 d2:MOV R3,#200D1:MOV R4,#200 DJNZ R4,$DJNZ R3,D1 djnzr2,d2 RET END,实验5:按键应用实验(keylight1.c),/check all 6 key,light correspond LEDs,edit by htq 2009.9.18#include reg52.h#define uchar unsigned charsbit KEY=P33;sbit SW1=P27;sbit LED1=P10;sbit LED2=P11;sbit LED3=P12;sbit LED4=P13;sbit LED5=P14;sbit LED6=P15;bdata uchar KeyDat;void Delay()uchar i,j;for(i=0;i200;i+)for(j=0;j200;j+);,void main()KEY=0;while(1)KeyDat=P2;P0=KeyDat;/if some key is down,then the bit is 0KeyDat=(KeyDat),实验13 八段数码管动态显示(1),99倒计时:99、980、99P0.07分别对应数码管的af、dpP2.72分别对应6个数码管:LED1LED66个数码管的af、dp相连共阳P2.7为0,点亮P0口为0的字段(如要显示0,则P0输出为:1100 0000B=0 xc0,99倒计时:主程序部分,MIAO EQU 21H GEWEI EQU 22H SHIWEI EQU 23H SCANLED BIT 01H ORG 000H;ORG伪指令使用于程序定位 JMP START ORG 0BH JMP TIMER0;定时0中断入口地址START:MOV SP,#40H;设定堆栈指针 MOV TMOD,#01H;设定定时器1为工作方式1 MOV TH0,#HIGH(65536-5000)MOV TL0,#LOW(65536-5000)SETB TR0 MOV IE,#10000010B MOV R7,#200 MOV MIAO,#99 AJMP$,99倒计时:中断程序部分,TIMER0:PUSH ACC;定时器1中断服务子程序 PUSH PSW MOV TH0,#HIGH(65536-5000)MOV TL0,#LOW(65536-5000)DJNZ R7,TIM0_LP;not 1s MOV R7,#200 DJNZ MIAO,TIM0_LP MOV MIAO,#99;TIM0_LP:MOV A,MIAO LCALL BIN_BCD MOV SHIWEI,A MOV GEWEI,B CPL SCANLED JB SCANLED,SCAN_L1 JMP SCAN_L2 SCAN_L1:MOV P2,#01111111B;显示十位 MOV A,SHIWEI JMP END_SCANSCAN_L2:MOV P2,#10111111B;显示个位 MOV A,GEWEIEND_SCAN:MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A POP PSW POP ACC RETIBIN_BCD:MOV B,#10 DIV AB RETTABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END,99倒计时(实验13)C程序,#include reg52.hbit SecFlag;unsigned char Count4ms;unsigned char disp_buff2;unsigned char disp_cnt;/0.1unsigned char sec;code unsigned char Tab1=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 x88,0 x83,0 xA7,0 xA1,0 x86,0 x8E;/;数码管显示字型表code unsigned char Tab2=0 x7f,0 xbf;void T0_service(void)interrupt 1TH0=(65536-4000)8;TL0=(unsigned char)(65536-4000);Count4ms=Count4ms+1;if(Count4ms=250)Count4ms=0;SecFlag=1;P2=Tabdisp_cnt;/dispP0=Tab1disp_buffdisp_cnt;disp_cnt=disp_cnt+1;if(disp_cnt=2)disp_cnt=0;,void FillDispBuffer(void)disp_buff0=sec/10;disp_buff1=sec%10;void ChangeTime(void)SecFlag=0;sec=sec-1;if(sec=255)sec=99;FillDispBuffer();void main()/initialTMOD=0 x01;TH0=(65536-4000)8;TL0=(unsigned char)(65536-4000);TR0=1;ET0=1;EA=1;sec=99;FillDispBuffer();while(1)if(SecFlag)ChangeTime();,void ChangeTime(void)SecFlag=0;sec=sec-1;if(sec=255)sec=99;FillDispBuffer();void main()/initialTMOD=0 x01;TH0=(65536-4000)8;TL0=(unsigned char)(65536-4000);TR0=1;ET0=1;EA=1;/sec=99;FillDispBuffer();while(1)if(SecFlag)ChangeTime();,实验14 电子时钟设计,6个数码管显示时、分、秒6个按键分别对时、分、秒进行加1、减1设定6按键SW1、SW6分别对应于P2.7P2.2蜂鸣器:P2.0,为0时鸣响;问题:C程序中,是如何控制蜂鸣器的按键时鸣响的?,C程序:变量定义部分,#include reg52.hsbit Key=P33;bit KeyDownFlg;bit SecFlag;unsigned char Count4ms;unsigned char disp_buff6;unsigned char disp_cnt;/0.5unsigned char hour,min,sec;unsigned char Beep_cnt;unsigned char P2_buff;unsigned char KeyBuff;code unsigned char Tab1=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 x88,0 x83,0 xA7,0 xA1,0 x86,0 x8E;/;数码管显示字型表code unsigned char Tab6=0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb;,C程序:定时器0中断服务子程序,void T0_service(void)interrupt 1TH0=(65536-4000)8;TL0=(unsigned char)(65536-4000);Count4ms=Count4ms+1;if(Count4ms=250)Count4ms=0;SecFlag=1;P2_buff=Tabdisp_cnt;if(KeyDownFlg)P2_buff=P2_buff,C程序:主程序部分,void main()/initialdisp_cnt=0;Count4ms=0;hour=0;min=0;sec=0;/TMOD=0 x01;TH0=(65536-4000)8;TL0=(unsigned char)(65536-4000);TR0=1;ET0=1;EA=1;while(1)if(SecFlag)ChangeTime();if(!Key)DealKey();,按键检测及处理,void DealKey(void)KeyBuff=P2;if(KeyDownFlg)return;if(KeyBuff,实验14 电子时钟设计(shizhong1.asm),BUFF_KEY EQU 21H;键盘键 BUFF_LED1 EQU 22H;数码管显示缓存 BUFF_LED2 EQU 23H BUFF_LED3 EQU 24H BUFF_LED4 EQU 25H BUFF_LED5 EQU 26H BUFF_LED6 EQU 27H BUFF_LED_LP EQU 28H;T0键盘显示扫描缓存 HOR EQU 30H;小时值缓存 MIN EQU 31H;分钟值缓存 SEC EQU 32H;秒值缓存 MSequ 33h F_BEEP BIT 01H LED_PORT EQU P0 DIG_PORT EQU P2 KEY_PORT EQU P2 SW1 BIT P2.7 SW2 BIT P2.6 SW3 BIT P2.5 SW4 BIT P2.4 SW5 BIT P2.3 SW6 BIT P2.2 BEEP BIT P2.0 KEY BIT P3.3,主程序:初始化部分,ORG 000H JMP MAIN ORG 00BH JMP T0_INT ORG 100HMAIN:MOV SP,#40H MOV PSW,#00H MOV R0,#7FH;初始化RAM区,CLR_RAM:MOV A,#00H MOV R0,A DJNZ R0,CLR_RAM MOV P1,0FFH;INIT MOV P2,0FFH MOV P0,0FFH MOV P3,0FFH MOV TMOD,#21h MOV TH0,#240;T0=4MS MOV TL0,#96 SETB TR0 SETB ET0 SETB EA,主程序:按键检测与处理(1),WAIT_KEY:JB KEY,$;等候按键!JNB SW1,SW1_OK JNB SW2,SW2_OK JNB SW3,SW3_OK JNB SW4,SW4_OK JNB SW5,SW5_OKA JNB SW6,SW6_OKA JMP WAIT_KEYSW5_OKA:JMP SW5_OK SW6_OKA:JMP SW6_OKSW1_OK:MOV A,HOR CJNE A,#24,SW1_OVER MOV HOR,#00H SETB F_BEEP CLR BEEP LCALL DEL SETB BEEP CLR F_BEEP JMP WAIT_KEYSW1_OVER:INC HOR;时加1 SETB F_BEEP CLR BEEP LCALL DEL SETB BEEP CLR F_BEEP JMP WAIT_KEY,SW2_OK:MOV A,HOR CJNE A,#00,SW2_OVER MOV HOR,#23 SETB F_BEEP CLR BEEP LCALL DEL SETB BEEP CLR F_BEEP JMP WAIT_KEYSW2_OVER:DEC HOR;时减1 SETB F_BEEP CLR BEEP LCALL DEL SETB BEEP CLR F_BEEP JMP WAIT_KEYSW3_OK:MOV A,MIN CJNE A,#59,SW3_OVER MOV MIN,#00H SETB F_BEEP CLR BEEP LCALL DEL SETB BEEP CLR F_BEEP JMP WAIT_KEY,SW3_OVER:INC MIN;分加1 SETB F_BEEP CLR BEEP LCALL DEL SETB BEEP CLR F_BEEP JMP WAIT_KEYSW4_OK:MOV A,MIN CJNE A,#00,SW4_OVER MOV MIN,#59 SETB F_BEEP CLR BEEP LCALL DEL SETB BEEP CLR F_BEEP JMP WAIT_KEYSW4_OVER:DEC MIN;分减1 SETB F_BEEP CLR BEEP LCALL DEL SETB BEEP CLR F_BEEP JMP WAIT_KEYSW5_OK:MOV A,SEC CJNE A,#59,SW5_OVER MOV SEC,#00H SETB F_BEEP CLR BEEP LCALL DEL SETB BEEP CLR F_BEEP JMP WAIT_KEY,SW5_OVER:INC SEC;秒加1 SETB F_BEEP CLR BEEP LCALL DEL SETB BEEP CLR F_BEEP JMP WAIT_KEYSW6_OK:MOV A,SEC CJNE A,#00,SW6_OVER MOV HOR,#59 SETB F_BEEP CLR BEEP LCALL DEL SETB BEEP CLR F_BEEP JMP WAIT_KEYSW6_OVER:DEC SEC;时减1 SETB F_BEEP CLR BEEP LCALL DEL SETB BEEP CLR F_BEEP JMP WAIT_KEYDEL:MOV R5,#02;为演示方便,人为插入的延时DEL01:MOV R6,#200DEL02:MOV R7,#200 DJNZ R7,$DJNZ R6,DEL02 DJNZ R5,DEL01 RET,中断程序:修改时间部分,T0_INT:PUSH ACC PUSH PSW MOV TH0,#240;T0=4MS MOV TL0,#96 INC BUFF_LED_LP MOV A,BUFF_LED_LP CJNE A,#250,CONT_SCAN;250*4MS=1S MOV BUFF_LED_LP,#00H INC SEC MOV A,SEC CJNE A,#60,CONT_SCAN MOV SEC,#00H INC MIN MOV A,MIN CJNE A,#60,CONT_SCAN MOV MIN,#00H INC HOR MOV A,HOR CJNE A,#24,CONT_SCAN MOV HOR,#00H,中断程序:填充显示缓冲区,CONT_SCAN:MOV A,SEC LCALL BIN_BCD MOV BUFF_LED6,B MOV BUFF_LED5,A MOV A,MIN LCALL BIN_BCD MOV BUFF_LED4,B MOV BUFF_LED3,A MOV A,HOR LCALL BIN_BCD MOV BUFF_LED2,B MOV BUFF_LED1,A MOV A,BUFF_LED_LP MOV B,#06 DIV AB MOV A,B RL A MOV DPTR,#TAB_SCAN JMP A+DPTR,中断程序:动态显示,TAB_SCAN:AJMP SCAN_L1 AJMP SCAN_L2 AJMP SCAN_L3 AJMP SCAN_L4 AJMP SCAN_L5 AJMP SCAN_L6SCAN_L1:MOV DIG_PORT,#01111111B MOV A,BUFF_LED1 JMP END_SCANSCAN_L2:MOV DIG_PORT,#10111111B MOV A,BUFF_LED2 JMP END_SCANSCAN_L3:MOV DIG_PORT,#11011111B MOV A,BUFF_LED3 JMP END_SCANSCAN_L4:MOV DIG_PORT,#11101111B MOV A,BUFF_LED4 JMP END_SCAN,SCAN_L5:MOV DIG_PORT,#11110111B MOV A,BUFF_LED5 JMP END_SCANSCAN_L6:MOV DIG_PORT,#11111011B MOV A,BUFF_LED6END_SCAN:MOV DPTR,#TAB_LED MOVC A,A+DPTR MOV LED_PORT,A JNB F_BEEP,EXIT_T0 CLR BEEPEXIT_T0:POP PSW POP ACC RETITAB_LED:DB 0C0H,0F9H,0A4H,0B0H,99H,92H;数码管显示字型表DB 82H,0F8H,80H,90H,88H,83H,0A7HDB 0A1H,86H,8EH,实验19 AD转换器的使用,功能:对输入的电压进行AD转换,并将结果(0255)用数码管进行显示使用ADC0832双通道,8位AD转换器,单+5V供电,Vref=5VAD输入模拟电压范围:05V5V对应:255串行接口(4线)CS(P3.5)CLK(P2.1)DI(P3.6)DO(P3.7),ADC0832接口时序,最大的问题,动态显示资源与AD转换器冲突AD转换器与单片机接口的实现,实验19 AD转换器的使用(ad.c),#include reg52.hsbit ADC_CS=P35;sbit ADC_CLK=P21;sbit ADC_DI=P36;sbit ADC_DO=P37;bit SecFlag;bit F_ADC_CLK;unsigned char Count4ms;unsigned char disp_buff6;unsigned char disp_cnt;/0.5unsigned char hour,min,sec;unsigned char Beep_cnt;unsigned char P2_buff;unsigned char ADData;code unsigned char Tab117=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 x88,0 x83,0 xA7,0 xA1,0 x86,0 x8E,0 xff;/;数码管显示字型表code unsigned char Tab6=0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb;,定时器0中断服务函数,void T0_service(void)interrupt 1TH0=(65536-4000)8;TL0=(unsigned char)(65536-4000);Count4ms=Count4ms+1;if(Count4ms=50)Count4ms=0;SecFlag=1;P2_buff=Tabdisp_cnt;if(!F_ADC_CLK)P2_buff=P2_buff,完成定时(生成1s时间,主函数中每秒进行一次AD转换)扫描数码管,主函数与其他函数,void main()/initialdisp_cnt=0;Count4ms=0;hour=0;min=0;sec=0;/TMOD=0 x01;TH0=(65536-4000)8;TL0=(unsigned char)(65536-4000);TR0=1;ET0=1;EA=1;while(1)if(SecFlag)SecFlag=0;AD();FillDispBuffer();,void FillDispBuffer(void)disp_buff0=16;/blankdisp_buff1=16;disp_buff2=16;disp_buff3=ADData/100;disp_buff4=(ADData%100)/10;disp_buff5=ADData%10;void pulse(void)unsigned char i;F_ADC_CLK=1;ADC_CLK=1;i=2;while(i-0);F_ADC_CLK=0;ADC_CLK=0;i=2;while(i-0);,AD转换函数,void AD(void)unsigned char ret_dat;unsigned char i;ret_dat=0;ADC_CS=0;i=5;ADC_CS=1;while(i-0);ADC_CS=0;ADC_DI=1;pulse();pulse();pulse();for(i=0;i8;i+)ret_dat=ret_dat1;pulse();if(ADC_DO)ret_dat=ret_dat|0 x01;,ADData=ret_dat;if(ret_dat,

    注意事项

    本文(单片机在线系统AY-MPU89S51E课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开