文档库 最新最全的文档下载
当前位置:文档库 › 实验十一、并串转换

实验十一、并串转换

实验十一、并串转换
实验十一、并串转换

实验十一、并串转换(cd4014)

本程序功能:按F1键,再按3键,进行调用并串转换功能。存储在外部RAM区,地址为0010H。

同学更改为:同学将此功能加到自己编的上一个程序中。

1、进入并串转换子程序后,关闭外部中断,出来时开中断;

2、并串转换变换功能程序——cd4014o。

3、可将转换结果放到数码管中显示。

调试方式:设置断点,调出寄存器窗、外部数据区窗观察结果。

程序文件:cd4014.asm

程序:xsdsm equ 30h

fwdsm equ 31h

txdsm equ 32h

txjym equ 33h

xsm1 equ 37h ;显示缓冲区

xsm2 equ 38h ;

xsm3 equ 39h ;

xsm4 equ 3ah ;

xsm5 equ 3bh ;

xsm6 equ 3ch ;

xsmm1 equ 3dh

xsmm2 equ 3eh

xsmm3 equ 3fh

xsmm4 equ 40h

xsmm5 equ 41h

xsmm6 equ 42h

txsjm equ 24h

jpm equ 25h

dqdsm equ 26h

txzcbzm equ 27h

xsclm equ 43h ;显示处理单元

sjzzm equ 44h

jpclbzm equ 49h

raddlm equ 4ch

raddhm equ 4dh

wdatam equ 4eh

xsdsm1 equ 4fh

xsjym equ 50h

secm equ 51h ;秒数据

minm equ 52h ;分数据

hrm equ 53h ;小时数据

datem equ 54h ;日数据

monthm equ 55h ;月数据

weekm equ 56h ;星期数据

yearm equ 57h ;年数据低2位

kscanfm equ 58h

keyctm equ 59h

keym1 equ 5ah

keym2 equ 5bh

keybm1 equ 5ch

keybm2 equ 5dh

adsjdzl equ 34h

adsjdzh equ 35h

dpm equ 23h

dp1 bit 18h

dp2 bit 19h

dp3 bit 1ah

dp4 bit 1bh

dp5 bit 1ch

dp6 bit 1dh

ptt bit 1eh

swa bit 1fh

org 0000h

ljmp start

org 0003h

ljmp adzd

org 000bh

ljmp zdt0

org 0100h

start:mov sp,#5eh

;-------------------------------int0中断初始化、开中断setb it0

setb ex0

clr ie0

;-------------------------------t0 10 ms中断初始化

mov tmod,#b

; setb pt0

mov tl0,#00h

mov th0,#0dch

setb tr0

setb et0

setb ea

;--------------------------数码管显示存储单元初始化mov dpm,#0ffh

mov xsm1,#00h

mov xsm2,#00h

mov xsm3,#00h

mov xsm4,#00h

mov xsm5,#00h

mov xsm6,#00h

mov r4,#00h

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

acall key0

acall display

;

jk:nop

jk4: mov a,kscanfm

cjne a,#55h,jk

ljmp keypr

jk3: acall key0

ljmp jk

keypr: mov a,keym1

cjne a,#0f7h,jk3 ;f1

acall key0

mov xsmm1,#01h

mov xsmm2,#0ffh

mov xsmm3,#0ffh

mov xsmm4,#0ffh

mov xsmm5,#0ffh

mov xsmm6,#0ffh

mov xsm1,xsmm1

mov xsm2,xsmm2

mov xsm3,xsmm3

mov xsm4,xsmm4

mov xsm5,xsmm5

mov xsm6,xsmm6

lcall display

keypr9: mov a,kscanfm

cjne a,#55h,keypr9

mov a,keym2

cjne a,#0feh,keypr3

acall key0

ljmp dsxg ;时钟修改0 keypr3: mov a,keym1

cjne a,#7fh,keypr4

acall key0

ljmp dssxg ;时钟修改1 keypr4: mov a,keym2

cjne a,#0f7h,keypr5

acall key0

ljmp adzh ;ad转换2

keypr5: mov a,keym2

cjne a,#7fh,keypr6

acall key0

ljmp cd4014o ;并串转换3

keypr6: mov a,keym1

cjne a,#0bfh,keypr7

acall key0

ljmp tx485 ;485通信4

keypr7: mov a,keym2

cjne a,#0fbh,keypr8

acall key0

ljmp tx232 ;232通信5

keypr8: mov a,keym2

cjne a,#0bfh,keypr10

acall key0

ljmp keyshou ;桉数字健显示健值6 keypr10:mov a,keym1

cjne a,#0efh,keypr11 ;是否按下取消健

acall key0

ljmp jk

keypr11: ljmp keypr

;---------------------------------;桉数字健显示健值

;-----------------------键盘存储单元初始化

key0: mov keybm1,#0ffh

mov keybm2,#0ffh

mov keym1,#0ffh

mov keym2,#0ffh

mov kscanfm,#00h ;kscanfm键盘扫描标志单元

ret

dsxg: ljmp jk ;时钟修改0,

dssxg: ljmp jk ;时钟修改1

;-----------------------------------;a/d转换

adzh: mov flag,#00h ;a/d转换路标号

mov dpl,flag

mov dph,#0e0h ;0e0xxh,a/d转换路地址

movx @dptr,a

adzh3: mov a,flag

cjne a,#08h,adzh3

mov adsjdzl,#00h

mov adsjdzh,#00h

adzh2: ljmp jk

adzd: clr ex0

push psw

push acc

push dpl

push dph

mov dptr,#0f000h

movx a,@dptr

mov dpl,adsjdzl ;adsjdzl模/数转换数据的外部ram存储地址

mov dph,adsjdzh ;

movx @dptr,a

inc dptr

mov adsjdzl,dpl

mov adsjdzh,dph

mov a,flag

inc a

mov flag,a

cjne a,#08h,adzd1

ajmp adzd2

adzd1: mov flag,a

mov dpl,flag

mov dph,#0e0h

movx @dptr,a

SETB EX0

adzd2: pop dph

pop dpl

pop acc

pop psw

reti

;-----------------------------------;cd4014并串转换

cd4014o:lcall cd4014

ljmp jk

;-----------------------------------;cd4014

cLk bit p1.6 ;定义4014的时钟线

q8 bit p1.7 ;定义4014的串行输出数据线

psc bit p1.5 ;定义并串控制线

cd4014: clr ea

mov r0,#07h

clr clk

setb psc

setb clk

mov c,q8

rlc a

clr psc

rd14lp1:setb clk

mov c,q8

rlc a

clr clk

djnz r0,rd14lp1

mov dptr,#0010h

nop

nop

movx @dptr,a

setb ea

ret

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

tx485: ljmp jk ;485通信4 tx232: ljmp jk ;232通信5 keyshou:mov a,kscanfm

cjne a,#55h,keyshou

mov a,keym1

cjne a,#0efh,keyshou0 ;是否按下取消健

acall key0

ljmp jk

keyshou0:acall cbzc0

mov xsm2,r4

acall display

acall key0

ajmp keyshou

;-----------------------------------;10ms中断扫描

zdt0:push psw

push acc

push dpl

push dph

clr PSW.4

setb PSW.3

mov tl0,#00h

mov th0,#0dch

setb tr0

setb et0

zdjp9: acall zdjp1 ;读键值

mov a,keyctm

jz zdjp90 ;是否健按下

jz zdjp91

ljmp zdjp6 ;键盘存储单元初始化

zdjp91: mov a,kscanfm ;kscanfm键盘扫描标志单元

cjne a,#00h,zdjp8 ;kscanfm=00h,无健按下

mov kscanfm,#44h

mov keybm1,keym1 ;keybm1键盘前次读数存储单元1

mov keybm2,keym2 ;keybm2键盘前次读数存储单元2

ljmp zdds

zdjp90: mov a,kscanfm ;kscanfm键盘扫描标志单元

cjne a,#0aah,zdjp92 ;kscanfm=aah,健按下

mov kscanfm,#55h ;健释放,执行任务,kscanfm=55h

;----------------------------------健值翻译

mov keym1,keybm1

mov keym2,keybm2

; acall cbzc0

;---------------------------------;桉数字健显示健值

; mov xsm2,r4

; acall display

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

; acall key0

zdjp92: cjne a,#44h,zdjp93

ljmp zdds

zdjp8: cjne a,#44h,zdjp93 ;kscanfm=44h,暂态,健按下去抖动

mov a,keym1

cjne a,keybm1,zdjp6

mov a,keym2

cjne a,keybm2,zdjp6

mov kscanfm,#0aah

zdjp93: ljmp zdds

zdjp6: mov kscanfm,#00h

mov keybm1,#0ffh

mov keybm2,#0ffh

mov keym1,#0ffh

mov keym2,#0ffh

zdds: pop dph

pop dpl

pop acc

pop psw

reti

;--------------------------读键值

zdjp1: mov r0,#08h

mov keyctm,#00h

mov dpl,#00h ;cs4

mov dph,#b

movx a,@dptr

mov keym1,a ;keym1键盘读数存储单元1 zdjp3: rlc a

jc zdjp2

inc keyctm ;键盘计数单元

zdjp2: djnz r0,zdjp3

mov r0,#08h

mov dpl,#00h ;cs5

mov dph,#b

movx a,@dptr

mov keym2,a ;keym2键盘读数存储单元2 zdjp5: rlc a

jc zdjp4

inc keyctm ;键盘计数单元

zdjp4: djnz r0,zdjp5

ret

;-----------------------------------;健值翻译

cbzc0: mov a,keym1

cjne a,#0ffh,dssxg1

mov a,keym2

cjne a,#0ffh,dssxg2

ret

dssxg1: mov jpm,a ;jpm键盘数值

mov dptr,#table1

lcall cbzc

ret

dssxg2: mov jpm,a ;jpm键盘数值

mov dptr,#table2

lcall cbzc

ret

;-----------------------------------查表翻译健值

cbzc:

cb2: clr a

movc a,@a+dptr

cjne a,jpm,cb1

inc dptr

clr a

movc a,@a+dptr

mov r4,a

ljmp cb3

cb1: inc dptr

inc dptr

cjne a,#0ffh,cb2

mov r4,#0ah

cb3: ret

table1: db 7fh,01h,0bfh,04h,0dfh,07h,0ffh,0ffh

; 1 4 7

table2: db 0f7h,02h,0fbh,05h,0fdh,08h,0feh,00h,7fh,03h,0bfh,06h,0dfh,09h,0ffh,0ffh

; 2 5 8 0 3 6 9

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

sz1: mov a,xsm1

inc a

mov xsm1,a

cjne a,#0ah,sz2

mov xsm1,#00h

sz2: ret

display:clr p3.5

mov dptr,#8000h ;数码管小数点、通信口转换控制地址

;

mov a,dpm

movx @dptr,a

mov dptr,#9000h ;1、2位数码管地址

anl xsm1,#0fh ;xsm1、xsm2、xsm3显示缓冲单元,10进制数

anl xsm2,#0fh

mov xsclm,xsm1 ;xsclm显示处理单元

orl xsclm,#0f0h

mov a,xsm2

swap a

orl a,#0fh

anl a,xsclm

movx @dptr,a

mov dptr,#0a000h ;3、4位数码管地址

;

anl xsm3,#0fh

anl xsm4,#0fh

mov xsclm,xsm3

orl xsclm,#0f0h

mov a,xsm4

swap a

orl a,#0fh

anl a,xsclm

movx @dptr,a

mov dptr,#0b000h ;5、6位数码管地址

;

anl xsm5,#0fh

anl xsm6,#0fh

mov xsclm,xsm5

orl xsclm,#0f0h

mov a,xsm6

swap a

orl a,#0fh

anl a,xsclm

movx @dptr,a

; acall sz1

ret

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

display1: clr p3.5

mov dptr,#8000h ;数码管小数点、通信口转换控制地址

;

mov a,#00h

nop

nop

movx @dptr,a

;1、2位数码管地址

mov dptr,#9000h ;

mov a,#0ffh

nop

nop

movx @dptr,a

mov dptr,#0a000h ;3、4位数码管地址

mov a,#0ffh

movx @dptr,a

mov dptr,#0b000h ;5、6位数码管地址

;

mov a,#0ffh

nop

nop

movx @dptr,a

ret

end

硬件实验四 八段数码管显示

硬件实验四 八段数码管显示 一、实验要求 利用实验箱提供的显示电路,动态显示一行数据. 二、实验目的 1. 了解数码管动态显示的原理。 2. 了解用总线方式控制数码管显示。 三、实验线路及连线 四、实验说明 1.本实验箱提供了6 位8段码LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8位段码、6位位码是由两片74LS374输出。位码经MC1413或ULN2003倒相驱动后,选择相应显示位。 本实验箱中8位段码输出地址为0X004H ,位码输出地址为0X002H 。此处X 是由KEY/LED CS 决定,参见地址译码。做键盘和LED 实验时,需将KEY/LED CS 接到相应的地址译码上。以便用相应的地址来访问。例如,将KEY/LED CS 接到CS0上,则段码地址为08004H ,位码地址为08002H 。 位选通信号 (0x002H) 段码输出 (0x004H) 数据总线

七段数码管的字型代码表如下表: 五、程序参考程序、框图

OUTBIT equ 08002h ; 位控制口 OUTSEG equ 08004h ; 段控制口 data segment LEDBuf db 6 dup(?) ; 显示缓冲 Num db 1 dup(?) ; 显示的数据 DelayT db 1 dup(?) LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h data ends code segment assume cs:code, ds:data Delay proc near push ax ; 延时子程序 push cx mov al, 0 mov cx,ax loop $ pop cx pop ax ret Delay endp DisplayLED proc near mov bx, offset LEDBuf mov cl, 6 ; 共6个八段管 mov ah, 00100000b ; 从左边开始显示 DLoop: mov dx, OUTBIT mov al, 0 out dx,al ; 关所有八段管 mov al, [bx] mov dx, OUTSEG out dx,al mov dx, OUTBIT mov al, ah out dx, al ; 显示一位八段管 push ax mov ah, 1 call Delay pop ax

DA转换实验

实验九 D/A转换实验 一、实验目的 1、熟悉D/A转换的基本原理; 2、掌握AD7303的技术指标和常用方法; 3、熟悉DSP的SPI的应用方法; 4、掌握并熟练使用DSP和AD7303的接口及其操作。 二、实验设备 计算机,CCS 2.0版软件,DSP仿真器,EXP4实验箱,F2812CUP板,示波器。 三、实验原理 DA转换芯片采用Analog Devices公司的AD7303。该芯片是单极性、双通道、串行、8位DA转换器,操作串行时钟最快可达30M,DA转换时间1.2μs采用SPI串行接口和DSP连接。DA 输出通过放大电路,可以得到0~5V的输出范围。DA输出接口在“CPLD单元”的左上角,两个2号孔“D/A输出1、D/A输出2”分别对应AD7303的“OUTA、OUTB”。下面是AD7303的功能框图: 引脚说明: 1、VOUTA:模拟输出A 2、电源 +2.7~+5.5V 3、地 4、REF:参考电压 5、SCLK:数字接口位时钟 6、DIN:数字接口数据 7、SYNC:数字接口片选 8、VOUTB:模拟输出B 接口时序:

输入的数字量和输出电压的关系: 四、实验步骤与内容 1、开关K9拨到右边,即仿真器选择连接右边的CPU:CPU2;运行CCS软件,加载示 范程序; 2、按F5运行程序,用示波器检测“D/A转换单元的的2号孔接口“输出1”输出一个 正弦波;

3、填写实验报告。 4、样例程序实验操作说明 启动CCS 2.0,打开EXP4_09_da目录下面的工程文件“Example_281x_da.pjt”,并加载Example_281x_da.out文件,双击“Source”,可查看源程序。 5、在源文件中“SpiaRegs.SPITXBUF=curve1[p];”处设断点,点击RUN运行程序;

实验四动态数码管显示

实验四动态数码管显示 1.实验目的 学习动态扫描显示的原理及电路的设计。 2.实验内容 本实验内容是建立数码管动态扫描显示模块。在试验箱上完成LED数码管的动态显示1~8这8个数。稳定显示后,放慢扫描速度演示动态显示的原理过程。 3.实验原理 数码管LED显示是工程项目中使用较广的一种输出显示器件。常见的数码管共阴和共阳两种。共阴数码管是将8个发光二极管的阴极连接在一起作为公共端,而共阳数码管是将8个发光二极管的阳极连接在一起作为公共端。公共端常称为位码,而将其它8位称为段码,分别为:a、b、c、d、e、f、g、h,其中h为小数点,只要公共端为高电平“1”,某个段输出为低电平“0”,则相应的段就亮。把每个数码管的8个段都分别连接到SEG0~SEG7,8个数码管分别由8个选通信号DIG0~DIG7来选择。被选通的数码管显示,其余关闭。例如在某一时刻,DIG2为“0”,其余数码管选通信号为“1”,这是仅DIG2对应的LED数码管显示来自段码信号端的数据,而其他数码管成关闭状态。根据这种电路状态,如果希望8个数码管全都显示想要的数据,就必须使得8个选通信号DIG0~DIG7分别单独选通,同时在段输入端加上对应的数据。虽然每次只有一个LED显示,但只要扫描的速率够快,由于人眼视觉的余辉效益,我们仍会感觉所有数码管都在同时显示。 4.实验步骤 (1)启动Quartus II,建立一个空白工程,然后命名为dled.qpf。 (2)新建scan_led.vhd源程序文件,源代码如下。然后进行综合编译。若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。生产符号文件scan_led.bsf (File→ Create/_Update → Create Symbol Files for Current File)。 (3)将实验模块库里的int_div.vhd和int_div.bsf拷贝到工程目录下。 (4)添加4位兆计数器功能模块。步骤如下: ①在Quartus II主界面中选择Tools—Mega Wizard Plug-In Manager,打开如下图所示的兆功能模块向导。选择Create a new custom megafunction variation新建一个新的兆功能模块。 图添加兆功能模块向导对话框——Page1 ②单击Next进入向导第2页,按照如下图所示填写。选择LPM_CONSTANT,设置好

单片机实验——数码管显示

单片机实验——数码管显示

数码管显示 一、数码管静态显示 1、电路图 图1 2、电路分析 该电路采用串行口工作方式进行串行显示实验,串行传输数据为8位,只能从RXD端输

入输出,TXD端用于输出同步移位脉冲。当CPU 执行一条写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口开始将发送缓冲器SBUF 中的8位数据按照从低位到高位依次发送出去,8位数据发送完毕,发送结束标志TI置1,必须由软件对它清0后才能启动发送下一帧数据。 因此,当输完8个脉冲后,再一次来8个脉冲时,第一帧的8位数据就移到了与之相连的第二个74LS164中,其他数据依此类推。 3、流程图

发送数据 二、数码管动态显示 1、电路图

图2 2、电路分析 R1-R7电阻值计算:一个7-seg 数码管内部由8段LED 组成,因此导通电压和电流与LED 灯相同,LED 导通压降大概在 1.5V-2.2V ,电流3mA-30mA ,单片机的工作电压是5V , 所以 一般取Rmin 和Rmax 中间值,330Ω、470Ω、510Ω。 由于P0口内部没有上拉电阻,所以在P0 口接1003025Im min 1325Im max =-===-==mA V V an U R K mA V V in U R

排阻,上拉电压。如果没有排阻的话,接上拉电阻时需要考虑数码管的电流,如果太小的话,是驱动不了数码管的。如图3: 发现电流大于5mA时,数码管才能亮,与前面电流最小3mA不符,因此计算数码管电流时使其在10mA-20mA之间,确保能驱动数码管亮。 两个74HC573实现对六位数码管的段选和位选,控制端为LE(第11脚)。 3、思路分析 先使第一个573输出同步,把数据送入573中,然后锁存,第二个573输出同步,打开第一个数

串转并转换器1

一、题意分析及解决方案 1、课程设计名称及内容 应用STAR ES598PCI单板开发机系列接口芯片设计一个串转并转换器,熟悉串转并转换原理,掌握使用串并转换芯片扩展I/O口的实现方法。设计编写程序,循环点亮8个指示灯瞬间只有一个灯亮。观察实验结果,验证串并转换数据的正确性。 2、题意需求分析 根据题目给定的内容与要求可得:本实验需要用到的主要是控制数据输入的芯片、实现串并转换的芯片和用于显示的发光管。 本实验的核心部分是8位移位寄存器74HC164,它可以实现数据的串行输入和并行输出,达到数据从串行转换为并行的目的。为了方便控制74HC164的输入,考虑运用可编程接口芯片8255连接CPU和74HC164,实现数据的串行输入和CP脉冲的变化。同时,为了方便观察实验结果,使用74HC164移位寄存器输出接口连接8位发光二极管,显示并行输出结果。 3、解决问题的思路与方法 (1)硬件部分 程序用到的硬件芯片有8255、74HC164、发光二极管: 使用8255作为CPU和移位寄存器之间的接口电路来控制8位串行数据的输入,其本身的接口就可以支持输出的操作。而且8255的可编程并行接口,具有传输速度快效率高等优点,不需要附加外部电路便可和大多数并行传输数据的外部设备相连,数据的各位同时传送,使用十分方便。 74HC164是8位移位寄存器,当其中一个(或二个)选通串行输入端的低电平禁止进入新数据,并把第一个触发器在下一个时钟脉冲来后复位到低电平时,门控串行输入端(A 和B) 可完全控制输入数据。一个高电平输入后就使另一个输入端赋能,这个输入就决定了第一个触发器的状态。虽然不管时钟处于高电平或低电平时,串行输入端的数据都可以被改变,但只有满足建立条件的信息才能被输入。时钟控制发生在时钟输入由低电平到高电平的跃变上。为了减小传输线效应,所有输入端均采用二极管钳位。时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的

实验四 键盘扫描及显示设计实验报告

实验四键盘扫描及显示设计实验报告 一、实验要求 1. 复习行列矩阵式键盘的工作原理及编程方法。 2. 复习七段数码管的显示原理。 3. 复习单片机控制数码管显示的方法。 二、实验设备 1.PC 机一台 2.TD-NMC+教学实验系统 三、实验目的 1. 进一步熟悉单片机仿真实验软件 Keil C51 调试硬件的方法。 2. 了解行列矩阵式键盘扫描与数码管显示的基本原理。 3. 熟悉获取行列矩阵式键盘按键值的算法。 4. 掌握数码管显示的编码方法。 5. 掌握数码管动态显示的编程方法。 四、实验内容 根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能: 1.扫描键盘输入,并将扫描结果送数码管显示。 2.键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。 实验具体内容如下: 将键盘进行编号,记作 0~F,当按下其中一个按键时,将该按键对应的编号在一个数码 管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数 码管上可以显示最近 4 次按下的按键编号。 五、实验单元电路及连线 矩阵键盘及数码管显示单元

图1 键盘及数码管单元电路 实验连线 图2实验连线图 六、实验说明 1. 由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为 5~10ms。这是一个很重要的时间参数,在很多场合都要用到。 键抖动会引起一次按键被误读多次。为了确保 CPU 对键的一次闭合仅做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按

单片机串并口转换实验定稿版

单片机串并口转换实验 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

我也是刚入手单片机,今天编了一段小程序,就是关于单片机串口转并口和并口转串口的一个小实验,本程序在PTOTUES中完美运行。在单片机开发试板上也是完美运行。今天贴出来供大家分享,看完本历程,有助于提高您对单片机IO口的基本操作,锁存器的用法以及串并转换的使用技能 #include 本例程的电路连接图如上,在电路中使用了AT89C51单片机一块,74HC595八路串/并转换器,74HC165八路并串转换器和一片74HC573 锁存器。实验者请按上图连接好实验电路。

#include #include< intrins.h > #define uchar unsigned char #define uint unsigned int #define ulong unsigned long code uint a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; sbit SO=P1^0; //定义165的输出 sbit STCP=P1^1; sbit DS=P1^2; sbit SHCP=P1^3; sbit SHLD=P1^4; sbit CLK=P1^5; sbit cs573=P1^6; /**************************************************/

void delay(ulong X) //延时函数,采用了形参传递函数{ while(X--); } /**************************************************/ void LED(); //函数声明 /**************************************************/ void main() //主函数 { while(1) { LED (); } }

实验四 数码管显示控制

实验四数码管显示控制 一、实验目的 1、熟悉Keil uVision2软件的使用; 2、掌握LED数码管显示接口技术; 3、理解单片机定时器、中断技术。 二、实验设备及仪器 Keil μVision2软件;单片机开发板;PC机一台 三、实验原理及内容 1、开发板上使用的LED数码管是四位八段共阴数码管(将公共端COM接地GND),其内部结构原理图,如图4.1所示。 图4.1共阴四位八段LED数码管的原理图 图4.1表明共阴四位八段数码管的“位选端”低电平有效,“段选端”高电平有效,即当数码管的位为低电平,且数码管的段为高电平时,相应的段才会被点亮。 实验开发板中LED数码管模块的电路原理图,如图4.2所示。 a~h SP2 SP1 P0.0~P0.3 P0.4~P0.7图4.2 LED数码管模块电路原理图

图中,当P1.0“段控制”有效时,P0.0~P0.7分别对应到数码管的a~h段。当P1.1“位控制”有效时,P0.0~P0.7分别对应到DIG1~DIG8。 训练内容一:轮流点亮数码管来检测数码管是否正常。参考程序: ORG 00H AJMP MAIN MAIN: SETB P1.2;LED流水灯模块锁存器的控制位 MOV P0,#0FFH;关闭LED灯 CLR P1.2 SETB P1.3 ;点阵模块的行控制锁存器 MOV P0,#0 ;关闭点阵行 CLR P1.3 MOV A,#11111110B;数码管“位选信号”初值,低电平有效 LOOP:SETB P1.1;数码管位控制锁存器有效 MOV P0,A CLR P1.1 RL A ;形成新的“位选信号”,为选择下一位数码管做准备 SETB P1.0;数码管段控制锁存器有效 MOV P0,#0FFH ;数码管的所有段点亮,显示“8” CLR P1.0 CALL DELAY SJMP LOOP DELAY:MOV R5,#0;延时子程序 D1: MOV R6,#0 D2:NOP DJNZ R6,D2

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

八位七段数码管动态显示电路的设计 一、实验目的 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.熟练掌握单片机定时器的原理和应用方法。 2.了解数码管的原理,掌握数码管的真值表的计算方法。 二、实验内容 通过对单片机编程来实现数码管静态显示。 三、实验知识点 3.1定时器的初步认识 时钟周期:时钟周期T是时序中最小的时间单位具体计算的方法就是1/时钟源,我们KST-51单片机开发板上用的晶振是11.0592M,那么对于我们这个单片机系统来说,时钟周期=1/11059200秒。 机器周期:我们的单片机完成一个操作的最短时间。机器周期主要针对汇编语言而言,在汇编语言下程序的每一条语句执行所使用的时间都是机器周期的整数倍,而且语句占用的时间是可以计算出来的,而C语言一条语句的时间是不可计算的。51单片机系列,在其标准架构下一个机器周期是12个时钟周期,也就是12/11059200秒。 定时器和计数器。定时器和计数器是单片机内部的同一个模块,通过配置SFR(特殊功能寄存器)可以实现两种不同的功能。 顾名思义,定时器就是用来进行定时的。定时器内部有一个寄存器,我们让它开始计数后,这个寄存器的值每经过一个机器周期就会加1一次,因此,我们可以把机器周期理解为定时器的计数周期。我们的秒表,每经过一秒,数字加1,而这个定时器就是每过一个机器周期的时间,也就是12/11059200秒,数字加1。 3.2 定时器的寄存器描述 标准的51里边只有定时器0和定时器1这两个定时器,现在很多单片机也有多个定时器的,在这里我们先讲定时器0和1。那么我前边提到过,对于单片机的每一个功能模块,都是由他的SFR,也就是特殊功能寄存器来控制。而和定时器有关的特殊功能寄存器,有TCON和TMOD,定时值存储寄存器。 a)定时值存储寄存器 表4-1中的寄存器,是存储计数器的计数值的,TH0/TL0用于T0, TH1/TL1用于 T1。 表4-1 定时值存储寄存器 表4-2 TCON--定时器/计数器控制寄存器的位分配(地址:88H) 表4-3 TCON--定时器/计数器控制寄存器的位描述

实验八 串转并与并转串实验

贵州大学实验报告纸 实验八串转并与并转串实验 一、实验目的 1.掌握使用74LS164扩展输出的方法。 2.掌握使用74LS165扩展输入的方法。 二、实验内容 1、使用74LS165扩展输入数据,使用74LS164扩展输出数据。74LS165的并行口 接八位逻辑电平输出(开关),CPU使用P1.0、P1.1和P1.2串行读入开关状态;74LS164的并行口接一只数码管,CPU使用P1.3和P1.4串行输出刚读入的开关状态,使之在数码管上显示出来。 2、拨动开关,在数码管显示0~9,A~F。 三、实验要求 1、根据实验内容编写一个程序,并在实验仪上调试和验证。 四、实验说明和电路原理图 1)74LS165为8位移位寄存器,其引脚功能如下: S/L:移位/置数端,低电平有效。 P0~P7:并行数据输入端。 QH:串行数据输出端。 CLK、CKLINH:时钟信号输入端。 2)74LS164为串行输入并行输出移位寄存器,其引脚功能如下: A、B:串行输入端; Q0~Q7:并行输出端; MR:清零端,低电平有效; CLK:时钟脉冲输入端,上升沿有效。 3)用P1端口输出数据时,要编程位移数据,每操作一个数据位,对应一个移位脉冲。 4)本实验需要用到CPU模块(F3区)、八位逻辑电平输出模块(E4区)和静态数码管显示模块(B4区)。74LS165电路原理图参见图8-1,74LS164电路原理图参见图8-2。 注:74LS164集成电路芯片在主板反面。

图8-1 74LS165电路 五、实验程序 ;//**************************************************************** ;//*文件名:164165 串转并,并转串实验程序 ;功能:把开关量通过74**165串行输入到内存,并通过74**164串行输出到数; 码管上显示。 ;接线:P1.0接QH165,P1.1接CLK165,P1.2接SH_LD, ; P1.3、P1.4接静态数码显示的DIN、CLK。 ;//**************************************************************** QH165 BIT P1.0 CLK165 BIT P1.1 SH_LD BIT P1.2 DAT164 BIT P1.3 CLK164 BIT P1.4 MEMORY EQU 30H

单片机实验4LED数码管显示实验

电子信息工程学系实验报告 课程名称:单片机原理及接口 实验项目名称:LED 数码管显示实验 实验时间: 2011.10.31 班级:通信 姓名: 学号: 实 验 目 的: 熟悉keil 仿真软件、proteus 仿真软件、软件仿真板的使用。了解并熟悉一位数码管与多位LED 数码管的电路结构、与单片机的连接方法及其应用原理。学习proteus 构建LED 数码管显示电路的方法,掌握C51中单片机控制LED 数码管动态显示的原理与编程方法。 实 验 环 境: KEIL C51单片机仿真调试软件,proteus 系列仿真调试软件 实 验 内 容 及 过 程: 1.LED 显示器结构与原理: LED 显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七段LED ,这种显示器有共阴极与共阳极两种。 阴极LED 显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发光二极管则点亮;共阳极LED 显示器的发光二极管阳极并接。如显示“2”,则共阴时段选码为“5BH ”,共阳时为“A4H ”。 2.显示码的知识:d 的显示码。 (1)显示d ,则数码管中b,c,d,e,g 要亮,其他灯灭; (2)因为是共阴数码管,所以送‘1’亮,则b,c,d,e,g=1;a,f,dp=0; (3)则01011110. 3.多位LED 数码显示器 七段LED 数码管与单片机连接时,只要将一个8位并行输出口与显示器的发光二极管引脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制发光二极管的8位字节数据称为段选码。多位七段LED 数码管与单片机连接时将所有LED 的段选线并联在一起,由一个八位I /O 口控制,而位选线分别由相应的I /O 口线控制。如:8位LED 动态显示电路只需要两个八位I /O 口。其中一个控制段选码,另一个控制位选。 a f b e g c d dp 1 2 3 4 5 10 9 8 7 6 g f a b e d c dp (a) 共阴极 (b) 共阳极 (c) 管脚配置 成 绩: 指导教师(签名):

5数码管显示4×4键盘矩阵按键实验

数码管显示4×4键盘矩阵按键实验 一、实验目的、原理及方法 键盘在单片机应用系统中能实现向单片机输入数据、传送命令等功能,是人工干预单片机的主要手段。该实验的目的在于了解键盘的工作原理,键盘按键的识别过程及识别方法,键盘与单片机的接口技术和编程。 键盘实质上是一组按键开关的集合。通常,键盘开关利用了机械触点的合、断作用。 键的闭合与否,反映在行线输出电压上就是呈高电平或低电平,如果高电平表示键断开,低电平则表示键闭合,反之也可。通过对行线电平高低状态的检测,便可确认按键按下与否。 为了确保CPU对一次按键动作只确认一次按键有效,还必须消除抖动。 当按键较多时会占用更多的控制器端口,为减少对端口的占用,可以使用行列式键盘接口,本实验中采用的4×4键盘矩阵可以大大减少对单片机的端口占用,但识别按键的代码比独立按键的代码要复杂一些。在识别按键时使用了不同的扫描程序代码,程序运行时数码管会显示相应按键的键值0~F。本实验中P1端口低4位连接是列线,高4位连接的是行线。 二、实验步聚及注意事项 1、使用Proteus IS 7 Professional应用程序,建立一个.DSN文件 2、在“库”下拉菜单中,选中“拾取元件”(快捷键P),分别选择以下元件: AT 89C51、RX 8、7SEG-COM-ANGRN、BUTTON。 3、构建仿真电路

4、创建一个Keil应用程序: 新建一个工程项目文件;为工程选择目标器件(AT89C51);为工程项目创建源程序文件并输入程序代码;保存创建的源程序项目文件;把源程序文件添加到项目中。 5、把用户程序经过编译后生成的HEX文件添加到仿真电路中的处理器中(编辑元件→文件路径) 三、实验仪器 电脑一台,并装载软件: Proteus IS 7 Professional应用程序 Keil应用程序 四、数据记录及处理 #include #define uint unsigned int #define uchar unsigned char Uchar code dsy_code[]={0xC0,0xF9,0xA4, 0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xFF}; uchar Pre_keyno=16,keyno=16; void delayMS(char x){uchar i; while(x--) for(i=0;i<120;i++) ;}void keys_scan(){uchar tmp; P1=0x0f;

verilog实现串并并串转换的代码和仿真结果

题目:串并互换电路的设计 系(部):*** 专业班:*** 姓名:*** 学号:*** 指导教师:*** 完成比例:** 2011年12 月

摘要 本文主要讲述用verilog实现串并互换电路,在同步时钟的控制下,四位的并行数据和串行数据相互转换,通过一位的控制信号来控制该电路为串并或并串转换,最后由串并有效位来表示串并互换成功。 关键词:串转并并转串移位寄存器

Abstract This paper deals with verilog realize string and swap circuit, in synchronous clock under the control of four parallel data and serial data transformation, through a control signals to control the circuit for the series and or and string of conversion, finally by string and effective to say a string and swap success. Key W ords:Parallel turns to serial serial turns to parallel Shift register

目录 摘要.............................................................................................................................................................................. I ABSTRACT ..................................................................................................................................................................... II 1 选题背景. (1) 1.1本课题的意义 (1) 2 方案论证 (2) 2.1串并并串选择的分析 (2) 2.2串并并串转换是否成功的标志位及表达 (2) 3、程序的具体实现及仿真结果 (3) 4、本人完成部分及对该部分的理解 (9) 5结论或总结 (9) 致谢 (10) 参考文献 (10)

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

八位七段数码管动态显示电路的设计 一、 实验目的 1、 了解数码管的工作原理。 2、 学习七段数码管显示译码器的设计。 3、 学习VHDL 的 CASE 语句及多层次设计方法。 二、 实验原理 七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位 一体、共阴极型七段数码管。其单个静态数码管如下图 4-4-1所示。 数码管与之相么。四位一体的七段数 数码管的位选信号端口。 八个数码管 个数码管分别由各自的位选信号来控制, 被选通的数码管显示数据,其余关闭。 三、 实验内容 本实验要求完成的任务是在时钟信号的作用下, 通过输入的键值在数码管上显示相应的 键值。在实验中时,数字时钟选择 1024HZ 作为扫描时钟,用四个拨动开关做为输入,当四 个拨动开关置为一个二进制数时,在数码管上显示其十六进制的值。 四、 实验步骤 1、 打开QUARTUSI 软件,新建一个工程。 2、 建完工程之后,再新建一个 VHDL File ,打开VHDL 编辑器对话框。 3、 按照实验原理和自己的想法,在 VHDL 编辑窗口编写 VHDL 程序,用户可参照光盘中 提供的示例程序。 4、 编写完VHDL 程序后,保存起来。方法同实验一。 5、 对自己编写的VHDL 程序进行编译并仿真,对程序的错误进行修改。 6、 编译仿真无误后,根据用户自己的要求进行管脚分配。分配完成后,再进行全编译 一次,以使管脚分配 生效。 7、 根据实验内容用实验导线将上面管脚分配的 FPGA f 脚与对应的模块连接起来。 如果是调用的本书提供的 VHDL 代码,则实验连线如下: CLK FPGA 寸钟信号,接数字时钟 CLOCK3并将这组时钟设为 1024HZ 。 由于七段数码管公共端连接到 I b ,当数码管的中的那一个段被输入高电 、 e 、 d 、 c 、 b 、 a 的

串并转换

实验五串并转换实验 一、实验目的 1、掌握串并行转换的原理及采用74LS164扩展端口的方法。 2、掌握数码管显示的原理及方法。 3、学习用任意两根I/O口线进行数据传输的方法。 二、实验要求 利用实验箱的显示电路,在数码管上循环显示0-9这10个数,每个数显示1秒。完成后修改程序,仅在一个数码管上显示0-F这16个数(其它三个数码管不显示)。 三、实验原理 实验设备中数码管为共阴接法,接线确定了各段从左 至右的排列顺序为:abcdefgh。如果要显示数字1,应该 是b c段发光,所以b c段对应的位写1,其它不发光的位写0。因此1的显示码为 60H。其它显示码可按此规律得出。 实验原理图见图二,串并转换芯片74LS164的A、B端为串行数据输入端,将其接到数据线P1.0上,CLK为时钟端接到时钟线P1.1上,Q0~Q7为并行输出端接数码管。在P1.1产生的时钟脉冲的作用下,数据的显示码从74LS164输入端一位一位的输入,经164转换后,串行数据变为8位并行数据经其输出端Q0~Q7加到数码管上,数码管就能显示相应的数字。 下面是数据60H的传输及显示过程: 1、将A中数据的最低位送到串口的数据线P1.0上。 2、在时钟线P1.1上产生一个脉冲。 3、在这个脉冲的作用下,P1.0上的数据被打入164的Q0输 出端,原来Q0上的数据移到Q1,Q1的数移到Q2…, 完成一位数的传输。 4、第1步到第3步重复8次,这样一个字节的数据就输出 完毕,同时74LS164将接收到的串行数据转换成并行数据 在数码管上显示出来。 四、实验框图 实验框图见图一。 五、实验连线及步骤 1、DIN接P1.0,CLK接P1.1,打开实验箱电源,打开串并 转换数码管显示模块上的开关。 2、启动KEIL软件界面,根据框图编程。 在初始化框中有两个内容,它们分别是: * 送表指针初值---寄存器 MOV R1,#0 * 送表首地址---DPTR 图一串并转换程序框图

实验四 数码管显示

实验四数码管显示 1. 驱动原理 数码管由7个发光二极管组成,行成一个日字形,它门可以共阴极,也可以共阳极.通过解码电路得到的数码接通相应的发光二极而形成相应的字,这就是它的工作原理. 基本的半导体数码管是由7个条状的发光二极管(LED)按图1所示排列而成的,可实现数字"0~9"及少量字符的显示。另外为了显示小数点,增加了1个点状的发光二极管,因此数码管就由8个LED组成,我们分别把这些发光二极管命名为 "a,b,c,d,e,f,g,dp",排列顺序如下图1。 图1:数码管引脚图及外形图 2. 数码管的结构及分类 特别提示:注意段码和位码的概念;会找出不同接法的段码分析方法。 数码管按各发光二极管电极的连接方式分为共阳数码管和共阴数码管两种共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。共阴数码管部连接如图3所示。 共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阳数码管部连接如图2所示。

图2:共阳数码管部连接图图3:共阴数码管部连接图 二、多位数码管的驱动方法 A.静态法 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器

串转并和并转串实验

实验五串转并与并转串实验 一、实验目的 1.掌握使用74LS164 扩展输出的方法。 2.掌握使用74LS165 扩展输入的方法。 二、实验内容 使用74LS165 扩展输入数据,使用74LS164 扩展输出数据。74LS165 的并行口接八位逻辑电平输出(开关),CPU 使用P1.0、P1.1 和P1.2 串行读入开关状态;74LS164 的并行口接一只数码管,CPU 使用P1.3 和P1.4 串行输出刚读入的开关状态,使之在数码管上显示出来。 三、实验要求 根据实验内容编写一个程序,并在实验仪上调试和验证。 四、实验说明和电路原理图 1)74LS165 为8 位移位寄存器,其引脚功能如下: S/L:移位/置数端,低电平有效。 P0~P7:并行数据输入端。 QH、QH:串行数据输出端。 CLK、CKLINH:时钟信号输入端。 2)74LS164 为串行输入并行输出移位寄存器,其引脚功能如下: A、B:串行输入端; Q0~Q7:并行输出端; MR:清零端,低电平有效; CLK:时钟脉冲输入端,上升沿有效。 3)用P1 端口输出数据时,要编程位移数据,每操作一个数据位,对应一个移位脉冲。 4)本实验需要用到CPU 模块(F3 区)、八位逻辑电平输出模块(E4 区)和静态数码管显示模块(B4 区)。74LS165 电路原理图参见图5-1,74LS164 电路原理图参见图8-2。 注:74LS164 集成电路芯片在主板反面。 图5-1 74LS165 电路

图5-2 74LS164电路 五、实验步骤 1)系统各跳线器处在初始设置状态。 用导线对应连接八位逻辑电平输出模块的QH165、CLK165、SH/LD 到CPU 模块的P10、P11、P12。用导线对应连接静态数码管显示模块的DIN、CLK 到CPU 模块的P13、P14。 2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。 3)观察数码(八段码)管的亮灭与拨动开关的状态是否一致。拨动开关拨下输出为低电平,段码点亮。 QH165 BIT P1.0 ;位定义 CLK165 BIT P1.1 SH_LD BIT P1.2 DAT164 BIT P1.3 CLK164 BIT P1.4 MEMORY EQU 30H ORG 0000H AJMP START ORG 00B0H START: SETB CLK165 ;开关数据置入165 CLR SH_LD ;低电平置数 SETB SH_LD ;高电平移位 MOVR7, #8 Input: RRA MOVC, QH165 ;读数 MOV ACC.7, C ;把C送到累加器最高位 CLR CLK165 ;脉冲

微机原理实验四 LED数码管显示实验汇总

实验名称 LED数码管显示实验 指导教师 专业班级 姓名 学号 联系方式 一实验要求: 实验四 LED数码管显示实验 实验目的:理解LED七段数码管的显示控制原理,掌握数码管与MCU的接口技术,能够编写数码管显示驱动程序;熟悉接口程序调试方法。 实验内容:利用C8051F310单片机控制数码管显示器 基本要求: 利用末位数码管循环显示数字0-F,显示切换频率为1Hz。 提高要求: 在数码管上显示0→199计数,计数间隔为0.5秒。 二、设计思路 1 基本要求: 对F310信号频率进行8分频,再对定时器进行48分频,以使在一次定时时间范围内实现1s定时。采用查询方式进行定时。P0.6,P0.7作为位选信号来一直选择末位数码管输出信号。再利用R0作为相对寻址来储存数据并赋值给A。通过MOVC A, @A+DPTR指令,利用顺序查表法取出显示段码数据。寄存器R0自增1,并赋给A以取出下一个显示段码数据。 2 提高要求:

依然对信号频率八分频,对定时器进行48分频,通过P0,6,P0.7进行位控选择数码管输出,定时器定时0.5s,当溢出时进入中断,并通过中断程序将段位控制按序加一,R3,R6,R7分别储存第一第二第三位数码管段位码,利用A 为中间变量,通过P1输出储存的值,查表输出数码管值,达到119时结束。 三、资源分配 1 基本要求: P0.6: 位选信号端口 P0.7:位选信号端口 P1:输出段码数据 R0:存放显示数据 DPTR:指向段码数据表首 2 提高要求: P0.6: 位选信号端口 P0.7:位选信号端口 P1:输出段码数据 DPTR:指向段码数据表首 R3,R6,R7:分别储存第三第二第一位数码管数据 四、流程图 1 基本要求 2 提高要求: 主程序

LS164串进并出实验及165并串转换实验

2、165并串转换实验。 (1)74LS165芯片引脚图 管脚说明: D0 through D7 --Parallel in puts SI -- Serial in put Q7,/Q7 -- Data outputs CLK -- Clock CKIN -- Clock in hibit S/L --(高有效)Shift/Parallel-load 实验二 74LS164串进并出实验及165并串转换实验 一、 实验目的 1 、了解74LS164芯片的工作原理,以及与单片机的接口方法。 2、掌握单片机串行口的工作原理以及编程方法。 3 、了解74LS165芯片的工作原理。 4、掌握74LS165芯片在单片机系统中的应用及编程。 二、 实验内容 1、 用74LS164芯片扩展并行输出口,本实验中我们用 74LS164扩展两个8位输出口的 接口显示电路,两位数码管循环显示 00~99之间的数字。 2、 利用实验系统上的 74LS165芯片,编程实现8位数据并行输入,串行口串行接收, 并将接收的数据存放在 CPU 内部存储区50H~59H 中,共10个数据。(并行输入数据由P1 口 来送入) 三、 编程指南 1、74LS164串进并出实验。 (1) 本实验中MCS-51单片机串行口工作在方式 0 (移位寄存器方式,用于并行 I/O 口 扩展)的发送状态时,串行数据由 P3.0(RXD )送出,移位时钟由 P3.1( TXD 送出。在移位 时钟的作用下,串行口发送缓冲器的数据一位一位地移入 74LS164中。需要指出的是,由于 741S164无并行输出控制端,因而在串行输入过程中,其输出端的状态会不断变化,故在某 些应用 场合,在74LS164的输出端应加接输出三态门控制, 以便保证串行输入结束后再输出 数据。 (2) 74LS164引脚功能图 管脚说明: SIA 、SIB --- Serial in puts Q0 through Q7 ---- Data outputs CLK ---- CLOCK CLR ——Clear in put 功能表: VCC Q7 08 Q5 射 CLK CLK | K I ] nJ 17 10 * | T 7ns 16^1 □J 2 jj LsJ LzJ SIA 5IB QQ QI Q? Q3 ENJ S/L CP D4 D5 D6 DT /Q7 GND

相关文档
相关文档 最新文档