常州大学硬件实习报告 数字时钟设计论文答辩 (单片机)

发布时间:   来源:文档文库   
字号:
常州大学硬件实习报告


序号:

学号:







数字时钟设计学生姓名学号:学院(系)专业班级指导教师

实习时间:20XXXXX20XXXXX




1/27


常州大学硬件实习报告
单片机硬件实习任务书
一、设计题目
数字时钟设计
二、设计内容及目标
利用实验仪,完成数字时钟设计,能实现时间的调整、定时时间的设定,输出等功能。系统的功能选择由SB0SB1SB2SB3完成。其中SB0为时间校对,定时器调整功能键,SB0进入调整状态。按SB1键,依次进入时间时位校对、分位校对、秒位校对状态。不管是进入那种状态,按动SB2皆可以使被调整位进行不进位增量加1变化。各预置量设置完成后,系统将所有的设置存入RAM中,按SB3退出调整状态。上电后,系统自动进入计时状态,起始于000000秒。定时时间到,二极管发亮。显示时间的格式为XXXXXX
三、进度安排
周次


XXX指导教师XX_

四、设计时间:20XXXXX日到20XX0XXX

2/27


常州大学硬件实习报告

1、摘要...........................................................................................................................................................4
1.1前言..................................................................................................................................................41.2系统设计题目及内容.......................................................................................................................52、硬件电路设计及描述...............................................................................................................................5
2.1简单介绍...........................................................................................................................................52.2硬件分析..........................................................................................................................................6
2.2.1电子钟的硬件电路................................................................................................................62.2.2键盘及读数原理....................................................................................................................62.2.3晶振电路...............................................................................................................................72.2.4键盘接口和键输入软件中应解决的问题...........................................................................7
3、软件设计流程及描述...............................................................................................................................7
3.1主函数设计流程图..........................................................................................................................7
3.1.1定时器/计数器的应用和编程..............................................................................................73.1.2主循环...................................................................................................................................83.2闹钟函数设计流程图.......................................................................................................................83.3延时函数设计流程图......................................................................................................................93.4显示处理设计流程图......................................................................................................................93.5定时器中断设计流程图..................................................................................................................9
3.5.1动态扫描...............................................................................................................................93.6头文件说明部分............................................................................................................................104、课程设计结果分析.................................................................................................................................11
4.1时钟设置........................................................................................................................................114.2时钟较正........................................................................................................................................11
4.3闹钟设置................................................................................................................................11
5、程序清单.................................................................................................................................................12
5.1主要程序代码:.............................................................................................................................125.2头文件程序代码.............................................................................................................................236、总结.........................................................................................................................................................267、参考文献.................................................................................................................................................27


3/27


常州大学硬件实习报告
1、摘要
1.1前言
单片机广泛应用于实时控制、智能仪器、仪表通信和家用电器等各个领域,所涉及的内容非常广泛,是计算机科学、电子学、自动控制等基础知识的综合应用。单片机的应用系统有硬件和软件所组成。本次单片机硬件实习主要基于小组组员在网上买的51单片机学习板对时、分、秒的显示的控制,时、分、秒用八位数码管显示,LED数码管时钟电路采用24小时计时方式,如果闹铃到所设定的时间LED灯将闪烁,无源喇叭响起。LED显示采用动态扫描方式实现,采用12M晶振。
SingleChipMicrocomputeriswidelyusedinReal-timeControl,IntelligentInstrument,InstrumentationCommunicationandDomesticAppliance.ItisadaptedtolotsofbasicknowledgesuchasComputerScience,Electronics,andSystemDynamicsandsoon.TheHardwareDesignthistimeisbasedonthe51SingleChipMicrocomputerboughtonline.AnditcancontrolthedisplayofHOUR,MINUTEandSECOND.Thethreecandisplayonthe8bitsNixielight.TheLEDattemptsthe24-hourtimemeasurement.Ifyoucouldadjusttheclocktocertaintime,theLEDlightswillshineandalsothealarmwillring.LEDDisplayemployDynamicScanDisplayandthe12M-frequencycrystal.


1本实习中使用的单片机

4/27


常州大学硬件实习报告
1.2系统设计题目及内容
利用实验仪,完成数字时钟设计,能实现时间的调整、定时时间的设定,输出等功能。系统的功能选择由SB0SB1SB2SB3完成。其中SB0为时间校对,定时器调整功能键,按SB0进入调整状态。按SB1键,依次进入时间时位校对、分位校对、秒位校对状态。不管是进入那种状态,按动SB2皆可以使被调整位进行不进位增量加1变化。各预置量设置完成后,系统将所有的设置存入RAM中,按SB3退出调整状态。上电后,系统自动进入计时状态,起始于000000秒。定时时间到,二极管发亮。显示时间的格式为XXXXXX

本课程设计中,SB1SB3用来控制闹钟的,SB2SB4用来控制时钟的。

2、硬件电路设计及描述
2.1简单介绍
这个51单片机学习板是DOFLY公司的一个产品,使用的芯片是宏晶公司的STC89C54RD+,由于和搭档下载程序次数过多,曾经烧坏一个原配的芯片。这个实验用到的硬件器件如下表所示:
器件
STC89C54RD+独立连接式键盘P1.2端口SPEAKER晶振跳帽LED杜邦线数码管USB转串口线USB接口线无源喇叭
数目1
4个,分别为S1~S4一处一个接口12M
一个,在独立键盘处818111
1器件使用清单

5/27


常州大学硬件实习报告



2.2硬件分析
2单片机系统模块

2.2.1电子钟的硬件电路
单片机一上电时是00:00:00


STC89C54RD+单片机控制器

复位电路显示驱动
晶振电路时间显示(时分秒)


2.2.2键盘及读数原理
键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间20ms
6/27

3电子钟的硬件电路

常州大学硬件实习报告
时分显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗。
2.2.3晶振电路
晶振是可以更换的,有6M的、12M的、24M。一般都是用12M的,与日常的手表速度一样。
晶振是为电路提供频率基准的元器件,通常分成有源晶振和无源晶振两个大类,无源晶振需要芯片内部有振荡器,并且晶振的信号电压根据起振电路而定,允许不同的电压,但无源晶振通常信号质量和精度较差,需要精确匹配外围电路(电感、电容、电阻等),如需更换晶振时要同时更换外围的电路。有源
晶振不需要芯片的内部振荡器,可以提供高精度的频4晶振电路率基准,信号质量也较无源晶振要好。
因价格等因素,实际应用中多采用无源晶振设计的电路居多,除非电路设计时序极其敏感或芯片内部无振荡器的情况(如一些型号的DSP或精密仪器中)学习板采用无源晶振,以下是学习板晶振原理图。


2.2.4键盘接口和键输入软件中应解决的问题
(1消除键抖动:机械触点合断电压信号波形,都是时间一般为5~10ms,先延时10ms
(2键盘状态的检测方法——中断方式还是查询方式。(3键盘编码方法。
(4键盘控制程序的编制。

3、软件设计流程及描述
3.1主函数设计流程图
3.1.1定时器/计数器的应用和编程
应用定时器/计数器是单片机应用系统中经常使用的部件之一。定时器/计数器的使用方法对程序编制、硬件电路以及CPU的工作都有直接影响。
应用定时器/计数器时需注意两点:一是初始化(写入控制字),二是对初始化的计算。初始化步骤为:
1TMOD写工作方式控制字——本题中,都是选择的是工作方式一。
2向计数器TLxTHx装入初值——定时器T0载入的是10ms定时器T1载入的是0.0018083TRx=1,启动计数——分别启动定时器
7/27


常州大学硬件实习报告
4ETx=1,允许定时器/计数器中断(若需要时)
5EA=1CPU开中断(若需要时)——总中断开启一次即可
定义两个按键标志位,分别用于实际操作里的切换时间的、切换闹钟的标志作用。
3.1.2主循环
主循环的第一部分是了定义显示函数,即xianshi(
第一大模块是校时切换功能,第二大模块是若有切换下,第三模块是闹钟切换键盘按下,第四模块是若有键按下。
(1校时切换功能
While(!KEY2指的是直到KEY2弹起才进行下面程序。
SwitchCaseBreak语句比较经典,以flag1作为标志位。For循环是为了体现闪烁两次,次数可以自定。
(2模块若有切换下
时钟切换的时候按KEY4,低电平有效。按一下是设置小时,按两次是设置分钟,按三次是设置秒。小时满了24小时,清零;分钟满了60分钟,秒时满了60秒,清零。(3闹钟切换键盘按下
类似校时切换功能,这里定义flag为标志位。记录按键次数。(4模块若有键按下
类似于第二模块。在闹钟模块,显示函数是Displayprol1(
3.2闹钟函数设计流程图
在闹钟显示模块中,定义了两次for循环函数并取反,用来显示闹铃时间到了。一个是,LED灯闪烁,一个是喇叭发声。在两次延时函数中,参数都可以任意定义。
58LED

6闹钟函数设计流程图


8/27

常州大学硬件实习报告
8LED灯对应的接口是P1.0~P1.7,所以程序代码也是相应的。
3.3延时函数设计流程图
循环函数的代码是固定写法,采用了while函数。

3.4显示处理设计流程图
DisplayProDisplayProgramme的缩写,这一函数有三个类似的模块,分别显示时间的小时、分钟、秒针以及分段线。因为小时、分钟、以及秒针都是两位数字。所以,两位数的前一位是对10求整,后一位就是对10求余。固定格式比较工整。3.5定时器中断设计流程图3.5.1动态扫描

9/27

开始
有键按下否
调用10ms延时子程序
调用10ms延时子程序
有键按下否
判断闭合键
有键按下
键码->A
返回
7动态扫描
8独立按键和矩阵键盘

常州大学硬件实习报告
3.6头文件说明部分
首先,头文件是reg52.h,一般不需要改动,头文件包含特殊功能寄存器的定义。端口的定义:从图中可以得出,S1~S44个键分别连着P3.0~P3.3本题采用共阴极数码管,相对应的段码如表格所示。

字型012345678
共阳极段码
C0HF9HA4HBOH99H92H82HF8H80H
共阴极段码
3FH06H5BH4FH66H6DH7DH07H7FH
2段码
字型9ABCDEF空白P
共阳极段码
90H88H83HC6HA1H86H84HFFH8CH
共阴极段码
6FH77H7CH39H5EH79H71H00H73H
除了定义头文件、端口和数码管,还需要定义8位的缓冲区和单片机通电时的初始值。

10/27


常州大学硬件实习报告
4、课程设计结果分析

时钟较正4.1时钟设置4.2
可以设置为00:00:03
时钟较正为03:10:05
9时钟设置
10时钟校正


4.3闹钟设置
设置为03:10:30

11闹钟设置


11/27


常州大学硬件实习报告
5、程序清单
5.1主要程序代码:
/*-------------------------------------------------------------------
;本电子钟实现小时制,位数码管显示时分秒,可设定时间点报时;显示格式:00-00-00
;通过4只按键来调整时间
;闹钟调整选择键S1,校时调整选择键S2,闹钟功能加1S3,校时功能加1S4;如果选中位是秒,则按增加键可实现调整,但无调时快进和快减功能;P0口输出数码管段选信号,P2口输出数码管位选信号;晶振12M
;P1.2为蜂鸣器发声报时
;编程人:XXX研发者:XXX编写日期:20XXXXXX日修改日期(最终:20XXXXXX
-------------------------------------------------------------------*/
#include//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

//定义端口参数
sbitKEY1=P3^0;//闹钟切换键sbit用来声明一个变量sbitKEY2=P3^1;//时钟校时切换键
sbitKEY3=P3^2;//闹钟加设置键sbitKEY4=P3^3;//时钟加设置键
sbitlaba=P1^2;//喇叭控制口,通过杜邦线相连接
codeunsignedchartab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴数码管0-9
unsignedcharStrTab[8];//定义缓冲区
unsignedcharminute=0,hour=0,second=0,minute1=0,hour1=0;second1=0,xs;//定义变量并且初始化值00:00:00
unsignedcharminute2=0,hour2=0;second2=0;//定义时钟设置初值
/******************************************************************//*延时函数*//******************************************************************/voiddelay(unsignedintcnt{
while(--cnt;//while循环用作延时函数
}
/******************************************************************//*闹钟函数模块*/
12/27


常州大学硬件实习报告
/******************************************************************/voidxianshi(//显示函数
{
unsignedchari,j;//定义两个临时参数for(i=0;i<2;i++{

delay(50000;//使得led灯闪烁次
P1=~P1;}
for(j=0;j<200;j++{delay(500;//决定发声的频率
laba=~laba;//喇叭发声
}

laba=1;//让喇叭停止工作
delay(20;}
/******************************************************************/
/*显示处理函数/******************************************************************/voidDisplaypro(void{StrTab[0]=tab[hour/10];//显示小时的十位StrTab[1]=tab[hour%10];//显示小时的个位StrTab[2]=0x40;//显示"-"StrTab[3]=tab[minute/10];//显示分钟的十位StrTab[4]=tab[minute%10];//显示分钟的个位StrTab[5]=0x40;//显示"-"StrTab[6]=tab[second/10];//显示秒针的十位StrTab[7]=tab[second%10];//显示秒针的个位}
voidDisplaypro1(void{

13/27

*/
常州大学硬件实习报告
StrTab[0]=tab[hour1/10];//显示闹钟设置模式下小时的十位StrTab[1]=tab[hour1%10];//显示闹钟设置模式下小时的个位StrTab[2]=0x40;//显示"-"StrTab[3]=tab[minute1/10];//显示闹钟设置模式下分钟的十位StrTab[4]=tab[minute1%10];//显示闹钟设置模式下分钟的个位StrTab[5]=0x40;//显示"-"
StrTab[6]=tab[second1/10];//显示闹钟设置模式下秒钟的十位StrTab[7]=tab[second1%10];//显示闹钟设置模式下秒钟的个位

}
voidDisplaypro2(void{StrTab[0]=tab[hour2/10];//显示校时设置模式下小时的十位StrTab[1]=tab[hour2%10];//显示校时设置模式下小时的个位StrTab[2]=0x40;//显示"-"StrTab[3]=tab[minute2/10];//显示校时设置模式下分钟的十位StrTab[4]=tab[minute2%10];//显示校时设置模式下分钟的个位StrTab[5]=0x40;//显示"-"StrTab[6]=tab[second2/10];//显示校时设置模式下秒钟的十位StrTab[7]=tab[second2%10];//显示校时设置模式下秒钟的个位}
/******************************************************************//*主函数*//******************************************************************/main(//主函数{
unsignedintflag=0,i;//定义按键标志位,和临时变量



unsignedintflag1=0;//定义按键标志位

TMOD|=0x01;//定时器T010msin12Mcrystal用于计时TH0=0xd8;//初值
TL0=0xf0;
ET0=1;//T0中断允许位置TR0=1;//T0中断
14/27


常州大学硬件实习报告

TMOD|=0x10;//定时器T1用于动态扫描,使用模式116位定时器,使用"|"符号可以在使用多个定时器时不受影响TH1=0xF8;//初值0.001808sTL1=0xf0;ET1=1;//T1中断允许位置TR1=1;//T1中断
EA=1;//开总中断














Displaypro(;//调用显示处理
while(1//主循环{
if(xs==1//显示标志位为


{if(second==second1&&minute==minute1&&hour==hour1//钟设置的时间相同时


{

xianshi(;//调用闹铃程序
}}
if(KEY1==1&&KEY2==0//当校时切换键按下

{
xs=0;//进入校时模式的时候不可以闹钟响delay(500;//延时去抖
if(KEY1==1&&KEY2==0//确定按下{
TR0=0;//关定时器T0TR1=1;//开定时器T1,进行键盘扫描flag1++;//按键次数累加





while(!KEY2;//直到KEY2弹起才进行下面程序if(KEY2==1
15/27

常州大学硬件实习报告













{switch(flag1



计算{case1://按了一次切换键

{


for(i=0;i<2;i++


//闪烁两次
{StrTab[1]=0x00;//小时十位变暗

StrTab[0]=0x00;//小时个位变暗
delay(50000;//延时
StrTab[0]=tab[hour/10];//小时十位显示现在的数值StrTab[1]=tab[hour%10];//小时个位显示现在的数值delay(50000;//延时}
};break;//退出


case2://按了两次切换键
{for(i=0;i<2;i++{StrTab[4]=0x00;//分钟十位变暗StrTab[3]=0x00;//分钟个位变暗delay(50000;//延时
StrTab[3]=tab[minute/10];//分钟十位显示现在的数StrTab[4]=tab[minute%10];//分钟个位显示现在的数值delay(50000;//延时}
};break;//退出


case3://按了3次切换键
{for(i=0;i<2;i++{StrTab[7]=0x00;//秒钟十位变暗StrTab[6]=0x00;//秒钟个位变暗delay(50000;//延时
StrTab[6]=tab[second/10];//秒钟十位显示现在的数
16/27

常州大学硬件实习报告


StrTab[7]=tab[second%10];//秒钟个位显示现在的数值delay(50000;//延时
}};break;//退出
case4://退出设置模式





{
TR0=1;//开定时器T0flag1=0;//标志位清零
minute=minute2;//把设置的新值直接显示出来
hour=hour2;second=second2;Displaypro(;//调用显示函数}break;//退出
}//switch}//if(KEY1==1}
}//END(KEY1==1&&KEY2==0if(flag1!=0//若有切换键按下

{

if(KEY4==0//如果加键按下{
delay(500;//去抖


if(flag1==1//如果现在设置的是小时



{
hour2++;//校时时间小时加if(hour2==24//如果小时为hour2=0;//到清
Displaypro2(;//调用校时显示函数while(!KEY4;//等待加键松开


//按键触发常用写法。


}
if(flag1==2//如果现在设置的是分钟{
17/27

常州大学硬件实习报告






minute2++;//校时时间分钟加if(minute2==60//分钟为minute2=0;//分钟清
Displaypro2(;//调用校时显示函数while(!KEY4;//等待加键松开
}
if(flag1==3//如果现在设置的是秒钟{
second2++;//校时时间秒钟加if(second2==60//秒钟为second2=0;//秒清
Displaypro2(;//调用校时显示函数while(!KEY4;//等待加键松开

}}}

if(KEY1==0//闹钟切换键盘按下


{
xs=0;//显示标志位为delay(500;//延时去抖if(KEY1==0//的确按下{

TR0=0;//关定时器T0
TR1=1;//开定时器T1,进行键盘扫描flag++;//按键次数累加

while(!KEY1;//直到KEY1弹起才进行下面程序if(KEY1==1{
18/27

常州大学硬件实习报告
switch(flag{










case1://按了一次切换键
{
for(i=0;i<2;i++{StrTab[1]=0x00;//小时十位变暗StrTab[0]=0x00;//小时个位变暗delay(50000;//延时
StrTab[0]=tab[hour/10];//小时十位显示现在的数值StrTab[1]=tab[hour%10];//小时个位显示现在的数值delay(50000;//延时}
};break;//退出
case2://按了两次切换键
{for(i=0;i<2;i++{

StrTab[4]=0x00;//分钟十位变暗
StrTab[3]=0x00;//分钟个位变暗
delay(50000;//延时
StrTab[3]=tab[minute/10];//分钟十位显示现在的数StrTab[4]=tab[minute%10];//分钟个位显示现在的数值delay(50000;//延时}
};break;//退出
case3://按了三次切换键

{

for(i=0;i<2;i++{StrTab[7]=0x00;//秒钟十位变暗StrTab[6]=0x00;//秒钟个位变暗delay(50000;//延时
StrTab[6]=tab[second/10];//秒钟十位显示现在的数19/27

常州大学硬件实习报告








StrTab[7]=tab[second%10];//秒钟个位显示现在的数值delay(50000;//延时
}};break;
case4://退出设置模式
{
xs=1;//闹钟设置位为,标志可以允许闹钟响TR0=1;//开定时器TR1=1;//开定时器flag=0;//按键标志位清



minute=minute2;//从正常时间开始显示hour=hour2;second=second2;
Displaypro(;//显示正常时间
}}//switch}//if}//if(KEY1==0}//if(KEY1==0if(flag!=0//按键标志位不为,即有键按下

{

if(KEY3==0//闹钟设置加键按下{
delay(500;//延时去抖
if(flag==1//如果设置的是闹钟小时位{
hour1++;//小时加
if(hour1==24//小时达到时hour1=0;//Displaypro1(;//显示闹钟设置的值while(!KEY3;//等待KEY3弹起




}
if(flag==2//如果设置的是闹钟分钟位{

minute1++;//分钟加
20/27


常州大学硬件实习报告





if(minute1==60//分钟达到minute1=0;//
Displaypro1(;//显示闹钟设置的值while(!KEY3;//等待KEY3弹起
}
if(flag==3//如果设置的是闹钟秒钟位{
second1++;//秒钟加
if(second1==60//秒钟达到second1=0;//Displaypro1(;//显示闹钟设置的值while(!KEY3;//等待KEY3弹起

}}}}}
/******************************************************************//*定时器中断*//******************************************************************/voidtime1_isr(interrupt3using0//定时器用来动态扫描{
staticunsignedcharnum;TH1=0xF8;//重入初值


TL1=0xf0;switch(num{
case0:P2=0;P0=StrTab[num];break;//分别调用缓冲区的值进行扫描case1:P2=1;P0=StrTab[num];break;case2:P2=2;P0=StrTab[num];break;
case3:P2=3;P0=StrTab[num];break;//段码,P0;位码,P2case4:P2=4;P0=StrTab[num];break;case5:P2=5;P0=StrTab[num];break;case6:P2=6;P0=StrTab[num];break;case7:P2=7;P0=StrTab[num];break;default:break;}
21/27


常州大学硬件实习报告
num++;//扫描次,使用个数码管if(num==8//扫描完0.14464snum=0;//,重扫

}
/******************************************************************//*定时器中断*//******************************************************************/voidtim(voidinterrupt1using1{staticunsignedcharcount;//定义内部静态变量
TH0=0xd8;//重新赋值TL0=0xf0;//?10毫秒1次中断,staticunsignedcharcount累加,加到100,就是1s
count++;switch(count{
case80:Displaypro(;break;//隔一定时间调用显示处理default:break;
}
if(count==100//相当于计时到秒{
count=0;//second++;//秒加if(second==60//达到秒

{
second=0;//秒清
minute++;//分加if(minute==60//达到分钟
{minute=0;//分清hour++;//时加if(hour==24//达到小时hour=0;//小时清}
22/27

常州大学硬件实习报告
}}}
5.2头文件程序代码
/*--------------------------------------------------------------------------REG52.H
Headerfileforgeneric80C52and80C32microcontroller.
Copyright(c1988-2002KeilElektronikGmbHandKeilSoftware,Inc.Allrightsreserved.
--------------------------------------------------------------------------*/
#ifndef__REG52_H__#define__REG52_H__
/*BYTERegisters*/sfrP0=0x80;sfrP1=0x90;sfrP2=0xA0;sfrP3=0xB0;sfrPSW=0xD0;sfrACC=0xE0;sfrB=0xF0;sfrSP=0x81;sfrDPL=0x82;sfrDPH=0x83;sfrPCON=0x87;sfrTCON=0x88;sfrTMOD=0x89;sfrTL0=0x8A;sfrTL1=0x8B;sfrTH0=0x8C;
23/27


常州大学硬件实习报告
sfrTH1=0x8D;sfrIE=0xA8;sfrIP=0xB8;sfrSCON=0x98;sfrSBUF=0x99;
/*8052Extensions*/sfrT2CON=0xC8;sfrRCAP2L=0xCA;sfrRCAP2H=0xCB;sfrTL2=0xCC;sfrTH2=0xCD;
/*BITRegisters*//*PSW*/
sbitCY=PSW^7;sbitAC=PSW^6;sbitF0=PSW^5;sbitRS1=PSW^4;
sbitRS0=PSW^3;sbitOV=PSW^2;
sbitP=PSW^0;//8052only
/*TCON*/
sbitTF1=TCON^7;sbitTR1=TCON^6;sbitTF0=TCON^5;sbitTR0=TCON^4;sbitIE1=TCON^3;sbitIT1=TCON^2;sbitIE0=TCON^1;sbitIT0=TCON^0;
/*IE*/
sbitEA=IE^7;
sbitET2=IE^5;//8052only
24/27


常州大学硬件实习报告
sbitES=IE^4;sbitET1=IE^3;sbitEX1=IE^2;sbitET0=IE^1;sbitEX0=IE^0;
/*IP*/
sbitPT2=IP^5;sbitPS=IP^4;sbitPT1=IP^3;sbitPX1=IP^2;sbitPT0=IP^1;sbitPX0=IP^0;
/*P3*/
sbitRD=P3^7;sbitWR=P3^6;sbitT1=P3^5;sbitT0=P3^4;sbitINT1=P3^3;sbitINT0=P3^2;sbitTXD=P3^1;sbitRXD=P3^0;
/*SCON*/
sbitSM0=SCON^7;sbitSM1=SCON^6;sbitSM2=SCON^5;sbitREN=SCON^4;sbitTB8=SCON^3;sbitRB8=SCON^2;sbitTI=SCON^1;sbitRI=SCON^0;
/*P1*/
sbitT2EX=P1^1;//8052onlysbitT2=P1^0;//8052only
25/27


常州大学硬件实习报告
/*T2CON*/
sbitTF2=T2CON^7;sbitEXF2=T2CON^6;sbitRCLK=T2CON^5;sbitTCLK=T2CON^4;sbitEXEN2=T2CON^3;sbitTR2=T2CON^2;sbitC_T2=T2CON^1;sbitCP_RL2=T2CON^0;
#endif
6、总结
通过本次实习,我在以下几个方面得到训练和提高:
1利用所学过的知识,初步分析单片机原理及接口技术的能力;P1~P3口的使用通过动手操作和读取原理图弄懂了。
2单片机定时/计数系统的设计、编程与调试的能力;
这是本次实验的重点。定时器/计数器的书写都有一定的固定格式,比较工整。我认为自己还要再加强练习。
3单片机中断系统的应用设计、调试的能力;本次实验用到了两次中断系统,扫描和时间。
4单片机并行、串行通信的设计和调试的能力;
在我们自己的单片机上操作,体会还是有的。尤其是串行口。5实验结果分析、总结及撰写技术报告的能力。
我认为老师给我们的指导比较到位,从封面到内容,从字体大小到字体型号,页眉页脚等。都有很强的和明确的指导性。实验结果分析能力我觉得自己还有些弱。继续努力。

26/27


常州大学硬件实习报告
7、参考文献
XXXXXX
27/27


本文来源:https://www.2haoxitong.net/k/doc/cfb8c58102d276a200292e8e.html

《常州大学硬件实习报告 数字时钟设计论文答辩 (单片机).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式