数码管显示设计与实现

合集下载

数码管动态显示实验报告

数码管动态显示实验报告

一、实验目的1. 掌握数码管动态扫描显示的原理和编程实现方法;2. 熟悉单片机与数码管之间的接口连接;3. 学会使用定时器中断控制数码管的动态显示;4. 培养动手能力和问题解决能力。

二、实验原理数码管动态显示是通过单片机控制多个数码管同时显示不同的数字或字符,利用人眼的视觉暂留效应,实现快速切换显示内容,从而在有限的引脚数下显示更多的信息。

实验中,我们采用动态扫描的方式,依次点亮数码管,通过定时器中断控制扫描速度。

三、实验器材1. 单片机开发板(如51单片机、AVR单片机等);2. 数码管(共阳/共阴自选);3. 连接线;4. 电阻;5. 实验台;6. 编译器(如Keil、IAR等)。

四、实验步骤1. 设计电路图:根据实验要求,设计单片机与数码管的连接电路图,包括数码管的段码、位选信号、电源等。

2. 编写程序:使用C语言或汇编语言编写程序,实现数码管的动态显示功能。

(1)初始化:设置单片机的工作模式、定时器模式、端口方向等。

(2)显示函数:编写显示函数,实现数码管的点亮和熄灭。

(3)定时器中断服务程序:设置定时器中断,实现数码管的动态扫描。

3. 编译程序:将编写的程序编译成机器码。

4. 烧录程序:将编译后的程序烧录到单片机中。

5. 连接电路:将单片机与数码管连接好,包括数码管的段码、位选信号、电源等。

6. 运行实验:打开电源,观察数码管的显示效果。

五、实验结果与分析1. 实验结果:数码管按照预期实现了动态显示功能,依次点亮每位数码管,并显示出不同的数字或字符。

2. 分析:(1)通过调整定时器中断的周期,可以改变数码管的扫描速度,从而控制显示效果。

(2)在编写显示函数时,要考虑到数码管的共阳/共阴特性,选择合适的点亮和熄灭方式。

(3)在实际应用中,可以根据需要添加其他功能,如显示时间、温度等。

六、实验总结1. 通过本次实验,掌握了数码管动态显示的原理和编程实现方法。

2. 熟悉了单片机与数码管之间的接口连接,提高了动手能力。

数电实验报告数码管显示控制电路设计

数电实验报告数码管显示控制电路设计

数电实验报告数码管显示控制电路设计实验目的:设计一个数码管显示控制电路,实现对数码管的显示控制。

实验器材:数码管、集成电路、电阻、开关、电源等。

实验原理:数码管是一种用它们来显示数字和字母的一种装置。

它由几个独立的发光二极管组成,每个数字由不同的发光二极管的组合表示。

对数码管的显示控制通常使用多路复用技术实现,即通过控制数码管的分段和共阴极或共阳极来实现不同数字的显示。

实验步骤:1.确定数码管的类型和接线方式。

本实验中使用共阳数码管,数码管共阳极通过电阻连接到正极电源。

2.选取适当的集成电路作为显示控制电路。

本实验中选择CD4511作为显示控制芯片,它可以实现对4位共阳数码管的显示控制。

3.连接电路。

将4位共阳数码管的阳极分别连接到CD4511芯片的A、B、C和D端口,共阴极连接到电源正极。

将CD4511芯片的输入端口IN1、IN2、IN3和IN4连接到微控制器的输出端口,控制微控制器输出的电平来选通不同的数码管。

4.设置微控制器的输出。

通过编程或手动设置微控制器的输出端口来控制数字的显示。

根据需要显示的数字,将相应的输出端口设置为高电平,其余端口设置为低电平。

通过适当的延时控制,便可以实现数字的连续显示。

实验结果与分析:经过上述步骤完成电路搭建后,我们可以通过改变微控制器的输出端口来控制数码管的显示。

当我们设置不同的输出端口为高电平时,相应的数码管会显示对应的数字。

通过适当的延时控制,我们可以实现数字的连续显示,从而实现对数码管的显示控制。

实验结论:通过本次实验,我们成功地设计并实现了一个数码管显示控制电路。

通过对微控制器输出端口的控制,我们可以实现对数码管的数字显示控制。

这对于数字显示系统的设计和开发具有重要意义。

实验心得:通过本次实验,我对数码管的显示控制有了更深入的了解。

数码管作为一种常见的数字显示装置,广泛应用于各种电子设备中。

掌握其显示控制原理和方法对于电子技术爱好者来说至关重要。

通过实际操作,我对数码管显示控制电路的设计和实现有了更深入的认识,同时也提高了我对数字显示系统的理解和设计能力。

《FPGA设计与应用》数码管显示实验

《FPGA设计与应用》数码管显示实验

《FPGA设计与应用》数码管显示实验一、实验目的1.学习动态数码管的工作原理;2.实现对EGO1开发板四位动态数码管的控制;二、实验内容实现对EGO1开发板四位动态数码管的控制,使其能够正常工作;三、实验要求在EGO1开发板上显示想要的数字。

四、实验背景知识1.LED数码管基础知识在数码管上显示数字就是将相应的段位点亮组成要显示的数字,共阴数码管的码值表如下所示,‘1’代表相应的管脚输出高电平,点亮相应段位,‘0’代表相应的管脚输出低电平,不点亮相应段位。

2.动态数码管原理EGO1 开发板上使用的是共阴极动态数码管,这种数码管有四个共阴极分别选通对应的每位数码管,四位数码管的八个段码脚连接在一起。

动态数码管显示的原理是:每次选通其中一位,送出这位要显示的内容,然后一段时间后选通下一位送出对应数据,4 个数码管这样依次选通并送出相应的数据,结束后再重复进行。

这样只要选通时间选取的合适,由于人眼的视觉暂留,数码管看起来就是连续显示的。

五、实验方案及实现1、数码管显示的设计共分3个模块:(1)数码管封装模块(2)数码管设计模块(3)顶层模块数码管封装模块代码:module smg_ip_model(clk,data,sm_wei,sm_duan);input clk;input [15:0] data;output [3:0] sm_wei;output [7:0] sm_duan;integer clk_cnt;reg clk_400Hz;always @(posedge clk)if(clk_cnt==32'd100000)begin clk_cnt <= 1'b0; clk_400Hz <= ~clk_400Hz;endelseclk_cnt <= clk_cnt + 1'b1;reg [3:0]wei_ctrl=4'b1110;always @(posedge clk_400Hz)wei_ctrl <= {wei_ctrl[2:0],wei_ctrl[3]}; reg [3:0]duan_ctrl;always @(wei_ctrl)case(wei_ctrl)4'b1110:duan_ctrl=data[3:0];4'b1101:duan_ctrl=data[7:4];4'b1011:duan_ctrl=data[11:8];4'b0111:duan_ctrl=data[15:12];default:duan_ctrl=4'hf;endcasereg [7:0]duan;always @(duan_ctrl)case(duan_ctrl)4'h0:duan=8'b0011_1111;4'h1:duan=8'b0000_0110;4'h2:duan=8'b0101_1011;4'h3:duan=8'b0100_1111;4'h4:duan=8'b0110_0110;4'h5:duan=8'b0110_1101;4'h6:duan=8'b0111_1101;4'h7:duan=8'b0000_0111;4'h8:duan=8'b0111_1111;4'h9:duan=8'b0110_1111;4'ha:duan=8'b0111_0111;4'hb:duan=8'b0111_1100;4'hc:duan=8'b0011_1001;4'hd:duan=8'b0101_1110;4'he:duan=8'b0111_1000;4'hf:duan=8'b0111_0001;数码管设计模块module test(clk,data);input clk;output [15:0]data;reg clk_1Hz;integer clk_1Hz_cnt;always @(posedge clk)if(clk_1Hz_cnt==32'd2*******-1)begin clk_1Hz_cnt <= 1'b0; clk_1Hz <= ~clk_1Hz;end elseclk_1Hz_cnt <= clk_1Hz_cnt + 1'b1;reg [39:0]disp=40'h1234567890;reg [15:0]data;always @(posedge clk_1Hz)begindisp <= {disp[35:0],disp[39:36]};data <= disp[39:24];endEndmodule顶层模块module smg_ip(clk,sm_wei,sm_duan);input clk;output [3:0]sm_wei;output [7:0]sm_duan;wire [15:0]data;wire [3:0]sm_wei;wire [7:0]sm_duan;test U0 (.clk(clk),.data(data));smg_ip_model U1(.clk(clk),.data(data),.sm_wei(sm_wei),.sm_duan(sm_duan)); endmodule六、实验结果Vivado仿真:上实验板实操:七、实验心得次实验主要学习了利用vivado软件实现数码管的显示,利用编程来实现,并且还对动态数码管的原理进行了一定的学习,包括上次实验学习到的模块化设计,方便程序的调试,程序运行过程中并不顺利,一直没有创建出pin文件夹,最后还是在老师的帮助下完成了pin文件夹的创建,导入到板子后完成了本次实验的设计。

《FPGA设计与应用》数码管显示实验一

《FPGA设计与应用》数码管显示实验一

《FPGA设计与应用》数码管显示实验一、实验目的和要求
1.学习动态数码管的工作原理;
2.实现对EGO1开发板四位动态数码管的控制;
二、实验内容
实现对EGO1开发板四位动态数码管的控制,使其能够正常工作;
三、实验要求
在EGO1开发板上显示想要的数字。

四、操作方法与实验步骤
1、八段数码管的动态显示原理:
2、数码管显示的设计共分3个模块:
(1)数码管封装模块
(2)数码管设计模块
(3)顶层模块
数码管动态显示的MODULE实现:
模块顶层设计——显示4个(位)十进制数
逻辑实现:
确定当前显示的位
确定当前“位”需要显示的“数”:
将“数”翻译成相应的“段码”
仿真测试台代码编写与仿真测试定义时间标尺:
定义测试Moudle
实例化被测Moudle
定义激励信号与响应信号
构造激励信号:
五、实验数据记录和处理实验代码如下:
设计文件:(部分)
仿真文件:
约束文件:
六、实验结果与分析网表结构:
仿真图像:
实物图:
七、讨论和心得
通过这次实验,我学会了数码管的动态显示,每一个数码管共用一套电路,显示时只需控制哪一个数码管进行显示。

虽然一次只能控制单独一个数码管进行显示,但可以快速切换数码管显示,利用人眼的”视觉暂留"来“同步”进行显示。

最后我明白了我们不要遇到一点困难就退缩,就去向老师同学寻求帮助,自己是自己最好的老师,只有我们靠自己的不断修改出正确结果,才会对这个知识掌握的更加透彻。

数字显示器实验报告

数字显示器实验报告

一、实验目的1. 了解数字显示器的基本原理和分类。

2. 掌握数字显示器的设计方法和应用。

3. 学会使用数码管和LCD显示器进行数字显示。

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

二、实验内容1. 数码管显示实验2. LCD显示器显示实验三、实验原理1. 数码管显示原理:数码管是一种半导体发光器件,由若干个发光二极管(LED)组成,每个LED代表一个数码管的笔画。

通过控制LED的亮灭,可以显示不同的数字和字符。

2. LCD显示器显示原理:LCD显示器是一种液晶显示器,通过液晶分子的旋转控制光的透过与阻挡,实现图像的显示。

LCD显示器主要由液晶面板、背光源、偏振片、驱动电路等组成。

四、实验步骤1. 数码管显示实验(1)搭建电路:将数码管与AT89C51单片机连接,连接方式包括共阴极和共阳极两种。

(2)编写程序:使用C语言编写程序,实现数码管显示数字和字符。

(3)调试程序:使用Keil软件对程序进行编译和调试,观察数码管显示效果。

2. LCD显示器显示实验(1)搭建电路:将LCD显示器与AT89C51单片机连接,连接方式包括并行和串行两种。

(2)编写程序:使用C语言编写程序,实现LCD显示器显示数字和字符。

(3)调试程序:使用Keil软件对程序进行编译和调试,观察LCD显示器显示效果。

五、实验结果与分析1. 数码管显示实验结果:通过编写程序,数码管能够显示数字和字符,实现了实验目的。

2. LCD显示器显示实验结果:通过编写程序,LCD显示器能够显示数字和字符,实现了实验目的。

3. 分析:(1)数码管显示实验:在实验过程中,发现数码管的共阴极和共阳极连接方式不同,需要根据实际连接方式编写程序。

此外,为了提高显示效果,需要对数码管进行动态扫描显示。

(2)LCD显示器显示实验:在实验过程中,发现LCD显示器的并行和串行连接方式不同,需要根据实际连接方式编写程序。

此外,为了提高显示效果,需要对LCD显示器进行初始化和设置显示模式。

数电实验报告数码管显示控制电路设计

数电实验报告数码管显示控制电路设计

数电实验报告数码管显示控制电路设计一、实验目的1.学习数码管介绍和使用;2.熟悉数码管控制电路设计思路和方法;3.掌握数码管显示控制电路的实验过程和步骤。

二、实验原理数码管是数字显示器件,具有低功耗、体积小、寿命长等优点。

常见的数码管有共阳极和共阴极两种。

共阳极数码管的阳极端口是一个共用的端口,通过将不同的阴极端口接地来控制数码管的发光情况。

共阴极数码管的阴极端口是一个共用的端口,通过将不同的阳极端口接地来控制数码管的发光情况。

数码管的控制电路可以使用逻辑门电路或微控制器来实现。

本实验采用逻辑门电路来设计数码管显示控制电路。

三、实验器材和器件1.实验板一块;2.74LS47数码管译码器一颗;3.共阴极数码管四个;4.逻辑门IC:7404、7408、7432各一个;5.杜邦线若干。

四、实验步骤1.将74LS47数码管译码器插入实验板上的相应位置,并用杜邦线连接74LS47和逻辑门IC的引脚:1)将74LS47的A、B、C和D引脚依次连接到7408的输入端;2)将74LS47的LE引脚连接到VCC(高电平,表示使能有效);3)将74LS47的BI/RBO引脚连接到GND(低电平,表示译码输出);4)将7408的输出端依次连接到7432的输入端;5)将7432的输出端依次连接到数码管的阴极端口。

2.将四个数码管的阳极端口分别连接到4个控制开关上,并将开关接地。

3.将实验电路接入电源,调整电压和电流,观察数码管的显示情况。

五、实验结果和分析实验结果显示,控制开关的状态可以控制数码管的显示内容。

当其中一控制开关接地时,对应的数码管会显示相应的数字。

通过调整开关的状态,可以实现不同数字的显示。

六、实验总结通过这次实验,我学会了数码管的基本使用方法和控制电路的设计思路。

数码管作为一种数字显示元件,广泛应用于各种电子产品中,掌握其控制方法对于电子工程师来说非常重要。

在今后的学习和工作中,我将继续深入研究数码管的相关知识和应用,提高自己的技术水平。

数码管显示实验 实验报告

数码管显示实验 实验报告

数码管显示实验实验报告一、实验目的本次数码管显示实验的主要目的是深入了解数码管的工作原理和显示控制方式,通过实际操作掌握数码管与微控制器的接口技术,并能够编写相应的程序实现各种数字和字符的显示。

二、实验原理数码管是一种由多个发光二极管组成的显示器件,常见的有共阴数码管和共阳数码管两种类型。

共阴数码管是将所有发光二极管的阴极连接在一起,当阳极接高电平时,相应的二极管发光;共阳数码管则是将所有发光二极管的阳极连接在一起,当阴极接低电平时,相应的二极管发光。

在控制数码管显示时,通常采用动态扫描的方式,即依次快速地给每个数码管的段选端送入相应的字形码,同时使位选端选通对应的数码管,利用人眼的视觉暂留效应,使人看起来好像所有数码管同时在显示。

三、实验设备与材料1、实验开发板2、数码管模块3、杜邦线若干4、电脑5、编程软件四、实验步骤1、硬件连接将数码管模块与实验开发板进行连接,确定好段选和位选引脚的连接。

检查连接是否牢固,确保电路无短路或断路现象。

2、软件编程打开编程软件,选择相应的开发板型号和编程语言。

定义数码管的段选和位选引脚。

编写控制程序,实现数字 0 到 9 的循环显示。

3、编译与下载对编写好的程序进行编译,检查是否有语法错误。

将编译成功的程序下载到实验开发板上。

4、观察实验现象接通实验开发板的电源,观察数码管的显示情况。

检查显示的数字是否正确,显示的亮度和稳定性是否符合要求。

五、实验结果与分析1、实验结果数码管能够正常显示数字 0 到 9,并且能够按照设定的频率循环显示。

显示的数字清晰、稳定,没有出现闪烁或模糊的现象。

2、结果分析程序编写正确,能够准确地控制数码管的段选和位选信号,实现数字的显示。

动态扫描的频率设置合理,既保证了显示的稳定性,又不会出现明显的闪烁。

六、实验中遇到的问题及解决方法1、问题数码管显示出现闪烁现象。

解决方法调整动态扫描的频率,增加扫描的速度,减少每个数码管的点亮时间,从而减轻闪烁现象。

单片机实验两位数码管显示报告

单片机实验两位数码管显示报告

一、实验目的1、在之前单键实验和中断控制数码管“静态”显示实验的基础上,把单键判断、数码管显示和中断结合起来编写中断程序实现单键控制一位数码管;2、在实现控制一位数码管显示的基础上用单键控制两位数码管显示。

二、实验所需器材与软件硬件:电脑、传输线、AT89S52单片机软件:编程软件Keil uVision3;读写软件MePro V5.02三、实验程序的及其分析:1、单键控制一位数码管显示主要设计思路:在中断主程序后加入单键判断键按下情况判断语句,把数码管显示程序放在中断子程序中。

当有键按下且有中断请求时,重新给数码管显示偏移地址赋值,从而改变显示内容。

程序:ORG 0000HAJMP MAIN ;转向主程序ORG 001BH ;中断矢量地址AJMP T_INT ;转向中断服务程序MAIN: ;主程序标号MOV R3,#0 ;表偏移地址MOV DPTR,#TAB ;把表头地址赋值给寄存器DPTRMOV TMOD,#10H ;设定定时器工作于模式1MOV TH1,#0FEH ;定时器赋初值MOV TL1,#0EHSETB ET1 ;开中断SETB EASETB TR1 ;启动定时器LOOP1:JNB P1.4, LOOP4AJMP LOOP1LOOP4:ACALL DELAYJNB P1.4, LOOP_ADD 单键按下判断程序LOOP_ADD:INC R3CJNE R3,#10,LOOP8MOV R3,#0LOOP8: AJMP LOOP1T_INT: MOV TH1,#0FEHMOV TL1,#0EHMOV A,R3 中断程序内嵌的数码管显示程序MOVC A,@A+DPTRMOV P0,AMOV P2,#11111110BRETITAB:DB 0C0H,0F9H,0A4H,0B0H ,99H,92H,82H,0F8H ;表内容DB 80H,90HDELAY:MOV R5,#64HLOOP5:MOV R7,#0FFHLOOP6:NOPNOP 用于单键按下防抖动的延时程序DJNZ R7,LOOP6DJNZ R5,LOOP5RET2、单键控制两位数码管显示设计思路:用两个寄存器分别存放数码管显示的个位和十位,并且在数码管显示程序中用移位指令对数码管的位码进行移位,使每次执行中断程序时显示一位数,循环两次中断程序后“静态”显示两位数字。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
n 每个数码管的八个位段分别与一个八位I/O端口相连。I/O端口只要有 字型码输出,数码管就显示给定字符,并保持不变,直到I/O口输出新 的段码。
STM32
项目三 数码管显示设计与实现
认识数码管
n 数码管的显示方法:有静态显示和动态显示两种方法。
n 动态显示
n 动态显示是一种一位一位地轮流点亮各位数码管的显示方式,即在某 一时段,只选中一位数码管的“位选端”,并送出相应的字型编码;
n 只有加入了这些东西,才能成为可以工作的STM32芯片。
2. STM32存储器映射
n STM32存储器的地址空间被划分为大小相等的8块区域,其中: ① Peripherals是外设的存储器映射,对该区域操作,既对相应外设进行操作; ② SRAM是运行时临时存放代码的地方; ③ Flash是存放代码的地方; ④ System Memory是STM32出厂时自带的,只能使用,不能写或擦除; ⑤ Option Bytes是可以按照用户的需要进行配置。
STM32
数码管显示设计与实现
项目三 数码管显示设计与实现
任务6 数码管静态显示设计与实现
n 目标
n 利用STM32与数码管的接口技术,完成STM32的数码管静态显示 电路设计和程序的设计、运行及调试。
n 任务要求
n 使用STM32F103R6芯片的PC0~PC15引脚分别接2个共阴极LED 数码管。
RAM,可以缓存,并且可以执行指令。 n 外部RAM区的后半段(0x8000_0000~0x9FFF_FFFF)。这个区域除了不可
以缓存外,其他与前半段相同。
STM32
项目三 数码管显示设计与实现
STM32存储器映射
n Cortex-M3存储器映射
2. Cortex-M3存储器映射区域分析
⑤ 外部外设区(0xA000_0000~0xDFFF_FFFF) n 这个区域大小是1GB,是用于连接外部设备的,在这个区域划分为外部外设区
数码管静态显示程序设计
n 数码管显示功能实现
n 程序控制数码管内部的不同位段点亮,能显示出需要的字符。 n 本电路采用共阴极结构的数码管,其公共端接地,这样可以控制每
一只LED的阳极电平来使其发光或熄灭,阳极为高电平发光,为 低电平熄灭。 n “0~9”十个字符的字型编码如下:
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f n 通过PC0~PC15输出“0~9”十个字符的字型编码,就可以在数码管上
n Cortex-M3存储器映射结构。 n 只要芯片制造商按照Cortex-M3存储器的结构,进行各自芯片的存储器结构设
计,就允许芯片制造商灵活的分配存储器空间,以制造出各具特色的基于 Cortex-M3的芯片。
STM32
项目三 数码管显示设计与实现
STM32存储器映射
n Cortex-M3存储器映射
STM32
项目三 数码管显示设计与实现
【技能训练3-2】编写外部设备文件
n 在任务6的数码管静态显示中,主文件smgxs.c 内容太多,没有条理, 如何解决呢?
n 这是由于数码管外部设备的初始化以及其它相关代码,都写在主文件中了。
n 可以把外部设备分类单独写一个文件,这样就可以对数码管静态显示 的代码进行优化了。
过系统总线来访问。 n 在 SRAM 区的底部,还有一个
1MB 的位带区,这个位带区还有一个对
32MB的“位带别名(alias)区”。也就是说,位带别名区里面的每个字对应位
带区的一个bit位,每个位变量是32位(既1个字4个字节)。 n 位带操作只适用于数据访问,不适用于取指。通过位带的功能,我们访问一个
n 把延时函数和数码管都分开单独写一个文件和头文件,并保存在其对应的子目录里, 使得数码管循环显示0~20的主文件变得简洁明了,还具有规范性和可读性。
① Cortex-M3存储器映射是预定义的,并且还规定好了哪个位置使用哪条 总线;
② Cortex-M3存储器系统支持“位带(bit‐band)操作”。通过位带操作, 实现了对单一bit位的操作。位带操作仅适用于一些特殊的存储器区域中;
③ Cortex-M3存储器支持非对齐访问和互斥访问; ④ Cortex-M3存储器支持小端模式和大端模式。
显示“0~9” 数字。
n 数码管静态显示代码见源程序。
STM32
项目三 数码管显示设计与实现
【技能训练3-1】共阳极LED数码管应用
n 如何使用共阳极LED数码管实现0~20循环显示呢?
n 在任务6电路中,采用的是共阴极数码管。这里使用的是共阳极数 码管,其公共端需要接电源。
n 共阳极数码管显示“0~9”十个字符的字型编码与共阴极数码管的字 型编码是反相的,字型编码如下:
STM32
项目三 数码管显示设计与实现
LED数码管引脚及内部结构
管脚排列
共阴极数码管
STM32
共阳极数码管
项目三 数码管显示设计与实现
认识数码管
n 数码管的字型编码
n 要使数码管上显示某个字符,必须使它的8个位段上加上相应的电 平组合,即一个8位数据,这个数据就叫该字符的字型编码。
n 通常用的位段的编码规则如下图所示。 D7 D6 D5 D4 D3 D2 D1 D0
1. Cortex-M3存储器映射实现
n 由于Cortex-M3对设备的地址进行了重新的映射,当访问存储器或外设时,都 是按照映射后的地址进行访问的。
n Cortex-M3存储器的4G地址空间被划分为大小相等的8块区域(是粗线条的), 每块区域大小为512M。主要包括代码、SRAM、外设、外部RAM、外部设备、 专用外设总线-内部、专用外设总线-外部、特定厂商等。
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 n 在程序中,若继续使用共阴极数码管的字型编码,可以通过对共阴极
字型编码取反来获得共阳极数码管的字型编码。
n 共阳极数码管静态显示代码见源程序。
STM32
项目三 数码管显示设计与实现
共阳极数码管静态显示电路设计
的前半段和外部外设区的后半段2部分,每部分大小是512MB。 n 外部RAM区和外部外设区之间的区别是:外部RAM区允许执行指令,而外部
设备区是不允许执行指令的。 ⑥ 系统区(0xE000_0000~0xFFFF_FFFF) n 这个区域是专用外设和供应商指定功能区域,这个区域是不能执行代码的。 n 系统区主要包括Cortex-M3内核的系统级组件、内部专用外设总线、外部专用
n STM32存储器映射
n 前面介绍的Cortex-M3存储器映射,只是一个粗线条的模板。下面我们就 针对ST公司的STM32存储器,来介绍STM32存储器映射。
1. Cortex-M3存储器与STM32存储器映射对比
n 通过Cortex-M3存储器与STM32存储器映射对比,可以看出他们是很相似,不 同的是STM32加入了很多实际的东西,如:Flash、SRAM等。
n 数码管的结构和工作原理
n 数码管内部是由八个LED(简称位段)组成,其中有七个条形LED 和一个小圆点LED。
n LED导通时,相应的线段或点发光,将这些LED排成一定图形,常 用来显示数字0~9、字符A~G,还可以显示H、L、P、R、U、Y、 符号“—”及小数点“.”等。
n LED数码管可以分为共阴极和共阳极两种结构。
n 在下一时段按顺序选通另外一位数码管,并送出相应的字型编码; n 依此规律循环下去,即可使各位数码管分别间断地显示出相应的字符。
这一过程称为动态扫描显示。
STM32
项目三 数码管显示设计与实现
数码管静态显示电路设计
n 按照任务要求,采用静态显示方式,数码管显示电路是由 STM32F103R6、2个1位的共阴极LED数码管构成。
2. Cortex-M3存储器映射区域分析
① 代码区(0x0000_0000~0x1FFF_FFFF) n 程序可以在代码区、内部SRAM区以及外部RAM区中执行,通常是把程序放到
代码区,从而使取指和数据访问各自使用自己的总线(指令总线与数据总线是
分开的)。 ② SRAM区(0x2000_0000~0x3FFF_FFFF) n 这个区域用于片内SRAM,是用于让芯片制造商连接片上的SRAM,这个区通
n STM32F103R6的PC0~PC7引脚接个位数码管的A~G七个位段; n PC8~PC15引脚接十位数码管的A~G七个位段; n 由于小数点“.”DP位不用,PC7和PC15引脚也就不用了。STM32源自项目三 数码管显示设计与实现
数码管静态显示电路设计
STM32
项目三 数码管显示设计与实现
STM32
项目三 数码管显示设计与实现
STM32存储器映射
n Cortex-M3存储器映射
n 存储器映射是指把芯片中或芯片外的FLASH、RAM以及外设等进行了统 一编址,即用地址来表示对象。
n 这个地址绝大多数是由厂家规定好的,用户只能用而不能改。 n 用户只能在接有外部RAM或FLASH的情况下可进行自定义。
n 换句话说,Cortex-M3定义了一个存储器结构,ST公司是按照Cortex -M3的存储器定义,设计出了自己的存储器结构,ST公司的STM32的 存储器结构必须按照Cortex-M3定义的存储器结构来进行设计。
STM32
项目三 数码管显示设计与实现
STM32存储器映射
n 认识Cortex-M3存储器
带别名区,用于快捷访问外设寄存器。 ④ 外部RAM区(0x6000_0000~0x9FFF_FFFF) n 这个区域大小是1GB,是用于连接外部RAM的,在这个区域划分为外部RAM
区的前半段和外部RAM区的后半段2部分,每部分大小是512MB。 n 外部RAM区的前半段(0x6000_0000~0x7FFF_FFFF)。这个区域用于片外
相关文档
最新文档