大连海事大学单片机下实验程序总结-吴颖晶.doc_第1页
大连海事大学单片机下实验程序总结-吴颖晶.doc_第2页
大连海事大学单片机下实验程序总结-吴颖晶.doc_第3页
大连海事大学单片机下实验程序总结-吴颖晶.doc_第4页
大连海事大学单片机下实验程序总结-吴颖晶.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

讲义第三章实验十1、编写程序,将8XX51单片机的内部数据存储器20H单元和35H单元的数据相乘,结果存到外部数据存储器中。#includeint xdata *c;main()c=0x0000;DBYTE0x20=0x02;DBYTE0x35=0x03;*c=DBYTE0x20*DBYTE0x35;while(1);2、P1口接8个发光二极管LED,编程实现8个LED灯依次点亮0.5秒钟,如此循环。设fosc=12MHz。(定时器采用中断方式编程)#include#include#define uchar unsigned char#define uint unsigned intuchar i;uchar a=10;timer0()interrupt 1 using 1TH0=-50000/256;TL0=-5000%256;a-;void main()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单元开始存放的压缩BCD码数转换为二进制数,并存入30H为首址的单元,BCD码的长度存放在20H单元中。(没有)讲义第四章实验二通过ADC0809实现对电位器输出的模拟电压的采集,并将采集到的数字量显示到二极管上。#includereg51.h#includeabsacc.h#define AD0809 XBYTE0x7000main()unsigned char i, dat=0xff;while(1)AD0809=0x00;/启动AD0809for(i=0;i200;i+);/延时等待dat=AD0809;/读取A/D转换的结果P1=dat;/送P1显示讲义第四章实验三利用DAC0832输出模拟电压信号,并用运算放大器电路反向后进行观察。#include#include#define da0832 XBYTE0x7FFFmain()unsigned char i,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口输出显示。(实验代码丢失,以下仅供参考)#include void main()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(实验代码丢失,以下仅供参考)#include#define uchar unsigned char void delay(T)uchar i,j;for(i=0;iT;i+)for(j=0;j1;break; case 0XF7:value1;break;P2=value;.讲义第四章实验六1、 设计接口、编写程序,实现点阵LED的静态显示。(1)利用点阵LED的任意一行,间隔点亮LED(如01010101或10101010);#include void main()while(1)P1= 0XAA;P0 = 0x01;(2)利用点阵LED的一行,实现跑马灯的功能,LED从左到右轮流、循环显示。#include #include void delay()unsigned char i,j;for(i=0;i255;i+)for(j=0;j255;j+);void main()P1= 0XAA;P0 = 0x00;while(1)P1 = _crol_(P1,1);delay();2、编写程序,实现点阵LED的动态显示:在点阵LED上显示A字符。#include unsigned char tab0=0xfe,0xfd,0xfb; unsigned char tab1=0xdf,0x8f,0x77;void delay()unsigned char i,j;for(i=0;i70;i+)for(j=0;j50;j+);void main()unsigned char i=0;for(i=0;i3;i+)P0=tab0i;P1=tab1i;delay();大实验:直流电机的调速控制系统(第四章实验十一)#include #include #define uchar unsigned char #define V_TH0 0XFF #define V_TL0 0XD8 #define V_TMOD 0X01sbit P1_0=P10;sbit P1_1=P11;sbit Key_UP=P12;sbit Key_DOWN=P13;sbit Key_STOP=P14; sbit P1_5=P15;sbit P1_6=P16;sbit P1_7=P17;void init_sys(void); /*系统初始化函数*/ void Delay5Ms(void); uchar KeyV; uchar TempKeyV;uchar flag=0;unsigned char ZDJ_A,ZDJ_B; void main (void) ZDJ_A=40; /*占空比初始值设定*/ ZDJ_B=70; /*占空比初始值设定*/ init_sys(); while(1)/*对按键的检测*/P1_0=0; P1_1=0; if (Key_UP)KeyV = 1; if (Key_DOWN)KeyV = 2;if (Key_STOP)KeyV = 3; if (KeyV!= 0) Delay5Ms(); if (Key_UP) TempKeyV = 1; if (Key_DOWN) TempKeyV = 2; if (Key_STOP) TempKeyV = 3; /*改变速度*/ if (P1_5=0) /如果按了+键,增加占空比 Delay5Ms(); if (P1_5=0) ZDJ_A+; ZDJ_B=100-ZDJ_A; if (P1_6=0) /如果按了-键,减少占空比 Delay5Ms(); if (P1_6=0) ZDJ_A-; ZDJ_B=100-ZDJ_A; if (P1_7=0)Delay5Ms(); if (P1_7=0) if(ZDJ_A=0)flag=1;if(flag=0)ZDJ_A+; ZDJ_B=100-ZDJ_A; else ZDJ_A-; ZDJ_B=100-ZDJ_A; /* /*函数功能:对系统进行初始化,包括定时器初始化和变量初始化*/ /*/void init_sys(void) /*系统初始化函数*/ /*定时器初始化*/ TMOD=V_TMOD; TH0=V_TH0; TL0=V_TL0; TR0=1; ET0=1; EA=1; /* /*函数功能:延时 */ /*/ void Delay5Ms(void) unsigned int TempCyc = 1000; while(TempCyc-); /* /*函数功能:中断函数 */ /*/ void timer0(void) interrupt 1 using 2 static uchar click=0; /*中断次数计数器变量*/ TH0=V_TH0; /*恢复定时器初始值*/ TL0=V_TL0; +click; if (click=100) click=0;if (KeyV=TempKeyV) if (KeyV = 1)if (click=ZDJ_A) /*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/ P1_0=0; else P1_0=1; if (click=ZD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论