第一范文网 - 专业文章范例文档资料分享平台

51单片机c语言总结

来源:用户分享 时间:2025/11/18 20:11:42 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

TL0=(8192-C)2; //可证明这是13位计数器TL0低5位的赋初值方法 } 、 实例51

本例用单片机U1从P1。4引脚输出正脉宽为250μs的方波,再利用单片机U2的into引脚检测,验证方波的正脉冲宽度,有点没看懂 //实例51-2:定时器T0的模式2测量正脉冲宽度

#include //包含51单片机寄存器定义的头文件

sbit ui=P3^2; //将ui位定义为P3.0(INT0)引脚,表示输入电压 /******************************************* 函数功能:主函数

******************************************/ void main(void) {

TMOD=0x0a; // TMOD=0000 1010B,使用定时器T0的模式2,GATE置1 EA=1; //开总中断 ET0=0; //不使用定时器T0的中断 TR0=1; //启动T0 TH0=0; //计数器T0高8位赋初值 TL0=0; //计数器T0低8位赋初值 while(1) //无限循环,不停地将TL0计数结果送P1口 { while(ui==0) //INT0为低电平,T0不能启动 ; TL0=0; //INT0为高电平,启动T0计时,所以将TL0清0 while(ui==1) //在INT0高电平期间,等待,计时 ; P1=TL0; //将计时结果送P1口显示 } }

//实例51-1:输出正脉宽为250微秒的方波

#include //包含51单片机寄存器定义的头文件 sbit u=P1^4; //将u位定义为P1.4 /******************************************* 函数功能:主函数

******************************************/ void main(void) {

TMOD=0x02; //TMOD=0000 0010B,使用定时器T0的模式2 EA=1; //开总中断

ET0=1; //定时器T0中断允许 TH0=256-250; //定时器T0的高8位赋初值 TL0=256-250; //定时器T0的高8位赋初值 TR0=1; //启动定时器T0 while(1) //无限循环,等待中断 ; }

/************************************************************** 函数功能:定时器T0的中断服务程序

**************************************************************/

void Time0(void) interrupt 1 using 0 //\声明函数为中断服务函数 {

u=~u; //将P1.4引脚输出电平取反,产生方波 } 第7章

MCS51单片机串行4中工作方式??、

为了能够在计算机端看到单片机发出的数据,较好的方法是借助于调试软件“串口调试助手” 第8章 P197页图 第9章

I^2C总线是Inter Integrated Circuit Bus 内部集成电路总线

千万不要认为只要程序对了,单片机就可以永远正确运行,实际工作环境的各种干扰会导致单片机死机。 X5045

具有上电复位和降压管理的功能,还具有看门狗定时器和具有块保护功能的串行EEPROM。

上电复位;上电就产生复位信号,

看门狗; 规定时间没有电平信号 就产生复位信号,利用该功能可以让单片机死机后自动重新复位

第10章

A/D转换器;逐次逼近(常用) 双积分牛但慢 并行 红外信号接收

红外发射部分包括键盘矩阵,编码调制 LED红外发送器 接收器包括光电转换放大器 解调电路 解码电路

中断定时器程序其实隐藏了调用。 定时中断一次还需重新赋值一次。

void Time0(void) interrupt 1 using 1每个字符都要空格 LED0=!LED0; //P3.0引脚取反

While(1)前面赋值确定原先的状态

判断端口是否是低电平应该这样if(S1==0) 而不是if(S1=0)

函数功能:键盘扫描子程序

**************************************************/ void key_scan(void) {

if((P1&0xf0)!=0xf0) //第一次检测到有键按下 { delay30ms(); //延时20ms再去检测 if(S1==0) //按键S1被按下 keyval=1; if(S2==0) //按键S2被按下 keyval=2; if(S3==0) //按键S3被按下 keyval=3; if(S4==0) //按键S4被按下 keyval=4;

sbit S1=P1^4; //将S1位定义为P1.4引脚 sbit S2=P1^5; //将S2位定义为P1.5引脚 sbit S3=P1^6; //将S3位定义为P1.6引脚 sbit S4=P1^7; //将S4位定义为P1.7引脚 有零则与逻辑与一起必然为零 }

搜索更多关于: 51单片机c语言总结 的文档
51单片机c语言总结.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1d7fz2s6xz0a0pl1szsm0n19a8hrgx00gsj_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top