当前位置:文档之家› DS1302可调电子时钟1602显示proteus仿真

DS1302可调电子时钟1602显示proteus仿真

DS1302可调电子时钟1602显示proteus仿真
DS1302可调电子时钟1602显示proteus仿真

总电路图:

单片机电路图:

1602接线图:

1302接线图:(I/O接单片机3.5脚)

按键接线图:

程序清单:

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit ACC0 = ACC^0;

sbit ACC7 = ACC^7;

sbit t=P1^0;//进入调时按键

sbit jia=P1^1;//加一按键

sbit jian=P1^2;//减一按键

sbit m=P1^3;//退出调时按键

sbit BEEP=P2^0;//蜂鸣器

sbit jtod=P1^4;//矩阵按键转独立按键,该脚置0

sbit T_CLK = P1^6; /*实时时钟时钟线引脚*/

sbit T_IO = P3^5; /*实时时钟数据线引脚*/

sbit T_RST = P1^7; /*实时时钟复位线引脚*/

sbit E=P2^7; //1602使能引脚

sbit RW=P2^6; //1602读写引脚

sbit RS=P2^5; //1602数据/命令选择引脚

uchar code hanzi[][8]={{0x04,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02},{0x0f,0x09,0x0f,0x09,0x0f,0x09,0x13, 0x11},{0x1f,0x11,0x11,0x1f,0x11,0x11,0x1f,0x00}};

void v_W1302(uchar ucAddr, uchar ucDa);

uchar uc_R1302(uchar);

uchar dectobcd(uchar bcd);

uchar bcdtodec(uchar);

void beep();

void delay(uchar x)

{

uchar i;

while(x--)

for(i=0;i<110;i++);

}

/********************************************************************

* 名称: enable(uchar del)

* 功能: 1602命令函数

* 输入: 输入的命令值

* 输出: 无

***********************************************************************/

void enable(uchar del)

{

RS = 0;

RW = 0;

P0 = del;

E = 1;

delay(3);

E=0;

}

/********************************************************************

* 名称: write(uchar del)

* 功能: 1602写数据函数

* 输入: 需要写入1602的数据

* 输出: 无

***********************************************************************/

void write(uchar del)

{

RS = 1;

RW = 0;

P0 = del;

E = 1;

delay(3);

E=0;

}

/********************************************************************

* 名称: L1602_init()

* 功能: 1602初始化,请参考1602的资料

* 输入: 无

* 输出: 无

***********************************************************************/ void L1602_init(void)

{

enable(0x01);

enable(0x38);

enable(0x06);

enable(0x0c);

E=0;

}

//装入自定义字符(汉字)

void writch()

{

uchar i,j;

enable(0x40);

for(i=0;i<8;i++)

for(j=0;j<8;j++)

write(hanzi[i][j]);

}

/********************************************************************

* 名称: L1602_char(uchar hang,uchar lie,char sign)

* 功能: 改变液晶中某位的值,如果要让第一行,第五个字符显示"b" ,调用该函数如下L1602_char(1,5,'b')

* 输入: 行,列,需要输入1602的数据

* 输出: 无

***********************************************************************/

void L1602_char(uchar hang,uchar lie,char sign)

{

uchar a;

if(hang == 1) a = 0x80;

if(hang == 2) a = 0xc0;

a = a + lie - 1;

enable(a);

write(sign);

}

/********************************************************************

* 名称: L1602_string(uchar hang,uchar lie,uchar *p)

* 功能: 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下

L1602_string(1,5,"ab cd ef;")

* 输入: 行,列,需要输入1602的数据

* 输出: 无

***********************************************************************/

void L1602_string(uchar hang,uchar lie,uchar *p)

{

uchar a;

if(hang == 1) a = 0x80;

if(hang == 2) a = 0xc0;

a = a + lie - 1;

enable(a);

while(1)

{

if(*p == '\0') break;

write(*p);

p++;

}

}

//时钟调节//

void timechange()

{

uchar a,num=1;

uchar year,mon,day,hour,min,sec;

//进入调时循环

while(num)

{

if(t==0)

delay(5);

if(t==0)

{

num++;

beep();

while(!t);

}

//退出调时按键m

if(m==0)

delay(5);

if(m==0)

num=0;

enable(0x0f);

a=uc_R1302(0x81)|0x80;

v_W1302(0x8e,0);

v_W1302(0x80,a);

//调时到年以后退出调时

if(num==7)

num=0;

//num=1调秒

if(num==1)

{

enable(0xc0+12);

if(jia==0)

delay(5);

if(jia==0) //秒加一

{

while(!jia);

sec=bcdtodec(uc_R1302(0x81)&0x7f);

sec++;

if(sec>59)

sec=0;

L1602_char(2, 12, sec/10%10+48);

L1602_char(2, 13, sec%10 + 48);

v_W1302(0x80,dectobcd(sec)|0x80); }

if(jian==0) //秒减一delay(5);

if(jian==0)

{

while(!jian);

sec=bcdtodec(uc_R1302(0x81));

sec--;

if(sec==-1)

sec=59;

L1602_char(2, 12, sec/10%10+48);

L1602_char(2, 13, sec%10 + 48);

v_W1302(0x80,dectobcd(sec)|0x80); }

}

if(num==2) //调分钟{

enable(0xc0+9);

if(jia==0)

delay(5);

if(jia==0)

{

min = bcdtodec(uc_R1302(0x83));

min++;

while(!jia);

if(min>59)

min=0;

L1602_char(2, 9, min / 10 % 10 + 48); L1602_char(2, 10, min % 10 + 48);

v_W1302(0x82,dectobcd(min));

}

if(jian==0)

delay(5);

if(jian==0)

{

min = bcdtodec(uc_R1302(0x83));

min--;

while(!jian);

if(min==-1)

min=59;

L1602_char(2, 9, min / 10 % 10 + 48); L1602_char(2, 10, min % 10 + 48);

v_W1302(0x82,dectobcd(min));

}

}

if(num==3) //调小时

{

enable(0xc0+6);

if(jia==0)

delay(5);

if(jia==0)

{

hour = bcdtodec(uc_R1302(0x85)); hour++;

while(!jia);

if(hour>23)

hour=0;

L1602_char(2, 6, hour / 10 % 10 + 48); L1602_char(2, 7, hour % 10 + 48);

v_W1302(0x84,dectobcd(hour));

}

if(jian==0)

delay(5);

if(jian==0)

{

while(!jian);

hour = bcdtodec(uc_R1302(0x85)); hour--;

if(hour==-1)

hour=23;

L1602_char(2, 6, hour / 10 % 10 + 48); L1602_char(2, 7, hour % 10 + 48);

v_W1302(0x84,dectobcd(hour));

}

}

if(num==4) //调日期

{

enable(0x80+13);

if(jia==0)

delay(5);

if(jia==0)

{

hour = bcdtodec(uc_R1302(0x87)); day++;

while(!jia);

if(day>31)

day=0;

L1602_char(1, 13, day / 10 % 10 + 48); L1602_char(1, 14, day % 10 + 48);

v_W1302(0x86,dectobcd(day));

}

if(jian==0)

delay(5);

if(jian==0)

{

while(!jian);

day=bcdtodec(uc_R1302(0x87));

day--;

if(day==-1)

day=31;

L1602_char(1,13,day/10%10+48);

L1602_char(1,14,day%10+48);

v_W1302(0x86,dectobcd(day));

}

}

if(num==5) //调月份{

enable(0x80+10);

if(jia==0)

delay(5);

if(jia==0)

{

mon = bcdtodec(uc_R1302(0x89)); mon++;

while(!jia);

if(mon>12)

mon=0;

L1602_char(1, 10, mon / 10 % 10 + 48); L1602_char(1, 11, mon % 10 + 48);

v_W1302(0x88,dectobcd(mon));

}

if(jian==0)

delay(5);

if(jian==0)

{

while(!jian);

mon = bcdtodec(uc_R1302(0x89));

mon--;

if(mon==-1)

mon=12;

L1602_char(1, 10, mon / 10 % 10 + 48);

L1602_char(1, 11, mon % 10 + 48);

v_W1302(0x88,dectobcd(mon));

}

}

if(num==6) //调年份

{

enable(0x80+7);

if(jia==0)

delay(5);

if(jia==0)

{

year = bcdtodec(uc_R1302(0x8d));

year++;

while(!jia);

if(year>20)

year=0;

L1602_char(1, 7, year / 10 % 10 + 48);

L1602_char(1, 8, year % 10 + 48);

v_W1302(0x8c,dectobcd(year));

}

if(jian==0)

delay(5);

if(jian==0)

{

while(!jian);

year = bcdtodec(uc_R1302(0x8d));

year--;

if(year==-1)

year=20;

L1602_char(1, 7, year / 10 % 10 + 48);

L1602_char(1, 8, year % 10 + 48);

v_W1302(0x8c,dectobcd(year));

}

}

}

if(num==0) //关闭光标闪烁

{

enable(0x0c);

}

v_W1302(0x80,uc_R1302(0x81)&0x7f); //开启1302记时

}

/******************************************************************** * 名称: v_RTInputByte()

* 功能: 往DS1302写入1Byte数据

* 输入: ucDa 写入的数据

* 输出: 无

***********************************************************************/ void v_RTInputByte(uchar ucDa)

{

uchar i;

ACC = ucDa;

T_RST = 1;

for(i=8; i>0; i--)

{

T_IO = ACC0;

T_CLK = 1;

T_CLK = 0;

ACC = ACC >> 1;

}

}

/********************************************************************

* 名称: uc_RTOutputByte()

* 功能: 从DS1302读取1Byte数据

* 输入: 无

* 返回值: ACC

***********************************************************************/ uchar uc_RTOutputByte(void)

{

uchar i;

T_RST = 1;

for(i=8; i>0; i--)

{

ACC = ACC >>1;

ACC7 = T_IO;

T_CLK = 1;

T_CLK = 0;

}

return(ACC);

}

/********************************************************************

* 名称: v_W1302(uchar ucAddr, uchar ucDa)

* 功能: 往DS1302写入数据

* 输入: ucAddr: DS1302地址, ucDa: 要写的数据

* 返回值: 无

***********************************************************************/

void v_W1302(uchar ucAddr, uchar ucDa)

{

T_RST = 0;

T_CLK = 0;

T_RST = 1;

v_RTInputByte(ucAddr); // 写地址

_nop_();

_nop_();

v_RTInputByte(ucDa); // 写1Byte数据

T_CLK = 1;

T_RST = 0;

}

/********************************************************************

* 名称: uc_R1302(uchar ucAddr)

* 功能: 读取DS1302某地址的数据

* 输入: ucAddr: DS1302地址

* 返回值: ucDa :读取的数据

***********************************************************************/

uchar uc_R1302(uchar ucAddr)

{

uchar ucDa;

T_RST = 0;

T_CLK = 0;

T_RST = 1;

v_RTInputByte(ucAddr); //写地址,命令

_nop_();

_nop_();

ucDa = uc_RTOutputByte(); //读1Byte数据

T_CLK = 1;

T_RST = 0;

return(ucDa);

}

/********************************************************************

* 名称: bcdtodec(uchar bcd)

* 功能: BCD码转换为DEC码(DEC码为十进制数据:BCD:0x11->DEC为数值11(HEX:0x0b))

* 输入: bcd码

* 输出: dec码

***********************************************************************/

uchar bcdtodec(uchar bcd)

{

uchar data1;

data1=((bcd&0x70)>>4)*10+(bcd&0x0f);

return data1;

}

uchar dectobcd(uchar dec)

{

uchar dat;

dat=((dec/10)<<4|(dec%10));

return dat;

}

/********************************************************************

* 名称: Write_DS1302Init()

* 功能: 往DS1302中写入数据。最开始显示的数据就是在这里设置的。

* 输入: 无

* 输出: 无

***********************************************************************/ void Write_DS1302Init(void)

{

v_W1302(0x8e,0);

v_W1302(0x80,0x00); //写入秒

v_W1302(0x8e,0);

v_W1302(0x82,0x00); //写入分

v_W1302(0x8e,0);

v_W1302(0x84,0x00); //写入小时

v_W1302(0x8e,0);

v_W1302(0x86,0x00); //写入日

v_W1302(0x8e,0);

v_W1302(0x88,0x00); //写入月

v_W1302(0x8e,0);

v_W1302(0x8a,0x00); //写入星期

v_W1302(0x8e,0);

v_W1302(0x8c,0x00); //写入年

v_W1302(0x90,0xa6);//单二极管,2K电阻充电

}

/********************************************************************

* 名称: Run_DS1302(void)

* 功能: 读出DS1302中的数据,并在液晶1602上进行显示

* 输入: 无

* 输出: 无

***********************************************************************/ void Run_DS1302(void)

{

uchar sec, min, hour, day, month, year;

v_W1302(0x8f, 0);

sec = bcdtodec(uc_R1302(0x81)); //读出DS1302中的秒

v_W1302(0x8f, 0);

min = bcdtodec(uc_R1302(0x83)); //读出DS1302中的分

v_W1302(0x8f, 0);

hour = bcdtodec(uc_R1302(0x85)); //读出DS1302中的小时

v_W1302(0x8f, 0);

day = bcdtodec(uc_R1302(0x87)); //读出DS1302中的日

v_W1302(0x8f, 0);

month = bcdtodec(uc_R1302(0x89)); //读出DS1302中的月

v_W1302(0x8f, 0);

year = bcdtodec(uc_R1302(0x8d)); //读出DS1302中的年

L1602_char(2, 6, hour / 10 % 10 + 48); //字符ASIIC码显示,0的ASIIC=48

L1602_char(2, 7, hour % 10 + 48);

L1602_char(2, 8, ':');

L1602_char(2, 9, min / 10 % 10 + 48);

L1602_char(2, 10, min % 10 + 48);

L1602_char(2, 11, ':');

L1602_char(2, 12, sec / 10 % 10 + 48);

L1602_char(2, 13, sec % 10 + 48);

L1602_char(1, 7, year / 10 % 10 + 48);

L1602_char(1, 8, year % 10 + 48);

L1602_char(1, 9, 0);

L1602_char(1, 10, month / 10 % 10 + 48);

L1602_char(1, 11, month % 10 + 48);

L1602_char(1, 12, 1);

L1602_char(1, 13, day / 10 % 10 + 48);

L1602_char(1, 14, day % 10 + 48);

L1602_char(1, 15, 2);

}

void beep()

{

uchar i;

for(i=0;i<100;i++)

{

delay(1);

BEEP=~BEEP;

}

BEEP=0;

}

void int0() interrupt 0

{

timechange();

}

/********************************************************************

* 名称: Main(void)

* 功能: 主函数

* 输入: 无

* 输出: 无

***********************************************************************/ void Main(void)

{

L1602_init();

writch();

jtod=0;

L1602_string(1,1,"DAY 20");

L1602_string(2,1,"TIME");

EA=1;

EX0=1;

IT0=1;

while(1)

{

if((t==0)&&(m==0))

{

Write_DS1302Init();

}

Run_DS1302();

}

}

(整理)较为全面的基于PROTEUS仿真51单片机动态数码管课程设计(WORD版)

单片机课程设计 题目动态数码管显示 学院机电工程学院 专业班级电子信息工程12-1班 姓名 组员 指导教师张、王老师 2015 年 5 月30 日

课程设计量化评分标准

目录 一、概述 (1) 1. 单片机简介 (1) 2. Proteus简介 (2) 3. 设计任务与要求 (3) 二、硬件设计 (3) 1. 单片机最小系统设计 (1) 2. 数码管显示部分 (4) 3. 数码管驱动部分 (5) 三、软件设计 (6) 1. 仿真原理图 (6) 2. 仿真参数设置 (6) 3. 仿真结果 (7) 4. 程序流程图 (8) 5. 程序代码.................................................... .9 四、心得体会............................................... (11) 五、参考文献 (12)

精品文档 一、概述 1. 单片机简介 如图1.1和图1.2分别为PDI P封装的AT89C52引脚图和实物图 图1.1 引脚图图1.2 实物图 AT89C52是一个低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。 AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。 AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。本课程设计中使用的是PDIP封装的AT89C52单片机。 2.Proteus简介 如图1.3为Proteus7.0的工作界面图

ds1302时钟程序详解-ds1302程序流程图(C程序)

ds1302时钟程序详解,ds1302程序流程图(C程序) ds1302时钟程序详解 DS1302 的控制字如图2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始 输出。 2.3 数据输入输出(I/O) 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从 低位0位到高位7。 2.4 DS1302的寄存器 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日 历、时间寄存器及其控制字见表1。 此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RA M的31个字节,命令控制字为FEH(写)、FFH(读)。

ds1302程序流程图 3.2 DS1302实时时间流程 图4示出DS1302的实时时间流程。根据此流程框图,不难采集实时时间。下面结合流程图对DS1302的基 本操作进行编程:

DS1302时钟芯片读写详解

DS1302时钟芯片读写详解 2008-09-26 13:07 /*DS1302读写程序(C51)*/ sbit DS13CLK =P1^5; /*DS1302的SCLK脚脉冲*/ sbit DS13IO =P1^6; /*DS1302的IO脚数据*/ sbit DS13CS =P1^7; /*DS1302的RST脚片选*/ /*向DS1302写一个字节*/ void _wds13byte(uchar _code) { uchar i; DS13CLK =0; DS13CLK =0; for(i=0;i<8;i++) { if(_code&0x01) DS13IO =1; else DS13IO =0; DS13CLK =1; DS13CLK =1; DS13CLK =0; DS13CLK =0; _code =_code >> 1; } } /*从DS1302读一个字节*/ uchar _rds13byte(void) { uchar i,_code; _code=0; DS13CLK =0; DS13CLK =0; DS13IO =1; for(i=0;i<8;i++) { _code =_code >>1; if(DS13IO) _code =_code|0x80; DS13CLK =1; DS13CLK =1; DS13CLK =0; DS13CLK =0; } return _code; } /*读功能_code读功能命令*/ uchar readds1302(uchar _code)

{ DS13CS =0; /*关闭DS1302*/ DS13CLK =0; DS13CLK =0; DS13CS =1; /*使能DS1302*/ _wds13byte(_code); /*读代码*/ _code=_rds13byte(); /*返回读取数字*/ DS13CLK =1; DS13CS =0; /*关闭DS1302*/ return _code; } /*写功能fp写的地址,_code写的内容*/ void writeds1302(uchar fp,uchar _code) { DS13CS =0; /*关闭DS1302*/ DS13CLK =0; DS13CLK =0; DS13CS =1; /*使能DS1302*/ _wds13byte(fp); /*写控制命令*/ _wds13byte(_code); /*写入数据*/ DS13CLK=1; DS13CS =0; /*关闭DS1302*/ } /*******DS1302设置快速充电***************/ void ds13_charg(void) { writeds1302(0x8e,0x00); /*解除写保护*/ writeds1302(0x90,0xa5); /*单二极管2K电阻充电*/ writeds1302(0x8e,0x80); /*置位写保护*/ } ;;;DS1302读写程序(汇编);;; ;******************************************************************* **/ T_CLK Bit P1.5 ;实时时钟时钟线引脚 T_IO Bit P1.6 ;实时时钟数据线引脚 T_RST Bit P1.7 ;实时时钟复位线引脚 ;********************************************************** ;子程序名:Set1302 ;功能:设置DS1302 初始时间,并启动计时。 ;说明: ;调用:RTInputByte ;入口参数:初始时间在:Second,Minute,Hour,Day,Month,Week.YearL(地址连续) ;出口参数:无 ;影响资源:A B R0 R1 R4 R7

PROTEUS 课程设计

课程设计任务书 学生姓名:专业班级:电子1102班 指导教师:工作单位:信息工程学院 题目:方波发生电路 初始条件: 计算机、Proteus软件、Cadence软件 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写 等具体要求) 1、课程设计工作量:1.5周 2、技术要求: (1)学习Proteus软件和Cadence软件。 (2)设计一个方波发生电路。 (3)利用Cadence软件对该电路设计原理图并进行PCB制版,用Proteus软件对该电路进行仿真。 3、查阅至少5篇参考文献。按要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。 时间安排: 2015.1.12做课设具体实施安排和课设报告格式要求说明。 2015.1.12-1.15学习Proteus软件和Cadence软件,查阅相关资料,复习所设计内容的基本理论知识。 2015.1.16-1.20对方波发生电路进行设计仿真工作,完成课设报告的撰写。 2015.1.21提交课程设计报告,进行答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要.....................................................................................................I Abstract................................................................................................II 1绪论.. (1) 2方案论证 (2) 3利用Proteus软件进行电路设计及仿真 (5) 4利用Cadence软件进行电路设计及PCB绘制 (9) 4.1电路原理图设计 (9) 4.2PCB设计 (10) 5心得体会 (13) 参考文献 (14)

基于DS1302的数码管显示数字钟

单片机原理课程设计 课题名称:基于DS1302的数码管显示数字钟 专业班级:电子信息工程 学生学号: 学生姓名: 指导教师: 设计时间:2010年6月21日--2010年6月25日

目录 摘要........................................................................................................................................................................ 1 设计任务和要求............................................................................................................................................ 2 方案论证........................................................................................................................................................ 3 系统硬件设计................................................................................................................................................ 3.1 系统总原理图 ................................................................................................................................ 3.2 元器件清单...................................................................................................................................... 3.3 PCB板图....................................................................................................................................... 3.4 Proteus仿真图 ............................................................................................................................... 3.5 分电路图及原理说明................................................................................................................... 3.5.1 主控部分(单片机MCS-51).............................................................................. 3.5.2 计时部分(实时时钟芯片DS1302).................................................................. 3.5.3 显示部分(共阳极数码管)................................................................................ 3.5.4 调时部分(按键)................................................................................................ 4系统软件设计................................................................................................................................................ 4.1 程序流程图..................................................................................................................................... 4.2 程序源代码........................................................................................................................................ 5心得体会........................................................................................................................................................ 6参考文献........................................................................................................................................................ 7结束语............................................................................................................................................................

基于proteus的数字电子钟的仿真设计

题目:基于Proteus的数字电子钟的设计 与仿真 课程名称:单片机系统设计与Proteus仿真 学生姓名:马珂 学生学号: 1305010323 系别:电子工程学院 专业:通信工程 年级: 13级 任课教师:徐锋 电子工程学院 2015年5月

目录 一、设计目的与要求 (3) 二、设计内容与方案制定 (3) 三、设计步骤 (3) 1.硬件电路设计 (3) 1.1.硬件电路组成框图 (3) 1.2.各单元电路及工作原理 (4) 1.3.绘制原理图 (5) 1.4.元件清单列表 (6) 2.程序设计 (6) 2.1程序流程 (6) 2.2汇编程序 (7) 四、调试与仿真 (12) 五、心得体会 (14) 六、参考文献: (14)

基于Proteus的数字电子钟的设计与仿真 一、设计目的与要求 设计目的:通过课程设计,培养学生运用已学知识解决实际问题的能力、查阅资料的能力、自学能力和独立分析问题、解决问题的能力和能通过独立思考。 设计要求:设计一个时、分可调的数字电子钟、开机显示“9-58-00”。 二、设计内容与方案制定 具有校时功能,按键控制电路其中时键、分键两个键分别控制时、分时间的调整。按分键分加1;按时键时加1。 以AT89C51单片机进行实现秒、分、时上的正常显示和进位,其中显示功能由单片机控制共阴极数码管来实现,数码管进行动态显示。 三、设计步骤 1、硬件电路设计 1.1.硬件电路组成框图 1.2.各单元电路及工作原理 (1)晶振电路 单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。本系统中

AT89C51单片机采用内部时钟方式。采用外接晶体和电容组成的并联谐振回路。其电路图如下: (2)键盘控制电路 键盘可实现对时间的校对,用两个按键来实现。按时键来调节小时的时间,按分键来调节分针的时间。其电路连接图如下: (3)显示电路 LED显示器是现在最常用的显示器之一发光二极管(LED)分段式显示器由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,采用动态显示方式显示时间,其硬件连接方式如下图所示。

DS1302时钟芯片的原理与应用

DS1302 时钟芯片的原理与应用 1 写保护寄存器操作 当写保护寄存器的最高位为0 时,允许数据写入寄存器,写保护寄存器可以通过命令字节8E 8F 来规定禁止写入/读出。写保护位不能在多字节传送模式下写入Write_Enable: MOV Command,#8Eh ;命令字节为8E MOV ByteCnt,#1 ;单字节传送模式 MOV R0,#XmtDat 数据地址覆给R0 MOV XmtDat,#00h 数据内容为0 写入允许 ACALL Send_Byte 调用写入数据子程序 RET 返回调用本子程序处 当写保护寄存器的最高位为1 时禁止数据写入寄存器 Write_Disable: MOV Command,#8Eh ;命令字节为8E MOV ByteCnt,#1 ;单字节传送模式 MOV R0,#XmtDat 数据地址覆给R0 MOV XmtDat,#80h 数据内容为80h 禁止写入 ACALL Send_Byte 调用写入数据子程序 RET 返回调用本子程序处 以上程序调用了基本数据发送(Send_Byte)模块及一些内存单元定义, 其源程序清单在附录中给出下面 的程序亦使用了这个模块 2 时钟停止位操作 当把秒寄存器的第7 位时钟停止位设置为0 时起动时钟开始 Osc_Enable: MOV Command,#80h ; 命令字节为80 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat 数据地址覆给R0 MOV XmtDat,#00h 数据内容为0 振荡器工作允许 ACALL Send_Byte 调用写入数据子程序 RET 返回调用本子程序处 当把秒寄存器的第7 位时钟停止位设置为1 时,时钟振荡器停止DS1320 进入低功耗方式 Osc_Disable: MOV Command,#80h ;命令字节为80 MOV ByteCnt,#1 ;单字节传送模式 MOV R0,#XmtDat 数据地址覆给R0 MOV XmtDat,#80h 数据内容为80h 振荡器停止 ACALL Send_Byte 调用写入数据子程序 RET 返回调用本子程序处 3. 多字节传送方式

proteus课程设计

沈阳航空航天大学电子信息工程学院 电子设计应用软件训练 总结报告 学生姓名: 专业: 班级: 学号: 指导教师: 训练时间:2013年7月8日至2013年7月12日 电子信息工程学院电子设计应用软件训练任务 【训练任务】:

1、熟练掌握PROTEUS软件的使用; 2、按照设计要求绘制电路原理图; 3、能够按要求对所设计的电路进行仿真; 【基本要求及说明】: 1、按照设计要求自行定义电路图纸尺寸; 2、设计任务如下: 51单片机内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数,将其数值P1口驱动LED灯上显示出来,由按键产生计数脉冲,LED 分别显示脉冲个数(10个以内)。 3、按照设计任务在Proteus 6 Professional中绘制电路原理图; 4、根据设计任务的要求编写程序,在Proteus下进行仿真,实现相应功能。 成绩: 一、任务说明 51单片机内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚

进行计数,将其数值P1口驱动LED灯上显示出来,由按键产生计数脉冲,LED分别显示脉冲个数(10个以内)。按照设计任务在Proteus 6 Professional中绘制电路原理图。 根据设计任务的要求编写程序,在Proteus下进行仿真,实现相应功能。 二、PROTEUS软件的使用 1、软件概述: Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。④具有强大的原理图绘制功能。总之,该软件是一款集单机和SPICE分析于一身的仿真软件,功能极其强大。 图1 proteus工作界面 2、对象的添加和放置 点击工具箱的元器件按钮,使其选中,再点击IsIs对象选择器左边中间的置P 按钮,出现“Pick Devices”对话框。在这个对话框里我们可以选择元器件和一些

ds1302时钟程序详解经典

dsl302时钟程序详解经典 dsl302时钟程序详解 DS1302的控制字如图2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始 2.3数据输入输出(I/O) 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0 位到高位7o 2.4 DS1302的寄存器 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位 为BCD码形式,其日历、 时间寄存器及其控制字见表1。

? I日历?別间襦存祁及凡担制孑 fir* 野擅"itwtr 収他总cn - T ?fsy网 移 e S』3 2 1 0 林斶 son8!ll00-59 f.H IUSVX SIX X2H S3II oum(1Mh、 MH K4H851101 \2A12 24? 10 IIH HK MhH M7II01 -2S.2V, W-Jl ?o imiAre 8SH WII03 - !2(11) 0 IUM MOYI1I AAII8HH ni(i II ? 0 0h\V 8LH Mill OQ ? 9910YLAH 此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器 及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为COH, FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 dsl302程序流程图

proteus课程设计

皖西学院( Proteus专业应用软件训练总结报告 学生姓名:张字航 系、专业:电气1204 班级学号:2012011196 指导教师:翁志远 训练时间:2014年10月9日至2014年11月13日

目录 实验一:专业PROTEUS软件的使用 实验二:利用PROTEUS绘制简单的电路原理图实验三:PROTEUS的汇编语言仿真实验 实验四:Proteus与Keil联调方法 实验五:利用Proteus制作PCB板

实验心得和体会 专业PROTEUS软件的使用 (一)任务说明 本节Proteus专业应用软件训练课的主要内容是初步认识Proteus应用软件和基本操作及原理图绘制。首先认识ISIS窗口(启动PROTEUS ISIS),了解窗口各部分功能,如:菜单栏、编辑区、对象预览窗口、对象选择器、工具栏分类及其工具按钮、坐标显示(Co-ordinate Display)等。其次学习Proteus软件的各种基本操作,包括:建立和保存文件、PROTEUS文件类型、设定绘图纸大小、选取元器件并添加到对象选择器中、放置电源、地(终端)、电路图布线、设置修改元器件的属性、电器检测。最后根据要求绘制原理图和Proteus仿真。(二)原理图绘制说明

(三)proteus仿真说明 用汇编语言编写实现电路要求功能的源程序,应用Keil软件编写并编译运行程序,最终与电路原理图相连接,仿真实现其功能。下面介绍关于Keil软件的使用与Proteus远程调控监视安装Keil软件后,打开它,用Proteus画电路原理图Proteus中提供了非常丰富的元件与部件,可以轻而易举完成电路原理图的编辑。 (四)结果演示

proteus闹钟课程设计要点

题目:闹钟的设计 学生姓名:黄书林 学生学号: 1114010110 系别:电气信息工程学院 专业:自动化 年级: 11 级 任课教师:张水锋 电气信息工程学院制 2013年10月

目录 摘要 (2) 课程任务与要求 (2) 方案论证 (2) 闹钟流程图 (3) 单元电路: (6) 单片机芯片 (6) 八位数码管显示电路 (7) 闹钟调节按键电路 (9) 晶振电路 (10) 复位电路 (10) 蜂鸣器体相电路 (11) 总图: (12) 心得体会 (13) 参考文献 (13) 附录 (13)

闹钟的设计 学生:黄书林 指导教师:张水锋 电气信息工程学院自动化 摘要 通过学习《基于Proteus的51系列单片机设计与仿真》让我知道我们不仅需要有过硬的理论知识,还应该有动手实践的能力。并且是将理论结合实际, 提升到应用层面。以后走上社会,还是会有很多新的知识是需要我们学习的,届时需要我们有比较强的自学能力。此次《基于Proteus的51系列单片机设计与仿真》课程设计。对理论结合实际的动手能力和自学能力有很强的体现。本次设计是基于 AT89C51 单片机的数字闹钟的设计。 关键词:数字闹钟 AT89C51 Proteus。 课程任务与要求 本次课程的任务就是要以51系列单片机为核心设计一个闹钟,它能通过单片机实现秒、分、小时的进位24 小时制,将当前时分秒在七段 LED 显示器上显示。可设置闹钟的时间当前值对准一时间,设置闹铃时间,闹铃功能的关闭和开放。 要求:通过Proteus软件来实现设计的仿真,提高自己的编程水平,增加设计兴趣。通过做自己喜欢的设计,提高自学能力。为以后毕业走上工作岗位打下坚实的基础。 二方案论证 经分析,计算器电路包括三个部分:显示部分八位数码管、闹钟时钟按键、 单片机电路。具体分析如下: 1 显示部分 1.1 LCD显示 LCD1602作为一个成熟的产品,使用简单,模式固定,便于移植到各种类型的程序,微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,价格大概15块钱左右。 1.2数码管显示 数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七

最新ds1302时钟程序详解 含电路图 源程序 注释资料

以下资料摘自电子发烧友网感谢作者,版权归网站所有,资料仅供参考 ds1302时钟程序详解 DS1302 的控制字如图2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 2.3 数据输入输出(I/O) 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 2.4 DS1302的寄存器 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。

此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 ds1302程序流程图

3.2 DS1302实时时间流程 图4示出DS1302的实时时间流程。根据此流程框图,不难采集实时时间。下面结合流程图对DS1302的基本操作进行编程:

proteus实验报告

Proteus 专业应用软件训练总结报告实验项目 项目一: Proteus 的基本操作与原理图绘制 一任务说明: 1.掌握Proteus仿真软件的的安装与破解 2.初步认识Proteus的运行环境及操作界面 3.画出所给电路图并进行仿真演示 二 Proteus 软件的安装及原理图绘制: 1.Proteus 软件的安装方法 1)首先解压安装文件,找到; (2)点击“YES,进入下一步,然后一直点击“ Next”,下一步,直到出现如图所示的添加License 界面; (3)点击“ Browse For Key File”,装入刚刚解压的“完美破解”的路径; 4)点击“ install ”,点击“是”,然后点击“ CLOS”E; (5)点击“next ”,需要改安装路径就改改,然后点击“ next ”,若不用PCB贝U将第二个图标不选,然后一直点“ next ”到完成。 (6)安装完成后需要导入钥匙,点击解压的文件如下图 (7)、点击“ browser”,将刚才的安装路径导进去 (8)、导进去后,点击“ up date ”,若失败就是路径不正确,重新导入路径,完成后点击“ CLOE”S ,安装完成。 2.Proteus 软件的原理图绘制 Proteus 软件成功安装之后,打开Proteus 下的ISIS 功能模块,则进入了原理图的绘制和 仿真界面。首先要了解各个功能区域的操作和功能: 1)编辑区域的缩放 P roteus编辑区域是放置电器元件和绘制原理图的区域,它的缩放操作多种多样, 极大地方便了工程项目的设计。常见的几种方式有:完全显示、放大按钮和缩小按钮,拖放、取景、找中心。

基于proteus和keil的单片机课程设计

2008年10fl 第5期(总第70期) 济南职业学院学报 JournalnfJinanVocationalCoRege Om.2008 No.5(SerialⅣ仉70) 基于Proteus和Keilfl匀单片机课程设计 宫亚梅 (常州信息职业技术学院机电工程系,江苏常州213164) 摘要:本文介.绍TProteus和Keil的功能特点,结合步进电机正反转实例,详细给出了两种软件在单片机课程设计中的具体应用。 关键词:Proteus;Keil;单片机;设计 中图分类号:TP391文献标识码:A文章编号:1673—4270(2008J05—0112—02 单片机应用技术是电类专业的一门重要课程,也是理论和实践结合性很强的一门课程,所以课程设计环节尤为萤要。课程设计环节的任务和目的是让每个学生亲自参与到其中的设计细节,提高单片机开发的能力。考虑到目前实验器材允设计过程中容易造成器件和仪器仪表的损坏,以及离开实验室学生得不到充分的锻炼,从而借助于Proteus和Keil进行课程设讯实践证明,这样可以很好地解决上述问题,节省设计成本,提高设计速度。 1Proteus和Keil简介 1.1Proteus简介 Proteus是一个完整的嵌入式系统软、硬件设计仿真平台,它包括原理图输入系统ISIS、带扩展的Prospice混合模型仿真器、动态器件库、高级图形分析模块和处理器虚拟系统仿真模型VSM。ISIS是Proteus系统的中心,具有超强的控制原理图设计环境。ProteusVSM最重要的特点是,它能把微处理器软件作用在处理器上,并和该处理器的任何模拟和数字器件协同仿真。仿真执行目标码就像在真正的单片机系统上运行,VSMCPU模型能完整仿真I/Ol=i、中断、定时器、通用外设口和其他与CPU有关的外设,甚至能仿真多个处理器。 1.2Keil简介 Keil是一个功能强大的开发平台,它包括项目管理器、CX51编译器、AX51宏汇编器、BL51/Lx51连接定位器、RTX51实时操作系统、Simulator软件模拟器以及Monitor51硬件目标调试器。它是一种集成化的文件管理编译环境,主要的功能特点为:编译C源程序、汇编源程序或混合语言源程序,链接和定位目标文件和库,创建HEX文件、调试目标程序等,是目前最好的5l单片机开发工具之一。Keil支持软件模拟仿真(Simulator)和用户目标板调试(Monitor51)两种工作模式,前者不需要任何单片机硬件即可完成用户程序仿真调试,后者利用硬件目标板中的监控程序可以直接调试目标硬件系统。 2应用举例 下面结合课程设计中四项八拍步进电机正反转电路的单片机实现,具体说明如何基于Proteus和Keil进行单片机仿真。电路的功能是,通过点击正反转按钮,让步进电机自如进行正反转的切换。 2.1硬件的实现 打开ProteusISIS编辑环境,通过对象选择按 收稿日期:2008—09一08 作者简介:宫亚梅(1979一),女,江苏姜堰人。常州信息职业技术学院机电工程系助教。 ?112? 万方数据

proteus控制数码管增减课设报告

一、任务说明 1、按照设计要求自行定义电路图纸尺寸; 2、设计任务如下: 利用51单片机和2位共阴极数码管及2个按键等器件,设计一个控制数码管增减的单片机系统,数码管显示范围为00-99。 3、按照设计任务在Proteus 6 Professional中绘制电路原理图; 4、根据设计任务的要求编写程序,在Proteus下进行仿真,实现相应功能。 二、应用PROTEUS软件绘制原理图的过程 1、进入proteus7 professional。 2、设置图纸尺寸。单击system,再单击set sheet sizes,将尺寸设置A4,单击OK。如图1所示。 图1 设置图纸尺寸 3、选择原理图所需要元件。点击左侧栏第二个图标,再点击P,在搜索栏输入需要的元件名称。数码管为7seg,排阻为respack-8,按键为button,单片机为89c51,晶振为crystal,电阻为res,电容有两种,分别为cap-elec,capacitor。如图2所示。

图2选择原理图所需要元件 4、选择电源及地线。单击左侧栏第8个图标,选择电源VCC,地线GROUND。如图3所示。 图3 选择电源及地线 5、设置元件参数。双击需要改变参数的元件,按需要修改参数。 6、连接时钟电路部分。鼠标单击需要连接的一段,这时鼠标变成连线,再将鼠标落在需要连接的另一端即可将原理图完成。如图4所示。

图4 时钟电路部分 7、连接共阴极数码管部分。因为数码管为共阴极,所以在连接P0口同时,与1k欧姆排阻相连,排阻另一端接5V直流电源,通过P2.6和P2.7控制数码管。如图5所示。 图5 数码管部分连接电路

电气信息工程学院Proteus课程设计报告格式仿真

课程设计课程:Proteus 学生XX: 学生学号: 院系:电气信息工程学院 专业:电子信息科学与技术班级:09电技(2)班 任课教师:

《Proteus》课程设计报告 学生XX:学号: 一、设计任务内容 如下列框图,当按下K1时,显示器显示模拟信号V1的测量值;当按下K2时,显示器显示模拟信号V2的测量值。信号源可以采用传感器或信号发生器产生。结合Proteus完成: 1、设计的硬件电路图; 2、软件操作流程图; 3、运行的结果界面抓图; 4、附设计的程序代码。 二、设计分析 此设计将Proteus软件和Keil软件结合设计仿真线路和程序,将连续的模拟电压信号经过A/D转换器转换成二进制数值,再经由单片机软件编程转换成十进制数值并通过显示屏显示。此设计采用2个开关进行控制,通过按键来选择显示哪一路数据。本实验采用AT89C51单片机,A/D转换用ADC0808,显示部分使用7SEG-MPX4-CA-BLUE。 主程序主要负责初始化工作:设置定时器、寄存器的初值,启动A/D转换,读取转换结果,处理量程转换响应,控制液晶显示等 A/D转换程序的功能是采集数据,在整个系统设计中占有很高的地位。当系统设置好后,单片机扫描转换结束管脚P1.7的输入电平状态,当输入为高电平则转换完成,将转换的数值转换并显示输出。若输入为低电平,则继续扫描。 三、总体设计 1.A/D转换 ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。 ADC0808芯片有28条引脚,采用双列直插式封装,如下图所示。各引脚功能如下:1~5和26~28(IN0~IN7):8路模拟量输入端。 8、14、15和17~21:8位数字量输出端。

51单片机DS1302日历时钟程序

51 单片机ds1302 时钟芯片 #define uint unsigned int #define uchar unsigned char sbit lcdrs = P1^0; sbit lcdrw = P1^1; sbit lcden = P1^2; sbit key0 = P2^0;//功能键,选择时分秒 sbit key1 = P2^1;//加1键 sbit key2 = P2^2;//减1键 sbit key4 = P2^4; sbit clk_1302 = P1^5; //1302芯片位定义sbit io_1302 = P1^6; sbit rst_1302 = P1^7; uchar bdata dat; sbit dat0 = dat^0; sbit dat7 = dat^7; uchar key0_count;//按键0被按的次数(0~3) uchar flag; char hour,minute,second; uchar table_date[] = "2009-4-12 Mon"; uchar table_time[] = "00:00:00"; /****** 函数申明********/ void write_cmd_1602(uchar cmd); void write_data_1602(uchar dat); void write_add(uchar add,uchar dat); void init1602(); void delay(uint z); uchar reverse(uchar c); void keyscan(); void init(); void RTC_initial (); void wr_1302(uchar wr_data); uchar rd_1302(void); uchar uc_R1302(uchar ucAddr); void v_W1302(uchar ucAddr, uchar ucDa); 主程序 #include

proteus实验指导书

实验一基于proteus的交互式仿真和基于图表的仿真 一、实验目的: 1、熟悉Proteus的菜单界面。 2、熟悉原理图绘制工具; 3、掌握画原理图基本操作,完整绘制原理图的方法。 4、掌握proteus交互式仿真和基于图表的仿真的实现过程。 5、能够根据仿真结果掌握电路的工作原理及过程。 二、实验设备 安装有Proteus软件的计算机。 三、实验内容 通过实例掌握电路图的绘制方法。绘制电路的具体步骤如下: 1、新建设计项目及电路图。 2 、添加元件库。 3、调入并摆放元器件,需要时修改参数。 4、连线。 5 、电源、地的选择及连接。 图例如下: 图一 对上图进行交互式仿真。 图中各元件名称:电源:battery 滑动变阻器:pot-hg 定时器:555 电阻:resistor 电容:cap 虚拟仪器:示波器OSCILLOSCOPE 定时/计数器COUNTER TIMER

其中:R1=6.3k R2=10k C1=1uf 图二 对上图进行基于图表的仿真,在编辑窗口放置模拟分析图表。 图中运放的型号为:741 四、简答题 图一请回答下列问题: 1. 指出该图中虚拟仪器定时/计数器的工作模式; 2. 绘出该电路的输出波形;并测量其周期、频率以及占空比; 3.请说出改变滑动变阻器对该电路输出波形的影响。 图二请回答下列问题: 1.请写出显示信号源属性的方法。 2.说出图中运放的作用。 3.测量该电路的电压增益以及输出信号的周期,并简述输出与输入的频率及相 位的关系。

实验二RC低通滤波器的交流参数扫描分析和频率特性分析 一、实验目的: 1、掌握proteus的交流参数扫描分析方法; 2、掌握proteus的频率特性分析方法; 3、根据仿真结果掌握RC低通滤波器的工作原理。 二、实验设备 安装有Proteus软件的计算机。 三、实验内容 1.对下图进行交流参数扫描分析。 图中各元件名称: 电阻:resistor 电容:cap 正弦波信号源:sine 地:ground 信号源属性按下左图进行编辑: R1 10*X C1 1uF R1(1)C1(1)

相关主题
文本预览
相关文档 最新文档