




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MCS51单片机原实验指导书淮阴师范学院实验要 51单片机集成开发环境MedWinV2.39简 STC单片机STC-ISP的使 实验一LED流水 实验二用一位数码管循环显示数字 实验三LED数码管的动态驱 实验四用单片机自动演奏乐 实验五电子 实验六单片机与PC机的串行通 实验七I2C串行flash器的读
RS232接PC
51MedWinV2.39安从htt .cn免费MedWinV2.39集成开发环境安装程序压缩包,将其后,按照默认路径安装到C:\Manley\PmedWin文件夹。设每次启动MedWin会出现框,询问使用仿真器还是模拟仿真,应点击[模拟仿真]设置仿真器12设置工作MedWin集成开发环境默认的工作为C:\MedWin\PMedWin,建议根据需要建立自己的工作。注意:不得使用长文件名或长名!设置编译器将C语言编译器C51(文件夹)拷贝到C:\MedWin文件夹下,点击[设置]—[设置编译工具]命令,打开“设置编译工具”框,使用汇编语言时选择第一行,使用C使现“添加项目文件”框,输入源代码文件名,如T1.C(或T1.ASM,单击[打开]按钮,出打开项目点击[项目管理]—[打开项目]命令,点击项目文件名(项目文件后缀编译点击[项目管理]—[编译/汇编]命令,启动编译器对源文件进行语法检查并编生成目标代码点击[项目管理]—[输出Binary文件]命令,生成BIN文件,用工 STC单片机STC-ISP的使该界面如下图所示STC89C52RC第二步,点击[OpenFile]BINHEX第五步,程序。验板的电源开关处于关闭状态,然后,点击[]按钮,再打开实验板电源开关,此时,将自动完成程序,完毕,实验板上的单片机立即开始运行目前,MCS51内核单片机中STC89C5X(宏晶)和AT89S5X(ATMEL)两 支 LED一、实验目MedWin学习STC单片机STC-ISP的使用8(LED)P08(LED)P074LS2448LED0-LED7。当单片机的引脚输出为低电平时发光二极管80.5三、实验电路连74LS24488U0STC89C52
174LS24
JMP2
11P00P0P00P02 P04 P068 18 0161412 P07P05P03P019 0752Y43001011.0592
四、实验说1、P0P0“1“1据是不正确的。输出时需要接上拉电阻,P0口没有上拉电阻,若将电路设计为低有效,高无效,则无需再外接上拉电阻。2、编写一个延时子程序,延时时间约0.5秒,采用三重循环实现,汇编语言程序DELAY:MOV R7,#198 R6,#50 R5,#23DJNZR5,$DJNZR6,DEL2DJNZR7,DEL1查指令表可知执行MOV1DJNZ2[1+(1+2×23)×50]×198×1.085μs≈500mS3、若使用Cfor500mS。voiddelay(void){inti,j;{_nop_();}4ORG0000HLJMPMAINORG CLRP1.5 P1.5=0,关闭蜂鸣器。MOVA,#0FEH MOVP0,ALCALLDELAYRLASJMPLOP5、流水灯的C#include<reg51.h>#include<stdio.h>#include<intrins.h>voidmain{unsignedchar P1.5=0,关闭蜂鸣器。while }}五、LEDLED实验二用一位数码管循环显示数字一、实验目LED二、实验内0.5LED三、实验电路连592MHz。JMP02-3,JMP11-2实验板上与本实验有关的硬件如下图所示。8LED(S0-S7)上同名的引脚连接在一起,由单片机P0口通过74HC244驱动(段控制),R12-R19为限流电阻。单片机P2口的8个引脚分别通过三极管Q0-Q7控制8LED数码管的公共端(位控制单片592MHz。JMP02-3,JMP11-2
四、实验说1、P0口和P2都是准双向口,输出时需要接上拉电阻。P0没有上拉电阻,P2口若需要在最右边(S0)显示数字“52CHP0P2.0置高,P2.1-P2.7dpecgbfa010110111100010100210101101310011101400011110EB610111011700010101810111111910011111A00111111B10111010C10100011D10111100E10101011F001010113LED0~9C#include<reg51.h>#include<stdio.h>#include<intrins.h>#defineucharunsignedconstucharcodetab[]={0x48,0xeb,0x52,0x62,0xe1,0x64,0x44,0xea,0x40,0x60};voiddelay(void){inti,j;{_nop_();}void{uchar if(i==10)}}4LED0~9ORGLJMPORG MOVP1,#0DFHMOVP2,#01HMOV MOVMOVDPTR,#TABMOVCA,@A+DPTRMOVP0,ALCALLDELAYINCR1MOVCJNEA,#10,LOOPCLRAMOVR1,ASJMP MOVR7,#198 MOVR6,#50 MOVR5,#23DJNZR5,$DJNZR6,DEL2DJNZR7,DEL1 DB48H,0EBH,52H,62H,0E1H,64H,44H,0EAH,40H,60H五、分别写出六个字母(用于显示十六进制数)的段代码,编写程序,0-F8LEDLED一、实验目LED二、实验内编写程序,使实验板上的8个LED数码管稳定显示8000000000.51三、实验电路连四、实验说,在实验二中已经能够让某一个LED数码管显示需要的数字比如选让第一个LED显示“1隔一较短的时间(如2.5毫秒)后关闭第一个LED,让第二个LED显示“2如此周而复始,让8个LED依次显1、2、3、4、5、6、7、8,就能看到8个LED上稳定地显示8个不同的数字。当然,每个瞬间只有一个LED被点亮,大家亮的时间相同,均为2.5毫秒,8个LED数码管点亮一遍需要20毫秒,一秒钟各亮50次,所以看上去不会有闪烁感,但亮度只LED,2.5LED,;段扫描输出,低有效(P2.4-81112.5ms;主程序,转初始化程02.5ms 0 CLRP1.5 MOVR1,#8MOV MOV@R0,A INCR0DJNZLED0,2.5ms(11.0592MHz;65536-(2.5ms/1.085us)=65536-0$02.5ms15 ;DPTR MOVC MOV LEDRR;扫描指针 CJNEA,#200,EN CJNE DISP_BUF+7,#0;进位则个位清零 CJNEA,#10,EN DISP_BUF+6,#0;进位则十位清零 CJNEA,#10,EN DISP_BUF+5,#0;进位则百位清零 CJNEA,#10,EN DISP_BUF+4,#0;进位则千位清零 CJNEA,#10,EN DISP_BUF+3,#0 CJNE DISP_BUF+2,#0;进位则十万位清零 CJNEA,#10,EN DISP_BUF+1,#0;进位则百万位清零 CJNEA,#10,EN DISP_BUF+0,#0EN:POPPSWPOPACC CODE_TAB:DB C#include#defineucharunsignedconstucharcodetab1[]={0x48,0xeb,0x52,0x62,0xe1,0x64,0x44,0xea,0x40,0x60};constucharcodetab2[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};ucharbuf[8]={0,0,0,0,0,0,0,0};//显示缓冲区,开机先显示void{EA= 01(16 0 }voidtimeint(void)interrupt10{staticuchark,count;chari; P0 P2 2002.5msX 0.5for(i=7;i>=0;i-- if(buf[i]==10)buf[i]=0;/10else}}}五、8LED00-00-001,前两位代表时,中间两位代表实验四用单片机自动演奏乐曲一、实验目89C51二、二、实验内01,将歌曲的音调和节拍编成一个表,用音调作为定时器的初值,用节拍控制发音时间,就可以三、实验电路连90R8 P1四、实验说T11.0592MHz65536-1音阶(C1234567频率周期自动演奏《东方红》乐曲的C#include#defineucharunsignedchar#defineuint unsignedintsbitP15=P1^5;codeuintcyc[]={3600,3200,2880,2702,2400,2158,1920};/1-7数codeuchartone[]={15,15,16,12,11,11,06,12,15,15,16,21,16,15,11,11,06,12,15,12,11,7,6,5,15,12,13,12,11,11,13,12,11,12,11,7,6,5,0};/codeuchartime[]={8,4,4,16,8,4,4,16,8,8,4,4,4,4,8,4,8,8,4,4,8,4,4,4,0};//节拍表(81 voidcntint0(void)interrupt10{ //P1.5}voidcntint1(void)interrupt31{ 0,}void{uchari,a,t;uintb; if(t==0)break; if(t<10)b=b*2;if(t>20)b=b/2;H0=(65536-L0=(65536- if(a!=255) //255} goto }五、康定13,15,16,16,15,16,13,12,12,13,15,16,16,15,16,13,13,8,8,8,4,4,8,8,12,4,8,8,8,4,4,8,16,8,8,8,8,4,16,13,12,12,15,13,12,13,12,11, 8,12, 8,8,4,4,4, 8, 12, 16,15,13,12,13,12,11,12,6, 8,8,8,4,4,4,4,8,16, 附:自动演奏乐曲《八月桂花启遍地开》的汇编语言参考程序ORGLJMP
ORGINC20H MOVTH0,#0DCHMOV ;11.0592MHz10A;ACCMOVCJZ00H,CJNELJMPMOV;R6=18HINC;DPTRMOVMOVCMOV;R7=30HSETBCPL;P1.5MOVMOVLCALLMOVCJNE;中断计数器(20H)=R7MOVINCDPTRLJMPMUSIC1 100CLRMOV MOVR3,#0FFH LCALLDELDJNZR2,MUSIC4INCDPTRLJMP MOV 1 MOVLCALLDJNZR2,MUSIC6LJMPMUSIC0 MOV DJNZR4,DEL4DJNZR3,DEL3 DB18H,30H,1CH,10H,20H,40H,1CH,10H,18H,10H,20H,10H,1CH,10H,18H,40HDB1CH,20H,20H,20H,1CH,20H,18H,20H,20H,80H,0FFH,20H,30H,1CH,10H,18HDB20H,15H,20H,1CH,20H,20H,20H,26H,40H,20H,20H,2BH,20H,26H,20H,20HDB20H,30H,80H,0FFH,20H,20H,1CH,10H,18H,10H,20H,20H,26H,20H,2BH,20HDB30H,20H,2BH,40H,20H,20H,1CH,10H,18H,10H,20H,20H,26H,20H,2BH,20HDB30H,20H,2BH,40H,20H,30H,1CH,10H,18H,20H,15H,20H,1CH,20H,20H,20HDB26H,40H,20H,20H,2BH,20H,26H,20H,20H,20H,30H,80H,20H,30H,1CH,10HDB20H,10H,1CH,10H,20H,20H,26H,20H,2BH,20H,30H,20H,2BH,40H,20H,15HDB1FH,05H,20H,10H,1CH,10H,20H,20H,26H,20H,2BH,20H,30H,20H,2BH,40HDB20H,30H,1CH,10H,18H,20H,15H,20H,1CH,20H,20H,20H,26H,40H,20H,20HDB2BH,20H,26H,20H,20H,20H,30H,30H,20H,30H,1CH,10H,18H,40H,1CH,20HDB20H,20H,26H,40H,13H,60H,18H,20H,15H,40H,13H,40H,18H,80H,00H实验五电子钟一实验五电子钟一、实验目1.2.3.二、实验内在实验板上编写程序,实验电子钟功能。时间显示格式为HH-MM-SS,用按键可以调整当三、实验电路连JMP4P3P1P1P1P1该电子钟在上电或复位后时间从13时59分50秒开始,若要使电子钟断电后照常行走,为了降低使用成本及减小体积,可采用两节5号电池,其满电量时电压为3伏,89C51单片机的正常工作电压范围为4.5~5.5伏,无法使用,可选用89C2051单片机(电压范围2.7~6伏),最好使用工作电压更低的单片机(如1.8伏)。LED电子钟C(含按键检测、调整时间、整点提示功能#include<reg51.h>#include<stdio.h>#include<intrins.h>typedefunsignedcharuchar;typedefunsignedint typedefunsignedlong#defineK00x01#defineK10x02#defineK20x04#defineK3ucharsec=50,min=59,hour=13;ucharkey_new;uintuintbitkey_on,key_again;bitNewTime=0;sbitvoidkeyscan();voiddelay(uintt);void{TH0=(65536- //设置定时器初值,2.5msTR0=1;ET0=1;EA=1; caseK0:sec=0;min++;min%=60;count=0;caseK1:sec=0;hour++;hour%=24;count=0;break;caseK2:sec=0;hour=0;min=0;count=0;break;caseK3:sec=0;hour=23;min=59;count=0;}} P15=1;delay(80);P15=0;else P15=1;delay(250);P15=0;}}}void{uchardatakey_temp;staticuchardatakeylong; {key_new=key_temp;keylong=0;key_on=0;key_again=0;}elseif(key_new!=key_temp){key_new=key_temp;key_on=0;key_again=0;keylong=1;}elseif(keylong<4) {key_on=0;key_again=0;keylong++;}elseif(keylong==4){key_on=1;key_again=1;keylong++;}elseif(keylong>200){key_on=0;key_again=1;keylong=170;} {keylong++;}}voidtimer_0(void)interrupt{codeucharTAB1[]={0x48,0xeb,0x52,0x62,0xe1,0x64,0x44,0xea,0x40,0x60};codeucharTAB2[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};staticuchardsp[8];staticucharn;TH0=(65536- //设置定时器初值,2.5msTL0=(65536- ++sec;count=0; if(hour==24){hour=0;}}n++;P0=dsp[n];if((count%10)==0)}voiddelay(uint{EA=delay_time=EA=}五、给电子钟加上打铃时间调节功能。如何实现多点(4)附:电子钟汇编参考程序,不含按键检测和整点提示功能;段扫描输出,低有效(P2.4- DISP_BUF:DS SCN_INX:DS SCN_COD:DS ;主程序,转初始化程 0 2.5ms 0 CLRP1.5 MOV LED 0, ;计数初值,每次2.5ms(11.0592MHz晶振) $002.5ms 15;DPTRLED RRA ;扫描指针 22001 CJNEA,#200,EN INCCNT+1 CJNEA,#2,ENMOV CODE_TAB:DB RS232RS232接PC6273 95 2T1OT1IT2I15 10 9 四、实验说51进行串行通讯信要满足一定的条件,比如电脑的串口是RS232电平(-5~-15V为1,+5~+15V为0),而单片机的串口是TTL电平(大于+2.4V为1,小于-0.7V为0),两者之间必须有一个电平转换电路,上图中用MAX232E集成电路实现RS232电平与TTL电平的相互转换。为了能够在PC机上看到单片机发出的数据,我们必须借助一个Windows软件进行观察, 32或Windows的超级终端。单片机与PC机的串行通信C51参考程序如下#include#include<stdio.h>实验六PC一、实验目学习单片机串口的设置学习TTL-RS232信号的转换学习单片机串行通信程序设计二、实验内机发送修改时间的指令,实现时间的调整,指令格式为TIMEHH:MM:SS三、机发送修改时间的指令,实现时间的调整,指令格式为TIMEHH:MM:SS三、实验电路连本实验有关的硬件见下图typedefunsignedcharuchar;typedefunsignedint typedefunsignedlong#defineK00x01#defineK10x02#defineK20x04#defineK3ucharsec=50,min=59,hour=13;ucharkey_new;uintuintbitkey_on,key_again;bitNewTime=0;sbitvoidkeyscan();voiddelay(uintt);voidSentTime();{01,12TH0=(65536-0,2.5msTL0=(65536-1,TR0=1;ET0=1; IP=0; {caseK0:sec=0;min++;min%=60;count=0;break;caseK1:sec=0;hour++;hour%=24;count=0;break;caseK2:sec=0;hour=0;min=0;count=0;break;caseK3:sec=0;hour=23;min=59;count=0;}} P15=1;delay(80);P15=0;else P15=1;delay(250);P15=0;}}}void{uchardatakey_temp;staticuchardatakeylong; {key_new=key_temp;keylong=0;key_on=0;key_again=0;}elseif(key_new!=key_temp){key_new=key_temp;key_on=0;key_again=0;keylong=1;}elseif(keylong<4) {key_on=0;key_again=0;keylong++;}elseif(keylong==4){key_on=1;key_again=1;keylong++;}elseif(keylong>200){key_on=0;key_again=1;keylong=170;} {keylong++;}}voidtimer_0(void)interrupt{codeucharTAB1[]={0x48,0xeb,0x52,0x62,0xe1,0x64,0x44,0xea,0x40,0x60};codeucharTAB2[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};staticucharstaticucharTH0=(65536- //设置定时器初值,2.5msTL0=(65536- ++sec;count=0; if(hour==24){hour=0;}}n++;P0=dsp[n];if((count%10)==0)}voiddelay(uint{delay_time=0;}voidints(void)interrupt{staticucharconstucharcodetab[]="TIME00:00:00";ucharch,t[12];if(RI==0){TI=0;return;};if((tab[j]=='0')||((tab[j]!='0')&&(ch==tab[j]))){t[j]=ch;j++;} hour=(t[5]-'0')*10+(t[6]-min=(t[8]-'0')*10+(t[9]-sec=(t[11]-'0')*10+(t[12]-'0');}}void{}五、PCPCSEND1PCSEND0。点(4)打铃时间。实实验七I2C串行flash存储器的读1.学习I2C线串行flash储器24C01读写操作2.学习多个C51序文件的编写和编译方实验板上有1片串行flash存储器24C01,24C01地址为0x00-0x02的30-2存储到24C01地址为0x00-0x02的3时间继续计时。本实验有关的电路连接见右图M2417 89C51单片机没有内部闪存,若有用户输入的数据需掉电保持,则要加外部闪存,24CXX因而被广泛使用。89C51I2CI2C1.24C01C#inclu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网红特色饮品区域代理权合作协议书
- 服装品牌区域代理销售合同及品牌授权及售后服务体系协议
- 抖音团购运营系统培训及团队建设协议
- 2025年中国半导体高温计市场前景预测及投资价值评估分析报告
- 短视频平台抖音独家创意火花保险代理合作框架协议
- 特殊原因离婚双方共同财产分割合同
- 影视动画色彩管理软件租赁与升级服务协议
- 快递公司末端网点区域承包合同
- 教育培训机构品牌合作与市场推广合同
- 灵活用工平台企业员工离职与转正服务合同
- 银行全国科技周活动宣传总结
- 景观园林设计收费的标准
- SCL-90量表详细
- 公路工程项目环境保护措施及其可行性论证
- 普通车床的主轴箱设计机械外文文献翻译、中英文翻译、外文翻译
- 神经外科各种引流管的护理精品课件
- 隧道CRD法施工工法
- 脑损伤病情观察意识状态的分级
- 请假通用员工请假单模板
- 八年级音乐下册 第7单元《当兵的人》好男儿就是要当兵课件1 湘教版
- 裤类统一单价表-服装工序工价表
评论
0/150
提交评论