- 1、本文档共127页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
定义完后,要引用该模块时,只要再加入
#include4LED.h
就可以在程序中调用Disp_4LED(uchar*ledbuf)和delayms(uintz)的自定义函数。实际上,如果仅仅是为了应用,只要根据头文件中对函数的相关注释和对引脚的定义,就可以正确地调用这些函数,而不必详细了解这些函数是如何编写的(这一点对初学者快速掌握单片机还是非常有益的)。因此,在头文件中对函数正确地注释显得非常重要。
在头文件中除了声明自定义函数外,也可以把所声明函数的程序一起写入,这样就不需要再另写一个同名的驱动程序文件了。 11.951单片机内部资源的C51编程
11.9.1中断的C51编程
C51编译器支持在C源程序中直接开发中断程序。中断服务程序是通过按规定语法格式定义的一个函数。
中断服务程序的函数定义的语法格式如下:
返回值函数名([参数])interruptm[usingn]
{
…
}
interruptm为中断源的编号,m的编号如表11.9所示。usingn选项用于实现工作寄存器组的切换,n是选用的工作寄存器区号(0~3),便于响应中断时保护有关现场信息,以便中断返回后,能使中断前的源程序从断点处继续正确地执行下去。C51对中断的编程示例见11.9.2节。11.9.2定时/计数器的C51编程
C51中对定时/计数器的编程与用ASM汇编几乎一样,只是把相关的语句改成C语言而已。下面给出一个两位LED数码管显示00~99的示例(每秒加1),C51采用定时中断的方法编程,采用的电路原理图如第5章图5.8所示,Proteus仿真结果如图5.10所示。
编程的主要思路是用T0作一个10ms的中断,并记录中断的次数,每次中断时显示一位LED数码管,100次中断后将LED数码管的显示内容加1。详细注释的程序清单如下:#includereg51.h
#defineucharunsignedchar
#defineuintunsignedint
sbitLED1=P3^6; //51单片机控制的数码管公共端
sbitLED2=P3^7;
ucharcodeLedCode[]= //数码管共阳极段码表
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
ucharDispNum=0; //LED显示数据
ucharTimeCounter=100; //T0定时中断次数计数器
bitLedFlag=0; //LED数码管显示标记
voidmain(void) //主程序
{ TMOD=0x01; //T0为定时器,方式1
TL0=0xf0; //10ms定时的初值
TH0=0xd8;
EA=1; //总允许中断
ET0=1; //允许T0中断
TR0=1; //定时开始
while(1); //无限循环等定时中断
}
voidtimer0(void)interrupt1 //T0中断服务程序
{
TL0=0xf0; //恢复定时初值
TH0=0xd8; P2=0xff;
if(LedFlag==0) //LedFlag==0,显示十位
{
P2=LedCode[DispNum/10];//查十位的段码
LED1=1; //显示十位
LED2=0; //关断个位
LedFlag=1; //为显示个位做准备
}
Else //?LedFlag!=0,显示个位
{
P2=LedCode[DispNum%10];//查个位的段码,送显示
LED1=0;
您可能关注的文档
- 《中文DreamWeaverMX 网页制作教程》课件第12章.ppt
- 《Verilog HDL数字设计教程》课件第7章 Verilog HDL可综合设计举例.ppt
- 《中文DreamWeaverMX 网页制作教程》课件第2章.ppt
- 《MATLAB在自动控制中的应用》课件第3章.ppt
- 《MATLAB 8.X程序设计及典型应用》课件第1章.ppt
- 《MATLAB 8.X程序设计及典型应用》课件第4章.ppt
- 《单片机原理与应用技术》课件第2章.ppt
- 《中文DreamWeaverMX 网页制作教程》课件第8章.ppt
- 《常微分方程》课件第7章.ppt
- 2025年生活照料服务类考试考前冲刺练习试题附完整答案详解【精选题】.docx
- 2025年生活照料服务类考试考前冲刺练习试题含答案详解【实用】.docx
- 2025年生活照料服务类考试考前冲刺练习试题及答案详解1套.docx
- 2025年生活照料服务类考试考前冲刺练习试题及完整答案详解【必刷】.docx
- 2025年生活照料服务类考试考前冲刺练习试题及完整答案详解【精选题】.docx
- 2025年生活照料服务类考试考前冲刺练习试题及参考答案详解【能力提升】.docx
- 2025年生活照料服务类考试考前冲刺练习试题及参考答案详解【黄金题型】.docx
- 2025年生活照料服务类考试考前冲刺练习试题及参考答案详解(基础题).docx
- 2025年生活照料服务类考试考前冲刺练习试题及参考答案详解(预热题).docx
- 2025年生活照料服务类考试考前冲刺练习试题【综合卷】附答案详解.docx
- 2025年生活照料服务类考试考前冲刺练习题及参考答案详解【培优】.docx
最近下载
- 第六章 内分泌系统试题及答案.docx VIP
- 建筑智能化设计说明.docx VIP
- 第十三章 药物疗法和过敏试验法试题及答案.docx VIP
- 2019 年贵州省专升本招生统一考试大学语文试卷真题及答案 .docx VIP
- 建筑智能化设计说明.docx VIP
- 安徽大学-2020-2021学年第-一-学期大学英语A试卷及答案.docx VIP
- QQ狼人杀能力测试19道题答案.docx VIP
- 2022年贵州省贵阳市云岩区事业单位经济类(会计审计岗)试卷及答案(含解析)(培训卷).pdf VIP
- 软件设计说明编写指南(438B).doc VIP
- 周炳坤激光原理课后习题答案 1-7.pdf VIP
文档评论(0)