| 注意:访问本站需要Cookie和JavaScript支持!请设置您的浏览器! • 打开购物车 • 查看留言 • 付款方式 • 联系我们 | 
|  | 
| 首页 | 电子入门 | 学单片机 | 免费资源 | 下载中心 | 商品列表 | 象棋在线 | 在线绘图 | 加盟五一 | 加入收藏 | 设为首页 | 
| 选择分类:当前分类——学单片机   相关联或者相类似的文章:    和初学者说说我学单片机的经过(773) 通过日期算星期的C51源程序(757) AT89C2051制电子钟时钟源程序 (754) 多功能AT89C2051倒计时器(753) 24c256程序(734) ★单片双路四位计数器程序全0快版(732) C51的一些误区和注意事项(730) DS1820高精度测温的理论依据(729) AT89C51制作的简单计数器(724) 89S51单片机(722) 用RC充电的方法实现温度的检测(722) 关于单片机的N多问题(719) 采用AT89C2051兼容芯片制作六位数显多路定时电子钟(714) 数字式温度/湿度测量计(712) 超声波智能测距传感模块(707) 青春舞曲的音乐程序 (706) 35. DS18B20数字温度计使用 (700) 超声波测距 (698) 单片机演奏音乐的实现(695) OCM12232系列点阵型液晶显示模块 (695) 首页 前页 后页 尾页  本站推荐: | 11.            00-59秒计时器(利用软件延时) 1.  实验任务    如下图所示,在AT89S51单片机的P0和P2端口分别接有两个共阴数码管,P0口驱动显示秒时间的十位,而P2口驱动显示秒时间的个位。 2.  电路原理图   图4.11.1 3.  系统板上硬件连线  (1.       把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。 (2.       把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。 4.  程序设计内容  (1.       在设计过程中我们用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计数达到60时,就自动返回到0,从新秒计数。 (2.       对于秒计数单元中的数据要把它十位数和个数分开,方法仍采用对10整除和对10求余。 (3.       在数码上显示,仍通过查表的方式完成。 (4.       一秒时间的产生在这里我们采用软件精确延时的方法来完成,经过精确计算得到1秒时间为1.002秒。 DELY1S:        MOV R5,#100 D2:                MOV R6,#20 D1:                MOV R7,#248                      DJNZ R7,$                      DJNZ R6,D1  DJNZ R5,D2                      RET 5.  程序框图  图4.11.2  6.  汇编源程序  Second                 EQU 30H                              ORG 0  START:               MOV Second,#00H  NEXT:                MOV A,Second                             MOV B,#10                              DIV AB                              MOV DPTR,#TABLE                             MOVC A,@A+DPTR                              MOV P0,A                              MOV A,B                             MOVC A,@A+DPTR                              MOV P2,A                              LCALL DELY1S                             INC Second                              MOV A,Second                              CJNE A,#60,NEXT                             LJMP START  DELY1S:             MOV R5,#100  D2:                      MOV R6,#20  D1:                     MOV R7,#248                              DJNZ R7,$                              DJNZ R6,D1                             DJNZ R5,D2                              RET  TABLE:              DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH                              END  7.  C语言源程序  #include <AT89X51.H>  unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,                              0x6d,0x7d,0x07,0x7f,0x6f};  unsigned char Second;  void delay1s(void)  {    unsigned char i,j,k;    for(k=100;k>0;k--)    for(i=20;i>0;i--)    for(j=248;j>0;j--);  }  void main(void)  {    Second=0;    P0=table[Second/10];    P2=table[Second%10];    while(1)      {        delay1s();        Second++;        if(Second==60)          {            Second=0;          }        P0=table[Second/10];        P2=table[Second%10];      }  }  1、 本站不保证以上观点正确,就算是本站原创作品,本站也不保证内容正确。  2、如果您拥有本文版权,并且不想在本站转载,请书面通知本站立即删除并且向您公开道歉! | 
| 本站协议 |
 版权信息 | 
 关于我们 | 
 本站地图 | 
 营业执照 | 
 发票说明 | 
 付款方式 | 
 联系方式 深圳市宝安区西乡五壹电子商行——粤ICP备16073394号-1;地址:深圳西乡河西四坊183号;邮编:518102 E-mail:51dz$163.com($改为@);Tel:(0755)27947428 工作时间:9:30-12:00和13:30-17:30和18:30-20:30,无人接听时可以再打手机13537585389 |