八段数码管显示实验
8位共阴数码管实验报告

8位共阴数码管实验报告一、引言数码管是一种常见的数字显示器件,广泛应用于各种电子设备中。
8位共阴数码管是一种常见的数码管类型,本实验旨在通过实际操作,了解8位共阴数码管的原理和使用方法,并通过编程控制,实现数字的显示。
二、实验原理1. 共阴数码管原理共阴数码管是一种常见的数码管类型,它由8个LED发光二极管组成。
在共阴数码管中,所有的LED的阴极都是连接在一起的,而阳极则分别连接到控制芯片的不同引脚上。
当某个LED的阳极接通时,与之对应的数字就会在数码管上显示出来。
2. 数码管的控制为了控制数码管显示不同的数字,我们需要通过控制芯片的引脚电平来控制数码管的阳极。
具体来说,我们可以通过将某个引脚拉低,使得与之相连的数码管的阳极接通,从而显示对应的数字。
三、实验材料和器件•Arduino开发板•8位共阴数码管•杜邦线四、实验步骤1. 连接电路将Arduino开发板和8位共阴数码管通过杜邦线连接起来。
具体的连接方式如下:- 将数码管的共阴极连接到Arduino开发板的GND引脚。
- 将数码管的8个阳极分别连接到Arduino开发板的数字引脚2-9。
2. 编写程序打开Arduino开发环境,编写以下程序代码:int digitPins[] = {2, 3, 4, 5, 6, 7, 8, 9};int digits[10][7] = {{1, 1, 1, 1, 1, 1, 0}, // 数字0的显示编码{0, 1, 1, 0, 0, 0, 0}, // 数字1的显示编码{1, 1, 0, 1, 1, 0, 1}, // 数字2的显示编码{1, 1, 1, 1, 0, 0, 1}, // 数字3的显示编码{0, 1, 1, 0, 0, 1, 1}, // 数字4的显示编码{1, 0, 1, 1, 0, 1, 1}, // 数字5的显示编码{1, 0, 1, 1, 1, 1, 1}, // 数字6的显示编码{1, 1, 1, 0, 0, 0, 0}, // 数字7的显示编码{1, 1, 1, 1, 1, 1, 1}, // 数字8的显示编码{1, 1, 1, 1, 0, 1, 1} // 数字9的显示编码};void setup() {for (int i = 0; i < 8; i++) {pinMode(digitPins[i], OUTPUT);}}void loop() {for (int i = 0; i < 10; i++) {displayNumber(i);delay(1000);}}void displayNumber(int number) {int *digit = digits[number];for (int i = 0; i < 7; i++) {digitalWrite(digitPins[i], digit[i]);}}3. 烧录程序将编写好的程序通过USB线烧录到Arduino开发板中。
实验六8位数码管扫描显示

实验六8位数码管扫描显⽰实验六 8位数码管扫描显⽰⼀、实验⽬的1、了解7段数码管的⼯作原理;2、学会⽤于VHDL语⾔进⾏程序设计。
⼆、实验原理在本实验中,按⼀下key0,完成复位功能, clk5选择1Hz,clk3选择的频率越⾼越好。
LED的显⽰模块原理:LED有段码和位码之分,所谓段码就是让LED显⽰出8.的⼋位数据,⼀般情况下要通过⼀个译码电路,将输⼊的4位2进制数转换为与LED显⽰对应的8位段码。
位码也就是LED的显⽰使能端,对于共阴级的LED⽽⾔,低电平使能(在本实验箱中所有的LED均位共阴级的),在本实验中设计了⼀个3位的循环计数器,将计数结果输⼊到3-8译码器74ls138,译码结果输出即可依次使能每个LED。
例如:要让8个LED同时⼯作,显⽰数据,就是要不停的循环扫描每⼀个LED,并在使能每⼀个LED的同时,输⼊所需显⽰的数据对应的8位段码。
虽然8个LED是依次显⽰,但是受视觉分辨率的影响,看到的现象是8个LED同时⼯作。
三、实验程序原程序作如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY SCAN_SEG8 ISPORT(CLK3,CLK5 :IN STD_LOGIC;RST :IN STD_LOGIC;SEG_DA:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SEG_SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END SCAN_SEG8;ARCHITECTURE ADO OF SCAN_SEG8 ISSIGNAL SEG_BUF1,SEG_BUF2,SEG_BUF3,SEG_BUF4,SEG_BUF0:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL SEG_BUF5,SEG_BUF6,SEG_BUF7,SEG_BUF8 :STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL SEG_CNT :STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL SEG_TEMP:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL CLK:STD_LOGIC;BEGINPROCESS (CLK5)BEGINIF CLK5'EVENT AND CLK5='1' THENCLK<=NOT CLK;END IF;END PROCESS;PROCESS(CLK5,RST)BEGINIF CLK5'EVENT AND CLK5='1' THENIF CLK='1' THENSEG_BUF1<= "0001";SEG_BUF2<= "0010";SEG_BUF3<= "0011";SEG_BUF4<= "0100";SEG_BUF5<= "0101";SEG_BUF6<= "0110";SEG_BUF7<= "0111";SEG_BUF8<= "1000";ELSESEG_BUF0<=SEG_BUF8;SEG_BUF8<=SEG_BUF7;SEG_BUF7<=SEG_BUF6;SEG_BUF6<=SEG_BUF5;SEG_BUF5<=SEG_BUF4;SEG_BUF4<=SEG_BUF3;SEG_BUF3<=SEG_BUF2;SEG_BUF2<=SEG_BUF1; SEG_BUF1<=SEG_BUF0; END IF;END IF;END PROCESS;PROCESS (CLK3,RST)BEGINIF CLK3'EVENT AND CLK3='1' THENIF RST='1' THENSEG_CNT<="000";ELSESEG_CNT<=SEG_CNT+1;END IF;END IF;END PROCESS;SEG_SEL<=SEG_CNT;PROCESS (SEG_CNT, SEG_BUF1,SEG_BUF2,SEG_BUF3,SEG_BUF4,SEG_BUF5,SEG_BUF6,SEG_BUF7,SEG_BUF8) BEGIN CASE SEG_CNT ISWHEN O"0" => SEG_TEMP<=SEG_BUF1;WHEN O"1" => SEG_TEMP<=SEG_BUF2;WHEN O"2" => SEG_TEMP<=SEG_BUF3;WHEN O"3" => SEG_TEMP<=SEG_BUF4;WHEN O"4" => SEG_TEMP<=SEG_BUF5;WHEN O"5" => SEG_TEMP<=SEG_BUF6;WHEN O"6" => SEG_TEMP<=SEG_BUF7;WHEN O"7" => SEG_TEMP<=SEG_BUF8;WHEN OTHERS=> SEG_TEMP<="XXXX";END CASE;END PROCESS;PROCESS(SEG_TEMP)BEGINCASE SEG_TEMP ISWHEN "0000" => SEG_DA<="00111111";WHEN "0001" => SEG_DA<="00000110";WHEN "0010" => SEG_DA<="01011011";WHEN "0011" => SEG_DA<="01001111";WHEN "0100" => SEG_DA<="01100110";WHEN "0101" => SEG_DA<="01101101";WHEN "0110" => SEG_DA<="01111101";WHEN "0111" => SEG_DA<="00000111";WHEN "1000" => SEG_DA<="01111111";WHEN "1001" => SEG_DA<="01101111";WHEN "1010" => SEG_DA<="01110111";WHEN "1011" => SEG_DA<="01111100";WHEN "1100" => SEG_DA<="00111001";WHEN "1101" => SEG_DA<="01011110";WHEN "1110" => SEG_DA<="01111001";WHEN "1111" => SEG_DA<="01110001";WHEN OTHERS => NULL;END CASE;END PROCESS;END ADO;四、实验步骤1、打开Quartus II,选择“File”菜单下的“New Project Wizard”,建⽴Project及顶层实体的名称为SCAN_SEG8,期间,选择的⽬标芯⽚为EP2C5Q208C8N;2、选择“File”菜单下的“New”命令,在“New”窗⼝中选择“VHDL Files”,输⼊程序,进⾏编译;3、选择“File”菜单中的“New”项,在“New”窗⼝中选择“Other Files”中的“Vector Waveform File”项,打开空⽩的波形编辑器,输⼊所有的信号节点,给输⼊随机赋值,保存,单击⼯具栏上的快捷⽅式,进⾏波形仿真;4、打开“Assignments”菜单下的“Pins”命令,打开引脚锁定窗⼝,进⾏引脚锁定,再次对VHDL Files进⾏编译;5、连接EDA实验箱,将EP2C5适配板左下⾓的JTAG⽤⼗芯排线和万⽤下载区左下⾓的SOPC JTAG ⼝连接起来,万⽤下载区右下⾓的电源开关拨到 SOPC下载的⼀边,将JPLED1短路帽右插,JPLED的短路帽全部上插,请将JP103的短路帽全部插上。
《FPGA设计与应用》数码管显示实验一

《FPGA设计与应用》数码管显示实验一、实验目的和要求
1.学习动态数码管的工作原理;
2.实现对EGO1开发板四位动态数码管的控制;
二、实验内容
实现对EGO1开发板四位动态数码管的控制,使其能够正常工作;
三、实验要求
在EGO1开发板上显示想要的数字。
四、操作方法与实验步骤
1、八段数码管的动态显示原理:
2、数码管显示的设计共分3个模块:
(1)数码管封装模块
(2)数码管设计模块
(3)顶层模块
数码管动态显示的MODULE实现:
模块顶层设计——显示4个(位)十进制数
逻辑实现:
确定当前显示的位
确定当前“位”需要显示的“数”:
将“数”翻译成相应的“段码”
仿真测试台代码编写与仿真测试定义时间标尺:
定义测试Moudle
实例化被测Moudle
定义激励信号与响应信号
构造激励信号:
五、实验数据记录和处理实验代码如下:
设计文件:(部分)
仿真文件:
约束文件:
六、实验结果与分析网表结构:
仿真图像:
实物图:
七、讨论和心得
通过这次实验,我学会了数码管的动态显示,每一个数码管共用一套电路,显示时只需控制哪一个数码管进行显示。
虽然一次只能控制单独一个数码管进行显示,但可以快速切换数码管显示,利用人眼的”视觉暂留"来“同步”进行显示。
最后我明白了我们不要遇到一点困难就退缩,就去向老师同学寻求帮助,自己是自己最好的老师,只有我们靠自己的不断修改出正确结果,才会对这个知识掌握的更加透彻。
八段数码管显示实验总结

八段数码管显示实验总结以下是一篇关于八段数码管显示实验总结的文章,旨在详细介绍实验的步骤和结果。
引言:在现代电子技术领域中,七段数码管是一种常见的数字显示装置,常用于计时器、电子表、计数器等设备中。
而八段数码管则是七段数码管的进化版,它增加了一个小数点显示位,可以显示更多的数码和字符。
本篇文章将围绕八段数码管显示实验展开,介绍实验过程及实验结果。
第一步:材料准备进行八段数码管显示实验前,需要准备以下材料:1. 八段数码管:这是实验中的核心组件,用于显示数字和字符。
2. 转接板:用于连接八段数码管和单片机,实现电路的连接。
3. 单片机:本实验中我们选择XXXX型号的单片机,它具备足够的输入输出引脚,方便实验开展。
4. 面包板:用于搭建电路,连接各个组件。
5. 连接线:用于连接数码管、转接板和单片机。
第二步:电路连接1. 将转接板插入面包板中心位置,确保其稳固。
2. 将八段数码管插入转接板对应位置,并通过连接线将其与转接板上的引脚相连。
3. 将单片机插入转接板上的插槽,并通过连接线将其与转接板上的引脚相连。
4. 连接线的连接需要按照电路连接图进行,确保连线正确无误。
第三步:程序编写1. 打开XXXX软件,创建一个新的工程。
2. 在新的工程中,编写程序代码来控制八段数码管显示。
可以根据自己的需求,编写数字、字符等不同的显示内容。
3. 在程序代码中,通过设置不同的数位选择引脚和段选引脚的高低电平来实现不同位上的显示。
第四步:烧录程序1. 将单片机与电脑通过USB线连接。
2. 打开软件,选择对应的单片机型号和烧录方式。
3. 将程序烧录至单片机中,确保烧录成功。
第五步:实验结果在将程序烧录到单片机后,即可观察八段数码管的显示结果。
根据实验编写的程序,数码管将会显示相应的数字和字符。
可以通过改变程序代码中的内容,实现不同的显示效果。
比如,可以设置不同的数值、字符以及使用动态显示等功能。
结论:通过本次实验,我们成功地搭建了一个八段数码管的显示电路,并利用单片机编写了相应的程序进行控制。
用汇编语言实现八段数码管显示

用汇编语言实现八段数码管显示一、实验要求利用实验仪提供的显示电路,动态显示一行数据.二、实验目的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 ; 段控制口LEDBuf equ 60h ; 显示缓冲Num equ 70h ; 显示的数据DelayT equ 75h ;ljmp StartLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: ;mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDisplayLED:mov r0, #LEDBufmov r1, #6 ;mov r2, #00100000b ;Loop:mov dptr, #OUTBITmov a, #0movx @dptr, a ;mov a, @r0mov dptr, #OUTSEGmovx @dptr,amov dptr, #OUTBITmov a, r2movx @dptr, a ;mov r6, #01call Delaymov a, r2 ;rr amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx @dptr, a ;retStart:mov sp, #40hmov Num, #0MLoop:inc Nummov a, Nummov b, amov r0, #LEDBufFillBuf:mov a, banl a, #0fhmov dptr, #LEDMapmovc a, @a+dptr ;mov @r0,a ;inc r0inc bcjne r0, #LEDBuf+6, FillBufmov DelayT,#0DispAgain:call DisplayLED ;djnz DelayT,DispAgain ljmp MLoopend。
硬件实验十--八段数码管显示

硬件实验十 八段数码管显示一、实验要求利用实验仪提供的显示电路,动态显示一行数据.二、实验目的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)数据总线连线 连接孔1 连接孔2 1 KEY/LED_CS CS0七段数码管的字型代码表如下表:五、程序框图程序代码OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口LEDBuf equ 60h ; 显示缓冲Num equ 70h ; 显示的数据DelayT equ 75h ;ljmp StartLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: ;mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDisplayLED:mov r0, #LEDBufmov r1, #6 ;mov r2, #00100000b ;Loop:mov dptr, #OUTBITmov a, #0movx @dptr, a ;mov a, @r0mov dptr, #OUTSEGmovx @dptr,amov dptr, #OUTBITmov a, r2movx @dptr, a ;mov r6, #01call Delaymov a, r2 ;rr amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx @dptr, a ;retStart:mov sp, #40hmov Num, #0MLoop:inc Nummov a, Nummov b, amov r0, #LEDBufFillBuf:mov a, banl a, #0fhmov dptr, #LEDMapmovc a, @a+dptr ;mov @r0,a ;inc r0inc bcjne r0, #LEDBuf+6, FillBufmov DelayT,#0DispAgain:call DisplayLED ;djnz DelayT,DispAgain ljmp MLoopend硬件实验十一 键盘扫描显示实验一、实验要求在硬件实验十的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。
实验七 八段数码管显示

实验七八段数码管显示
1.实验目的:
了解数码管动态显示的原理。
2.实验要求:
利用实验仪提供的显示电路,动态显示一行数据.
3.实验说明:
本实验仪提供了8段码LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。
显示共有6位,用动态方式显示。
8位段码、6位位码是由两片74LS374输出。
位码经MC1413或ULN2003倒相驱动后,选择相应显示位。
本实验仪中 8位段码输出地址为0X004H,位码输出地址为 0X002H。
此处X是由CS40 决定,参见地址译码。
做键盘和LED实验时,需将CS40孔接到相应的地址译码上。
以便用相应的地址来访问。
例如,将CS40孔接到CS0上,则段码地址为08004H,位码地址为08002H。
4.实验器材:
(1)G2100 实验平台 1 台(2)LabMON51 仿真器 1 台
(3)计算机 1 台(4)实验连线若干
5.程序框图:
6.实验电路:
七段数码管的字型代码表如下表:
7.实验步骤:
(1)把第“40”号模块“键盘显示”的片选信号CS40孔接第“36”号模块“片选信
号”YS0(08000-08FFFH )孔。
(2)编程并调
试。
单片机实验八段数码管显示

“验证式"? 实验十一八段数码管显示;文件名(A11.ASM)OUTBIT equ 0e101h ; 位控制口CLK164 equ 0e102h ; 段控制口(接164时钟位) DA T164 equ 0e102h ; 段控制口(接164数据位) IN equ 0e103h ; 键盘读入口LEDBuf equ 60h ; 显示缓冲Num equ 70h ; 显示的数据DelayT equ 75h ;ljmp StartLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: ; 延时子程序mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDisplayLED:mov r0, #LEDBufmov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左边开始显示Loop:mov dptr, #OUTBITmov a, #00hmovx @dptr, a ; 关所有八段管mov a, @r0mov B, #8 ; 送164DLP:rlc amov r3, amov acc.0, cANL A, #0FDHmov dptr, #DA T164movx @dptr, amov dptr, #CLK164orl a,#02hmovx @dptr, aanl a,#0fDhmovx @dptr, amov a, r3djnz B, DLPmov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管mov r6, #1call Delaymov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管retStart: mov dptr,#0e100hmov a,#03hmovx @dptr,amov sp, #40hmov Num, #0MLoop:inc Nummov a, Nummov b, amov r0, #LEDBufFillBuf:mov a, banl a, #0fhmov dptr, #LEDMapmovc a, @a+dptr ; 数字转换成显示码mov @r0,a ; 显示在码填入显示缓冲inc r0inc bcjne r0, #LEDBuf+6, FillBufmov DelayT,#30DispAgain:call DisplayLED ; 显示djnz DelayT,DispAgainljmp MLoopend。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
八段数码管显示实验报告
一.设计目的
1.掌握数码管动态显示的原理;
2.学会用总线方式控制数码管显示;
3.熟悉利用单片机驱动数码管的电路及编程原理。
二.设计内容
利用实验箱提供的显示电路,设计一个能够动态显示一行数据的系统。
实验箱一般提供了6位8段码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。
显示共有6位,用动态方式显示。
能够正常显示数据之后,请改变一下数字的变化速度或者LED显示的方向。
三.实验原理
1.原理:当用总线方式驱动八段显示管时,请将八段的驱动方式选择开关拨到“内驱”位置;当用I/O方式驱动八段显示管时,请将开关拨到“外驱”位置。
本实验仪提供了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。
七段数码管的字型代码表如下表:
2. 3.程序
OUTBIT equ 08002h ; 位控制口
OUTSEG equ 08004h ; 段控制口
IN equ 08001h ; 键盘读入口
LEDBuf equ 60h ; 显示缓冲
Num equ 70h ; 显示的数据
DelayT equ 75h ;
ljmp Start
LEDMAP: ; 八段管显示码
db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h
Delay: ; 延时子程序
mov r7, #0
DelayLoop:
djnz r7, DelayLoop
djnz r6, DelayLoop
ret
DisplayLED:
mov r0, #LEDBuf
mov r1, #6 ; 共6个八段管
mov r2, #00100000b ; 从左边开始显示
Loop:
mov dptr, #OUTBIT
mov a, #0
movx @dptr, a ; 关所有八段管
mov a, @r0
mov dptr, #OUTSEG
movx @dptr,a
mov dptr, #OUTBIT
mov a, r2
movx @dptr, a ; 显示一位八段管
mov r6, #01
call Delay
mov a, r2 ; 显示下一位
rr a
mov r2, a
inc r0
djnz r1, Loop
mov dptr, #OUTBIT
mov a, #0
movx @dptr, a ; 关所有八段管 ret
Start:
mov sp, #40h
mov Num, #0
MLoop:
inc Num
mov a, Num
mov b, a
mov r0, #LEDBuf
FillBuf:
mov a, b
anl a, #0fh
mov dptr, #LEDMap
movc a, @a+dptr ; 数字转换成显示码
mov @r0,a ; 显示在码填入显示缓冲
inc r0
inc b
cjne r0, #LEDBuf+6, FillBuf
mov DelayT,#30
DispAgain:
call DisplayLED ; 显示
djnz DelayT,DispAgain
ljmp MLoop
end
四.设计步骤
1.根据任务书中的系统性能要求,设计实验流程框图;
2.学习课程设计相关的原理知识,特别是数码管动态显示的原理;
3.对设计出的流程框图,使用汇编语言完成源代码的编写;
4.在实验箱配套软件上完成汇编程序的初步调试;
5.连接实验箱,完成系统功能性测试;
6.完成课程设计报告,报告内容包括:
a、程序设计流程框图;
b、说明设计的依据;
c、记录程序测试的过程;
d、说明实验过程中遇到的问题和解决的方法。
五.实验结果
实验现象:显示示数依次123456 234567 345678 456789
56789A 6789AB 789ABC 89ABCD 9ABCDE
ABCDEF BCDEF0 CDEF01 DEF012 EF0123 F01234
012345 123456
实验结论:成功设计出能够动态显示一行数据的系统,并且可以改变数字的变化速度。
六.实验心得
为期一周的单片机学习过去了,在这段时间里,老师通过以做实验和修改实验代码等形式来增强我们专业课程知识综合应用能力和实践能力。
在做实验的过程中,老师还反复强调
要多思考多实践。
通过这一周的学习,我了解了单片机的基础知识,知道单片机实验板,它由8031、8155,eprom2764,max232键盘及显示器组成。
其中8155片内有256个ram单元,接6个7段码显示器和8个按键作输入。
在这里,要感谢老师的悉心指导和栽培,在以后在学习过程中,我会更加注视实践操作,使自己更好地学习专业知识。