欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机C语言编写程序实验指导书Word文件下载.doc

    • 资源ID:8429984       资源大小:3.01MB        全文页数:208页
    • 资源格式: DOC        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    单片机C语言编写程序实验指导书Word文件下载.doc

    1、26 点阵式LED简单图形显示技术27 ADC0809A/D转换器基本应用技术28 数字电压表29 两点间温度控制 30 四位数数字温度计 31 6位数显频率计数器32 电子密码锁设计33 44键盘及8位数码管显示构成的电子密码锁34 带有存储器功能的数字温度计DS1624技术应用35 DS18B20数字温度计使用 1 实验任务 如图1.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2 电路原理图 图1.1.13 系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。4 程序设

    2、计内容 (1) 延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?下面具体介绍其原理:如图1.1.1所示的石英晶体为12MHz,因此1个机器周期为1微秒 机器周期微秒 MOV R6,#20 2个机器周期 2 D1: MOV R7,#248 2个机器周期 22224849820DJNZ R7,$ 2个机器周期 2248498 DJNZ R6,D1 2个机器周期 2204010002 因此,上面的延时程序时间为10.002ms

    3、。由以上可知,当R610、R7248时,延时5ms,R620、R7248时,延时10ms,以此为基本的计时单位。如本实验要求0.2秒200ms,10msR5200ms,则R520,延时子程序如下:DELAY: MOV R5,#20 MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RET (2) 输出控制 如图1所示,当P1.0端口输出高电平,即P1.01时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.00时,发光二极管L1亮;我们可以使用SETBP1.0指令使P1.0端口输出高电平,使用C

    4、LRP1.0指令使P1.0端口输出低电平。5 程序框图 如图1.1.2所示 图1.1.26 C语言源程序#include sbit L1=P10;void delay02s(void) /延时0.2秒子程序unsigned char i,j,k;for(i=20;i0;i-)for(j=20;jj-)for(k=248;kk-);void main(void)while(1)L1=0;delay02s();L1=1; 2 模拟开关灯 1 实验任务如图1.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1

    5、熄灭。2 电路原理图 图1.2.13 系统板上硬件连线 (1) 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上;(2) 把“单片机系统”区域中的P3.0端口用导线连接到“四路拨动开关”区域中的K1端口上;4 程序设计内容 (1) 开关状态的检测过程 单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。单片机可以采用JBBIT,REL或者是JNBBIT,REL指令来完成对开关状态的检测即可。(2

    6、) 输出控制 如图3所示,当P1.0端口输出高电平,即P1.01时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;5 程序框图 7 C语言源程序208sbit K1=P30;while(1)if(K1=0)L1=0; /灯亮else /灯灭1 实验任务 如图1.3.1所示,AT89S51单片机的P1.0P1.3接四个发光二极管L1L4,P1.4P1.7接了四个开关K1K4,编程将开关的状态反映到发光二极管上。(开关闭合,对应的灯亮,开关断开,对应的灯灭)。图1.3.1(1 把“单片机系统”区域中的P1.0P1.3用导线连接到“八路发光二极管指示模块”区域中的L1L4端口上;(2 把“

    7、单片机系统”区域中的P1.4P1.7用导线连接到“四路拨动开关”区域中的K1K4端口上;(1 开关状态检测 对于开关状态检测,相对单片机来说,是输入关系,我们可轮流检测每个开关状态,根据每个开关的状态让相应的发光二极管指示,可以采用JBP1.X,REL或JNBP1.X,REL指令来完成;也可以一次性检测四路开关状态,然后让其指示,可以采用MOVA,P1指令一次把P1端口的状态全部读入,然后取高4位的状态来指示。(2 输出控制 根据开关的状态,由发光二极管L1L4来指示,我们可以用SETBP1.X和CLRP1.X指令来完成,也可以采用MOVP1,1111XXXXB方法一次指示。读P1口数据到AC

    8、C中ACC内容右移4次ACC内容与F0H相或ACC内容送入P1口图1.3.2 7 方法一(C语言源程序)unsigned char temp;temp=P14;temp=temp | 0xf0;P1=temp;8 方法二(C语言源程序)if(P1_4=0)P1_0=0;P1_0=1;if(P1_5=0)P1_1=0;P1_1=1;if(P1_6=0)P1_2=0;P1_2=1;if(P1_7=0)P1_3=0;P1_3=1;4 广告灯的左移右移 1 实验任务 做单一灯的左移右移,硬件电路如图1.4.1所示,八个发光二极管L1L8分别接在单片机的P1.0P1.7接口上,输出“0”时,发光二极管亮

    9、,开始时P1.0P1.1P1.2P1.3P1.7P1.6P1.0亮,重复循环。图1.4.13 系统板上硬件连线 把“单片机系统”区域中的P1.0P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1L8端口上,要求:P1.0对应着L1,P1.1对应着L2,P1.7对应着L8。4 程序设计内容 我们可以运用输出端口指令MOVP1,A或MOVP1,DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。每次送出的数据是不同,具体的数据如下表1所示 :P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 说明 L8 L7 L6 L5 L4 L3

    10、 L2 L1 1 0 L1亮 L2亮 L3亮 L4亮 L5亮 L6亮 L7亮 L8亮 表1 5 程序框图#include unsigned char i;unsigned char a,b;void delay(void)unsigned char m,n,s;for(m=20;mm-)for(n=20;nn-)for(s=248;ss-);temp=0xfe;delay();for(i=1;i8;i+)a=temp(8-i);P1=a|b;a=tempb=tempbit flag;unsigned char count;void dely500(void)for(i=250;_nop_();

    11、for(count=200;countcount-)P1_0=P1_0;dely500();7 I/O并行口直接驱动LED显示 1. 实验任务 如图1.7.1所示,利用AT89S51单片机的P0端口的P0.0P0.7连接到一个共阴数码管的ah的笔段上,数码管的公共端接地。在数码管上循环显示09数字,时间间隔0.2秒。2. 电路原理图 图1.7.13. 系统板上硬件连线 把“单片机系统”区域中的P0.0/AD0P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的ah端口上;要求:P0.0/AD0与a相连,P0.1/AD1与b相连,P0.2/AD2与c相连,P0.7/

    12、AD7与h相连。4. 程序设计内容 (1 LED数码显示原理 七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。 LED数码管的ga七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,下面给出共阴极的字形码见表2 “0” 3FH “8” 7FH “1” 06H “9” 6FH “2” 5BH “A” 77H “3” 4FH “b” 7CH “4” 66H “C” 39H “5” 6DH “d” 5EH “6” 7DH “E” 79H “7” 07H “F” 71H (

    13、2 由于显示的数字09的字形码没有规律可循,只能采用查表的方式来完成我们所需的要求了。这样我们按着数字09的顺序,把每个数字的笔段代码按顺序排好!建立的表格如下所示:TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH 5程序框图 unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char dispcount;void delay02s(void)for(dispcount=0;dispcount10;dispcount+)P0=tabl

    14、edispcount;8 按键识别方法之一 1 实验任务 每按下一次开关SP1,计数值加1,通过AT89S51单片机的P1端口的P1.0到P1.3显示出其的二进制计数值。图1.8.1 (1 把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘”区域中的SP1端口上;(2 把“单片机系统”区域中的P1.0P1.4端口用8芯排线连接到“八路发光二极管指示模块”区域中的“L1L8”端口上;要求,P1.0连接到L1,P1.1连接到L2,P1.2连接到L3,P1.3连接到L4上。4 程序设计方法 (1 其实,作为一个按键从没有按下到按下以及释放是一个完整的过程,也就是说,当我们按下一个按键时,总

    15、希望某个命令只执行一次,而在按键按下的过程中,不要有干扰进来,因为,在按下的过程中,一旦有干扰过来,可能造成误触发过程,这并不是我们所想要的。因此在按键按下的时候, 图1.8.2要把我们手上的干扰信号以及按键的机械接触等干扰信号给滤除掉,一般情况下,我们可以采用电容来滤除掉这些干扰信号,但实际上,会增加硬件成本及硬件电路的体积,这是我们不希望,总得有个办法解决这个问题,因此我们可以采用软件滤波的方法去除这些干扰信号,一般情况下,一个按键按下的时候,总是在按下的时刻存在着一定的干扰信号,按下之后就基本上进入了稳定的状态。具体的一个按键从按下到释放的全过程的信号图如上图所示: 从图中可以看出,我们

    16、在程序设计时,从按键被识别按下之后,延时5ms以上,从而避开了干扰信号区域,我们再来检测一次,看按键是否真得已经按下,若真得已经按下,这时肯定输出为低电平,若这时检测到的是高电平,证明刚才是由于干扰信号引起的误触发,CPU就认为是误触发信号而舍弃这次的按键识别过程。从而提高了系统的可靠性。 由于要求每按下一次,命令被执行一次,直到下一次再按下的时候,再执行一次命令,因此从按键被识别出来之后,我们就可以执行这次的命令,所以要有一个等待按键释放的过程,显然释放的过程,就是使其恢复成高电平状态。(1 对于按键识别的指令,我们依然选择如下指令JBBIT,REL指令是用来检测BIT是否为高电平,若BIT

    17、1,则程序转向REL处执行程序,否则就继续向下执行程序。或者是JNBBIT,REL指令是用来检测BIT是否为低电平,若BIT0,则程序转向REL处执行程序,否则就继续向下执行程序。(2 但对程序设计过程中按键识别过程的框图如图1.8.3所示:图1.8.3void delay10ms(void)unsigned char i,j;for(j=248;j-);if(P3_7=0)delay10ms();count+;if(count=16)count=0;P1=count;while(P3_7=0);9 一键多功能按键识别技术 1实验任务 如图1.9.1所示,开关SP1接在P3.7/RD管脚上,在

    18、AT89S51单片机的P1端口接有四个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,当每一次按下开关SP1的时候,L2接在P1.1管脚上的发光二极管在闪烁,再按下开关SP1的时候,L3接在P1.2管脚上的发光二极管在闪烁,再按下开关SP1的时候,L4接在P1.3管脚上的发光二极管在闪烁,再按下开关SP1的时候,又轮到L1在闪烁了,如此轮流下去。2电路原理图 图1.9.1 3系统板上硬件连线 4程序设计方法 (1 设计思想由来 在我们生活中,我们很容易通过这个叫张三,那个叫李四,另外一个是王五;那是因为每个人有不同的名子,我们就很快认出,同样,对于要通过一个按键来识别每种不同的功能,我们给每个不同的功能模块用不同的ID号标识,这样,每按下一次按键,ID的值是不相同的,所以单片机就很容易识别不同功能的身份了。(2 设计方法 从上面的要求我们可以看出,L1到L4发光二极管在每个时刻的闪烁的时


    注意事项

    本文(单片机C语言编写程序实验指导书Word文件下载.doc)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开