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

合集下载

(完整word版)基于proteus的AT89C51单片机实现计算器的加减乘数开方等功能

(完整word版)基于proteus的AT89C51单片机实现计算器的加减乘数开方等功能

目录一、任务说明 (2)二、原理图绘制说明 (3)三、流程图绘制以及说明 (5)1显示程序设计 (5)2键盘识别程序设计 (6)3运算程序设计 (8)4风鸣器程序设计 (9)四、PROTEUS仿真说明 (10)五、课程设计体会 (15)附I:计算器电路原理图 (16)附II:源程序代码 (17)参考文献 (34)一、任务说明本设计是一个实现加、减、乘、除的计算器,它的硬件主要由四部分组成,一个AT89C51单片机芯片,一个八位共阳极的数码管,一个四乘四的键盘,一个排阻做P0口的上拉电阻,它可以实现结果低于65535的加、减、乘、除运算.采用动态显示,由八位共阳极数码管通过P0口,P2口与单片机相连,数码管的A,B,C,D,E,F,G,DP分别依次与单片机的P0。

0—P0.7相连,P0口做为字码控制端,数码管的1,2,3,4,5,6,7,8各引脚分别与单片机的P2.0—P2。

7相连,P2口做为数码管的位控制端,动态显示是每次数码管只显示一位,由于人的视觉停留是0.05到0.2秒之间,当数码管依次点亮各个位时,使循环的频率高于人的视觉停留时间,人们就会认为数码管是同时点亮的,就可以达到动态显示的效果。

采用4*4键盘。

采用软件识别键值并执行相应的操作,键盘的第0行到第3行依次与单片机的P3.4—P3.7管脚相连,键盘的第0列到第3列依次与单片机的P1。

0—P1。

3管脚相连,程序运行时依次扫描各行,查询是否有键按下,如果有则进入键盘识别处理程序,实现相应的运算,然后通过数码管输出结果,如果没有按键就调用显示程序显示一个0,等待按键按下,在进入按键扫描程序。

这样循环执行。

基本功能如下:1.计算器可显示8位数字,开机运行时,只有数码管最低位显示为“0",其余位全部不显示;2。

第一次按下时,显示“D1”;第二次按下时,显示“D1D2”;第三次按下时,显示“D1D2D3”,8个全显示完毕,再按下按键下时,给出“嘀”提示音,并且输入的第九个数不接收,仍然显示原来的八位数;3。

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

(整理)较为全面的基于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等三种封装形式,以适应不同产品的需求。

数码管显示实训报告模板

数码管显示实训报告模板

1. 理解数码管的工作原理及显示方法。

2. 掌握单片机与数码管之间的接口连接方法。

3. 学会使用C语言编写单片机控制程序,实现数码管的动态显示。

4. 提高动手实践能力和分析问题、解决问题的能力。

二、实训器材1. 单片机开发板(如STC89C52RC、AT89C51等)2. 数码管(共阴极或共阳极)3. 电阻、电容等电子元件4. 连接线、面包板等5. 编译器(如Keil、IAR等)6. Proteus仿真软件三、实训原理数码管是一种用于显示数字和字符的半导体显示器件。

根据显示段数的不同,可分为七段数码管和十六段数码管。

本实训采用七段数码管,由七个发光二极管(LED)组成,分别代表数字0-9。

数码管的显示原理:通过控制数码管各个段对应的引脚的高低电平,使相应的LED点亮或熄灭,从而显示数字或字符。

四、实训内容1. 数码管识别与测试2. 单片机与数码管的连接3. 编写单片机控制程序4. 实现数码管的动态显示5. Proteus仿真与调试1. 数码管识别与测试(1)识别数码管的段码,共阴极数码管的段码为1,共阳极数码管的段码为0。

(2)测试数码管各段LED的正负极,确定段码。

2. 单片机与数码管的连接(1)将数码管的段引脚与单片机的I/O口相连。

(2)将数码管的共阴极或共阳极引脚与单片机的地或正电源相连。

3. 编写单片机控制程序(1)定义数码管段码,如共阴极数码管的段码为0x3F(01111111B)。

(2)编写延时函数,实现延时功能。

(3)编写显示函数,根据需要显示的数字,选择相应的段码。

(4)编写主函数,实现数码管的动态显示。

4. 实现数码管的动态显示(1)初始化数码管,设置段码和位选。

(2)循环遍历数码管,依次显示每个数字。

(3)根据需要调整显示速度。

5. Proteus仿真与调试(1)打开Proteus软件,新建一个项目,添加单片机和数码管。

(2)连接单片机与数码管的引脚。

(3)编写Proteus仿真程序,实现数码管的动态显示。

实验一数码管按键控制

实验一数码管按键控制

课程名称: TAJYUAN UNn'ERSII\r OF TECHNOLOGY本科实验报告智能仪器实验项目: 按键控制数码管显示实验地点:____________________专业班级:_ 学号:学生姓名: ______________________________ 指导教师: _______________ 吕青2015年10月25日实验一按键控制数码管显示一、实验目的二、实验要求本实验要求设计四个按键,从而控制数码管的显示。

四个按键的具体功能为:第一个按键为复位功能、第二个按键为移位功能、第三个按键为加1功能、第四个按键为减1功能。

三、设计方案本实验中,数码管采用Proteus内部已经封装好的四位数码管显示器,该显示器输入端口由位信号和段信号组成。

该数码管内部采用共阳极接法。

除此之外,位信号可由端口直接给,不需要增加端口的驱动能力。

段信号由P0 口提供,位信号有P2 口的低四位提供。

P0 口接段信号时,需要加上拉电阻。

四、实验设计1、整体电路图整体电路图2、单片机选型U1_MTAL1• XTAL2RSTPSENALEEA1 £y £5_ 6P1J0 P11 P12 P13 FM* P15 P1.6 P17P3.0/RXD P3.1/TXD P382/IITno P3.3/IMT1 P3.4/TO P3.S/T1P3.6WRP3J/RD_!£作13伯15_1£17ATS9051"单片机选型本次实验选择的单片机为AT89C51型号,段信号由P0 口提供,位信号有P2 口的低四位提加由展LIET rojrAK I■烦%” FEW健F3AT1 F di! FDFB* H v* *3>A E *ZiMl- iS^E Hgll U#M ・AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。

AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。

数码管及按键实验报告模板(1)

数码管及按键实验报告模板(1)

数码管及流水灯实验报告成员:2012年11月一、实验要求:1.实验1:在开发板上调试利用按键控制数码管从1累加到F变化(S2加、S3减)(不同分组按键利用IO口不同);2.实验2:利用开发板进行秒表设计(显示分、秒,分辨率0.1s,如0.58.5)(参考P189程序);二、硬件原理图1. 硬件原理图A到F秒表2.原理图分析:实验一原理LED数码管是由4个发光二极管中的7个长条形发光二极管(俗称7笔段),按a、b、c、d、e、f、g顺序组成“8”字形,另一个点形的发光二极管dp放在右下方,用来显示小数点,。

只要控制7笔段按一定的要求亮与灭,就能显示出十六进制0~F。

实验二原理以共阳极八段数码管为例,当控制某段发光二极管的信号为低电平时,对应的发光二极管点亮,当需要显示某字符时,就将该字符对应的所有二极管点亮;共阴极二极管则相反,控制信号为高电平时点亮。

电平信号按照dp,g,e…a 的顺序组合形成的数据字称为该字符对应的段码三、软件设计系统1. 软件设计思想与流程图软件流程图如下(标准流程图画法)……:实验一、A到F实验二、秒表2.软件代码:实验一、秒表#include <avr/io.h> //IO定义#include <util/delay.h> //延时库文件const unsigned char led_7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//段码列表,共阳极,0~9的代码列表const unsigned char position[4]={0xEF,0xDF,0xBF,0x7F};//位输出代码,分别定义PD5~Pd0单一输出“0”的状态unsigned char time[3]; //时、分、秒计数unsigned char dis_buff[4]; //显示缓冲区,存放要显示的6字符的段码unsigned char time_counter; //1s计数器unsigned char point_on=0; //秒显示标志void display(void){unsigned char i;for(i=0;i<=3;i++) //显示循环开始{PORTB = led_7[dis_buff[i]]; //段码写入PORTAif(point_on && (i == 1||i == 3))PORTB &= 0x7F; //小数点显示PORTD = position[i]; //位信号写入PORTD_delay_ms(1); //点亮延时PORTD = 0xFF; //清除位信号}}void time_to_disbuffer(void){/* unsigned char i,j=0;for(i=0;i<=2;i++);{dis_buff[j++] = time[i] % 10;dis_buff[j++] = time[i] / 10;}*/dis_buff[0] = time[0] / 10;dis_buff[1] = time[1] % 10;dis_buff[2] = time[1] / 10;dis_buff[3] = time[2] % 10;}void main(void ){PORTB =0xFF; //IO初始化DDRB =0xFF;PORTD =0xFF;DDRD =0xFF;time[2] = 11;time[1] = 00; time[0] = 23; //时间初值time_to_disbuffer(); //将时间值装载至缓冲区while (1) //循环开始{display(); //调用显示函数if (++time[0]>=99) //次数计数{time[0] = 0; //重置计数point_on= ~point_on; //小数点位求反if (++time[1] >=60) //秒数目达到60后进位重置{time[1] = 0;if (++time[2] >= 60) //分计数达到60后进位重置{time[2] = 0;}}}time_to_disbuffer(); //时间装载至缓冲区_delay_ms(5); //延时}}实验二、0到F#include <avr/io.h> //IO定义#include <util/delay.h> //延时库文件const char led[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//段码列表,共阳极,0~F的代码列表int main(void){char i=0; //定义iPORTB=0xc0; //定义输入端的初始值,0xFF表示高电平DDRB=0xff; //定义DB口为输入端PORTD=0xef; //定义输出端的初始值,0x70表示低电平DDRD=0xff; //定义DD口为输出端while(1){if((PINC&(1<<PC3))==0) //显示循环开始{_delay_ms(10);if((PINC&(1<<PC3))==0) //检测PC3是否按下{if(i<16){PORTB=led[i];i++;}if(i>=16)i=0;}}while(!(PINC&(1<<PC3))); //再次放手检测if((PINC&(1<<PC2))==0) //显示循环开始{_delay_ms(10); //点亮时间if((PINC&(1<<PC2))==0) //检测PC2是否按下{if(i<16){PORTB=led[i];i--;}if(i>=16)i=0;}}while(!(PINC&(1<<PC2))); //再次放手检测}}四. 成员分工及完成情况五. 意见及建议实验报告、编译工程文件、仿真文件打包提供电子版。

一位数码管的动态数字显示(实验报告)

一位数码管的动态数字显示(实验报告)

实验名称一位数码管显示变化数字一、实验目的1.通过AT89C52单片机控制数码管显示数字0到9。

2.用Protues设计、仿真以AT89C52为核心的数码管变化数字显示电路。

3.理解led七位数码管的显示控制原理。

二、实验任务让一位数码管能够从0不断显示到9。

三、实验设备微机1台、Proteus软件1套、GL10型51单片机学习开发板1台。

四、实验电路绘制五、汇编语言程序设计1.设计原理该led数码管为8段显示,每一段对应一个发光二极管,根据查询发现GL10给力者单片机是共阴数码管,当某个发光二极管的阳极为高电平时,发光二极管点亮相应的段被显示。

2.程序框图3.汇编程序$NOMOD51$INCLUDE (8051.MCU)ORG 0000HAJMP MAINORG 0030HMAIN:MOV R4, #00H ;记录码表的值MOV DPTR, #TABLE ;把地址送DPTRSTRAT:MOV A, R4MOVC A, @A+DPTR ;取码MOV P2, A ;显示INC R4 ;自增,取下个值做准备CALL DELAY ;调用CJNE R4, #16, STRAT ;判断是否显示完16个数值AJMP MAINDELAY: MOV R6, #1DELAY4:MOV R1, #10DELAY3:MOV R2, #100DEALY1:MOV R3, #250DEALY2:NOPNOPDJNZ R3,DEALY2DJNZ R2, DEALY1DJNZ R1, DELAY3DJNZ R6, DELAY4RET;码表TABLE:DB<span style="white-space:pre"></span>0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6FEND六、Proteus软件模拟仿真七、GL10单片机仿真系统1.实验板连线2.实验操作步骤先用杜邦线连接一位数码管模块和89c51芯片的p2口,然后用usb连接线将整个单片机与电脑相连,打开烧录软件,选中数码管动态显示变化数字的hex 文件,点击下载,按下单片机的电源开关,程序将烧录到单片机中,数码管就会从0显示到9,并循环。

(完整word版)数码管动态显示实验报告

(完整word版)数码管动态显示实验报告

实验四数码管动向显示实验一一、实验要求1.在 Proteus 软件中画好 51 单片机最小核心电路,包括复位电路和晶振电路2.在电路中增加四个7 段数码管 ( 共阳 / 共阴自选 ), 将 P1 口作数据输出口与 7 段数码管数据引脚相连, P2.0~P2.3 引脚输出选控制信号3.在 Keil 软件中编写程序 , 采用动向显示法 , 实现数码管分别显示数字1,2, 3, 4二、实验目的1.坚固 Proteus 软件和 Keil 软件的使用方法2.学习端口输入输出的高级应用3.掌握 7 段数码管的连接方式和动向显示法4.掌握查表程序和延时等子程序的设计三.实验说明本实验是将单片机的P1 口做为输出口,将四个数码管的七段引脚分别接到至P1.7 。

由于电路中采用共阳极的数码管,因此当P1 端口相应的引脚为0 时,对应的数码管段点亮。

程序中预设了数字0-9 的段码。

由于是让四个数码管显示不同样的数值,因此要用扫描的方式来实现。

因此定义了scan 函数,接到单片机的p2.0 至在实验中,预设的数字段码表存放在数组TAB中,由于段码表是固定的,因此储藏种类可设为 code。

在 Proteus 软件中依照要求画出电路,再利用Keil软件按需要实现的功能编写 c 程序,生成 Hex 文件,把Hex 文件导到Proteus 软件中进行仿真。

为了可以更好的考据明验要求,在编写程序时需要延时0.5s ,能让人眼更好的分辨;89C51 的一个机器周期包括12 个时钟脉冲,而我们采用的是12MHz晶振,每一个时钟脉冲的时间是1/12us ,因此一个机器周期为 1us。

在 keil程序中,子函数的实现是用void delay_ms(int x),其中x为1时是代表1ms。

四、硬件原理图及程序设计〔一〕硬件原理图设计电路中 P1.0 到 P1.7 为数码管七段端口的控制口,排阻 RP1阻值为 220Ω,到为数码管的扫描信号。

课程设计报告——proteus部分

课程设计报告——proteus部分

一、引言电子技术、通信技术和计算机技术在迅猛地发展。

世界各大电子器件公司都在积极开发新型元件。

以微型计算机为平台,配以专用的MCU、ARM、DSP 为实现某些测量和控制功能而构成的通用或专用仪器系统,必将有大发展。

我们这个课程所设计就是用于医疗等行业的信号采集与数字滤波系统。

设计任务:●设计具备A/D 、D/A的CPU单片系统,编写控制软件,并用Proteus仿真。

●用MATLAB软件工具对所采集的数据做各种IIR、FIR数字滤波,并做性能比较。

二、课程设计内容(一)A/D、D/A的CPU单片机系统1、设计要求1)用PROTEUS 设计基于8051 或ARM 系统的采集系统,三种采样率(250Hz, 1kHz, 2kHz) 采样率,12 bit A/D, 一个D/A输出2)编制系统程序●A/D 时序控制●自定义A/D数据采集存放起始地址,数据循环存储●自定义D/A输出地址,送存储的数据再通过D/A转换,送示波器显示2、元器件的选用1)处理器●型号:8051●原理图●功能模块●功能8051作为本设计的核心处理器,其功能在于控制A/D的模数转换和转换结果的读取、RAM和DAC1208的高8位和低4位的数据存储以及DAC1208的数模转换的输出。

2)A/D●型号:MAX1240●原理图●配置电路图●时序图①模数转换时序②读取结果时序●工作过程①在=1前提下,令片选有效,同时保持SCLK为低电平,经过一个周期后,转换正式开始。

当模数转换完成后,数据输出端DOUT由低电平翻转为高电平。

所以也可通过查询DOUT的状态确定转换是否完成;②读取数据,在外部输入13个脉冲后,数据读取完成,将片选端置高电平。

只要令片选再次有效,就可以重新开始一轮新的模数转换和读取过程。

③数据读取完成后,如果仍然保持片选有效,则DOUT端始终输出低电平。

●功能A/D转换芯片,完成信号的模数转换3)D/A●型号:DAC1208●原理图●配置电路图●时序图●功能D/A转换芯片,完成信号的数模转换4)数据存储器●型号:6264●原理图●功能存储模数转换的结果,循环存储,存储空间64K 5)锁存器●型号:74LS373●原理图●功能地址锁存器,用于8051的P0口数据地址复用时锁存低八位地址6)放大器●型号:LM324●原理图●功能①构成DAC1208基本配置电路②信号输出端具有缩小放大倍数和反相功能,使得转换输出后的信号与原信号的幅度和相位尽可能相同3、硬件电路设计1)硬件设计框图2)硬件设计原理图4、系统软件设计1)软件设计框图2)软件源代码及注释ORG 0000HLJMP MAINORG 000BH;Time0中断入口地址LJMP PROGORG 0100HMAIN:MOV SP,#60HJNB P1.4,L1;p1.4若为低,250hz采样率JNB P1.5,L2; p1.5若为低,1khz采样率JNB P1.6,L3; p1.6若为低,2khz采样率L1:MOV TH0,#0F0HMOV TL0,#60H;计数器0赋初值,250hz,计数初值61536SJMP CONL2:MOV TH0,#0FCHMOV TL0,#18H;计数器0赋初值,1khz,计数初值64536SJMP CONL3:MOV TH0,#0FEHMOV TL0,#0CH;计数器0赋初值,2khz,计数初值65036SJMP CONCON:MOV TMOD,#01H;工作方式1MOV DPTR,#4000H;RAM地址0,DAC1208高八位寄存器地址的前三位取0100C0 SETB ET0;T0开中断SETB EA;CPU开中断SETB TR0;T0启动SJMP $;等待中PROG:JNB P1.4,M1JNB P1.5,M2JNB P1.6,M3M1:MOV TH0,#0F0H;重赋计数初值MOV TL0,#60HSJMP MAX1240M2:MOV TH0,#0FCHMOV TL0,#18HSJMP MAX1240M3:MOV TH0,#0FEHMOV TL0,#0HSJMP MAX1240MAX1240:MOV A,#00H;初始化累加器AMOV R7,#08H;位计数器设置为8SETB P1.3;SHDN 设置为正常模式CLR P1.1;CLK初始化为低CLR P1.2;MAX1240片选信号有效NOP ;从第二个时序开始JNB P1.0,$;等待A/D转换结束SETB P1.1MSB:CLR P1.1;CLK下降沿,开始读数据,一个脉冲读一位NOPSETB P1.1;CLK上升沿,从DOUT读出数据MOV C,P1.0;DOUT数据读入CPURLC A;A寄存器左移位DJNZ R7,MSB;循环,直到读完高八位MOV R1,A;把高八位数据存到R1MOV R7,#04H;位计数器设置为四次MOV A,#00H;初始化累加器LSB:CLR P1.1NOPSETB P1.1MOV C,P1.0RLC ADJNZ R7,LSBMOV R2,A;低四位数据送R2保存,高四位为0NOPSETB P1.2;片选信号无效CLR P1.3;SHDN置0,MAX1240进入待机模式DAC:MOV A,#00011111BMOV R3,DPHANL A,R3MOV R3,AMOV A,#01000000BORL A,R3MOV DPH,A;DPTR前三位设为010,其余位不变,得到RAM地址和DAC1208高八位地址MOV A,R1;发送高八位数据MOVX @DPTR,A;高八位存到RAM和DAC1208高八位寄存器INC DPTR;RAM地址加一MOV A,#00011111BMOV R3,DPHANL A,R3MOV DPH,A;DPTR 前三位置0,得到RAM 地址和DAC1208低四位寄存器地址 MOV A,R2;发送低四位数据MOVX @DPTR,A;低四位存到RAM 和DAC1208低四位寄存器 MOV A,#10100000B; MOV R3,DPH ORL A,R3MOV DPH,A;DPTR 前三位设为101,RAM 不使能,得到DAC1208十二位寄存器地址 MOVX @DPTR,A;十二位DA 转换 INC DPTR;RAM 地址加一 RETIEND5、 仿真结果为了展现不同采样频率对同一信号的采样结果的不同,本设计仿真的信号源的频率均采用42hz ,幅度均为1.07。

Proteus课程设计报告格式

Proteus课程设计报告格式

课程设计课程: Proteus学生姓名:学生学号:院系:专业:班级:任课教师:《Proteus》课程设计报告学生姓名:学号:一、设计任务内容如下列框图,当按下K1时,显示器显示模拟信号V1的测量值;当按下K2时,显示器显示模拟信号V2的测量值。

信号源可以采用传感器或信号发生器产生。

结合Proteus完成:1、设计的硬件电路图;2、软件操作流程图;3、运行的结果界面抓图;4、附设计的程序代码。

二、设计分析1.次实验是利用A/D转化原理,将被测模拟量转化为数字量,并用数字方式显示测量结果的电子测量仪表。

本次设计采用ADC0808对输入模拟信号进行转化,控制核心AT89C51单片机对转化的结果进行运算和处理,最后驱动输出装置显示数字信号。

2.ADC8080是一种8路模拟输入的8位逐次逼近式ADC其外形特点如下图所示。

同时其内部除了8位ADC 外,还有一个8路模拟开关,其作用可根据地址译码信号来选择8路模拟输入,8路模拟输出可以分时共用一个ADC进行转换,可实现多路数据采集。

其转换结果通过三态输出锁存器输出。

(1)IN0~IN7:8路模拟输入量。

(2)ADD A、ADD B、ADD C:模拟量输入通道地址选择线,其8位编码分别对应IN0~IN7(3)ALE:地址锁存端。

(4)START:ADC转换启动信号,正脉冲有效,引脚信号要求保持在200ns以上,其上声沿将内部逐次逼近寄存器清零,下降沿启动ADC转换。

(5)EOC:转换结束信号,可作为中断请求信号或供CPU查询。

(6)CLK:时钟输入端,要求频率范围在10KHZ~1.2MHZ。

(7)OE:允许输出信号。

(8)Vcc:芯片工作电压。

(9)VREF(+)、VREF(-):基准参考电压的正负值。

(10) OUT1~OUT8:8路数字量输出端。

3.显示屏采用的SMG12864A是一种图形点阵液晶显示器,可以完成图形显示,也可以显示8X4个(16X16点阵)汉字。

PROTEUS课程设计报告

PROTEUS课程设计报告

电子设计应用软件训练总结报告一、任务说明1、熟练掌握PROTEUS软件的使用;2、按照设计要求绘制电路原理图;3、能够按要求对所设计的电路进行仿真,利用51单片机、BCD译码芯片74LS47和两位LED构成一个数码管扫描显示系统,两个数码管同时循环显示0~9。

二、原理图绘制说明电路原理图的设计与绘制的流程,包括设置电路图纸、放置元器件、调整元器件的布局、连接导线等步骤。

打开PROTEUS软件,在原理图编辑窗口绘制电路图。

在该界面环境下,还有预览窗口和元件列表区。

编辑窗口用于放置元器件,进行连线,绘制原理图。

预览窗口可以显示全部原理图。

首先要建立设计文件,选择合适的模板,并保存在预先建立好的文件夹中。

选择图纸,在Proteus中点击“File”->“New design”可以根据设计的规模选择页面的大小,本次设计选用的是A4图纸,如图1所示。

图1 页面大小选择然后开始进行电路原理图的绘制了利用软件的搜索功能在元件库中找到需要的元件,放置到图纸的合适位置,并分别设置好各个元器件的参数,再在需要的位置放置图形文本框,最后将各个元器件连接起来,这样原理图就绘制完成了。

然后对所绘制的电路原理图进行检查,如有错误就要作进一步的调整与修改,以保证原理图准确无误。

并在绘制原理图结束后,保存原理图文件并在Proteus下进行仿真,实现相应功能。

每个七段显示器是由八个LED所组成的,其中包括七个细长条形的LED及小数点形的LED,显示器的每一段或每一划都有其名称,分别是英文小写的a到f,以及小数点dp。

七段显示器可以显示包括小数点的0到9数字与部分的英文字母。

如果其阳极都连在一起时,我们称之为共阳极的七段显示器,若LED的阴极都连在一起时,我们称之为共阴极的七段显示器。

本次应用了一个共阴极的两位七段显示器若要显示数字‘1’,就要使b划与c划点亮。

设计该电路的整体思路是,先由CNT 位置取得一个0~9的记数值,然后用MOVC指令去找到真正的七段显示码,再做一次取反后才到P1端口上,就可以做正确的数字显示。

数码管方案设计实训报告

数码管方案设计实训报告

一、实训背景随着科技的不断发展,电子技术在各个领域中的应用越来越广泛。

数码管作为一种常见的显示器件,因其体积小、亮度高、易于驱动等特点,在电子设备中得到了广泛应用。

为了提高自身在电子技术领域的实践能力,我们选择了数码管方案设计作为实训课题,通过实际操作和理论分析,掌握数码管的应用原理和设计方法。

二、实训目的1. 理解数码管的工作原理和驱动方式。

2. 掌握数码管在电路中的应用设计。

3. 提高动手能力和电路调试能力。

4. 培养团队合作和问题解决能力。

三、实训内容1. 数码管原理及驱动方式2. 数码管驱动电路设计3. 数码管应用电路设计4. 数码管电路调试与测试四、实训过程(一)数码管原理及驱动方式1. 数码管分类:数码管分为七段数码管和十四段数码管,本实训以七段数码管为例进行讲解。

2. 数码管工作原理:七段数码管由七个独立的发光二极管组成,分别代表数字0-9。

通过控制每个发光二极管的点亮与熄灭,可以显示不同的数字和字符。

3. 数码管驱动方式:数码管驱动方式主要有共阴极和共阳极两种。

共阴极数码管的特点是高电平点亮,低电平熄灭;共阳极数码管的特点是低电平点亮,高电平熄灭。

(二)数码管驱动电路设计1. 选择合适的驱动电路:根据数码管的类型和数量,选择合适的驱动电路。

本实训采用共阴极数码管,使用74HC595移位寄存器进行驱动。

2. 设计驱动电路原理图:根据驱动电路的选择,绘制驱动电路原理图,包括数码管、驱动芯片、电源等部分。

3. 选择合适的元件:根据原理图,选择合适的元件,如数码管、74HC595移位寄存器、电阻、电容等。

(三)数码管应用电路设计1. 设计显示内容:根据实际需求,设计数码管的显示内容,如数字、字符、符号等。

2. 编写程序:根据显示内容,编写控制数码管显示的程序。

本实训采用C语言进行编程。

3. 连接电路:将数码管、驱动电路、单片机等元件连接到一起,形成完整的数码管显示电路。

(四)数码管电路调试与测试1. 上电测试:接通电源,观察数码管是否正常显示。

控制数码管显示实训报告

控制数码管显示实训报告

一、实训目的通过本次实训,使学生了解数码管的工作原理,掌握数码管驱动电路的设计方法,学会使用单片机或PLC等微控制器实现对数码管的控制,提高学生的实际动手能力和电子技术综合应用能力。

二、实训内容1. 数码管的结构与工作原理数码管是一种用来显示数字和字母的电子显示器件,通常由多个LED灯组成。

根据LED灯的连接方式,数码管分为共阴极和共阳极两种类型。

(1)共阴极数码管:LED灯的阴极相连,阳极分别独立引出,当给阳极加上高电平时,相应的LED灯点亮。

(2)共阳极数码管:LED灯的阳极相连,阴极分别独立引出,当给阴极加上低电平时,相应的LED灯点亮。

2. 数码管驱动电路设计(1)共阴极数码管驱动电路:使用译码器、驱动器和位选信号进行驱动。

(2)共阳极数码管驱动电路:使用译码器、驱动器和位选信号进行驱动。

3. 单片机控制数码管显示(1)51单片机控制数码管显示:编写程序,通过P1口输出位选信号,通过P2口输出段选信号,实现数码管显示数字0-9。

(2)PLC控制数码管显示:编写梯形图程序,通过输入/输出模块控制数码管显示。

三、实训步骤1. 准备实验器材:数码管、单片机或PLC、电源、导线等。

2. 设计数码管驱动电路,连接电路。

3. 编写单片机或PLC程序,实现数码管显示数字0-9。

4. 调试程序,观察数码管显示效果。

5. 改进程序,实现更多功能,如显示字母、动态扫描等。

四、实训结果与分析1. 数码管驱动电路设计成功,数码管显示正常。

2. 使用51单片机控制数码管显示数字0-9,程序运行正常。

3. 使用PLC控制数码管显示数字0-9,程序运行正常。

4. 通过实训,掌握了数码管的工作原理、驱动电路设计方法以及单片机或PLC控制数码管显示的基本技能。

五、实训心得1. 在本次实训中,我对数码管的结构和工作原理有了更深入的了解,掌握了数码管驱动电路的设计方法。

2. 通过编写单片机或PLC程序,实现了数码管显示数字0-9,提高了自己的编程能力。

控制数码管的课程设计

控制数码管的课程设计

控制数码管的课程设计一、课程目标知识目标:1. 理解数码管的基本结构、工作原理及分类;2. 学会使用编程语言控制数码管显示数字及简单字符;3. 掌握数码管的电路连接和编程方法。

技能目标:1. 能够独立设计并搭建数码管显示电路;2. 能够运用所学编程知识,编写程序控制数码管显示不同数字和简单字符;3. 培养学生的动手实践能力、问题解决能力和团队协作能力。

情感态度价值观目标:1. 激发学生对电子技术和编程的兴趣,培养其主动探索精神;2. 培养学生严谨的科学态度,养成良好的实验操作习惯;3. 引导学生认识到数码管技术在现实生活中的应用,体会科技改变生活的价值。

课程性质:本课程属于电子技术和编程实践课程,注重理论联系实际,强调学生的动手实践能力。

学生特点:学生具备一定的电子技术基础和编程知识,对新鲜事物充满好奇心,喜欢动手实践。

教学要求:结合学生特点,注重启发式教学,引导学生主动探索,培养其解决问题和团队协作能力。

在教学过程中,关注学生的个体差异,提供个性化指导,确保每位学生都能达到课程目标。

通过课程学习,使学生能够将所学知识应用于实际项目中,提高其创新意识和实践能力。

二、教学内容1. 数码管基础知识:- 数码管的结构、工作原理;- 数码管的分类及特点;- 数码管的电路连接方法。

2. 编程控制数码管:- 常用编程语言及开发环境介绍;- 数码管显示数字及简单字符的编程方法;- 电路与程序调试技巧。

3. 实践项目:- 设计并搭建数码管显示电路;- 编写程序,实现数码管显示0-9数字及简单字符;- 创新设计:自定义显示模式,如滚动显示、动态效果等。

教学安排与进度:第一课时:数码管基础知识学习;第二课时:编程控制数码管原理及方法;第三课时:实践项目一:搭建数码管显示电路;第四课时:实践项目二:编写程序,实现数码管显示数字及简单字符;第五课时:创新设计,优化显示效果。

教材章节关联:《电子技术》第三章第三节:数字显示器件;《编程语言》第四章第二节:硬件编程基础。

开关控制LED数码管实验报告

开关控制LED数码管实验报告

实验二开关控制LED数码管实验
一、实验目的:
1.通过AT89C51读入4位开关K1、K2、K3、K4的输入状态,并按照二进制编码关系0-F输出到数码管显示。

(如K4K3K2K1全部按下,则显示F;若只有K2按下,则显示2。


2.掌握LED数码管的静态显示。

3.掌握I/O口的控制方法。

二、PROTEUS电路设计:
三、实验仪器和设备
PC机、PROTEUS软件或W-A-51综合开发学习板
四、源程序设计:
1.程序
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV DPTR,#BIAO ;指针指向表的首地址
MOV A,P2 ;读入P2口4个开关的状态,开关按下着输入低电平CPL A ;把输入的开关状态取反,得到编码关系
MOVC A,@A+DPTR ;查表,找到7端数码管对应的显示代码
MOV P0,A ;输出显示
BIAO: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H,08H,49H,46H,40H,06H,0EH END。

数码管控制器实训报告

数码管控制器实训报告

一、实训目的本次数码管控制器实训旨在通过实际操作,加深对数码管控制器工作原理的理解,掌握数码管显示的基本方法,以及如何通过控制器实现对数码管显示内容的控制。

通过实训,提高学员的动手能力、分析问题和解决问题的能力,为后续相关电子设计课程打下坚实的基础。

二、实训环境1. 实训设备:数码管控制器模块、单片机开发板、电源、导线、连接器等。

2. 实训软件:相应单片机编程软件(如Keil uVision、IAR Embedded Workbench 等)。

3. 实训教材:《单片机原理与应用》、《嵌入式系统设计》等。

三、实训原理数码管控制器是一种常用的显示设备,通过将数字信号转换为相应的光信号,实现数字的显示。

常见的数码管有七段数码管和多位数码管。

七段数码管由七个独立的发光二极管组成,分别代表数字0-9的七段组合。

多位数码管由多个七段数码管组合而成,可以显示多位数字。

数码管控制器通常与单片机相连,通过单片机的I/O口控制数码管的显示内容。

单片机发送的数字信号通过控制器转换,驱动数码管显示相应的数字。

四、实训过程1. 数码管认识与测试(1)认识数码管的结构和引脚功能。

(2)测试数码管的工作状态,观察数码管显示的数字。

(3)根据数码管的结构,绘制数码管的电路图。

2. 数码管控制器模块学习(1)了解数码管控制器的功能和工作原理。

(2)学习数码管控制器的接口连接方法。

(3)通过实验验证数码管控制器的显示功能。

3. 单片机编程与控制(1)学习单片机的编程方法,掌握单片机的I/O口控制。

(2)编写程序,实现数码管显示数字的功能。

(3)通过编程调整数码管的显示内容,如闪烁、循环显示等。

4. 多位数码管显示(1)了解多位数码管的工作原理。

(2)设计电路,实现多位数码管的显示。

(3)编写程序,实现多位数码管的显示功能。

5. 扩展应用(1)学习数码管控制器在嵌入式系统中的应用。

(2)设计一个简单的电子钟,使用数码管显示时间。

(3)通过实验验证电子钟的显示功能。

基于Proteus的51单片机动态数码管课程设计 详细篇

基于Proteus的51单片机动态数码管课程设计 详细篇

单片机课程设计题目动态数码管显示学院机电工程学院专业班级电子信息工程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存储器可有效地降低开发成本。

proteus数码管显示课程设计

proteus数码管显示课程设计

proteus数码管显示课程设计一、课程目标知识目标:1. 理解数码管显示原理,掌握数码管的基础知识;2. 学习并掌握proteus软件中数码管的仿真使用方法;3. 掌握基础的数字电路设计,能够运用proteus进行简单的数码管显示电路设计。

技能目标:1. 能够运用proteus软件进行数码管电路的搭建和仿真;2. 能够分析并解决数码管显示过程中可能遇到的问题;3. 培养学生的动手实践能力,提高他们解决实际问题的技能。

情感态度价值观目标:1. 培养学生对电子技术和数字电路的兴趣,激发他们的探究欲望;2. 培养学生的团队合作精神,提高他们在团队中的沟通与协作能力;3. 培养学生严谨的科学态度和良好的学习习惯,使他们具备继续深入学习电子技术的基本素质。

本课程针对高中年级学生,结合课程性质、学生特点和教学要求,制定以上课程目标。

课程以实用性为导向,注重理论与实践相结合,旨在帮助学生掌握数码管的基础知识,提高他们运用proteus软件进行电子电路设计的能力。

通过本课程的学习,学生将能够具备一定的电子技术素养,为后续相关课程的学习打下坚实基础。

二、教学内容本章节教学内容紧密围绕课程目标,结合教材内容进行科学组织和系统安排。

具体教学内容如下:1. 数码管基础知识:介绍数码管的结构、工作原理及分类,重点讲解共阴极和共阳极数码管的区别及使用方法。

教材章节:第二章第二节《数字显示器件》2. Proteus软件介绍:讲解Proteus软件的基本功能、操作界面和仿真原理,使学生熟悉并掌握软件的使用。

教材章节:第一章《Proteus软件的认识与使用》3. 数码管电路设计:学习并实践使用Proteus软件设计数码管显示电路,包括电路搭建、仿真调试和优化。

教材章节:第三章第一节《数字电路设计基础》4. 数码管显示控制:学习并掌握数码管的动态显示和静态显示控制方法,分析不同显示方式的优缺点。

教材章节:第三章第二节《数码管的显示控制方法》5. 实践操作:安排学生进行小组合作,完成一个简单的数码管显示项目,巩固所学知识,提高动手能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、任务说明
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 数码管部分连接电路
8、连接按键部分。

通过P3口第二功能放置按键。

用外部中断源0,1控制按键1,2。

按键1,2的功能分别为控制计数的加减,如图6所示。

图6 按键部分原理图
9、原理图连接完成。

三、应用PROTEUS软件对原理图进行仿真的步骤以及过程结果
1、在keil中编写程序。

由于设计任务是用按键控制正计数和倒计数,则利用两个外部中断分别控制。

在计数时,首先对数据进行判断,若当前值为预设值时,退出中断,返回主程序,否则进行加减计数。

程序流程图如图7所示。

图7 程序流程图
2、编译无误后,生成hex文件。

3、选择hex文件。

右键单片机,选择edit properties,单击program file右侧文件夹按钮,选择生成的hex文件,单击OK。

如图8所示。

图8 选择hex文件
4、选择仿真。

单击左下角三角按钮,开始仿真。

如图9所示。

图9 选择仿真
5、仿真过程结果。

程序仿真开始,初始情况如图10所示。

数码管显示00。

当按下键1时,数码管进行加一,每按一次显示数字加一,加至99停止。

如图11所示。

当按下键0时,数码管显示减一,减至00截止。

如图12所示。

图10 仿真初始情况
图11 进行加一操作
图12 进行减一操作
3、仿真完成,结果正确。

需要注意的是,仿真结果中数码管有轻微闪烁,但经验证,程序及原理图无误,是proteus与实物有些许差别,所以截图只能显示一位,但动态显示是两位,结果正确。

四、总结
五、参考文献
[1]张毅刚.单片机原理及应用.第3版 [M] 哈尔滨:高教出版社,2015年.
[2]张坤毅.单片微型计算机原理及应用[M]西安:西安电子科技大学出版社,1997年.
[3]陈忠平.基于Proteus的51系列单片机设计与仿真.第2版[M]北京:电子工业出版社,2008.
[4]李广弟等.单片机基础[M].北京:北京航空航天出版社,2001.
[5]王东峰等.单片机C语言应用100例[M].北京:电子工业出版社,2009.
附录I 仿真电路图
附录II 程序代码
org 00h
jmp start
org 03h
jmp in0
org 13h
jmp in1
start:mov ie,#85h
mov ip,#04h
mov tcon,#05h mov dptr,#table disp:mov a,r4
mov b,#10
div ab
mov 20h,a
mov 21h,b
disp1:mov a,20h
movc a,@a+dptr mov p0,a
clr p2.7
setb p2.6
lcall delay disp2:mov a,21h
movc a,@a+dptr mov p0,a
clr p2.6
setb p2.7
lcall delay
ajmp disp
in0:mov a,r4
cjne a,#99,add1 ajmp jp1
add1:add a,#01h
mov r4,a
jp1:nop
reti
in1:mov a,r4
cjne a,#00,subb1
ajmp jp2
subb1:subb a,#01h
mov r4,a
jp2:nop
reti
delay:mov r7,#200
dela:mov r6,#125
djnz r6,$
djnz r7,dela
ret
table:db 3fh,06h,5bh,4fh,66h db 6dh,7dh,07h,7fh,6fh ret
end。

相关文档
最新文档