shi=(int)date/10; ge=(int)date; temp=date-(int)date; temp1=temp*100;
write_com(0x80+0x42); //十位计算
//写数据地址
write_data(0x30+qian); write_data(0x30+bai); write_data(0x30+shi); write_data(0x30+ge); write_data('.');
write_data(0x30+temp1/10); write_data(0x30+temp1); write_data(0x48); write_data(0x5a); }
void xsf(void) //显示频率
{
if(s1num==1)
{
fre=((float)1000/(9+3*ys)); write_f(fre);
}
if(s1num==2) {
fre=((float)100000/(3*ys)); write_f(fre);
}
if(s1num==3) {
fre=((float)1000/(15+3*ys)); //
write_f(fre);
} }
//频率的计算公式//显示频率
//频率的计算公式//显示频率
频率的计算公式 显示频率
8
//
4.3波形切换模块 void keyscanf(void) { d=0; if(s1==0) {
//说明按键1按下了
if(S1_Flag==1)
{
S1_Flag=0;
ChagneFlag=1; s1num++; if(s1num==1) {
//说明是正弦波
//波形加1
ys=0;
write_com(0x80+0x05);
write_data(0x73); //写sine: write_data(0x69); write_data(0x6e); write_data(0x65);
write_data(0x20); //0x20代表空格,即清屏 write_data(0x20); //0x20代表空格,即清屏 }
if(s1num==2) {
//说明是矩形波
ys=10;
write_com(0x80+0x05);
write_data(0x73); //写squrae write_data(0x71); write_data(0x75); write_data(0x61); write_data(0x72); write_data(0x65);
}
if(s1num==3)
//说明是三角波
9
{
ys=0;
write_com(0x80+0x05);
//train
write_data(0x74); write_data(0x72); write_data(0x61); write_data(0x69); write_data(0x6e);
write_data(0x20);
} if(s1num==4) {
s1num=0;
P1=0;
write_com(0x80+0x05); write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20);
write_data(0x20);
write_data(0x20);
write_data(0x20);
write_data(0x20); write_data(0x20);
write_com(0x80+0x42);
write_data(0x20);
write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20);
write_data(0x20);
write_data(0x20); write_data(0x20);
//0x20代表空格,即清屏 //清屏
//设置为第二行
10
write_data(0x20);
write_data(0x20); }
write_data(0x20);
write_data(0x20);
}
}
4.4定时模块
void system_Ini(void) {
TMOD|= 0x11;
//定时器0工作方式1,定时器1工作在方式1
//系统初始化
TH1 = 0xD8; //10 TL1 = 0xF0;
IE = 0x8A; TR1 = 1; }
//10MS的定时
//开关中断和定时器1中断 //开启定时器1
5.基于单片机的函数信号发生器具体硬件实现
5.1单片机的最小系统
AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。用AT89C51单片机构成最小应用系统时,由于集成度的限制,最小应用系统只能用作一些小型的控制单元。
11
图5-1 89C51单片机最小系统
如图5-1所示AT89C51各引脚功能:1.P0.0-P0.7:P0口的8位双向三态I/O口线。2.P1.0-P1.7:P1口的8位准双向口线。3.P2.0-P2.7:P2口的8位准双向口线。4.P3.0-P3.7:P3口的8位具有双重功能的准双向口线。5.PSEN:外部程序存储器读选通信号,读外部ROM时PSEN低电平有效。6.ALE:地址锁存控制信号。7.EA:访问程序存储器控制信号,当EA为高电平或悬空时,对ROM的读操作限制在内部程序存储器;当EA为低电平时,则对ROM的读操作是从内部存储器开始的,并可延至外部程序存储器。8.RST:复位信号,复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作。9.XTAL1和XTAL2:外接晶体引线端,当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。 P3口线的第二功能如表5-1所列。
表5-1 P3口线的第二功能 口线 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 时钟电路
12
[6]
第二功能 RXD TXD INT0 信号名称 串行数据接收 串行数据发送 外部中断0申请 外部中断1申请 定时器/计数器0计数输入 定时器/计数器1计数输入 外部RAM写选通 外部RAM读通 INT1 T0 T1 WR RD