mcu51(63K)嵌入式仿真器的第一个小实验.docVIP

mcu51(63K)嵌入式仿真器的第一个小实验.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
mcu51(63K)嵌入式仿真器的第一个小实验这里是一个以前做的6数码管的显示器,用2片164分别对段和位进行显示,今天拿到东西后 迫不及待的拿来做试验。 程序如下: #include reg51.h #include stdio.h #define DISPLOOP -3000 //24M Hz 情况下,1ms延时计数初值为-2000 sbit T164DATA =P1^0; sbit T164CLK1 =P1^1; sbit T164CLK2 =P1^2; sbit LED =P2^0; unsigned char LedNumber; unsigned T2Loop; unsigned int xxx,yyy; unsigned char code display_seg[18]= {0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x0 a,0x00}; //分别显示数字 0,1,2,...,9,A,B,C,D,E,r unsigned char code display_line[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x00}; unsigned char display_code[8]; void Delay(x) unsigned char x; { unsigned char i,j; for(j=0;j<x;j++){ for(i=0;i<250;i++); } } void timer1(void) interrupt 3 using 3 //timer1,用于显示 { unsigned char i,k; TH1=DISPLOOP/256;TL1=DISPLOOP%256; T164CLK2=0;T164CLK1=0; for(i=0;i<8;i++){ T164DATA=0;T164CLK1=1;T164CLK1=0; } LedNumber++; if(LedNumber6) LedNumber=0; k=(0x80LedNumber); for(i=0;i8;i++){ T164DATA=((display_code[LedNumber]i)0x01); T164CLK2=1;T164CLK2=0; T164DATA=((ki)0x01); T164CLK1=1;T164CLK1=0; } = void main(void) { unsigned char i,j,k; unsigned char a,b,c; PX0=0; //设置中断优先级 PT0=0; PT1=1; // TMOD|=0x10; //T1十六位计数方式, ET1=1; //允许T1中断 ET1=1; TMOD|=0x01; //16位计数方式,TR0=1即开始计数 EA=1; //CUP开中断, TR1=1; //启动T1,开始显示 TH1=DISPLOOP/256;TL1=DISPLOOP%256; i=0;j=0;k=0; xxx=0;yyy=999;P0=0;P1=0x00; for(;;) //主程序循环 { Delay(250); P1=~P1; a=xxx/100; b=(xxx/10)%10; c=xxx%10; if(a==0) a=16; if(a==16 b==0) b=16; display_code[0]=display_seg[a]; display_code[2]=display_seg[b]; display_code[4]=display_seg[c]; if(a==0) a=16; if(a==16 b==0) b=16; display_code[1]=display_seg[a]; display_code[3]=display_seg[b]; display_code[5]=display_seg[c]; display_code[6]=0x80; xxx++; yyy--; if(xxx=999) xxx=0; if(yyy==0) yyy=999; } } 很好玩的东东,可惜这2天没有太多的时间了,先贴这一小段希望大家指正。

文档评论(0)

3va3x66 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档