- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
需要掌握的C语言程序
C语言需要掌握的程序:
使用定时器T0的中断控制P2.0引脚上LED的闪烁。要求闪烁周期为100 ms,即亮50ms,灭50ms。晶振频率为12M。
//实例:用定时器T0的中断控制1位LED闪烁
#includereg51.h // 包含51单片机寄存器定义的头文件
sbit D1=P2^0; //将D1位定义为P2.0引脚
/**************************************************************
函数功能:主函数
**************************************************************/
void main(void)
{
EA=1; //开总中断
ET0=1; //定时器T0中断允许
TMOD=0x01; //使用定时器T0的模式1
TH0=(65536-46083)/256; //定时器T0的高8位赋初值
TL0=(65536-46083)%256; //定时器T0的高8位赋初值
TR0=1; //启动定时器T0
while(1)//无限循环等待中断
;
}
/**************************************************************
函数功能:定时器T0的中断服务程序
**************************************************************/
void Time0(void) interrupt 1 using 0 //“interrupt”声明函数为中断服务函数
//其后的1为定时器T0的中断编号;0表示使用第0组工作寄存器
{
D1=~D1; //按位取反操作,将P2.0引脚输出电平取反
TH0=(65536-46083)/256; //定时器T0的高8位重新赋初值
TL0=(65536-46083)%256; //定时器T0的高8位重新赋初值
}
用外部中断INT0控制P1口8位LED亮灭状态,即第一次按下按键S时,8位LED灯点亮。再次按下S时,8位LED熄灭。如此循环。
//实例:用外中断0的中断方式进行数据采集
#includereg51.h //包含51单片机寄存器定义的头文件
/*******************************************
函数功能:主函数
******************************************/
void main(void)
{
EA=1; //开放总中断
EX0=1; //允许使用外中断
IT0=1; //选择负跳变来触发外中断
P1=0xff;
while(1)
; //无限循环, 防止程序跑飞
}
/**************************************************************
函数功能:外中断T0的中断服务程序
**************************************************************/
void int0(void) interrupt 0 using 0 //外中断0的中断编号为0
{
P1=~P1; //每产生一次中断请求,P1取反一次。
}
基于方式1的单工通信
本例使用单片机U1通过串行口TXD端将一段流水灯控制码以方式1发送到单片机U2的RXD,U2再利用该段控制码流水点亮其P1口的8位LED。晶振频率为11.0592MHz,采用9600b/s的波特率。
//数据发送程序
#includereg51.h //包含单片机寄存器的头文件
unsigned char code Tab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
//流水灯控制码,该数组被定义为全局变量
/*****************************************************
函数功能:向PC发送一个字节数据
***************************************************/
void Send(unsigned char dat)
{
SBUF=dat;
while(TI==0)
;
TI=0
您可能关注的文档
最近下载
- 电力系统安全与消防课件.ppt VIP
- 制冷技术试题答案及解析.docx VIP
- 17J008 挡土墙(重力式、衡重式、悬臂式)(最新).pdf VIP
- 初中生物教资真题及答案.doc VIP
- 2025届安徽淮南淮北高三一模高考数学试卷试题(含答案详解).docx VIP
- 2024-2025学年四川省成都市金牛区七年级(上)期末语文试卷(含详细答案解析).docx VIP
- 八年级下册生物期末复习重点知识手册答案版.pdf VIP
- 夏夏生物七下期末复习重点知识手册。删减页-【答案版】.pdf VIP
- 工伤离职赔偿协议书范本10篇.docx VIP
- 江苏合格考政治真题及答案2025.doc VIP
原创力文档


文档评论(0)