欢迎来到天天文库
浏览记录
ID:55810073
大小:28.50 KB
页数:11页
时间:2020-06-03
《大连海事大单片机(下)实验程序总结——吴颖晶.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、讲义第三章实验十1、编写程序,将8XX51单片机的内部数据存储器20H单元和35H单元的数据相乘,结果存到外部数据存储器中。#includeintxdata*c;main(){c=0x0000;DBYTE[0x20]=0x02;DBYTE[0x35]=0x03;*c=DBYTE[0x20]*DBYTE[0x35];while(1);}2、P1口接8个发光二极管LED,编程实现8个LED灯依次点亮0.5秒钟,如此循环。设fosc=12MHz。(定时器采用中断方式编程)#include#include2、ns.h>#defineucharunsignedchar#defineuintunsignedintuchari;uchara=10;timer0()interrupt1using1{TH0=-50000/256;TL0=-5000%256;a--;}voidmain(){while(1){TMOD=1;P1=0xfe;TH0=-50000/256;TL0=-5000%256;EA=1;ET0=1;TR0=1;while(1)if(a==0){P1=_crol_(P1,1);a=10;}}}3、(选作)将内部RAM从21H单元开始存放的压缩BC3、D码数转换为二进制数,并存入30H为首址的单元,BCD码的长度存放在20H单元中。(没有)讲义第四章实验二通过ADC0809实现对电位器输出的模拟电压的采集,并将采集到的数字量显示到二极管上。#include"reg51.h"#include"absacc.h"#defineAD0809XBYTE[0x7000]main(){unsignedchari,dat=0xff;while(1){AD0809=0x00;//启动AD0809for(i=0;i<200;i++);//延时等待dat=AD0809;//读取A/D转换的结果P1=dat;//送4、P1显示}}讲义第四章实验三利用DAC0832输出模拟电压信号,并用运算放大器电路反向后进行观察。#include #include #defineda0832XBYTE[0x7FFF] main() {unsignedchari,j; while(1){for(i=0;i<=255;i++){da0832=i;/*启动转换*/ for(j=0;j<=255;j++);/*延时*/}}}讲义第四章实验七(题目有改动)1、P1接8个开关,P2接8个LED,单片机读入P1状态,通过串行方式1或2自发自收,从P2口5、输出显示。(实验代码丢失,以下仅供参考)#includevoidmain(){TMOD=0x20;TH1=0xCC;TL1=0xCC;TR1=1;SCON=0x50;//方式二while(1){TI=0;P1=0xFE;SBUF=0xfe;while(RI!=1);RI=0;P1=SUBF;while(TI!=1);}}2、利用实验仪D1区完成按键的动作判断、按键识别和功能定义:对两个以上的按键进行上述操作。具体要求:–4个按键分别对应以下四个操作–(1)显示值加1–(2)显示值减1–(3)显示值乘2–(4)显示值除2(实验代码6、丢失,以下仅供参考)#include#defineucharunsignedcharvoiddelay(T){uchari,j;for(i=0;i7、avalue=0;uchardataKEY;while(1){KEY=key();switch(KEY){case0xFE:value++;break;case0xFD:value--;break;case0XFB:value>>1;break;case0XF7:value<<1;break;}P2=value;}}.讲义第四章实验六1、设计接口、编写程序,实现点阵LED的静态显示。(1)利用点阵LED的任意一行,间隔点亮LED(如01010101或10101010);#includevoidmain(){while(1){P18、=0XAA;P0=0x01;}}(2)利用点阵LED的一行,实现跑马灯的功能,LED从左到右轮流、循环显示。#include
2、ns.h>#defineucharunsignedchar#defineuintunsignedintuchari;uchara=10;timer0()interrupt1using1{TH0=-50000/256;TL0=-5000%256;a--;}voidmain(){while(1){TMOD=1;P1=0xfe;TH0=-50000/256;TL0=-5000%256;EA=1;ET0=1;TR0=1;while(1)if(a==0){P1=_crol_(P1,1);a=10;}}}3、(选作)将内部RAM从21H单元开始存放的压缩BC
3、D码数转换为二进制数,并存入30H为首址的单元,BCD码的长度存放在20H单元中。(没有)讲义第四章实验二通过ADC0809实现对电位器输出的模拟电压的采集,并将采集到的数字量显示到二极管上。#include"reg51.h"#include"absacc.h"#defineAD0809XBYTE[0x7000]main(){unsignedchari,dat=0xff;while(1){AD0809=0x00;//启动AD0809for(i=0;i<200;i++);//延时等待dat=AD0809;//读取A/D转换的结果P1=dat;//送
4、P1显示}}讲义第四章实验三利用DAC0832输出模拟电压信号,并用运算放大器电路反向后进行观察。#include #include #defineda0832XBYTE[0x7FFF] main() {unsignedchari,j; while(1){for(i=0;i<=255;i++){da0832=i;/*启动转换*/ for(j=0;j<=255;j++);/*延时*/}}}讲义第四章实验七(题目有改动)1、P1接8个开关,P2接8个LED,单片机读入P1状态,通过串行方式1或2自发自收,从P2口
5、输出显示。(实验代码丢失,以下仅供参考)#includevoidmain(){TMOD=0x20;TH1=0xCC;TL1=0xCC;TR1=1;SCON=0x50;//方式二while(1){TI=0;P1=0xFE;SBUF=0xfe;while(RI!=1);RI=0;P1=SUBF;while(TI!=1);}}2、利用实验仪D1区完成按键的动作判断、按键识别和功能定义:对两个以上的按键进行上述操作。具体要求:–4个按键分别对应以下四个操作–(1)显示值加1–(2)显示值减1–(3)显示值乘2–(4)显示值除2(实验代码
6、丢失,以下仅供参考)#include#defineucharunsignedcharvoiddelay(T){uchari,j;for(i=0;i7、avalue=0;uchardataKEY;while(1){KEY=key();switch(KEY){case0xFE:value++;break;case0xFD:value--;break;case0XFB:value>>1;break;case0XF7:value<<1;break;}P2=value;}}.讲义第四章实验六1、设计接口、编写程序,实现点阵LED的静态显示。(1)利用点阵LED的任意一行,间隔点亮LED(如01010101或10101010);#includevoidmain(){while(1){P18、=0XAA;P0=0x01;}}(2)利用点阵LED的一行,实现跑马灯的功能,LED从左到右轮流、循环显示。#include
7、avalue=0;uchardataKEY;while(1){KEY=key();switch(KEY){case0xFE:value++;break;case0xFD:value--;break;case0XFB:value>>1;break;case0XF7:value<<1;break;}P2=value;}}.讲义第四章实验六1、设计接口、编写程序,实现点阵LED的静态显示。(1)利用点阵LED的任意一行,间隔点亮LED(如01010101或10101010);#includevoidmain(){while(1){P1
8、=0XAA;P0=0x01;}}(2)利用点阵LED的一行,实现跑马灯的功能,LED从左到右轮流、循环显示。#include
此文档下载收益归作者所有