DS18B20温度控制数码管显示(汇编非常详细)

DS18B20温度控制数码管显示(汇编非常详细)
DS18B20温度控制数码管显示(汇编非常详细)

; DS18B20温度控制数码管显示(汇编非常详细)

*

;* 1、P1.6= → 进入设定温度报警值TL 状态:

*

;* L--20

*

;* 2、P1.6 → 进入设定温度报警值TH 状态:

*

;* H--28

*

;* 3、P1.6 → 返回

*

;* 4、设定过程:P1.4 →加键(UP),P1.5 →减键(DOWN),可快速调。* ;*

**

TIMER_L DA TA23H

TIMER_H DA TA24H

TIMER_COUN DA TA25H

TEMPL DA TA26H

TEMPH DA TA27H

TEMP_TH DA TA28H

TEMP_TL DA TA29H

TEMPHC DA TA2AH

TEMPLC DA TA2BH

TEMP_ZH DA TA2CH

BEEP EQU P3.7

DA TA_LINE EQU P3.3

RELAY EQU P1.3

FLAG1 EQU 20H.0

FLAG2 EQU 20H.1

;-------------------------------------------------

K1 EQU P1.4

K2 EQU P1.5

K3 EQU P1.6

K4 EQU P1.7

;=================================================

ORG 0000H

JMP MAIN

ORG 000BH

AJMP INT_T0

;--------------------------------------------------

MAIN: MOV SP,#30H

MOV TMOD,#01H ;T0,方式1

MOV TIMER_L,#00H ;50ms定时值

MOV TIMER_H,#4CH

MOV TIMER_COUN,#00H ;中断计数

MOV IE,#82H ;EA=1,ET0=1

LCALL READ_E2

;LCALL RE_18B20

MOV 20H,#00H

SETB BEEP

SETB RELAY

MOV 7FH,#0AH ;熄灭符

CALL RESET ;复位与检测DS18B20

JNB FLAG1,MAIN1 ;FLAG1=0,DS18B20不存在

JMP START

MAIN1: CALL RESET

JB FLAG1,START

LCALL BEEP_BL ;DS18B20错误,报警

JMP MAIN1

START:

MOV A,#0CCH ; 跳过ROM匹配

CALL WRITE

MOV A,#044H ; 发出温度转换命令

CALL WRITE

CALL RESET

MOV A,#0CCH ; 跳过ROM匹配

CALL WRITE

MOV A,#0BEH ; 发出读温度命令

CALL WRITE

CALL READ ;读温度数据

CALL CONVTEMP

CALL DISPBCD

CALL DISP1

CALL SCANKEY

LCALL TEMP_COMP

JMP MAIN1

;=====================================================

;DS18B20 复位与检测子程序

;FLAG1=1 OK, FLAG1=0 ERROR

;======================================================

RESET:

SETB DA TA_LINE

NOP

CLR DA TA_LINE

MOV R0,#64H ;主机发出延时600微秒的复位低脉冲

MOV R1,#03H

RESET1: DJNZ R0,$

MOV R0,#64H

DJNZ R1,RESET1

SETB DA TA_LINE ;然后拉高数据线

NOP

MOV R0,#25H

RESET2: JNB DA TA_LINE,RESET3 ;等待DS18B20回应

DJNZ R0,RESET2

JMP RESET4 ; 延时

RESET3: SETB FLAG1 ; 置标志位,表示DS1820存在

JMP RESET5

RESET4: CLR FLAG1 ; 清标志位,表示DS1820不存在

JMP RESET6

RESET5: MOV R0,#064H

DJNZ R0,$ ; 时序要求延时一段时间

RESET6: SETB DA TA_LINE

RET

;===========================================================

;

;=========================================================== WRITE: MOV R2,#8 ;一共8位数据

CLR CY

WR1:

CLR DA TA_LINE ;开始写入DS18B20总线要处于复位(低)状态

MOV R3,#09

DJNZ R3,$ ;总线复位保持18微妙以上

RRC A;把一个字节DA TA分成8个BIT环移给C

MOV DA TA_LINE,C ;写入一个BIT

MOV R3,#23

DJNZ R3,$ ;等待46微妙

SETB DA TA_LINE ;重新释放总线

NOP

DJNZ R2,WR1 ;写入下一个BIT

SETB DA TA_LINE

RET

;============================================================ ;从DS18B20中读出温度低位、高位和报警值TH、TL

;存入26H、27H、28H、29H

;============================================================ READ: MOV R4,#4 ; 将温度高位和低位从DS18B20中读出MOV R1,#26H ; 存入26H、27H、28H、29H

RE00: MOV R2,#8

RE01: CLR C

SETB DA TA_LINE

NOP

NOP

CLR DA TA_LINE ;读前总线保持为低

NOP

NOP

NOP

SETB DA TA_LINE ;开始读总线释放

MOV R3,#09 ;延时18微妙

DJNZ R3,$

MOV C,DA TA_LINE ;从DS18B20总线读得一个BIT

MOV R3,#23

DJNZ R3,$ ;等待46微妙

RRC A;把读得的位值环移给A

DJNZ R2,RE01 ;读下一个BIT

MOV @R1,A

INC R1

DJNZ R4,RE00

RET

;--------------------------------------------

;200ms对闪动标记取反一次

;--------------------------------------------

INT_T0:

PUSH ACC

PUSH PSW

MOV TL0,TIMER_L

MOV TH0,TIMER_H

INC TIMER_COUN

MOV A,TIMER_COUN

CJNE A,#04H,INT_END

MOV TIMER_COUN,#00H

CPL FLAG2

INT_END:

POP PSW

POP ACC

RETI

;========================================================== ;重新对DS18B20 初始化

;将设定的温度报警值写入DS18B20

;========================================================== RE_18B20:

JB FLAG1,RE_18B20A

RET

RE_18B20A:

CALL RESET

MOV A,#0CCH ;跳过ROM匹配

LCALL WRITE

MOV A,#4EH ;写暂存寄存器

LCALL WRITE

MOV A,TEMP_TH ;TH(报警上限)

LCALL WRITE

MOV A,TEMP_TL ;TL(报警下限)

LCALL WRITE

MOV A,#7FH ;12位精确度

LCALL WRITE

RET

;====================================================

;功能键扫描子程序

;==================================================== SCANKEY:

MOV P1,#0F0H

JB K1,SCAN_K2

CALL BEEP_BL

SCAN_K1: CALL ALERT_TL

CALL ALERT_PLAY

JB K1,SCAN_K1

CALL BEEP_BL

SCAN_K11: CALL ALERT_TH

CALL ALERT_PLAY

JB K1,SCAN_K11

CALL BEEP_BL

SCAN_K2: JB K2,SCAN_K3

CALL BEEP_BL

SCAN_K3: JB K3,SCAN_K4

CALL BEEP_BL

LCALL RESET_ALERT

LCALL RE_18B20

LCALL WRITE_E2

SCAN_K4: JB K4,SCAN_END

CALL BEEP_BL

SCAN_END: RET

;================================================ ;设置温度报警值

;================================================ RESET_ALERT:

CALL ALERT_TL

CALL ALERT_PLAY

JNB K3,$ ;K3为位移键

SETB TR0

RESET_TL:

CALL ALERT_PLAY

JNB FLAG2,R_TL01

mov 75H,7fh ;送入熄灭符

mov 76H,7fh

CALL ALERT_PLAY

JMP R_TL02

R_TL01: CALL ALERT_TL

mov 75h,7Eh ;送设定值

mov 76h,7Dh

CALL ALERT_PLAY;显示设定值

R_TL02: JNB K1,K011A

JNB K2,K011B

JNB K3,RESET_TH

JMP RESET_TL

K011A:

INC TEMP_TL

MOV A,TEMP_TL

CJNE A,#120,K012A;没有到设定上限值,转

MOV TEMP_TL,#0

K012A: CALL TL_DEL

JMP RESET_TL

K011B:

DEC TEMP_TL

MOV A,TEMP_TL

CJNE A,#00H,K012B ;没有到设定下限值,转

MOV TEMP_TL,#119

K012B: CALL TL_DEL

JMP RESET_TL

;-------------------------------------------------------

RESET_TH:

CALL BEEP_BL

JNB K3,$

RESET_TH1:

CALL ALERT_PLAY

JNB FLAG2,R_TH01

mov 75H,7fh ;送入熄灭符

mov 76H,7fh

CALL ALERT_PLAY

JMP R_TH02

R_TH01: CALL ALERT_TH

mov 75h,7Eh ;

mov 76h,7Dh

CALL ALERT_PLAY

R_TH02: JNB K1,K021A

JNB K2,K021B

JNB K3,K002

JMP RESET_TH1

K021A:

INC TEMP_TH

MOV A,TEMP_TH

CJNE A,#120,K022A;没有到设定上限值,转

MOV TEMP_TH,#0

K022A: CALL TH_DEL

JMP RESET_TH1

K021B:

DEC TEMP_TH ;减1

MOV A,TEMP_TH

CJNE A,#00H,K022B ;没有到设定下限值,转

MOV TEMP_TH,#119

K022B: CALL TH_DEL

JMP RESET_TH1

K002: CALL BEEP_BL

CLR TR0 ;关闭中断

RET

;-----------------------------------------------------

;键延时子程序

;多次调用报警值显示程序来延时

;-----------------------------------------------------

TL_DEL: ;报警低值延时

MOV R2,#0AH

TL_DEL1: CALL ALERT_TL

CALL ALERT_PLAY

DJNZ R2,TL_DEL1

RET

TH_DEL: ;报警高值延时

MOV R2,#0AH

TH_DEL1: CALL ALERT_TH

CALL ALERT_PLAY

DJNZ R2,TH_DEL1

RET

;==================================================== ;实时温度值与设定报警温度值TH、TL 比较子程序

;当实际温度大于TH 的设定值时,显示“H”,继电器关闭。

;当实际温度小于TH 的设定值时,显示“O”,继电器吸合。

;当实际温度小于TL 的设定值时,显示“L”。

;闪动显示标记符H、L、O

;==================================================== TEMP_COMP:

SETB TR0 ;启动中断

MOV A,TEMP_TH

SUBB A,TEMP_ZH ;减数>被减数,则

JC CHULI1 ;借位标志位C=1,转

MOV A,TEMP_ZH

SUBB A,TEMP_TL ;减数>被减数,则

JC CHULI2 ;借位标志位C=1,转

JNB FLAG2,T_COMP1 ;FLAG2=0,显示标记字符

MOV 74H,#0AH ;熄灭符

LCALL DISP1

JMP T_COMP2

T_COMP1: MOV 74H,#00H

LCALL DISP1 ;显示"O"

T_COMP2: CLR RELAY;继电器吸合

CLR TR0 ;关闭中断

RET

;---------------------------------------------

;超温处理

;---------------------------------------------

CHULI1:

SETB RELAY;继电器关闭

JNB FLAG2,CHULI10

MOV 74H,#0AH ;熄灭符

LCALL DISP1

JMP CHULI11

CHULI10: MOV 74H,#0DH

LCALL DISP1 ;显示"H"

;CALL BEEP_BL ;蜂鸣器响

CHULI11:

CLR TR0 ;关闭中断

RET

;---------------------------------------------

;欠温处理

;---------------------------------------------

CHULI2: ;欠温处理

JNB FLAG2,CHULI20

MOV 74H,#0AH ;熄灭符

LCALL DISP1

JMP CHULI21

CHULI20: MOV 74H,#0CH

LCALL DISP1 ;显示"L"

;CALL BEEP_BL ;蜂鸣器响

CHULI21: CLR TR0 ;关闭中断

RET

;------------------------------------------------------------

;把DS18B20 暂存器里的温度报警值拷贝到EEROM

;------------------------------------------------------------

WRITE_E2:

CALL RESET

MOV A,#0CCH ;跳过ROM匹配

LCALL WRITE

MOV A,#48H ;温度报警值拷贝到EEROM

LCALL WRITE

RET

;--------------------------------------------------------------

;把DS18B20 EEROM 里的温度报警值拷贝回暂存器

;-------------------------------------------------------------

READ_E2:

CALL RESET

MOV A,#0CCH ;跳过ROM匹配

LCALL WRITE

MOV A,#0B8H ;温度报警值拷贝回暂存器

CALL WRITE

RET

;***************************************************** ; 处理温度BCD 码子程序

;**************************************************** CONVTEMP: MOV A,TEMPH ;判温度是否零下

ANL A,#80H

JZ TEMPC1 ;温度零上转

CLR C

MOV A,TEMPL ;二进制数求补(双字节)

CPL A;取反加1

ADD A,#01H

MOV TEMPL,A

MOV A,TEMPH ;-

CPL A

ADDC A,#00H

MOV TEMPH,A;TEMPHC HI =符号位

MOV TEMPHC,#0BH

SJMP TEMPC11

TEMPC1: MOV TEMPHC,#0AH ;

TEMPC11: MOV A,TEMPHC

SW AP A

MOV TEMPHC,A

MOV A,TEMPL

ANL A,#0FH ;乘0.0625

MOV DPTR,#TEMPDOTTAB

MOVC A,@A+DPTR

MOV TEMPLC,A;TEMPLC LOW=小数部分BCD

MOV A,TEMPL ;整数部分

ANL A,#0F0H

SW AP A

MOV TEMPL,A

MOV A,TEMPH

ANL A,#0FH

SW AP A

ORL A,TEMPL

MOV TEMP_ZH,A;组合后的值存入TEMP_ZH

LCALL HEX2BCD1

MOV TEMPL,A

ANL A,#0F0H

SW AP A

ORL A,TEMPHC ;TEMPHC LOW = 十位数BCD

MOV TEMPHC,A

MOV A,TEMPL

ANL A,#0FH

SW AP A;TEMPLC HI = 个位数BCD

ORL A,TEMPLC

MOV TEMPLC,A

MOV A,R7

JZ TEMPC12

ANL A,#0FH

SW AP A

MOV R7,A

MOV A,TEMPHC ;TEMPHC HI = 百位数BCD

ANL A,#0FH

ORL A,R7

MOV TEMPHC,A

TEMPC12: RET

;-----------------------------------------------------------

; 小数部分码表

;-----------------------------------------------------------

TEMPDOTTAB: DB 00H,01H,01H,02H,03H,03H,04H,04H,05H,06H

DB 06H,07H,08H,08H,09H,09H

;=========================================================== ;显示区BCD 码温度值刷新子程序

;===========================================================

DISPBCD: MOV A,TEMPLC

ANL A,#0FH

MOV 70H,A;小数位

MOV A,TEMPLC

SW AP A

ANL A,#0FH

MOV 71H,A;个位

MOV A,TEMPHC

ANL A,#0FH

MOV 72H,A;十位

MOV A,TEMPHC

SW AP A

ANL A,#0FH

MOV 73H,A;百位

MOV A,TEMPHC

ANL A,#0F0H

CJNE A,#010H,DISPBCD0

SJMP DISPBCD2

DISPBCD0: MOV A,TEMPHC

ANL A,#0FH

JNZ DISPBCD2 ;十位数是0

MOV A,TEMPHC

ANL A,#0FH

MOV 73H,#0AH ;符号位不显示

MOV 72H,A;十位数显示符号

DISPBCD2: RET

;***************************************************************

; 温度显示子程序

;***************************************************************

;显示数据在70H -73H 单元内,用4位共阳数码管显示,P0口输出段码数据,;P2 口作扫描控制,每个LED 数码管亮2MS 时间再逐位循环。

DISP1: MOV R1,#70H ;指向显示数据首址

MOV R5,#7FH ;扫描控制字初值

PLAY: MOV P0,#0FFH

MOV A,R5 ;扫描字放入A

MOV P2,A

MOV A,@R1 ;取显示数据到A

MOV DPTR,#TAB ;取段码表地址

MOVC A,@A+DPTR ;查显示数据对应段码

MOV P0,A;段码放入P0口

MOV A,R5

JB ACC.6,LOOP5 ;小数点处理

CLR P0.7

LOOP5: LCALL DL_MS ;显示2MS

INC R1 ;指向下一个地址

MOV A,R5 ;放回R5 内

JNB ACC.3,ENDOUT ;ACC.3=0时一次显示结束

RR A;A中数据循环左移

MOV R5,A;放入R5 中

AJMP PLAY;跳回PLAY循环

ENDOUT: MOV P0,#0FFH ;一次显示结束,P0口复位

MOV P2,#0FFH ;P2口复位

RET

TAB:

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0C7H,89H ; “0" “1" “2" “3" “4"“5"“6"“7"“8"“9"“灭" “-" “L”“H"

DL_MS: MOV R6,#0AH ;2MS延时程序,LED 显示程序用

DL1: MOV R7,#64H

DL2: DJNZ R7,DL2

RET

;****************************************************** ;单字节十六进制转BCD

;****************************************************** HEX2BCD1: MOV B,#064H

DIV AB

MOV R7,A

MOV A,#0AH

XCH A,B

DIV AB

SW AP A

ORL A,B

RET

;=============================================== ;报警值TH、TL 数据转换

;=============================================== ALERT_TL:

MOV 79H,#0CH

MOV 78H,#0BH

MOV A,TEMP_TL

MOV R0,#77H

MOV B,#064H

DIV AB

CJNE A,#01H,ALERT_TL1

MOV @R0,A

JMP ALERT_TL2

ALERT_TL1: MOV A,#0BH ;显示“-”

MOV @R0,A

ALERT_TL2: MOV A,#0AH

XCH A,B

DIV AB

DEC R0

MOV @R0,A

MOV 7DH,A

DEC R0

MOV @R0,B

MOV 7EH,B

RET

;-----------------------------------------------

ALERT_TH:

MOV 79H,#0DH

MOV 78H,#0BH

MOV A,TEMP_TH

MOV R0,#77H

MOV B,#064H

DIV AB

CJNE A,#01H,ALERT_TH1

MOV @R0,A

JMP ALERT_TH2

ALERT_TH1: MOV A,#0BH ;显示“-”

MOV @R0,A

ALERT_TH2: MOV A,#0AH

XCH A,B

DIV AB

DEC R0

MOV @R0,A

MOV 7DH,A

DEC R0

MOV @R0,B

MOV 7EH,B

RET

;===============================================

;报警值显示子程序

;===============================================

ALERT_PLAY:

MOV R1,#75H ;指向显示数据首址

MOV R5,#7FH ;扫描控制字初值

A_PLAY: MOV P0,#0FFH

MOV A,R5 ;扫描字放入A

MOV P2,A

MOV A,@R1 ;取显示数据到A

MOV DPTR,#ALERT_TAB ;取段码表地址

MOVC A,@A+DPTR ;查显示数据对应段码

MOV P0,A;段码放入P0口

LCALL DL_MS1 ;显示2MS

INC R1 ;指向下一个地址

MOV A,R5

JNB ACC.3,ENDOUT1

RR A;A中数据循环左移

MOV R5,A;放入R5 中

AJMP A_PLAY;跳回PLAY循环ENDOUT1: MOV P0,#0FFH ;一次显示结束,P0口复位MOV P2,#0FFH ;P2口复位

RET

ALERT_TAB:

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0C7H,89H ;共阳段码表“0" “1" “2" “3" “4"“5"“6"“7"“8"“9"“灭" “-"

DL_MS1: MOV R6,#0AH ;2MS延时程序,LED 显示程序用ADL1: MOV R7,#64H

ADL2: DJNZ R7,ADL2

DJNZ R6,ADL1

RET

;===============================================

;蜂鸣器响一声子程序

;P3.7=0,蜂鸣器响

;===============================================

BEEP_BL:

MOV R6,#100

BL2: CALL DEX1

CPL BEEP ;对P3.7 取反

DJNZ R6,BL2

MOV R5,#10

CALL DELAY

RET

DEX1: MOV R7,#180

DE2: NOP

DJNZ R7,DE2

RET

DELAY: ;(R5)*延时10MS

MOV R6,#50

DEL1: MOV R7,#100

DJNZ R7,$

DJNZ R6,DEL1

DJNZ R5,DELAY

RET

;==================================================

END

八位七段数码管动态显示电路设计

八位七段数码管动态显示电路的设计 一七段显示器介绍 七段显示器,在许多产品或场合上经常可见。其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为A、B、C、D、E、F、G与DP等八组发光二极管之排列,可用以显示0~9数字及英文数A、b、C、d、E、F。目前常用的七段显示器通常附有小数点,如此使其得以显示阿拉伯数之小数点部份。七段显示器的脚位和线路图如下图4.1所示( 其第一支接脚位于俯视图之左上角)。 图4.1、七段显示器俯视图 由于发光二极管只有在顺向偏压的时候才会发光。因此,七段显示器依其结构不同的应用需求,区分为低电位动作与高电位动作的两种型态的组件,另一种常见的说法则是共阳极( 低电位动作)与共阴极( 高电位动作)七段显示器,如下图4.2所示。 ( 共阳极) ( 共阴极) 图4.2、共阳极(低电位动作)与共阴极(高电位动作)

要如何使七段显示器发光呢?对于共阴极规格的七段显示器来说,必须使用“ Sink Current ”方式,亦即是共同接脚COM为VCC,并由Cyclone II FPGA使接脚成为高电位,进而使外部电源将流经七段显示器,再流入Cyclone II FPGA的一种方式本实验平台之七段显示器模块接线图如下图4.5所示。此平台配置了八组共阳极之七段显示器,亦即是每一组七段显示器之COM接脚,均接连至VCC电源。而每一段发光二极管,其脚位亦均与Cyclone II FPGA接连。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。 图4.5、七段显示器模块接线图 七段显示器之常见应用如下 ?可作为与数值显示相关之设计。 ?电子时钟应用显示 ?倒数定时器 ?秒表 ?计数器、定时器 ?算数运算之数值显示器

51单片机控制4个数码管显示

. //使用AT89c51单片机控制四个数码管动态显示0-9999 ,12MHz #include void jiayi();//加1函数 void chufa();//除法函数 void xianshi();//显示函数 void delay();//延时函数 sbit P2_0=P2^0;//个位位码 sbit P2_1=P2^1;//十位位码 sbit P2_2=P2^2;//百位位码 sbit P2_3=P2^3;//千位位码 unsigned char qianwei,baiwei,shiwei,gewei; unsigned int count=0; unsigned char code dis[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极0-9 void main() { while(1) { jiayi(); chufa(); xianshi(); } } void chufa()//将数字的各个位拆开 { qianwei=count/1000;//千位数 baiwei=count%1000/100; //百位数 shiwei=count%100/10; //十位数 gewei=count%10; //个位数 } void jiayi() { count=count+1; if(count==10000) count=0; } void delay()//延时 { unsigned int i,j; for(i=0;i<10;i++) { for(j=0;j<200;j++); } }

单只数码管循环显示

单只数码管循环显示0-9 报告

设计题目:单只数码管循环显示0~9 设计要求:单片机控制1只数码管,循环显示0~9 需求分析:本设计要求单只数码管循环显示0~9,这里采用的是共阴极数码管。 让数码管显示数字的步骤为: 1)使数码管的公共端接地(共阴极)上。 2)将显示码送到单片机的P0口,向数码管的各个段输出不同的电平,使单个数码管循环显示0-9这10个数字。 复位电路: 在上电或复位过程中,控制 CPU的复位状态:这段时间内 让CPU保持复位状态,而不是 一上电或刚复位完毕就工作, 防止CPU发出错误的指令、执 行错误操作,也可以提高电磁 兼容性能。 无论用户使用哪种类型的单片 机,总要涉及到单片机复位电 路的设计。而单片机复位电路 设计的好坏,直接影响到整个 系统工作的可靠性。许多用户 在设计完单片机系统,并在实 验室调试成功后,在现场却出 现了“死机”、“程序走飞”等 现象,这主要是单片机的复位 电路设计不可靠引起的。 基本的复位方式 单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。 设计原理: 一、数码管显示原理 我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。其原理图如下。

8位数码管动态显示电路设计.

电子课程设计 — 8位数码管动态显示电路设计 学院:电子信息工程学院 专业、班级: 姓名: 学号: 指导老师: 2014年12月

目录 一、设计任务与要求 (3) 二、总体框图 (3) 三、选择器件 (3) 四、功能模块 (9) 五、总体设计电路图 (10) 六、心得体会 (12)

8位数码管动态显示电路设计 一、设计任务与要求 1. 设计个8位数码管动态显示电路,动态显示1、2、3、4、5、6、7、8。 2. 要求在某一时刻,仅有一个LED 数码管发光。 3. 该数码管发光一段时间后,下一个LED 发光,这样8只数码管循环发光。 4. 当循环扫描速度足够快时,由于视觉暂留的原因,就会感觉8只数码管是在持续发光。 5、研究循环地址码发生器的时钟频率和显示闪烁的关系。 二、总体框图 设计的总体框图如图2-1所示。 图2-1总体框图 三、选择器件 1、数码管 数码管是一种由发光二极管组成的断码型显示器件,如图1所示。 U13 DCD_HEX 图1 数码管 数码管里有八个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出 不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个 74LS161计数器 74LS138译码 器 数码管

LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。 2、非门 非门又称为反相器,是实现逻辑非运算的逻辑电路。非门有输入和输出两个端,电路符号如图2所示,其输出端的圆圈代表反相的意思,当其输入端为高电平时输出端为低电平,当其输入端为低电平时输出端为高电平。也就是说,输入端和输出端的电平状态总是反相的。其真值表如表1所示。 图2 非门 表1 真值表 输入输出 A Y 0 1 1 0 3、5V电源 5V VCC电源如图3所示。 图3 5V电源

温控器调整方法

E5AZ-R3-38数字式温度控制器调整说明 一、接线方式: 接线柱1、2――-AC220V电源 接线柱4、6―――低温输出101、103 接线柱7、8―――高温输出101、102 接线柱9、10、11―――PT100温度传感线A\B\B 二、界面图形 三、设定方法: 1.温度设置(此部分用于常规调整) 1)在运行菜单下,设置高温值为26.0。 2)按一次菜单键,再按一次模式键,设置高温回差1.5。 3)按一次菜单键返回运行菜单。 4)按两次模式键,设置低温值为25.5。 5)按一次模式键,返回运行菜单。 2.系统设置(以下调整为系统模式设置,请不要改动) 1)菜单键+模式键同时按下3秒以上,进入保护菜单,按模式键切换 选项,依次按如下设置: 2)同时按菜单+模式1秒以上,返回运行菜单。

3.第二步:模式设置 1)按菜单3秒以上,进入初始菜单,按模式键切换选项,依次按如下 设置: ?设置温度传感器类型为1。 ?设置温度单位为℃。 ?设置最高温度限制值: ?设置最低温度限制值: ?设置ON/OFF方式为ONOF。 ?设置控制方式为标准方式。 ?设置动作方向为正方向。 ?设置报警1种类为0。 ?设置报警2种类为8。 ?设置报警3种类为0。 ?设置密码为-169,等待3秒,自动进入高级模式: ?设置 ?设置低温回差为1.5。

设置 2)按菜单键3秒以上,返回运行菜单。 4.第三步:状态设置 1)按一次模式键,进入状态设置,按上调或下调键设置为RUN。则温 控器开始工作。 2)如设置为STOP,则温控器STOP灯亮,停止工作。 TMC229-HT-DAA038数字式温度控制器调整说明 一、接线方式: 与E5AX相同,内芯可互换。 二、界面图形 三、设定方法: 1.温度设置(此部分用于常规调整) 1)在运行菜单下,设置低温值SV为24.0 2)按2次SET键,设置高温值SV2为26.0(一般要求SV2=SV1+2) 2.系统设置(以下调整为系统模式设置,请不要改动) 1)解锁:同时按SET和︽5秒,出现画面LOC-3,将3改为0后,先 按下SET不松开,再按︽后立即全部松开,解锁完毕。 2)调整:同时按下SET和︾键5秒,出现设置界面,按SET切换设置

6位7段LED数码管显示

目录 1. 设计目的与要求..................................................... - 1 - 1.1 设计目的...................................................... - 1 - 1.2 设计环境...................................................... - 1 - 1.3 设计要求...................................................... - 1 - 2. 设计的方案与基本原理............................................... - 2 - 2.1 6 位 8 段数码管工作原理....................................... - 2 - 2.2 实验箱上 SPCE061A控制 6 位 8 段数码管的显示................... - 3 - 2.3 动态显示原理.................................................. - 4 - 2.4 unSP IDE2.0.0 简介............................................ - 6 - 2.5 系统硬件连接.................................................. - 7 - 3. 程序设计........................................................... - 8 - 3.1主程序......................................................... - 8 - 3.2 中断服务程序.................................................. - 9 - 4.调试............................................................... - 12 - 4.1 实验步骤..................................................... - 12 - 4.2 调试结果..................................................... - 12 - 5.总结............................................................... - 14 - 6.参考资料........................................................... - 15 - 附录设计程序汇总.................................................... - 16 -

51单片机-八段数码管显示

实验一八段数码管显示 1、实验目的: (1)了解数码管动态显示的原理。 (2)了解74LS164扩展端口的方法。 2、实验要求: 利用实验仪提供的显示电路,动态显示一行数据. 3、实验电路图 LED1LED2LED3LED4LED5LED6 4、实验器材: (1)超想-3000TB综合实验仪 1 台 (2)超想3000仿真器 1 台 (3)计算机 1 台

5、实验连线 无 6、实验说明: (1)本实验仪提供了8段码LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。6位位码由8155的PA0口输出,经Ua2003反向驱动后,选择相应显示位。 74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,并且实现移位。向显示位选通地址输出高电平就可以点亮相应的显示位。 本实验仪中数据位输出地址为0e102H ,时钟位输出地址为0e102H ,位选通输出地址为 0e101H 。本实验涉及到了8155 I0/RAM 扩展芯片的工作原理以及74LS164器件的工作原理。 (2)七段数码管的字型代码表 显示字形 g f e d c b a 段码 0 0 1 1 1 1 1 1 3fh 1 0 0 0 0 1 1 0 06h 2 1 0 1 1 0 1 1 6bh 3 1 0 0 1 1 1 1 4fh 4 1 1 0 0 1 1 0 66h 5 1 1 0 1 1 0 1 6dh 6 1 1 1 1 1 0 1 7dh 7 0 0 0 0 1 1 1 07h 8 1 1 1 1 1 1 1 7fh 9 1 1 0 1 1 1 1 6fh A 1 1 1 0 1 1 1 77h B 1 1 1 1 1 0 0 7ch C 0 1 1 1 0 0 1 39h D 1 0 1 1 1 1 0 5eh E 1 1 1 1 0 0 1 79h F 1 1 1 1 71h a b c d e f g dp

七段数码管显示

七段数码管显示设计报告 目录 一、设计任务 二、题目分析与整体构思 三、硬件电路设计 四、程序设计 五、心得体会

一.设计任务 数码的显示方式一般有三种:第一种是字型重叠式;第二种是分段式;第三种是点阵式。目前以分段式应用最为普遍,主要器件是七段发光二极管(LED)显示器。它可分为两种,一是共阳极显示器(发光二极管的阳极都接在一个公共点上),另一是共阴极显示器(发光二极管的阳极都接在一个公共点上,使用时公共点接地)。 数码管动态扫描显示,是将所用数码管的相同段(a~g 和p)并联在一起,通过选位通 信号分时控制各个数码管的公共端,循环依次点亮各个数码管。当切换速度足够快时,由于人眼的“视觉暂留”现象,视觉效果将是数码管同时显示。 根据七段数码管的显示原理,设计一个带复位的七段数码管循环扫描程序,本程序需要着重实现两部分: 1. 显示数据的设置:程序设定4 位数码管从左至右分别显示1、2、3、4; 2. 动态扫描:实现动态扫描时序。 利用EXCD-1 开发板实现七段数码管的显示设计,使用EXCD-1 开发板的数码管为四位共阴极数码管,每一位的共阴极7 段数码管由7 个发光LED 组成,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA相应引脚。四位数码管与FPGA 之间通过8 位拨码开关(JP1)进行连接。 二.题目分析与整体构思 使用EXCD-1 开发板的数码管为四位共阴极数码管,每一位的共阴极7 段数码管由7 个发光LED 组成,呈“”字状,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA 相应引脚。SEG_SEL1、SEG_SEL2、SEG_SEL3 和SEG_SEL4 为四位7 段数码管的位选择端。当其值为“1”时,相应的7 段数码管被选通。当输入到7 段数码管SEG_A~ SEG_G 和SEG_DP 管脚的数据为高电平时,该管脚对应的段变亮,当输入到7 段数码管 SEG_A~SEG_G 和SEG_DP 管脚的数据为低电平时,该管脚对应的段变灭。该四位数码管与FPGA 之间通过8 位拨码开关(JP1)进行连接,当DIP 开关全部拨到上方时(板上标示为:7SEGLED),FPGA 的相应IO 引脚和四位7 段数码管连接,7 段数码管可以正常工作;当DIP 开关全部拨到下方时(板上标示为:EXPORT5),FPGA 的相应IO引脚与7 段数码管断开,相应的FPGA 引脚用于外部IO 扩展。 注意:无论拨码开关断开与否,FPGA 的相应IO 引脚都是与外部扩展接口连接的,所 以当正常使用数码管时,不允许在该外部扩展接口上安装任何功能模块板。 数码管选通控制信号分别对应4 个数码管的公共端,当某一位选通控制信号为高电平时,其对应的数码管被点亮,因此通过控制选通信号就可以控制数码管循环依次点亮。一个数码管稳定显示要求的切换频率要大于50Hz,那么4 个数码管则需要50×4=200Hz 以上的切换频率才能看到不闪烁并且持续稳定显示的字符。 三.硬件电路设计 设计结构图如下:

温控电路PID参数调节方法

在定值控制问题中,如果控制精度要求不高,一般采用双位调节法,不用PID。但如果要求控制精度高,而且要求波动小,响应快,那就要用PID调节或更新的智能调节。调节器就是根据设定值与实际检测到的输出值之间的误差来校正直接控制量的,温度控制中的直接控制量就是加热或制冷的功率。PID调节中,用比例环节(P)来决定基本的调节响应力度,用微分环节(D)来加速对快速变动的响应,用积分环节(I)来消除残留误差。PID调节按基本理论就是属于线性调节。但由于直接控制量的幅度总就是受到限定,所以在实际工作过程中三个调节环节都有可能使控制量进入受限状态。这时系统就是非线性工作。手动对PID进行整定时,总就是先调节比例环节,然后一般就是调节积分环节,最后调节微分环节。温度控制中控制功率与温度之间具有积分关系,为多容系统,积分环节应用不当会造成系统不稳定。许多文献对PID整定都给出推荐参数。 PID就是依据瞬时误差(设定值与实际值的差值)随时间的变化量来对加热器的控制进行相应修正的一种方法!!!如果不修正,温度由于热惯性会有很大的波动、大家讲的都不错、比例:实际温度与设定温度差得越大,输出控制参数越大。例如:设定温控于60度,在实际温度为50与55度时,加热的功率就不一样。而20度与40度时,一般都就是全功率加热、就是一样的、积分:如果长时间达不到设定值,积分器起作用,进行修正积分的特点就是随时间延长而增大、在可预见的时间里,温度按趋势将达到设定值时,积分将起作用防止过冲! 微分:用来修正很小的振荡、方法就是按比例、微分、积分的顺序调、一次调一个值、调到振荡范围最小为止、再调下一个量、调完后再重复精调一次、要求不就是很严格、 先复习一下P、I、D的作用,P就就是比例控制,就是一种放大(或缩小)的作用,它的控制优点就就是:误差一旦产生,控制器立即就有控制作用,使被控量朝着减小误差方向变化,控制作用的强弱取决于比例系数Kp。举个例子:如果您煮的牛奶迅速沸腾了(您的火开的太大了),您就会立马把火关小,关小多少就取决于经验了(这就就是人脑的优越性了),这个过程就就是一个比例控制。缺点就是对于具有自平衡性的被控对象存在静态误差,加大Kp可以减小静差,但Kp过大时,会导致控制系统的动态性能变坏,甚至出现不稳定。所谓自平衡性就是指系统阶跃响应的终值为一有限值,举个例子:您用10%的功率去加热一块铁,铁最终保持在50度左右,这就就是一个自平衡对象,那静差就是怎样出现的呢?比例控制就是通过比例系数与误差的乘积来对系统进行闭环控制的,当控制的结果越接近目标的时候,误差也就越小,同时比例系数与误差的乘积(控制作用)也在减小,当误差等于0时控制作用也为0,这就就是我们最终希望的控制效果(误差=0),但就是对于一个自平衡对象来说这一时刻就是不会持续的。就像此时您把功率降为0,铁就是不会维持50度的(不考虑理想状态下),铁的温度开始下降了,误差又出现了(本人文采不就是很好,废这么多话相信大家应该明白了!)。也就就是比例控制最终会维持一个输出值来使系统处于一个固定状态,既然又输出,误差也就不等于0了,这个误差就就是静差。

4位七段数码管循环显示

课程报告 课程新型单片机实践题目 4位7段数码管二级学院 班级 姓名 学号 指导教师 设计时间

常州工学院《新型单片机》设计任务书学院:专业:班级:

绪论 当今世界,电子技术迅猛发展,点阵式显示器件作为现代信息显示的重要媒体,在金融证券、体育、机场、交通、商业、广告宣传、邮电电信、指挥调度、国防军事等许多领域中得到了广泛应用。因此点阵式显示器件的研制、生产也的到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。目前,点阵式显示器件具体包括LED显示模块和LCD显示模块等。现在发展的LCD比较先进,LCD的优点较为明显,他体积小,容易控制,功能强,价格适宜,能够适应显示器的发展方向,因而在通信、家电、大屏幕投影等领域得到了越来越广泛的应用;随着社会经济的迅猛发展,工业生产逐渐实现了自动化,其中,设备的工作状态和生产过程状态的显示与监控起到了非常重要的作用,对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,他可以显示字符、数字、汉字和简单图形,可以根据需要使用不同字号、字型,显示亮度较高,并且对环境条件要求比较低。LED显示又可以分为单色显示和双色显示,可以按照需要的大小、形状和颜色进行组合,并用单片机控制实现各种文字或图形的变化,达到宣传和提示的目的。据不完全统计,1991年,全国LED显示屏的产值还不到亿元人民币,而在1993年,仅蓝通公司一家企业的显示屏产值即达1亿多人民币。 由于LED电子显示屏具有所显内容信息量大,外形美观大方,操作使用方便灵活.适用于火车,汽车站,码头,金融证券市场,文化中心,信息中心体育设施等公共场所.该项目广泛涉及了计算机及电子技术中的电源技术,单片机技术,数据通讯技术,显示技术,存储技术,系统软件技术,接口及驱动等技术.我国经济发展迅猛,对信息传播有越来越高的要求.可以相信,LED电子显示屏以其色彩鲜亮夺目,大的显示信息量,寿命长,耗电量小,重量轻,空间尺寸小,稳定性高,易于操作,安装和维护等特点,将在社会经济发展中扮演越来越重要的角色。

基于51单片机的LED数码管动态显示

基于51单片机的LED数码管动态显示 LED数码管动态显示就是一位一位地轮流点亮各位数码管,对于每一位LED数码管来说,每隔一段时间点亮一次,利用人眼的“视觉暂留"效应,采用循环扫描的方式,分时轮流选通各数码管的公共端,使数码管轮流导通显示。当扫描速度达到一定程度时,人眼就分辨不出来了。尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,认为各数码管是同时发光的。若数码管的位数不大于8位时,只需两个8位I/O口。 1 硬件设计 利用51单片机的P0口输出段码,P2口输出位码,其电路原理图如下所示。 在桌面上双击图标,打开ISIS 7 Professional窗口(本人使用的是v7.4 SP3中文版)。单击菜单命令“文件”→“新建设计”,选择DEFAULT模板,保存文件名为“DT.DSN”。在器件选择按钮中单击

“P”按钮,或执行菜单命令“库”→“拾取元件/符号”,添加如下表所示的元件。 51单片机AT89C51 一片 晶体CRYSTAL 12MHz 一只 瓷片电容CAP 22pF 二只 电解电容CAP-ELEC 10uF 一只 电阻RES 10K 一只 电阻RES 4.7K 四只 双列电阻网络Rx8 300R(Ω) 一只 四位七段数码管7SEG-MPX4-CA 一只 三极管PNP 四只 若用Proteus软件进行仿真,则上图中的晶振和复位电路以及U1的31脚,都可以不画,它们都是默认的。 在ISIS原理图编辑窗口中放置元件,再单击工具箱中元件终端图标,在对象选择器中单击POWER 和GROUND放置电源和地。放置好元件后,布好线。左键双击各元件,设置相应元件参数,完成电路图的设计。 2 软件设计 LED数码管动态显示是一位一位地轮流点亮各位数码管的,因此要考虑每一位点亮的保持时间和间隔时间。保持时间太短,则发光太弱而人眼无法看清;时间太长,则间隔时间也将太长(假设N位,则间隔时间=保持时间X(N-1)),使人眼看到的数字闪烁。在程序中要合理的选择合适的保持时间和间隔时间。而循环次数则正比于显示的变化速度。 LED数码管动态显示的流程如下所示。

数码管动态扫描显示01234567

实验5 数码管动态扫描显示01234567 原理图:8个数码管它的数据线并联接到JP5, 位控制由8个PNP型三级管驱动后由JP8引出。 相关原理: 数码管是怎样来显示1,2,3,4呢?数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。我们分别把他命名为 A,B,C,D,E,F,G,H。

搞懂了这个原理, 我们如果要显示一个数字2, 那么 A,B,G,E,D这5个段的发光管亮就可以了。也就是把B,E,H(小数点)不亮,其余全亮。根据硬件的接法我们编出以下程序。当然在此之前,还必须指定哪一个数码管亮,这里我们就指定最后一个P2.7。 LOOP: CLR P2.7 ;选中最后的数码管 SETB P0.7 ;B段不亮 SETB P0.5 ;小数点不亮 SETB P0.1 ;C段不亮 CLR P0.2 ;其他都亮 CLR P0.3 CLR P0.4 CLR P0.6 CLR P0.0 JMP LOOP ;跳转到开始重新进行

END 把这个程序编译后写入单片机,可以看到数码管的最后一位显示了一个数字2。 也许你会说:显示1个2字就要10多行程序,太麻烦了。 显示数字2则是C,F,H(小数点)不亮,同时由于接法为共阳接法,那么为0(低电平)是亮 为1(高电平)是灭。从高往低排列,(p0.7_p0.0)写成二进制为01111110, 把他转化为16进制则为A2H。我们可以根据硬件的接线把数码管显示数字编制成一个表格, 以后直接调用就行了。 有了这个表格上面显示一个2的程序则可简化为: LOOP: CLR P2.7 ;选中左边的数码管 MOV P0,#0A2H ;送数字2的代码到P0口 JMP LOOP ;跳转到开始重新进行 END

温控参数及调试

超高精度智能温度控制仪表 特点:本温度控制仪表为高精测量仪表,可以分度0.1反映实际温度,同时可以串联多个热电偶以获得单位容积内较为平均的温度反映值。实现了快速,稳定,高精度的温度测控,是您自动化控制的得力助手。 参数及调试步骤(暂停状态中) 按住SET键约3秒钟,进入调试状态。数码管显示参数代码0500,. (按UP/DOWN键到所需调试的参数代码),按SET进入参数内容(按UP/DOWN键到所需的参数内容),按SET键保存,参数代码自动+1,退

参数详解(以出厂值为例) 0500:当前温度值将0501设为0可显示 0501:可设定范围0-22,可显示对应参数内容 0502:设定1号输出温度上限值 0503、0504、0505:设定1号时间上限 0506:设定1号输出偏差,如:SE02设定为2000,SE06设定为100,SE03设定为0,SE04设定为20,SE05设定为0,那么当温度到达或大于2000+100=210.0度时1号输出,当温度低于于2000-100=190.0度时1号停止输出,当系统时间大于20分钟时1号一直输出。 0507、0508、0509、0510、0511:功能等同于03-06 0512、0513、0514、0515、0516:功能等同于03-06 0517:温度修正值,如:当前温度显示为-2.7,实际温度为21度,那么两者之间相差23.7度,0517应该设置为237。 0518:这是本温度控制仪表的特殊地方,可以串联多个热电偶放置在不同位置以获得单位容积内平均温度,热电偶串联方式+——+——。 本温度控制仪表设置了TTL通讯,通讯方式为2400,8bit,无校验,无停止位, 发送方式为(01 06然后将参数0-19顺序发出)为满足不同客户的特定需求,我们可以为客户特定开发专用功能 2

实验四八位七段数码管动态显示电路的设计

八位七段数码管动态显示电路的设计 一、实验目的 1、了解数码管的工作原理。 2、学习七段数码管显示译码器的设计。 3、学习VHDL的CASE语句及多层次设计方法。 二、实验原理 七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位一体、共阴极型七段数码管。其单个静态数码管如下图4-4-1所示。 图4-1 静态七段数码管 由于七段数码管公共端连接到GND(共阴极型),当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相么。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。 三、实验内容 本实验要求完成的任务是在时钟信号的作用下,通过输入的键值在数码管上显示相应的键值。在实验中时,数字时钟选择1024HZ作为扫描时钟,用四个拨动开关做为输入,当四个拨动开关置为一个二进制数时,在数码管上显示其十六进制的值。 四、实验步骤 1、打开QUARTUSII软件,新建一个工程。 2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。 3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光 盘中提供的示例程序。 4、编写完VHDL程序后,保存起来。方法同实验一。

5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。 6、编译仿真无误后,根据用户自己的要求进行管脚分配。分配完成后,再进行全编译 一次,以使管脚分配生效。 7、根据实验内容用实验导线将上面管脚分配的FPGA管脚与对应的模块连接起来。 如果是调用的本书提供的VHDL代码,则实验连线如下: CLK:FPGA时钟信号,接数字时钟CLOCK3,并将这组时钟设为1024HZ。 KEY[3..0]:数码管显示输入信号,分别接拨动开关的S4,S3,S2,S1。 LEDAG[6..0]:数码管显示信号,接数码管的G、F、E、D、C、B、A。 SEL[2..0]:数码管的位选信号,接数码管的SEL2、SEL1、SEL0。 8、用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与 自己的编程思想一致。 五、实验现象与结果 以设计的参考示例为例,当设计文件加载到目标器件后,将数字信号源模块的时钟选择为1464HZ,拨动四位拨动开关,使其为一个数值,则八个数码管均显示拨动开关所表示的十六进制的值。

数码管动态显示实验报告

实验四数码管动态显示实验一 一、实验要求 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.0至P1.7。由于电路中采用共阳极的数码管,所以当P1端口相应的引脚为0时,对应的数码管段点亮。程序中预设了数字0-9的段码。由于是让四个数码管显示不同的数值,所以要用扫描的方式来实现。因此定义了scan函数,接到单片机的p2.0至p2.3 在实验中,预设的数字段码表存放在数组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Ω,p2.0到p2.3为数码管的扫描信号。AT89c51单片机的9脚(RST)为复位引脚,当RST为高电平的时间达到2个机器周期时系统就会被复位;31引脚(EA)为存取外部存储器使能引脚,当EA为高电平是使用单片机内部存储器,当EA为低电平时单片机则使用外部存储器。18、19引脚是接晶振脚。而接地和电源端在软件中已经接好,所以不用在引线。 如下图所示:

温度控制器调试方法

温湿度控制器试验方案 1 外购件介绍 1.1 百科介绍 温湿度控制器是以单片机为控制核心,采用高性能温湿度传感器,采集被测环境的实际温、湿度数据值,可对温度、湿度信号进行测量控制,并可以实现液晶数字显示,还可通过按键或者旋钮对温、湿度分别进行上、下限设置和显示,从而使仪表可以根据现场情况,自动启动风扇或加热器,对被测环境的实际温、湿度自动调节的设备。

1.2 使用场合 对于一些现场自然环境比较恶劣的地区,特别是容易出现高温高湿、或者低温的地区,会配有温湿度控制器来调节装置的运行环境。 1.3 工作模式/原理 根据现场环境需要,温湿度控制器工作模式一般可分为1加热加湿型,2加热除湿型;3降温加湿型;4降温除湿型。我们主要使用的是2加热除湿型;4降温除湿型。 2 外购件通用调试流程 2.1 根据图纸核对温湿度控制器型号。 2.2 给温湿度控制器上电。 根据图纸原理图指示,从端子排接入正确的电源输入,一般为AC220V,也有DC低压电源,需要注意。 2.3 调试方法 根据调试方法的差别,可以将温湿度控制器分为三类:1不带液晶的温度控制器、 2带有液晶但不需要设置工作模式的、3带有液晶且且需要设置工作模式的。 2.31 不带液晶的温度控制器调试方法 此类温度控制器仅可以用于升温模式,温度传感器与控制器为一体的,例如德国Pfannenberg-FLZ520温湿度控制装置,多用于配网柜中,且图纸会要求出厂定值设置为5度。 1. 使用螺丝刀旋转调节设置温度值,调节至室温以上; 2. 用测温枪照射加热器或用手背轻触加热器,温度升高; 3. 测试完后,将温度按照图纸要求设置回定值(一般为5度)。

4位七段数码管循环显示

课程报告 课程新型单片机实践题目4位7段数码管二级学院 班级 姓名 学号 指导教师 设计时间

常州工学院《新型单片机》设计任务书学院:专业:班级:

绪论 当今世界,电子技术迅猛发展,点阵式显示器件作为现代信息显示的重要媒体,在金融证券、体育、机场、交通、商业、广告宣传、邮电电信、指挥调度、国防军事等许多领域中得到了广泛应用。因此点阵式显示器件的研制、生产也的到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。目前,点阵式显示器件具体包括LED显示模块和LCD显示模块等。现在发展的LCD比较先进,LCD的优点较为明显,他体积小,容易控制,功能强,价格适宜,能够适应显示器的发展方向,因而在通信、家电、大屏幕投影等领域得到了越来越广泛的应用;随着社会经济的迅猛发展,工业生产逐渐实现了自动化,其中,设备的工作状态和生产过程状态的显示与监控起到了非常重要的作用,对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,他可以显示字符、数字、汉字和简单图形,可以根据需要使用不同字号、字型,显示亮度较高,并且对环境条件要求比较低。LED显示又可以分为单色显示和双色显示,可以按照需要的大小、形状和颜色进行组合,并用单片机控制实现各种文字或图形的变化,达到宣传和提示的目的。据不完全统计,1991年,全国LED显示屏的产值还不到亿元人民币,而在1993年,仅蓝通公司一家企业的显示屏产值即达1亿多人民币。 由于LED电子显示屏具有所显内容信息量大,外形美观大方,操作使用方便灵活.适用于火车,汽车站,码头,金融证券市场,文化中心,信息中心体育设施等公共场所.该项目广泛涉及了计算机及电子技术中的电源技术,单片机技术,数据通讯技术,显示技术,存储技术,系统软件技术,接口及驱动等技术.我国经济发展迅猛,对信息传播有越来越高的要求.可以相信,LED电子显示屏以其色彩鲜亮夺目,大的显示信息量,寿命长,耗电量小,重量轻,空间尺寸小,稳定性高,易于操作,安装和维护等特点,将在社会经济发展中扮演越来越重要的角色。

7段数码管控制引脚

《EDA技术综合设计》 课程设计报告 报告题目:计数器7段数码管控制接口技术作者所在系部: 作者所在专业: 作者所在班级: 作者姓名: 作者学号: 指导教师姓名: 完成时间:

内容摘要 掌握VHDL语言基本知识,并熟练运用VHDL语言来编写程序,来下载实践到硬件上,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。利用VHDL语言设计一个七段数码管控制引脚,在时钟信号的控制下,使6位数码管动态刷新显示十进制计数器及其进位,十二进制计数器,四位二进制可逆计数器,六十进制计数器的计数结果,这期间需要seltime分频器来动态的给各个计数器分配数码管,并显示数字的变化。 关键词:VHDL语言编程七段数码管控制引脚芯片

目录 一概述 (1) 二方案设计与论证 (1) 三单元电路设计与参数计算 (1) 3.1数码管译码器 (1) 3.2 十进制计数器 (2) 3.3六十进制计数器 (3) 3.4四位二进制可逆计数器 (5) 3.5时间数据扫描分时选择模块 (6) 3.6顶层文件 (8) 四总的原理图 (9) 五器件编程与下载 (9) 六性能测试与分析(要围绕设计要求中的各项指标进行) (10) 七实验设备 (10) 八心得体会 (10) 九参考文献 (10)

课程设计任务书课题 名称7段数码管控制引脚 完成 时间 2011. 12.12 指导 教师胡辉职称副教授 学生 姓名 庄仲班级B09212 总体设计要求和技术要点 通过本课程的学习使学生掌握可编程器件、EDA开发系统软件、硬件描述语言和电子线路设计与技能训练等各方面知识;提高工程实践能力;学会应用EDA技术解决一些简单的电子设计问题。 具体要求: 1.设计一个共阴7段数码管控制接口,在硬件时钟电路的基础上,采用分频器,输出一个1S的时钟信号,同时显示2、3、4所要求的计数器。 2.设计一个带使能输入、进位输出及同步清0的增1十进制计数器。 3.设计一个带使能输入及同步清0的六十进制同步加法计数器; 4.设计一个四位二进制可逆计数器; 工作内容及时间进度安排 第16周: 周一、周二:设计项目的输入、编译、仿真 周三:器件编程下载与硬件验证 周四:成果验收与总结 周五:撰写课程设计总结报告 课程设计成果 把编写好的程序下载到试验箱,使数码管能够按照编写的程序显示出正确的结果,实验成功。

51单片机(四位数码管的显示)程序

51单片机(四位数码管的显示)程序 基于单片机V1或V2实验系统,编写一个程序,实现以下功能:1)首先在数码管上显示“P_ _ _”4个字符;2)等待按键,如按了任何一个键,则将这4个字符清除,改为显示“0000”4个字符(为数字的0)。 最佳答案 下面这个程序是4x4距阵键盘,LED数码管显示,一共可以到0-F显示,你可以稍微改一下就可以实现你的功能了,如还有问题请发信息,希望能帮上你! #include unsigned char code Dig[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1 ,0x86,0x8e}; //gongyang数码管0-F 代码 unsigned char k; //设置全局变量k 为键盘的键值 /************************************键盘延时函数****************************/ void key_delay(void) //延时函数 { int t; for(t=0;t<500;t++); } /************************************键盘扫描函数******************************/ void keyscan(void) //键盘扫描函数 { unsigned char a; P2 = 0xf0; //键盘初始化 if(P2!=0xf0) //有键按下? { key_delay(); //延时 if(P2!=0xf0) //确认真的有键按下? { P2 = 0xfe; //使行线P2.4为低电平,其余行为高电平 key_delay(); a = P2; //a作为缓存 switch (a) //开始执行行列扫描 { case 0xee:k=15;break; case 0xde:k=11;break; case 0xbe:k=7;break; case 0x7e:k=3;break; default:P2 = 0xfd; //使行线P2.5为低电平,其余行为高电平 a = P2; switch (a)

温控器调节方法

温控器温度调节方法说明 (WDF、WDFE系列温控器温度调节) 1、接通温度调节 此螺钉不可调试 此螺钉调节接通温度 WDF系列温控器应在接通温度调试好后再调试断开温度 调试方法:调节接通温度螺钉时,顺时针调试接通温度上升,逆时针调试接通温度下降;螺钉调试360度,接通温度大约变化1℃。 调试后温度影响:如接通温度调得过高会导致箱体温度偏高,反之,接通温度调得偏低会导致箱体温度偏冷,严重的话会导致冰箱开机频繁。

2、断开温度调节 调试方法:调节断开温度螺钉时,顺时针调试断开温度下降,逆时针调试断开温度上升;螺钉调试360度,断开温度大约变化1℃。 调试后温度影响:如断开温度调得过高会导致箱体温度偏高,严重的话会导致冰箱开机频繁;反之,断开温度调得偏低会导致箱体温度偏冷,严重的话会导致冰箱不停机。 常州西玛特电器有限公司 技术部 2007-7-7

K59型温控器是美国伦科(RANCO)公司生产的定温开机型温控器,目前我们国内电冰箱产品上所用的多为由青岛引进生产的K59(WDF)型温控器。该温控器性能非常稳定,一般情况下不会出现损坏报废的情况。偶尔出现开停机不正常时,都可以通过调整温控器的参数调整螺钉解决,前提是电冰箱的制冷状况必须正常或基本正常。如果制冷太差,参数相差太大,温控器调整余量可能达不到所需要求,必须先解决制冷不足的问题。如果制冷稍有不足,使得温控器不能按正常状况进行控制开停机,就可以通过调整温控器使其与现有的制冷状况相匹配,达到正常的开停机控制。调整温控器时,应正确的选择调整螺丝、调整方向以及正确的掌握调整量,避免越调越乱,达不到调整效果。我现在把这种温控器的外形、调整螺丝的位置和各个调整螺丝的性能特点通过图形标注出来,以供参考:此主题相关图片如下:

相关文档
最新文档