基于Proteus的简易机械时钟的设计和仿真 -(4)

2018-12-25 23:02

[3] 李光才.单片机课程设计 实例指导[M]. 北京:北京航空航天大学出版社 2004. [4] 谭浩强. C程序设计(第四版)[M]. 北京:清华大学出版社,2010.

[5] 陈忠平. 基于Proteus的51系列单片机设计与仿真[M]. 北京:电子工业出版社,2012:234-253. [6] 刘同法,陈忠平,等. 单片机基础与最小系统实践[M]. 北京:北京航空航天大学出版社,2007. [7] 赵建领,崔昭霞. 精通51单片机开发技术与应用实例[M]. 北京:电子工业出版社,2012::315-329.

[8] 肖倩. 单片机系统设计与仿真-基于Proteus [M]. 北京:北京航空航天大学出版社,2010:11-20. [9] 基于LED点阵屏的时钟研究与设计[R].李劲:西安邮电学院,2008. [10] 贺敬凯,刘德新,等.[M].西安:西安电子科技大学出版社,2011:1-16.

致谢:

本次的课程设计参考了陈忠平老师编著的基于Proteus的51系列单片机设计与仿真这本书,利用相关知识进行了原理图的仿真和验证,同时也参考了谢维成,杨加国.单片机原理与应用及C51程序设计这本书,利用这本书的相关定时计数器进行程序的编写并利用其他软件进行调试,本课程设计借鉴了他们的部分成果,他们的工作给我们带来了很大的启发,在这里我表示对他们由衷的感谢。

附录 1:元件清单

Bill Of Materials =================

Design: C:\\Documents and Settings\\Administrator\\桌面\\课程设计\\zhoulu.DSN Doc. no.: Revision: Author: Created: 12/12/25

14

Modified: 13/11/21

QTY PART-REFS VALUE CODE --- --------- ----- ---- Resistors ---------

1 R1 100 1 R2 10k

Capacitors ----------

2 C1,C2 30pF 1 C3 10uF

Integrated Circuits -------------------

1 U1 AT89C52 1 U2 74HC154

Miscellaneous -------------

1 K1 1 RP1 RESPACK-8 1 X1 12MHz

附录 2:程序[4] 部分编码程序 #include

#define uchar unsigned char #define uint unsigned int

15

uint q=0;

uchar sec,a=0,counter=0; sbit KEY=P3^0;

code uchar tab1[]={0xc0,0x07,0x10,0x10,0x08,0x20,0x04,0x40,0x00,0x00,0x02, 0x80,0x02,0x80,0xfe,0x81,0x02,0x81,0x02,0x81,0x00,0x01,

0x04,0x40,0x08,0x20,0x10,0x10,0xc0,0x07,0x00,0x00}; //开始时间 code uchar tab3[]={0xc0,0x07,0x10,0x10,0x08,0x20,0x04,0x40,0x00,0x00,0x02, 0x80,0x02,0x80,0xf2,0x81,0x82,0x81,0x42,0x81,0x20,0x01, 0x14,0x40,0x08,0x20,0x10,0x10,0xc0,0x07,0x00,0x00}; code uchar tab4[]={0xc0,0x07,0x10,0x10,0x08,0x20,0x04,0x40,0x00,0x00,0x02, 0x80,0x02,0x80,0xf2,0x81,0x02,0x81,0x02,0x81,0x00,0x01, 0x04,0x41,0x08,0x21,0x10,0x11,0xc0,0x07,0x00,0x00}; code uchar tab5[]={0xc0,0x07,0x10,0x10,0x08,0x20,0x04,0x40,0x00,0x00,0x02, 0x80,0x02,0x80,0xf2,0x81,0x02,0x83,0x02,0x85,0x00,0x09, 0x04,0x10,0x08,0x20,0x10,0x10,0xc0,0x07,0x00,0x00}; code uchar tab6[]={0xc0,0x07,0x10,0x10,0x08,0x20,0x04,0x40,0x00,0x00,0x02, 0x80,0x02,0x80,0xf2,0xff,0x02,0x81,0x02,0x81,0x00,0x01, 0x04,0x40,0x08,0x20,0x10,0x10,0xc0,0x07,0x00,0x00}; 扫描程序 const uchar tab2[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,

0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f}; // 位选 ,扫描代码 延时程序

void delay(uint ms) { uint i;

while(ms--) {

for(i=0;i<10;i++); } }

void delay5(void) {

uchar m;

for(m=500;m>0;m--); }

按键扫描程序

void scankey( ) {

if(KEY==0) {

16

delay(5); if(KEY==0) { a=1; } while(!KEY); } }

中断定时

void time0_servsr_(void) interrupt 1 {

TH0=0x4c; TL0=0x00; q++;

if(q>=20) { q=0; sec++; } }

void Init_t0(void) {

TMOD=0x01; TH0=0x4c; TL0=0x00; EA=1; ET0=1; TR0=1; }

void display_1 (void) {

uint j,k,t=0;

for(k=0;k<50;k++) for(j=0;j<32;j++) { P1=tab2[t]; P0=tab1[j]; j++; P2=tab1[j]; delay(1); t++; if(t==16)

17

t=0; } }

主程序部分 void main() {

P0=0x00; P2=0x00; scankey(); Init_t0(); while(a) {

if(sec) {

// beep_init(); counter++; if((counter>=0)&&(counter<10)) { display_1 (); } }

} }

18


基于Proteus的简易机械时钟的设计和仿真&nbsp;-(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:铁板神数教程

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: