单片机应用技术郭玲03第三章分析报告.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
举例 unsigned char a=123; //1个字节7BH unsigned int a = 123; //2个字节 007BH unsigned long a = 123; //4个字节0000007BH 3.2.2 C51中的常量与变量 常量是在程序运行过程中不能改变的,而变量是可以在程序运行过程中不断变化的。 变量的定义可以使用所有C51编译器支持的数据类型,而常量的数据类型只有整型、浮点型、字符型、字符串型和位变量。 存储模式 SMALL存储模式把所有函数变量和局部数据段放在8051系统的内部数据存储区,这使访问数据非常快。 在写小型的应用程序时,变量和数据放在data内部数据存储器中是很好的,因为访问速度快; 但在较大的应用程序中data区最好只存放小的变量、数据或常用的变量(如循环计数、数据索引),而大的数据则放置在别的存储区域。 COMPACT存储模式中所有的函数和程序变量和局部数据段定位在8051系统的外部数据存储区,最多可有256字节。 LARGE存储模式所有函数和过程的变量和局部数据段都定位在8051系统的外部数据区,最多可有64KB。 存储种类和存储器类型完全无关。 3.4 练习—— 七段数码管显示 数码管:多个led灯组成。 数码管电路 数码管电路 数码管显示代码表 数码管电路 四位共阴七段数码管电路 每个数码管的同名波段输出引线连接在一起。 有片选引线,通过“片选”选择数码管。 四个数码管,片选端低电平时选中该数码管。 单个数码管静态显示程序设计 举例:1、令一个(最右边)数码管显示数字。 单个数码管静态显示程序设计 举例:2、一个数码管(最右边)以0.5s间隔时间显示数字0-9. 单个数码管静态显示程序设计 单个数码管静态显示程序设计 显示代码事先放置在ROM中 C51语句编写 unsigned char code table[ ] = { 0x3f, 0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f} ; 上述语句定义了数据类型,存储器类型,以及数组table ?该数组里的每个元素都是usigned char 类型,且放置在ROM里。 数组的地址与数组第1个元素的地址相同。 每个元素地址顺序增加1,因为char类型占用1个字节。 第1个元素table[0],第2个元素table[1],…. 单个数码管依次显示数字 作业1:开发板硬件电路调试 调试开发板 检查电路板,电源是否正常 单片机晶振是否正常 是否有漏焊、虚焊 装载学院的WAVE软件,插上usb线,手动查找实验板的usb驱动,检查电路板usb通信是否正常。 在学院的WAVE软件下点击“实验板测试程序”,下载测试程序,如果测试通过,说明电路板正常。 同学之间可交换检查, 如有失效零部件,向电子协会领取新的零部件 作业2: led的控制程序调试 选择作业中的一个程序进行调试和下载 书写实验报告。 作业3: 单个8段数码管的静态显示程序调试(上机练习) 单个数码管显示一个数字。 单个数码管依次显示多个数字,每次延时1s。 程序调试和编译,直到没有错误。 3.3 8段数码管动态显示 四位数码管的8个段位是共用的。 如何让四个数码管同时显示不同的数字呢? 单个数码管的刷新 #includeREGX52.H main() { while (1) { P2 = 0x0f; P2_3 = 0; P0 = 0x4f; } } 4个数码管的刷新 #includeREGX52.H main() //显示1234 { while (1) { P2 = 0x0f; P2_3 = 0; P0 = 0x?; P2 = 0x0f; P2_2 = 0; P0 = 0x?; P2 = 0x0f; P2_1 = 0; P0 = 0x?; P2 = 0x0f; P2_0 = 0; P0 = 0x?; } } 数码管显示程序(C程序) #include AT89X51.H unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char dispnumber; void delay () { unsigned char i,j,k; for(i=40;i0;i--) for(j=40;j0;j--) for(k=248;k0;k--); } void main(void) { while(1) { for(dispnumber=0;dispnumber10

文档评论(0)

南非的朋友 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档