- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机编程实例单片机编程实例
单片机C51延时时间怎样计算?
C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。 以某晶振为12MHz的单片机为例,晶振为12MHz即一个机器周期为1us。
一. 500ms延时子程序
程序:
void delay500ms(void)
{
unsigned char i,j,k;
for(i=15;i0;i--)
for(j=202;j0;j--)
for(k=81;k0;k--);
}
计算分析:
程序共有三层循环
一层循环n:R5*2 = 81*2 = 162us DJNZ 2us
二层循环m:R6*(n+3) = 202*165 = 33330us DJNZ 2us + R5赋值 1us = 3us
三层循环: R7*(m+3) = 15*33333 = 499995us DJNZ 2us + R6赋值 1us = 3us
循环外: 5us 子程序调用 2us + 子程序返回 2us + R7赋值 1us = 5us
延时总时间 = 三层循环 + 循环外 = 499995+5 = 500000us =500ms
计算公式:延时时间=[(2*R5+3)*R6+3]*R7+5
二. 200ms延时子程序
程序:
void delay200ms(void)
{
unsigned char i,j,k;
for(i=5;i0;i--)
for(j=132;j0;j--)
for(k=150;k0;k--);
}
三. 10ms延时子程序
程序:
void delay10ms(void)
{
unsigned char i,j,k;
for(i=5;i0;i--)
for(j=4;j0;j--)
for(k=248;k0;k--);
}
四. 1s延时子程序
程序:
void delay1s(void)
{
unsigned char h,i,j,k;
for(h=5;h0;h--)
for(i=4;i0;i--)
for(j=116;j0;j--)
for(k=214;k0;k--);
}
实验6 端口按键判断技术(按键显示数字)?? 此部份由8个轻触按键组成, 一端接地, 一端由JP48引出, 当按下按键时, 相应端口为低电平。?相关原理图:
程序运行照片:
接线方法:?1、按键接到P3口。用一条8PIN数据排线,把按键部份的JP48,接到CPU部份的P3口JP53.2、接8位数码管的数据线。将数码管部份的数据口 JP5接到CPU部份的P0口JP51.3、接8位数码管的显示位线。将数码管部份的显示位口 JP8接到CPU部份的P2口JP52.任务:键盘显示数字, 通过按键盘上的K02,K03,K04,K05四个按键, 实现数码管显示0,1,2,3汇编语言参考程序:org 0000h ;(1)ljmp start ;(2)org 0080h ;(3)start: mov p2,#0ffh ;(4)CLR P2.6 ;选中最右边的七段码。;(5)mov p3,#0ffh ;初始化,P3口置高;(6)l1: jnb p3.2,l2 ;(7)jnb p3.3,l3 ; ;(8)jnb p3.4,l4 ; ;(9)jnb p3.5,l5 ;检测按键;(10)ljmp l1 ;循环检测;(11)l2: mov p0,#28H ;显示0;(12)ljmp l1;(13)l3: mov p0,#7EH ;显示1;(14)ljmp l1;(15)l4: mov p0,#0A2H ;显示2;(16)ljmp l1;(17)l5: mov p0,#62H ;显示3;(18)ljmp l1;(19)end;(20)c语言参考程序:#includereg51.h //头文件#define uchar unsigned char //宏定义,为
文档评论(0)