电子线路设计 II
实验报告
电子线路设计实验报告
实验内容:
. 1. 2------ E. F,编程实现键盘设置当前时间,再调用系统时钟,显示在
LED显示屏上(注意仔细阅读PCF8563资料),键盘设置当前日期显示在LCD显示屏上。
(下行通道)实现锯齿波发生器;输出(1~5V)固定电压转换成(4~20mA)电流。
(上行通道)实现数据采集,将采集信号显示在LED屏上。程序要求分别具有平均值滤波、中值滤波和滑动滤波功能。
实验方法:
通过在Keil uVision2 中进行程序的编写和语法测试,之后通过电脑USB串口将程序下载到实验板上进行实际的程序运行,通过实际运行结果对程序进行调整。
实验程序:
本次实验中,我将要验收的三个实验结合分别写了三个程序,我设计了主界面。除第二个程序考虑到要连续输出波形而选定后无法退回主界面外,其与两个程序均能通过按键功能退到主界面。以下为我编写的代码。
日历时钟
//-----------------------main-----------------------//
#include <>
#include <>
#include<>
#include<>
#include<>
#define uchar unsigned char
#define uint unsigned int
sbit be=P1^6;
ucharnian,yue,ri,shi,fen,miao,xingqi,shialarm,fenalarm,flag=1;
uchar code table1[]="20 - - "; //年月日起始地址依次为:02h,05h,08h,0ch
uchar code table2[]=" : : A : "; //时分秒起始地址依次为:40h,43h,46h,4b,4e
unsigned char xdata * ptr;
void beep()
{
be=1;
delay(100);
be=0;
delay(100);
be=1;delay(100);
be=0;
}
void main()
{
uinti=0;
uchar key;
EA=1;
EX1=1;
i2c_init();
LCD_Init();
pcf_init();
for(i=0;i<=14;i++)
{
WritD(table1[i]);
}
LCD_Init2(0);
for(i=0;i<=14;i++)
{
WritD(table2[i]);
}
writepcf_series(0x14,0x04,0x08,0x02,0x15,0x05,0x00) ;
readpcf_series();
xianshi();
while(1)
{
key=keycan(&flag);
xianshi1();
if(flag==1)
{
readpcf_series1();
xianshi();
}
}
}
void alarm() interrupt 2
{
writepcf(0x01,0x00);
beep();
}
//-------------------------BCD------------------------//
#include <>
#define uchar unsigned char
#define uint unsigned int
#include <>
uchar BCD1(uchar q)
{
uchar bcd1=0;
bcd1=q>>4;
bcd1=10*bcd1+(q&0x0f) ;
return bcd1;
}
uchar BCD2(uchar q1)
{
uchar bcd2=0;
bcd2=q1/10;
bcd2<<=4;
q1=q1%10;
bcd2=bcd2|q1;
return bcd2;
}
//-----------------------change-----------------------//
#include <>
#define uchar unsigned char
#define uint unsigned int
电子线路设计实验报告 来自淘豆网m.daumloan.com转载请标明出处.