文档详情

西安交通大学电子线路实验实验报告.pdf

发布:2017-05-18约9.1千字共28页下载文档
文本预览下载声明
电子线路实验实验报告 姓名:刘妍 班级:电信硕31 学号:2130508002 指导老师:张良祖、许宏斌、刘美兰 一、实验目的: 1. 学习单片机基础知识; 2. 熟练掌握Keil软件的使用方法; 3. 学会使用C51编程调试实验板,调试程序。 二、实验设备: 计算机、Keil软件、示波器、C51编程调试板等。 三、实验内容: 1.实验一: 创建一个工程将键盘阵列定义为0. 1. 2 E. F,编程实现 键盘设置时钟显示在LED显示屏上,设置日历显示在LCD显示屏上, 用键盘按键实现日历、时钟变换位置显示。 2.实验二: 利用D/A转换通道(下行通道)实现锯齿波发生器;输出(1~5V) 固定电压转换成(4~20mA)电流。 3.实验三: 利用A/D转换通道(上行通道)实现数据采集,将采集信号显示 在LED、LCD屏上。程序要求分别具有平均值滤波、中值滤波和滑动 滤波功能,同时将三种滤波结果显示在LED、LCD屏上。 实验过程: 实验一: #include SST89x5x4.H #include INTRINS.H #define uchar unsigned char #define uint unsigned int unsigned char code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6 f}; #include keyboard.h #include pcf.h #include LCDshow.h #include show.h bit ReadTimeFlag=1; uchar *Time,key,key1; uint i=0; uint ChooseFlag=0; void Init_Timer(void); void main(void) {Init_Timer(); Init8563(); LCD_Init(); while(1) {Key_Init(); key=0xff; key=GetKey(); switch(key) {case0x0a://按下10键设置时间 LCD_Init(); Delay_s(1); TAB_T[0]=0x0; TAB_T[1]=0x0; TAB_T[2]=0x0; key=0xff; for (i= 6; i 0; i--) {key=0xff; while(key==0xff) {Delay_ms(50); key=GetKey(); } if(((i%2)!=1)(i!=6)) {WritD(0x3a);} key1=Key_ASC2(key); WritD(key1); Delay_s(1); if((key=0x09)(key=0x00)(i4)) TAB_T[2]+=key(4*(i-5)); if((key=0x09)(key=0x00)(i2)(i=4)) TAB_T[1]+=key(4*(i-3)); if((key=0x09)(key=0x00)(i=2)) TAB_T[0]+=key(4*(i-1));} if(TAB_T[2]=0x24) TAB_T[2]=0x00; if(TAB_T[1]=0x60) TAB_T[1]=0x00; if(TAB_T[0]=0x60) TAB_T[0]=0x00; Write8563(0x03,TAB_T[1]); Write8563(0x04,TAB_T[2]); Write8563(0x02,TAB_T[0]); ChooseFlag=ChooseFlag; LCD_Init(); break; case 0x0b: //按下11键设置日期 LCD_Init(); Key_Init(); Delay_s(1); TAB_T[3]=0x00; TAB_T[5]=0x00; TAB_T[6]=0x00; for(i=7;i0;i--) {key=0xff; while(key==0xff) {Delay_ms(50); key=GetKey();} if(((i%2)==1)(i!=7)(i!=1)) WritD(0x2f); if(i==1) WritD(0x2d); key1=Key_ASC2(key); WritD(key1); Delay_s(1); if((key=0x09)(key=0x00)(i5)) TAB_T[6]+=key(4*(i-6)); if
显示全部
相似文档