DSP电子钟程序可在c5416上运行Word文档格式.docx

上传人:b****4 文档编号:18452692 上传时间:2022-12-16 格式:DOCX 页数:15 大小:16.38KB
下载 相关 举报
DSP电子钟程序可在c5416上运行Word文档格式.docx_第1页
第1页 / 共15页
DSP电子钟程序可在c5416上运行Word文档格式.docx_第2页
第2页 / 共15页
DSP电子钟程序可在c5416上运行Word文档格式.docx_第3页
第3页 / 共15页
DSP电子钟程序可在c5416上运行Word文档格式.docx_第4页
第4页 / 共15页
DSP电子钟程序可在c5416上运行Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

DSP电子钟程序可在c5416上运行Word文档格式.docx

《DSP电子钟程序可在c5416上运行Word文档格式.docx》由会员分享,可在线阅读,更多相关《DSP电子钟程序可在c5416上运行Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

DSP电子钟程序可在c5416上运行Word文档格式.docx

ucharloca=0;

uintk=0x0;

ioportunsignedportc001;

//键盘地址

ioportunsignedportc000;

//数码管地址

voiddisplay(void);

staticconstuchartabled[]={

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

voidcpu_init()/*初始化DSP*/

{

asm("

ssbxintm"

);

ssbxxf"

//总清零

PMST=0xe8;

SWWSR=0x7fff;

SWCR=0x0001;

IMR=0x000c;

IFR=0xffff;

CLKMD=0x000;

PRD0=4;

TCR0=0X669;

rsbxintm"

rsbxxf"

//打开数据口

}

voiddelay(unsignedintx)

inti;

while(x--)

for(i=1000;

i>

0;

i--);

}

voiddelay10ms()

{intj,k;

for(j=0;

j<

2;

j++)

for(k=0;

k<

k++);

/*************************主程序**************************************/

voidmain()

{

cpu_init();

while

(1)

{

display();

//voiddisplay(unsignedcharhour,unsignedcharminute,unsignedcharsecond)

voiddisplay(void)

loca++;

if(loca==8)loca=0;

switch(loca)//显示程序

{case0:

portc000=0x0100+tabled[second%10];

break;

case1:

portc000=0x0200+tabled[second/10];

case2:

portc000=0x0440;

//显示-

case3:

portc000=0x0800+tabled[minute%10];

break;

case4:

portc000=0x1000+tabled[minute/10];

case5:

portc000=0x2040;

case6:

portc000=0x4000+tabled[hour%10];

case7:

portc000=0x8000+tabled[hour/10];

default:

}

}

/***************************************************************************/

interruptvoidtimer()//定时器测试

count=count+1;

if(count==1000)//1000

count=0x0;

count1=count1+1;

if(count1==100)//1000*100

count1=0x0;

flag=0x01;

second++;

if(second==60)

{second=0;

minute++;

if(minute==60)

minute=0;

hour++;

if(hour==24)

hour=0;

interruptvoiddjout()

interruptvoidkeyint0()//键盘测试

inta;

a=portc001;

a=a&

0xff00;

if(a!

=0xff00)

delay10ms();

switch(a)

case0xfe00:

//秒++

if(a==0xfe00)

delay(5);

if(a==0xfe00)

{

if(second>

59)

{second=0;

minute++;

if(minute>

{minute=0;

nop"

case0xfd00:

if(a==0xfd00)

if(a==0xfd00)

second--;

//秒--

if(second<

1){second=59;

case0xfb00:

//fen++

if(a==0xfb00)

if(a==0xfb00)

hour++;

if(hour>

23)

case0xf700:

//fen--

if(a==0xf700)

if(a==0xf700)

minute--;

if(minute<

1){minute=59;

case0xef00:

//shi++

if(a==0xef00)

if(a==0xef00)

//

23){hour=0;

case0xdf00:

//shi--

if(a==0xdf00)

if(a==0xdf00)

hour--;

if(hour<

1){hour=23;

case0xbf00:

//offtimer

if(a==0xbf00)

if(a==0xbf00)

TCR0=0X0010;

case0x7f00:

//opentimer

if(a==0x7f00)

if(a==0x7f00)

voidvect()

.ref_c_int00"

.ref_keyint0"

.ref_djout"

.ref_timer"

b_c_int00"

/*reset*/

rete"

/*nmi*/

rete"

/*int0*/

/*int1*/

b_keyint0"

/*int2*/

b_timer"

/*tint0*/

/*brint0*/

/*bxint0*/

/*dmac0*/

/*tint1*/

b_djout"

/*int3*/

/*hpint*/

/*brint1*/

/*bxint1*/

/*dmac4*/

/*dmac5*/

.cmd文件

-c

-h

test.obj

-mtest.map

-lrts.lib

-stack0x800

MEMORY

PAGE0:

PROG:

origin=080h,length=4000h

PAGE1:

DATA:

origin=800h,length=4000h

SECTIONS

.text>

PROGPAGE0

.cinit>

.switch>

vect>

80hPAGE0

.data>

DATAPAGE1

.const>

.bss>

.sysmem>

.stack>

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1