51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > C51教程 > 详细内容
《51单片机C语言教程》第二课 C51常量
发布时间:2009/6/16  阅读次数:2609  字体大小: 【】 【】【

void main(void)

{

//定义花样数据

const unsigned char design[32]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,

0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,

0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0,

0xE7,0xDB,0xBD,0x7E,0xFF};

unsigned int a; //定义循环用的变量

unsigned char b; //在 c51 编程中因内存有限尽可能注意变量类型的使用

//尽可能使用少字节的类型,在大型的程序中很受用

do{

for (b=0; b<32; b++)

{


}

}while(1);

}

for(a=0; a<30000; a++); //延时一段时间

P1 = design[b]; //读已定义的花样数据并写花样数据到 P1 口

程序中的花样数据能自以去定义,因这里我们的 LED 要 AT89c51 的 P1 引脚为低电平才 会点亮,所以我们要向 P1 口的各引脚写数据 O 对应连接的 LED 才会被点亮,P1 口的八个引 脚刚好对应 P1 口特殊寄存器的八个二进位,如向 P1 口定数据 0xFE,转成二进制就是

11111110,最低位 D0 为 0 这里 P1.0 引脚输出低电平,LED1 被点亮。如此类推,大家不难算 出自己想要做的效果了。大家编译烧写看看,效果就出来,显示的速度您能根据需要调整 延时 a 的值,不要超过变量类型的值域就很行了。哦,您还没有实验板?那如何能知道程 序运行的结果呢?呵,不用急,这就来说说用 KEIL uVision2 的软件仿真来调试 IO 口输出输入程序。


  

编译运行上面的程序,然后按外部设备菜单 Peripherals-I/O Ports-Port1 就打开

Port1 的调试窗口了,如图 4-3 中的 2。这个时候程序运行了,但我们并不能在 Port1 调试窗口 上看到有会什么效果,这个时候能用鼠标左击图 4-3 中 1 旁边绿色的方条,点一下就有一个 小红方格再点一下又没有了,哪一句语句前有小方格程序运行到那一句时就停止了,就是设 置调试断点,同样图 4-2 中的 1 也是同样功能,分别是增加/移除断点、移除所有断点、允 许/禁止断点、禁止所有断点,菜单也有一样的功能,另外菜单中还有 Breakpoints 可打开 断点设置窗口它的功能更强大,不过这里先不用它。在“P1 = design[b];”这一句设置一 个断点这个时候程序运行到这里就停住了,再留意一下 Port1 调试窗口,再按图 5-2 中的 2 的运 行键,程序又运行到设置断点的地方停住了,这个时候 Port1 调试窗口的状态又不一样了。也就是说 Port1 调试窗口模拟了 P1 口的电平状态,打勾为高电平,不打勾则为低电平,窗口中 P1

为 P1 寄存器的状态,Pins 为引脚的状态,注意的是如果是读引脚值之前必须把引脚对应的 寄存器置 1 才能正确读取。图 4-2 中 2 旁边的{}样的按钮分别为单步入,步越,步出和 执行到当前行。图中 3 为显示下一句将要执行的语句。图 4-3 中的 3 是 Watches 窗口可查 看各变量的当前值,数组和字串是显示其头一个地址,如本例中的 design 数组是保存在 code 存储区的首地址为 D:0x08,能在图中 4 Memory 存储器查看窗口中的 Address 地址中打入 D:0x08 就能查看到 design 各数据和存放地址了。如果你的 uVision2 没有显示这些窗口, 能在 View 菜单中打开在图 4-2 中 3 后面一栏的查看窗口快捷栏中打开。

  

上一篇:《51单片机C语言教程》第三课 C51变量 下一篇:《51单片机C语言教程》第一课 C51数据类型
我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
本栏最新发布
本栏热门信息

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号