单片机教学实验内容答案.doc

上传人:可**** 文档编号:32571814 上传时间:2022-08-09 格式:DOC 页数:15 大小:153KB
返回 下载 相关 举报
单片机教学实验内容答案.doc_第1页
第1页 / 共15页
单片机教学实验内容答案.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《单片机教学实验内容答案.doc》由会员分享,可在线阅读,更多相关《单片机教学实验内容答案.doc(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、- -1.数据传送实验要求: 将片从30H开场连续7个单元的容送入从40H开场的地址单元中。先在30H36H中送初值#includevoid main()unsigned char data i,*d1,*d2;d1=0x30;d2=0x40;*d1=0x10;*(d1+1)=0x11;*(d1+2)=0x22;*(d1+3)=0x45;*(d1+4)=0x30;*(d1+5)=0x32;*(d1+6)=0x21;for(i=0;i7;i+)*(d2+i)=*(d1+i);2.排序实验要求:将片从30H单元开场的10个无符号数,按由小到大的顺序排列。先在30H39H中送排序初值#include

2、void main()unsigned char data *p,i,j,d;p=0x30;*(p+0)=0x21;*(p+1)=0x11;*(p+2)=0x31;*(p+3)=0x02;*(p+4)=0x22;*(p+5)=0x42;*(p+6)=0x32;*(p+7)=0x41;*(p+8)=0x05;*(p+9)=0x22;for(i=0;i9;i+)for(j=0;j*(p+j+1)d=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=d ;- word.zl- -3.并行接口实验要求:使用P1口控制LED1LED8进展把戏显示。显示顺序规律为:18个LED依次左移单个点

3、亮。28个LED依次左移逐个点亮。38个LED依次左移逐个熄灭,然后再从1进展循环,中间延迟时间1s。#include#define uchar unsigned char /在程序中用uchar替代unsigned char /目的在于减少代码输入量#define uint unsigned intvoid delay(uint); /定义延时函数void LeftMovLED(void); /定义向左移运点亮LED的函数/*主函数*void main(void) while(1) /死循环 LeftMovLED(); /调用LeftMovLED实现左移点亮LED功能 void LeftMo

4、vLED(void) uchar i,temp; /定义两个变量 temp=0x01; /temp赋初值 for(i=0;i8;i+) /下面的代码循环8次 P1=temp; /将temp的值赋给PORTD点亮LED temp=temp1&0xfe; /将temp左移一位后将最后一位清零。 delay(1000); /调用延时函数,延时时间大约1S temp=0x01; /temp赋初值 for(i=0;i8;i+) /下面的代码循环8次 P1=temp; /将temp的值赋给PORTD点亮LED temp=temp1&0xfe; /将temp左移一位后将最后一位清零。 temp+; dela

5、y(1000); /调用延时函数,延时时间大约1S for(i=0;i8;i+) /下面的代码循环8次 P1=temp; /将temp的值赋给PORTD点亮LED temp=temp1&0xfe; /将temp左移一位后将最后一位清零。 delay(1000); /调用延时函数,延时时间大约1S /*延时函数*void delay(uint x) uchar i; /定义一个循环变量 while(x-) /循环执行在下代码x次,x在呼叫此函数处赋值。 for(i=0;i165;i+) /循环执行以下代码165次大约1ms continue;- word.zl- -4.定时器/计数器实验要求:使

6、用定时/计数器作为延时控制,在两灯P0.0和P0.1之间按1s互相闪烁。#include #define uchar unsigned charsbit LED=P00; sbit LED1=P01;uchar time;void InitTimer0(void) LED=1;LED1=0; TMOD = 0x01; /定时器0,工作方式1 TH0 = 0x3c; TL0 = 0xb0; /50ms中断一次 EA = 1; ET0 = 1; TR0 = 1;void main(void) InitTimer0(); while(1); / 分号,表示在此一直循环执行,等待中断。相当于汇编的 A

7、JMP $void Timer0Interrupt(void) interrupt 1 TH0 = 0x3c; TL0 = 0xb0; time+; if(time=20) /中断20次,1s time=0; LED=!LED; /P1.0上的LED1s亮灭一次 LED1=!LED1; - word.zl- -6.LED显示器要求:设计一个59秒计时器,使用两位共阳极LED数码管将其显示出来。实验电路图要求自己设计,可参考书上例子或上网查询。#include#define uchar unsigned char#define uint unsigned int unsigned char co

8、de table = 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,; void delay (uint xms)/延时函数 uint i,j; for(i=xms;i0;i-) for(j=110;j0;j-);void main() uchar key,a;a=0;while(a5)key=0;while(key10) delay(1000); switch(key) case 0:P2=table0;break;/0 按下相应的键显示相对应的码值 case 1:P2=table1;break;/1 case 2:P2=ta

9、ble2;break;/2 case 3:P2=table3;break;/3 case 4:P2=table4;break;/4 case 5:P2=table5;break;/5 case 6:P2=table6;break;/6 case 7:P2=table7;break;/7 case 8:P2=table8;break;/8 case 9:P2=table9;break;/9 switch(a) case 0:P1=table0;break;/0 按下相应的键显示相对应的码值 case 1:P1=table1;break;/1 case 2:P1=table2;break;/2 case 3:P1=table3;break;/3 case 4:P1=table4;break;/4 case 5:P1=table5;break;/5 if(key=9) a+; key+; - word.zl

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

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com