您的当前位置:首页正文

频率计设计

2023-03-30 来源:客趣旅游网
频率计的设计

目录

1 引言 ......................................................... 1

1.1课题设计的背景 .......................................... 1 1.2课题研究的目的和意义 .................................... 2 2 设计理念、技术指标及所需设备 ................................. 2

2.1设计理念 ................................................ 2 2.2设计指标及要求 .......................................... 3 2.3所用设备与器材 .......................................... 3 3 硬件设计方案 ................................................. 4

3.1设计系统原理框图及介绍 .................................. 4 3.2 电源 ................................................... 4 3.2放大整形电路 ............................................ 5 3.3 ARM开发板 .............................................. 7 3.4 1602液晶显示 ........................................... 8

3.4.1 简介 .............................................. 8 3.4.2管脚功能 .......................................... 9 3.4.3操作操纵 ......................................... 9

3.4.4字符集 ........................................... 10

3.4.5 LCD1602液晶显示图片 ............................. 11 3.5原理电路图 ............................................. 12 4 软件设计方案 ................................................ 12

4.1程序流程图 ............................................. 12 5 系统的调试及心得体会 ........................................ 13 5.1系统的调试及错误 .......................................... 13

5.2调试进程中的心得体会 ................................... 14 6 终止语 ...................................................... 14

6.1总结及体会 ............................................. 14 6.2致谢 ................................................... 15

参考文献 ...................................................... 15 附录 .......................................................... 16

1 引言

1.1课题设计的背景

数字频率计[1](DFM)是电子测量与仪表技术最基础的电子仪表类别之一, 数字频率计是运算机、通信设备、音频视频等科研生产领域不可缺少的测量仪器,而且它是数字电压表(DVM)必不可少的部件。现今数字频率计不仅是作为电压表、运算机、天线电广播通信设备、工艺进程自动扮装置。多种仪表仪器与家庭电器等许多电子产品中的数据信息输出显示器反映到人们眼帘。集成数字频率计由于所用元件少、投资少,体积小,功耗低,且靠得住性高,功能强,易于设计和研发,使得它具有技术上的有效性和应用的普遍性。不论从咱们用的彩色电视机、电冰箱,DVD,还有咱们此刻家庭经常使用到的数字电压表数字万用表等等都包括有频率计。此刻频率计已是向数字智能方向进展,即能够很精准的读数也精致易于操纵。数字频率计已是此刻频率计进展的方向,它不仅能够很方便的读数,而且还能够使频率的测量范围和测量准确度上都比模拟先进.而且频率计的利用已是很多的方面,数字卫星、数字通信等高科技的领域都有应用,今天数字频率计的进展已经不单单是一个小电子产品的进展也是整个民族乃至整个国家的进展,因此频率计的进展是一个整体的趋势。

而从民族产业上来讲,咱们在这种产业中还掉队于西方发达国家,这将会关系到民族产业的兴衰。因此咱们必需很重视当前的情形,学习发达国家的先进技术以进展本国的产业。

1.2课题研究的目的和意义

数字频率计[1]是运算机、通信设备、音频视频等科研生产领域不可缺少的测量仪器。随着人们文化生活水平的提高,加上此刻中国国力的上升,人民在不断的追求高质量生活的同时多数在紧密的关注着咱们的民族产业的进展前景。而频率计的进展虽是一个极小部份但也能够反映出我国民族产业进展的现状。我国在很多的方面都已不在是过去那个很贫困掉队的国家,可是关系着咱们国计民生的民族产业的进展却是不尽人意,不能不成为今天令人注目的核心。

通过本次课程设计,运用已学的课程知识,依照题目要求进行软硬件系统的设计和调试,对《嵌入式系统原理与应用》[6]课程中涉及的芯片结构、操纵原理、硬件和编程方面有必然的感性熟悉和实践操作能力,从而加深对本课程知识点的明白得,使自身应用只是能力、设计能力、调试能力和报告撰写能力等方面有显著的提高。

2 设计理念、技术指标及所需设备

2.1设计理念

说到用单片机设计[2]的频率计,那个地址说一下单片频率计ICM7216D。单片频率计ICM7216D是美国Intersil公司第一研制的专用测频大规模集成芯片。它是标准的28引脚的双列直插式集成电路,采纳单一的+5V稳压电源工作。它内含高频振荡器、10进制计数器、7段译码器、位多路复用器、能够直接驱动LED显示器的8段段码驱动器、8位位码驱动器。其大体的测频范围为DC至10MHz,假设加预置的分频电路,那么上限频率可达40MHz或100MHz,单片频率计ICM7216D只要加上晶振、量程选择、LED显示器等少数器件即可组成一个DC至40MHz的微型频率计,可用于频率测量、机械转速测量等方面的应用。还有,PTS2600是英国研制的一款微波频率计,该频率计能够测量频率高达26GHz的信号,而价钱才只有几万元,可谓是

物美价廉。PTS2600尽管是一个低价钱的微波频率计,但它能在四个波段有专门好的灵敏度测量40Hz到20GHz的频率。也能够用它来测量高达26GHz的频率,只是灵敏度稍稍低了一些。日常工作中,用它来测量VF/VHF/UHF频段的频率,也十分方便和准确。PTS2600利用一个12位数字的LCD液晶显示屏来显示所测得的频率、闸口时刻(分辨率相关)、菜单功能和频率表的测量结果。所有这些数值都是同时显示在一个屏幕上的。PTS2600的机箱采纳高标准的铝质材料制成,各模块安装在下方有钢板支承的母板上。模块相对独立,维修方便,要紧通过改换模块进行。 我国利用相检宽带测频技术设计的高精度频率计也超级具有冲破性和有效性。该项新技术及仪器是针对已有测频技术的特点及存在问题,推出完全新颖的检测精度高、便于实施且设备组成又比较经济的一种新技术及仪器。

2.2设计指标及要求

利用实验系统的资源来设计一个“频率计系统设计”。

利用ARM2110[3]的按时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过1302液晶显示出来。要求能够对0—250KHZ的信号频率进行准确计数,计数误差不超过-1—+1HZ。该课程设计需要咱们把握按时器处置,脉冲计数,动态数码显示设计方式。

2.3所用设备与器材

(1)电源模块

(2)放大整形电路(三极管9014和74LS00) (3)ARM开发板LM3S2110 (4)1602液晶显示

3 硬件设计方案

3.1设计系统原理框图及介绍

图1 原理框图

由上图知,一个被测信号通过放大整形再进入ARM开发板,然后通过1S的按时捕捉得出频率值,再经由LCD1602液晶显示器显示出数值。 3.2 电源

电源模块[4]——参考电压源为系统芯片如A/D、D/A转换IC或外设提供参

考电压,电路如图1。电压源以TL431为核心,RW1调剂参考电压,“电压输出一、2”调剂范围别离为0~2.5V、5~9V。

 参考电压源:“电压输出1”0~2.5V可调;“电压输出2”5~9V可调;恒流源:0~200mA可调。

图2 参考电压源

恒流源电路如图3所示,调剂电位器RW2能够改变恒流输出,调剂范围在0~200mA之间。

R4R5U2ARW2R73+12VC4-12V8Vdd+12out14VssR6U2B56+out27Q1C5R8Rs1OUT恒流Rx11J3R9R10S1C7C6 图3 恒流源

3.2放大整形电路

放大整形电路[5]能够采纳三极管9014和74LS00,其中9014组成放大器将输入频率为fx的周期信号如正弦波、三角波等进行放大。与非门74LS00组成施密特触发器,它对放大器的输出信号整形使之成为矩形脉冲。

图4 放大整形电路

运放模块——电路如图11,含4个结构一致的单元电路,运放CA3140能知足一样设计要求,运放LM7171能知足高频要求。运放的DL××用于跳线,以接通/断开连接。利用该模块时,标号为DL××、R××、C××不固定,可任意焊接电阻电容等,也可不焊。下面以图11(a)单元举例说明: (1)组成同相放大电路——信号从J1的1脚输入,R六、DL5短接,R二、C九、C13、DL1断开,接适当电阻R10、RW5组成同相放大电路,需调零就焊RW1。如要排除振荡,C13可接一个小电容。

(2)组成微分电路——信号从J1的3脚输入,C9接电容,R六、R10、DL5断开、C13不接,DL1短接,R二、RW5接适合电阻组成微分电路,假设需调零就焊RW1。如要排除振荡,C13可接一小电容。

(3)组成积分电路——信号从J1的3脚输入,R10接电阻,DL5断开,C九、RW5不接,DL1短接,R二、C13接适合的电阻和电容就组成积分电路,假设要调零就焊接RW1,不调零不焊RW1。总之,用该运放模块可组成同相、反相、差分、微分、积分、波形发生等各类电路,并可作传感输入接口,4个运放单元电路可单独利用,也可级联利用。J1~J6用于通过跳线方式改变输入、输出端口。

图5 运放模块a

图6 运放模块b

3.3 ARM开发板

LM3S2110微操纵器包括了以下特性:

32位RISC性能 内部存储器

通用按时器[7]

-3个 通用按时器模块(GPTM),每一个模块都能提供2个16位的按时器/计数器。 每一个通用按时器模块都能够被设置为独立运作的按时器或事件计数器(总共有8个)可用作单个32位的按时器(最多4个)或用作单个32位的实不时钟(RTC)以捕捉事件,或用作脉宽调制输出(PWM) -16位定时器模式

通用按时器功能,并带一个8位的预分频器 可编程单次触发按时器 可编程周期按时器[10]

在调试的时候,当操纵器发出CPU暂停标志时,用户可设定暂停周期或单次模式下的计数 -16位输入捕获模式

提供输入边沿计数捕捉功能 提供输入边沿时刻捕捉功能 -16位PWM模式

简单的PWM模式,对PWM信号输出的取反可由软件编程决定

PWM

-1个 PWM信号发生模块,每个模块都带有1个16位的计数器、2个比较器, 1个PWM信号发生器、以及一个死区发生器 -1个16位的计数器

运行在递减或递增/递减模式 输出频率由一个16位的装载值操纵 可同步更新装载值

当计数器的值抵达零或装载值的时候生成输出信号 -2个 PWM比较器

3.4 1602液晶显示

3.4.1 简介

工业字符型液晶,能够同时显示16x02即32个字符。(16列2行) 注:

为了表示的方便 ,后文皆以1表示高电平,0表示第电平。

3.4.2管脚功能

1602[8]采纳标准的16脚接口,其中: 第1脚:VSS为电源地 第2脚:VDD接5V电源正极

第3脚:V0为液晶显示器对照度调整端,接正电源时对照度最弱,接地电源时对照度最高(对照度太高时会产生“鬼影”,利历时能够通过一个10K的电位器调整对照度)。

第4脚:RS为寄放器选择,高电平1时选择数据寄放器、低电平0时选择指令寄放器。

第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

第6脚:E(或EN)端为使能(enable)端。 第7~14脚:D0~D7为8位双向数据端。

第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。

3.4.3操作操纵 (1)操作操纵表 操作 读状态 写指令 读数据 写数据

(2)输入

RS=0,RW=1,E=1 RS=0,RW=0,

D0~7=指令码,E=H脉冲

RS=1,RW=1,E=1 RS=1,RW=0,

D0~7=数据,E=H脉冲

注:关于E=H脉冲——开始时初始化E为0,然后置E为1

3.4.4字符集

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同

[9]

的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、经常使用的符号、和日文化名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,咱们就能够看到字母“A”。

因为1602识别的是ASCII码,实验能够用ASCII码直接赋值,在单片机编程中还能够用字符型常量或变量赋值,如'A’。 以下是1602的16进制ASCII码表地址:

读的时候,先读左侧那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。 [编辑本段]指令集

1602通过D0~D7的8位数据端传输数据和指令。 显示模式设置: (初始化)

0011 0000 [0x38] 设置16×2显示,5×7点阵,8位数据接口; 显示开关及光标设置: (初始化)

0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效) 0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1),N=0(读或写一个字符后地址指针减1 &光标减1),S=1 且 N=1 (当写一个字符后,整屏显示左移),s=0 当写一个字符后,整屏显示不移动

数据指针设置: 数据首地址为80H,因此数据地址为80H+地址码(0-27H,40-67H)

其他设置: 01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。

3.4.5 LCD1602液晶显示图片

图7 1602液晶显示

3.5原理电路图

123456DD3.3V10KR510KR6U126272829303134358079787725242322PA0/U0RxPA1/U0TxPA2/SSI0ClkPA3/SSI0FssPA4/SSI0RxPA5/SSI0TxPA6/CCP1NCPC0/TCK/SWCLKPC1/TMS/SWDIOPC2/TDIPC3/TDO/SWOPC4PC5/C1+PC6/C2+PC7/C2-PB0/CCP0PB1/CCP2PB2/I2C0SCLPB3/I2C0SDAPB4/C0-PB5/C1-PB6/C0+PB7/TRSTnPD0/CAN0RxPD1/CAN0TxPD2PD3PD4/CCP3PD5PD6/FaultPD7/C0o666770719291908910111213959699100R17 5VA?12345678910111213141516GNDVCCVLRSRWENDB0DB1DB2DB3DB4DB5DB6DB7LED+LED-LCD3.3VR110KR210KR310KR410KR20 OPAMPA?VCC5VSINGALCC727374756521PE0PE1NCNCNCNCNCNCPF0/PWM0PF1/PWM1PF2NCNCNCNCNC4761605958464342 R161918171641403736C14B484922nFY1C156MHz505122nF9152133394554576369828794497A5253PG0PG1NCNCNCNCNCNCPH0PH1NCNC86858483VCCCMOD1CMOD16576 R15D3IN4148RSTn64VCC82032445668819333V39855143862887C9100nFC200.1uFC214.7uFC162.2uFS1C10100nFC11100nFC12C21100nF0.1uFR121.5KBOSC0OSC1NCNCNCNCGNDGNDGNDGNDGNDGNDGNDGNDGNDGNDGNDGNDGNDGNDAGNDAVDDVDDVDDVDDVDDVDDVDDVDDVDDAVDDAVDDVDD25VDD25VDD25VDD25LDORESETC190.1uFATitleCOMPONENT_0SizeBDate:File:NumberRevision28-Jun-2010D:\\大型作业\\新建文~1\\TU3.SCHSheet of Drawn By:612345 图8 原理电路图

4 软件设计方案

4.1程序流程图

开始信号放大整形清零定时器捕捉显示输出结束 图9 程序流程图

程序清单详见附件一

5 系统的调试及心得体会

5.1系统的调试及错误

图10程序调试错误a

图11 程序调试错误b

如上两图,在调试进程中碰到各类错误,如ARM文件没有覆盖,编程

进程中没有完善,还有未概念的管脚,但都通过一次又一次的调试把错误一一更正了。

5.2调试进程中的心得体会

在设计的进程中,碰到许许多多错误,但都通过一次又一次的纠正与调试更正了过来。而且在教师的帮忙下把按时捕捉的程序调试了出来。咱们得出,很多情形不去做是永久没有答案的,只有真正的切身去实践才能得出正确的答案,错误并非恐怖,恐怖的是不去做就永久不明白答案,也得不出自己想要的结果。

6 终止语

6.1总结及体会

在做数字频率计的设计时,开始是碰到很多的问题,比如咱们想如此微弱的信号是如何被数字频率计检测的呢,频率计究竟是什么设计原理呢,毕竟尚未接触过实际设计和开发,因此在考虑问题的时候往往是不全面的,也确实是说这次设计还很多的方面没有考虑全面,也必然存在着如此那样的问题。那个电路的设计有很多的不足,咱们的能力在很多方面也需要提高,通过这次小小的考验让咱们知道第一次接触的东西也是能融会贯通的,态度决定一切。

6.2致谢

通过这一个月的艰苦尽力,我的课程设计终于取得了专门大的进展,这一个月尽了自己的最大的尽力,去钻研那个系统,咱们接触了真正设计一个电子产品的全数进程,学到了很多实实在在的学问。

经历不知从何入手的无助,不知程序什么缘故犯错的苦恼,初现光芒的窃喜还有最后攻破难关的欢呼。此刻转头想一想,真的是很成心义。

超级感激指导教师徐会彬、张葵和王永明教师的指导,徐教师老是在百忙当中抽出时刻来对咱们悉心指导,为咱们提出了各方面的指导意见,为咱们提供各方面的重要资料,是咱们的工作进程中的中坚力量。

超级感激咱们组的成员,她们与我一路分担这段时刻的酸甜苦辣,她们悉心的指导,烈火的讨论,对知识的渴求各类美好的品质才使咱们能完本钱次课程设计。

参考文献

[1] 范圣一 著. ARM原理与嵌入式系统实战[M]. 机械工业出版社,2007年:P151~220 [2] 陈连坤 著. 嵌入式系统的设计与开发[M]. 清华大学出版社、北京交通大学出版社,2005年:P63~P90

[3] 刘南平 孙蕙芹 童一帆 苏梅 著. 单片机实训与开发教程[M]. 科学出版社,2020年:P155~197

[4] 艾永乐 付子义 著. 数字电子技术基础[M]. 中国电子出版社,2020年:P101~124

[5] 张伟 著. Protel 99SE 有效教程[M]. 人民邮电出版社,2020年:P26~71 [6] 周建功 著. ARM嵌入式系统大体教程[M]. 北京航空航天大学出版社,2005年:P35~P52

[7] 张晓伟 刘盼盼 著. ARM嵌入式系统设计原理与开发实例[M]. 电子工业出版社,2020年:P114~P133

[8] 姚燕南 著. 微机原理与接口技术[M]. 高等教育出版社,2001年:P79~P92 [9] 吴明晖 著. 基于ARM的嵌入式系统开发与应用[M]. 人民邮电出版社,2004年:P28~P33

[10] 冯涛 秦永左 著. 单片机原理及应用[M]. 国防工业出版社,2020年:P99~P109

附录

附录1:源程序

(1)按时捕捉程序:

#include \"systemInit.h\" #include #include #define PART_LM3S2110 #include

// 在CCP1管脚产生10KHz方波,为Timer2的16位输入边沿计数捕捉功能提供时钟源

void pulseInit(void) {

SysCtlPeriEnable(SYSCTL_PERIPH_TIMER0); // 使能TIMER0模块 SysCtlPeriEnable(CCP1_PERIPH); // 使能CCP1所在的GPIO端口

GPIOPinTypeTimer(CCP1_PORT, CCP1_PIN); // 配置相关管脚为Timer功能 TimerConfigure(TIMER0_BASE, TIMER_CFG_16_BIT_PAIR | // 配置TimerB为16位PWM

TIMER_CFG_B_PWM);

TimerLoadSet(TIMER0_BASE, TIMER_B, 600); // 设置TimerB初值 TimerMatchSet(TIMER0_BASE, TIMER_B, 300); // 设置TimerB匹配值 TimerEnable(TIMER0_BASE, TIMER_B); } // 按时器16位输入边沿计数捕捉功能初始化

void timerInitCapCount(void) {

SysCtlPeriEnable(SYSCTL_PERIPH_TIMER2); // 使能Timer模块

SysCtlPeriEnable(CCP0_PERIPH); // 使能CCP4所在的GPIO端口

GPIOPinTypeTimer(CCP0_PORT, CCP0_PIN); // 配置CCP4管脚为脉冲输入 TimerConfigure(TIMER2_BASE, TIMER_CFG_16_BIT_PAIR | // 配置Timer为16位事件计数器

TIMER_CFG_A_CAP_COUNT);

TimerControlEvent(TIMER2_BASE, // 操纵TimerA捕捉CCP负边沿 TIMER_A,

TIMER_EVENT_NEG_EDGE);

TimerLoadSet(TIMER2_BASE, TIMER_A, 40000); // 设置计数器初值

TimerMatchSet(TIMER2_BASE, TIMER_A, 35000); // 设置事件计数匹配值 TimerIntEnable(TIMER2_BASE, TIMER_CAPA_MATCH); // 使能TimerA捕捉匹配中断

IntEnable(INT_TIMER2A); // 使能Timer中断 IntMasterEnable( ); // 使能处置器中断

TimerEnable(TIMER2_BASE, TIMER_A); // 使能Timer计数 } // 主函数(程序入口) int main(void) { //

//jtagWait( ); // 避免JTAG失效,重要! clockInit( ); // 时钟初始化:晶振,6MHz

// SysCtlPeriEnable(LED_PERIPH); // 使能LED所在的GPIO端口 //GPIOPinTypeOut(LED_PORT, LED_PIN); // 设置LED所在管脚为输出 pulseInit( );

timerInitCapCount( ); // Timer初始化:16位计数捕捉

for (;;) { } }

// Timer2的中断效劳函数 void Timer2A_ISR(void) {

unsigned long ulStatus; unsigned char ucVal;

ulStatus = TimerIntStatus(TIMER2_BASE, true); // 读取当前中断状态 TimerIntClear(TIMER2_BASE, ulStatus); // 清除中断状态,重要! if (ulStatus & TIMER_CAPA_MATCH) // 假设是TimerA捕捉匹配中断 {

TimerLoadSet(TIMER2_BASE, TIMER_A, 40000); // 从头设置计数器初值 TimerEnable(TIMER2_BASE, TIMER_A); // TimerA已停止,从头使能 // ucVal = GPIOPinRead(LED_PORT, LED_PIN); // 反转LED // GPIOPinWrite(LED_PORT,LED_PIN, ~ucVal); }

}

(2)LCD1602显示程序:

#include \"systemInit.h\"

#define lcden GPIO_PIN_0 //PB0; #define lcdrs GPIO_PIN_1 //PB1;

unsigned char data; //PD0-PD7; unsigned char num;

unsigned char table[]=\"ABC\"; unsigned char table1[]=\"DEF\";

void write_com(unsigned char com) //写命令 {

GPIOPinWrite(GPIO_PORTB_BASE,lcdrs,0x00); // lcdrs=0;

GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|

GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,com);//PD=com;

SysCtlDelay(5 * (TheSysClock / 4000)); // 延时 5ms GPIOPinWrite(GPIO_PORTB_BASE,lcden,0xFF); // lcden=1; SysCtlDelay(5 * (TheSysClock / 4000));

GPIOPinWrite(GPIO_PORTB_BASE,lcden,0x00); // lcden=0; }

void write_data(unsigned char date) {

GPIOPinWrite(GPIO_PORTB_BASE,lcdrs,0xFF); // lcdrs=1;

GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|

GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,date);//PD=date;

SysCtlDelay(5 * (TheSysClock / 4000));

GPIOPinWrite(GPIO_PORTB_BASE,lcden,0xFF); // lcden=1; SysCtlDelay(5 * (TheSysClock / 4000));

GPIOPinWrite(GPIO_PORTB_BASE,lcden,0x00); // lcden=0; }

void init() {

SysCtlPeriEnable(SYSCTL_PERIPH_GPIOD); //使能A端口

GPIOPinTypeOut(GPIO_PORTD_BASE, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|

GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); SysCtlPeriEnable(SYSCTL_PERIPH_GPIOB);

GPIOPinTypeOut(GPIO_PORTB_BASE, GPIO_PIN_0|GPIO_PIN_1);

GPIOPinWrite(GPIO_PORTB_BASE,lcden,0x00); // lcden=0;

write_com(0x38); write_com(0x0e); write_com(0x06);

write_com(0x01); // 在开始清屏 write_com(0x80+0x03); //数据指针地址 }

// 主函数(程序入口) int main(void) {

clockInit(); // 化:晶振,6MHz init();

for(num=0;num<3;num++) {

write_data(table[num]);

SysCtlDelay(5 * (TheSysClock / 4000)); }

// write_com(1);

write_com(0x80+0x43);//数据指针 for(num=0;num<3;num++) {

write_data(0xD2);

SysCtlDelay(20 * (TheSysClock / 4000)); }

for(num=0;num<3;num++) {

write_com(0x18); //整屏左移,每执行一次,左移一次SysCtlDelay(200 * (TheSysClock / 4000)); }

for (;;) { } }

时钟初始

附录2:LM3S2110模块管脚图

图12 LM3S2110模块管脚图

因篇幅问题不能全部显示,请点此查看更多更全内容