单片机/微机接口课程设计说明书 }
}
}
TR0=~TR0; break; temp=0; break; TR0=1; break; key1times=1; goto start;
case 3:
case 4:
case 5:
}
//------------------------------------------------------------------ // 函数名称:out_simuseri // 输入参数:data_buf // 输出参数:无参
// 功能说明:8位同步移位寄存器,将data_buf的数据逐位输出到simuseri_DATA
//------------------------------------------------------------------ void out_simuseri(uchar data_buf) { uchar i; i=8;
ACC=data_buf; do {
simuseri_CLK=0; simuseri_DATA=a0; simuseri_CLK=1;
15
单片机/微机接口课程设计说明书 ACC=ACC>>1; }
while(--i!=0); }
/************************************************/ void main() { init(); while(1) }
/************************************************/ void delay(uint z) {
uint x,y; for(x=z;x>0;x--) }
/************************************************/ void display( uint bai,uint shi,uint ge)//显示函数 {
bai=temp/100; shi=temp/10; ge=temp;
P0=0xFF; P0=0xFE; delay(1);
P0=0xFF;
out_simuseri(table2[shi]); P0=0xFD;
16
//大循环
{ }
keyscan();
display(bai,shi,ge); //调用显示函数
//延时函数
for(y=110;y>0;y--);
//消影
out_simuseri(table1[bai]); //调用out_simuseri函数
单片机/微机接口课程设计说明书 delay(1);
P0=0xFF;
out_simuseri(table1[ge]); P0=0xFB; delay(1); }
/************************************************/ void init() {
key1times=0; temp=0; aa=0; TMOD=0X01;
TH0=(65536-10000)/256; TL0=(65536-10000)%6; EA=1; ET0=1; TR0=1; }
/************************************************/ void timer0() interrupt 1 {
TH0=(65536-10000)/256; TL0=(65536-10000)%6; aa++; }
17
//初始化函数
//设定定时器初值
//开总中断 //允许T0中断 //启动T0中断
//定时器T0中断服务子程序
//中断次数加1
//计时100ms
if(aa==10)
{
aa=0; temp++;
if(temp==600) temp=0; }
单片机/微机接口课程设计说明书 9 参考文献
[1]阎石.数字电子技术基础(第五版)[M]. 北京:高等教育出版社,1989. [2]康华光.电子技术基础:数字部分.4版. 北京:高等教育出版社,2000. [3]路而红.专用集成电路设计与电子设计自动化.北京:清华大学出版社,2004. [4]郑家龙.集成电子技术基础教程.北京:高等教育出版社,2002. [5]邱关源.电路(第五版).北京:高等教育出版社,2006.
[6] 郭天祥.新概念51单片机C语言教程-入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2010.
[7] 张兰红.单片机原理及应用.北京:机械工业出版社,2012.
18