东南大学MCU综合课程设计
东南大学微机实验综合课程设计

东南大学自动化学院微机实验及课程设计报告《参数可调波形发生器》姓名:学号:专业:实验室:组别:同组人员:设计时间:评定成绩:审阅教师:目录一.设计目的和要求--------------------------------------3 二.原理设计--------------------------------------------4 三.方案论证与实现--------------------------------------6 四.设计思路及流程图--------------------------------------------------------7 五.编程实现--------------------------------------------------------------------10六.方案测试与结果分析----------------------------------18 六.改进与提高------------------------------------------19 七.分析与总结------------------------------------------19一、设计要求1)基本要求编制1 个参数在线可调的波形发生程序,由D/A 输出,构成参数在线可调的波形发生器,并用示波器观察波形。
函数波形可选f(t)=asin(bt),其中a、b参数在线可调(也可自己选择,但要求至少2 个参数可调且调节很明显)。
参数调节采用如下两种方式之一:(1)两个可调电位器输出通过A/D 转换后作为可调参数;(2)参数通过实验装置上的键盘实时修改(调整);(3)精确时间,开关选择标准信号输出(例如a=2V, b=100πRAD/s,即50Hz 正弦波)。
2)设计提示(1)当用电位器调节参数时,输出零不能对应相应的参数值就为零;(2)当通过键盘修改参数时,先键入参数名如“a”,显示当前参数值,修改后再键入参数名,则修改参数完成,随后输出波形发生变化。
MCU及接口技术实验教程课程设计

MCU及接口技术实验教程课程设计1. 简介本篇文档是关于MCU及接口技术实验教程课程设计的详细内容阐述。
该课程设计旨在帮助学生通过实践学习MCU的基本原理和应用,包括常见单片机架构、编程原理和MCU与外界接口的应用等方面。
2. 实验内容本课程设计共分为三个实验,分别是:•实验一:LED闪烁控制•实验二:按键中断控制LED亮灭•实验三:外部中断应用2.1 实验一:LED闪烁控制2.1.1 实验目的本实验旨在帮助学生熟悉MCU的基本编程方法,并掌握LED闪烁的控制方法。
2.1.2 实验原理LED是一种电子元件,主要用于信号指示、显示灯等。
为了控制LED的亮灭,需要连上MCU的GPIO口,并按照高、低电平控制LED的亮灭。
2.1.3 实验步骤1.确定MCU的GPIO口,将LED连接到GPIO口2.编写程序,配置GPIO口初值3.在主程序中设置循环控制,控制LED的亮灭4.下载程序,观察LED的闪烁状态2.1.4 实验结果经过实验,LED应该能够按照编写的程序进行闪烁,证明程序编写及控制方法正确。
2.2 实验二:按键中断控制LED亮灭2.2.1 实验目的本实验旨在帮助学生进一步掌握中断编程方法,了解按钮中断的使用方法。
2.2.2 实验原理按键中断控制LED亮灭是一种基础应用,可用于实现按钮控制开关灯等功能。
当MCU检测到按键按下时,会产生中断请求,MCU会在中断服务函数里面处理相关操作。
通过中断服务函数可以实现按钮控制LED 开关等功能。
2.2.3 实验步骤1.将按键与MCU的GPIO口相连2.配置按键对应GPIO口的中断方式3.编写程序,实现中断服务函数和控制LED亮灭的主函数4.下载程序,观察LED的亮灭状态2.2.4 实验结果经过实验,当按键按下时,LED灯能够根据设置的程序进行亮灭,证明按键中断控制LED亮灭方法正确。
2.3 实验三:外部中断应用2.3.1 实验目的本实验主要是让学生进一步了解外部中断的使用方法,并掌握外部中断的应用方法。
《单片机技术》整体课程设计

《单片机技术》整体教学设计(2020~ 2021学年第一学期)(第2学年第4学期)课程名称:单片机控制系统编程与实现所属系部:自动控制系制定人:合作人:制定时间: 2020年5月信息工程学院课程整体教学设计一、课程基本信息一、课程定位该课程是电类专业的必修课,是培养学生单片机基础应用能力和程序设计能力的核心课程,为专业培养适应于电子电气产品设计、检测维修、销售及技术服务第一线需要,具有较强电子技术应用能力,熟悉基于单片机电路的应用技术设计,又具有自动化设备安装、调试、维护能力和良好职业素质技能型专门人才的培养目标服务。
1. 岗位分析电气自动化技术应用岗位是指自动化设备的设计、制造、安装、调试、运行维护、设备管理及质量管理岗位。
表1 电气自动化技术应用岗位工作内容2.本课程面向的主要岗位本课程主要面向电子产品装接工,电气设备检测员,自动生产线操作员,仪器仪表的安装调试工等。
其典型工作流程图如图1所示。
图1 本课程面向典型工作流程图3.岗位需求分析岗位需求分析如表2所列。
表2 岗位需求分析电气自动化技术应用岗位职责如表3所示。
表3 电气自动化技术应用岗位职责分析2. 课程分析:本课程前导课程为模拟电路分析与应用、数字电路分析与应用、继电控制系统运行与维护;后续课程为自动化生产线安装与调试;与培训机构、中职、本科院校相比,区别如下:二、课程目标设计三、课程内容设计:四、能力训练项目设计五、项目情境设计六、课程进程表六、第一次课设计1、提出思考问题:单片机在哪里?鼓励学生思考并主动回答,可做适当提示和引导,从家具、民用、汽车、工业、机器人、航空、导弹等多领域引导学生举出单片机使用的例子;(15min ) 2、以电冰箱为例,引导学生思考其温控系统的工作原理,进而引出单片机在其中所起的作用,为讲解单片机原理做好铺垫和感性认识;(10min )3、以汽车为例,讲解单片机技术在汽车中的应用,进一步加深对单片机的理解;(10min ) 4、以机器人为例,讲解单片机技术在机器人控制中的应用,进一步加深对单片机的理解;(10min )5、课程介绍:为什么要学习这门课,这门课能带来的技能,所增加的职业竞争力,以及在自动化人才能力培养中的作用等;(10min )6、简要介绍本门课主要内容,让学生知道这门课的知识脉络,并向学生说明本课程的考核方式;(10min )7、参观单片机实训室的教学设备,并向学生展示往届学生课程设计作品,提高学习兴趣;(20min )8、最后介绍学习单片机的相关网址,分组阅读相关单片机知识介绍。
东南大学MCU第一二次实验

东南大学自动化学院课程名称:M C U技术及课程设计第一次实验实验一:I O实验—L E D流水灯实验二:I O实验—按键输入中断与查询院(系):自动化专业:自动化姓名:学号:实验室:实验组别:同组人员:实验时间:2015年4月30日评定成绩:审阅教师:实验一:I O实验—L E D流水灯一、实验目的与要求1.实验目的(1)了解M S P430F6638I O口的基本功能。
(2)熟悉I O口的基本操作。
2.实验要求编写程序,调用头文件m s p430f6638.h,使开发板上3个L E D依次点亮,采用软件延时方式(约0.5~1s左右,人眼能够分辨即可)使得每个灯轮流点亮一段时间,实现流水灯的效果。
二、实验原理(1)开发板上的3个L E D灯和I O口对应关系如图1-1所示。
图1-1实验箱L E D引脚连接图其中L E D_Y E L L O W---P4.6、L E D_G R E E N---P4.5、L E D_R E D---P4.4,具体见图1-2。
图1-2开发板上L E D的电路和实物图完成本实验需要用到两个寄存器:P x D I R、P x O U T,P4端口相关寄存器信息如表1-1所示。
表1-1P4端口相关寄存器地址信息(1)方向寄存器(P x D I R)该寄存器是一个8位寄存器,寄存器的每一位对应一个I O口引脚。
对相应位置0,表示该I O口用作输入。
对相应位置1,表示该I O口用作输出。
(2)输出数据寄存器(P x O U T)该寄存器是一个8位寄存器,寄存器的每一位对应一个I O口引脚。
对相应位置0,对应I O口输出低电平。
对相应位置1,对应I O口输出高电平。
位基本操作见表1-2所示。
表1-2位基本操作三、实验步骤1.将P C与开发板相连;2.建立C C S工程;3.选择对该工程进行编译链接,生成.o u t文件。
然后选择,将程序下载到实验板中。
程序下载完毕之后,可以选择全速运行程序,也可以选择单步调试程序,选择F3查看具体函数。
单片机综合实验课程设计

单片机综合实验课程设计一、课程目标知识目标:1. 学生能理解单片机的基本工作原理,掌握其内部结构和功能模块;2. 学生能掌握单片机编程的基本语法和常用指令,具备编写简单程序的能力;3. 学生能了解并运用单片机接口技术,实现与外围设备的通信和控制。
技能目标:1. 学生能运用所学知识,设计并实现简单的单片机控制系统;2. 学生能熟练使用编程软件和开发工具,进行单片机的程序编写、调试与优化;3. 学生能通过实验操作,培养动手能力和团队协作能力,提高问题解决能力。
情感态度价值观目标:1. 学生通过课程学习,增强对电子技术和编程的兴趣,培养主动探索和创新的意识;2. 学生在学习过程中,树立正确的价值观,认识到单片机技术在现实生活中的应用价值;3. 学生通过团队协作,培养沟通与协作能力,增强集体荣誉感和责任感。
课程性质:本课程为单片机原理与应用的综合实验课程,注重理论与实践相结合,以培养学生的动手能力和创新能力为主。
学生特点:学生具备一定的电子技术和编程基础,对单片机有一定了解,但实践经验不足。
教学要求:教师应结合学生特点和课程性质,采用任务驱动、案例教学等方法,引导学生主动参与实验,提高实践操作能力和创新能力。
同时,注重个体差异,因材施教,确保每位学生都能在课程中学有所获。
通过课程目标的分解与实现,为后续教学设计和评估提供依据。
二、教学内容本课程教学内容主要包括以下三个方面:1. 单片机原理与结构- 熟悉单片机的内部结构,掌握其功能模块;- 了解单片机的工作原理,理解指令执行过程;- 学习单片机编程语言,掌握基本语法和常用指令。
教学大纲:参照教材第1章至第3章,共计6学时。
2. 单片机编程与接口技术- 学习单片机程序设计方法,掌握程序编写、调试与优化技巧;- 了解单片机接口技术,掌握I/O口、定时器、中断等应用;- 学习外围设备与单片机的通信协议,实现数据交换和控制。
教学大纲:参照教材第4章至第6章,共计10学时。
东南大学MCU课程设计报告

东南大学MCU课程设计报告东南大学自动化学院《MCU技术及课程设计》课程设计报告姓名:学号:专业:自动化实验室:金智楼组别:同组人员:设计时间:2017年08月28日——2017年09月06日评定成绩:审阅教师:目录一. 课程设计的目的与要 (3)二. 原理设计 (3)三. 方案论证 (8)四.方案实现与测试 (8)五.分析与总结 (9)一.课程设计的目的与要求本次设计使用MSP430F6638实现一基于单片机的电子密码锁的设计,其主要具有如下功能:1.密码通过键盘输入,若密码正确,则绿灯亮,表示密码锁打开,若密码错误,红灯亮,表示密码锁关闭。
2.按AC键可以清除已输入的密码,重新输入。
二. 原理设计1.数码管显示(1) TM1638 控制芯片TM1638 是带键盘扫描接口的 LED驱动控制专用电路,内部集成有 MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。
主要应用于冰箱、空调、家庭影院等产品的高段位显示屏驱动。
TM1638 原理图如5-1所示,其中SEG_DIO,SEG_CLK,SEG_STB 与 MSP430芯片中 P3.5, P3.4, P3.2 三个 IO 口相连,仅占用 3 个端口即可完成数据的输入输出,大大节约单片机的 IO 口和开发板的空间,降低了布线的难度。
TM1638 与 MSP 430 实验箱连接示意图如图 4-1 所示,实验开发板 LED 数码管对应关系见图 5-2。
(2) TM1638 接收数据串行数据传输格式:读取和接收 1 个 BIT 都在时钟的上升沿操作。
数据接收(写数据)时序如图 5-4 所示。
以下写数据代码仅作为参考。
(更多关于TM1638 的程序请参考给出的TM1638.h 和 TM1638.c 两个文件以及芯片说明书)void TM1638_Write(unsigned char DATA) //写数据函数{ unsigned char i; DIO_OUT; //将DIO 配置为输出状态for(i=0;i<8;i++) { CLK_low; if(DATA & 0x01){ DIO_high; } else {DIO_low;} CLK_high; DATA>>=1; //数据左移一位 } }(3) LED 数码管显示图 5-5 共阴极数码管连接图图5-5 给出一个共阴数码管的连接示意图,如果让该数码管显示“0”,那你需要在 GRID1 为低电平的时候让 SEG1, SEG2, SEG3, SEG4,SEG5, SEG6为高电平, SEG7 为低电平,即在 00H 地址单元里面写数据 3FH 就可以让数码管显示“0”。
单片机综合应用课程设计

单片机综合应用课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理和结构,理解其工作流程和编程方法。
2. 使学生了解并掌握单片机在综合应用中的关键技术和常见模块的使用。
3. 帮助学生掌握相关电子元器件的功能和连接方式,能够正确搭建单片机应用系统。
技能目标:1. 培养学生运用单片机进行创新设计的能力,能够独立完成简单的综合应用项目。
2. 提高学生编程和调试单片机程序的能力,解决实际问题。
3. 培养学生团队协作和沟通能力,能够共同完成复杂项目的搭建与调试。
情感态度价值观目标:1. 激发学生对单片机及电子技术的兴趣,培养其探究精神和创新意识。
2. 培养学生严谨、务实的科学态度,养成良好的实验操作习惯。
3. 增强学生的环保意识,使其关注可持续发展,将绿色环保理念融入单片机应用项目中。
课程性质:本课程为实践性较强的综合应用课程,注重理论知识与实际操作相结合,培养学生动手能力和创新能力。
学生特点:学生处于高年级阶段,已具备一定的单片机基础知识和编程技能,具有一定的自主学习能力和团队合作意识。
教学要求:结合课程性质、学生特点,明确课程目标,注重理论与实践相结合,提高学生的实际操作能力和创新能力。
将课程目标分解为具体的学习成果,以便进行后续的教学设计和评估。
二、教学内容1. 单片机基础回顾:回顾单片机的基本原理、结构、指令系统及编程方法,巩固学生对单片机基础知识点的掌握。
相关教材章节:第一章 单片机原理与结构2. 单片机应用模块:学习并实践单片机在综合应用中的常见模块,如传感器、执行器、显示模块等。
相关教材章节:第二章 单片机接口技术;第三章 常用传感器及其接口技术3. 编程与调试:学习单片机程序设计方法,掌握编程工具及调试技巧,能够解决实际问题。
相关教材章节:第四章 单片机C语言编程;第五章 单片机程序调试与优化4. 综合应用设计:结合所学知识,进行创新设计,完成一个具有实际应用价值的单片机综合项目。
东南大学MSP实验报告第三,四次解析

东南大学自动化学院实验报告课程名称: MCU技术及综合课程设计第 3 次实验实验名称:实验三:定时器输出PWM波形院(系):自动化学院专业:自动化姓名:杨淳元学号:08012131实验室:实验组别:同组人员:实验时间:2015年5月7日评定成绩:审阅教师:目录一、实验目的和要求 (2)二、实验原理 (2)三、实验方案与实验步骤 (6)四、实验设备与器材配置 (7)五、实验记录 (7)七、思考题或讨论题 (8)八、附上源代码 (9)一、实验目的和要求1) 实验目的(1) 学习MP430单片机的时钟原理和定时器使用方法。
(2) 认识学习PWM波形的作用及原理。
2) 实验要求编写程序输出1s周期的PWM波形,产生两路PWM波形从引脚P1.2和P1.3分别输出。
CCR0中的值定义了PWM信号的周期,CCR1,CCR2中的值定义了PWM信号的占空比。
定时使用32.768KHz的ACLK作为输入时钟源,P1.2上的占空比为75%,P1.3上的占空比为25%。
二、实验原理1)Timer_A定时器模块框图如图3-1所示。
由图3-1可知,Timer_A 模块可以有三种时钟源输入。
分别是ACLK,SMCLK,TAxCLK。
时钟源的选择通过TASSEL 信号来完成。
被选择的时钟源可以直接送给TIMER 模块,或者通过ID 信号进行2,4,8分频。
选择的时钟信号还可以通过TAIDEX 信号进一步做2,3,4,5,6,7 或者8 分频。
当TACLK 信号被设置的时候,TIMER 的时钟分频逻辑被复位。
图3-1 Timer_A 模块框图2)Timer A 控制寄存器TA0CTL详细定义如图3-2所示。
图3-2 Timer A 控制寄存器TA0CTL3)定时器中断的中断向量中包含一个独立中断和若干个共源中断,Timer_A模块的中断分类如图3-3所示。
图3-3 Timer_A模块的中断向量分类图1)独立中断源的中断处理TA0CCTL0 = CCIE; //CCR0 中断使能#pargma vector = TIMER0_A0_VECTOR //中断向量定义,可查询头文件得到__interrupt void TIMER0_A0_ISR(void){//添加中断处理代码}2)共源中断向量寄存器TAxIV图3-4共源中断向量寄存器TAxIV共源中断程序switch处理方式:#pragma vector=TIMER0_A0_VECTOR //共源中断入口__interrupt void TIMER0_A0_ISR(void){switch(__even_in_range(TA0IV,14)) //共源中断处理{case 0: fun_no(); break; // No interruptcase 2: fun_CCR1(); break; // CCR1 interruptcase 4: fun_CCR2(); break; // CCR2 interruptcase 6: fun_CCR3(); break; // CCR3 interruptcase 8: fun_CCR4(); break; // CCR4 interruptcase 10: fun_CCR5(); break; // CCR5 interruptcase 12: fun_CCR6(); break; // CCR6 interruptcase 14: fun_overflow(); break; // overflowdefault: fun_default(); break; // default}}3)PWM原理PWM 技术的三个要素,具体如图3-5所示, PWM频率计算见图3-6。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东南大学自动化学院《MCU技术及课程设计》数字钟设计报告姓名:学号:专业:自动化实验室:组别:同组人员:设计时间:2015年6月1日——2015年6月17日评定成绩:审阅教师:目录一. 课程设计的目的与要求 (3)二. 原理设计 (3)三. 方案实现与测试,实验流程图,可采用c语言实现 (8)四.分析与总结 (9)一.课程设计的目的与要求1.可设定时间初始值;2.能够使用按键调整时间的时分位;3.使用段式LCD显示。
二.原理设计MSP430的液晶显示有静态、2MUX、3MUX、4MUX四种显示模式,而最常用还是4MUX 模式。
通俗讲,就是有四个公共端(相当于数码管扫描显示的位选端)、若干个驱动端的模式。
这种模式的最大优点就是能使用最少的引脚提供最多的液晶显示段。
图1表示了4MUX显示模式下的公共端与驱动端,其中(a)说明了一个”8”字的四个公共端,(b)说明了两个驱动端,当分别给公共端与驱动端液晶信号时,就显示对应的数码。
图一在MSP430系列能驱动液晶显示的单片机中,专门开辟了一片存储空间(LCDMEM1~LCDMEM20)存放要显示的信息,被称为液晶显示缓存,简称液晶显存。
MSP430F6638共有20字节单元液晶显存,如果使用4MUX方式显示,可以显示160段液晶笔画。
这时,每个显存将对应两个驱动端。
图2表示了在4MUX方式下的液晶显存、液晶显示、液晶驱动端之间的对应关系。
段式LCD的驱动方法基本上和数码管是不太一样的,数码管只要给电和选通就亮。
但是段式LCD的驱动是靠两部分组成的:第一部分是不间断的电压脉冲,这个电压脉冲还是被分为好几个电压等级了,如果你用的是1/4duty1/3偏压的话,那么就要有四个电压等级。
也就是VCC---2/3VCC--1/3VCC---GND 这几个电压等级直接可以用电阻进行分压得到,然后直接和430单片机的R03---GND;R13----1/3VCC;R23---2/3VCC;R33---VCC这样直接连接就可以了。
这样电压等级就有了,具体在里面生成的电压等级脉冲,MSP430是可以自己生成的,不用我们担心了。
COM0--COM3就这些个电压等级的输出管脚。
直接连上LCD屏的COM0---COM3就可以了。
第二部分是选通管脚选通管脚也就是LCD上面的SEG1----SEG12,和MSP430F6638的SEG0---SEG11直接相连,硬件电路如下:JP5是用一个跳帽来控制背光(由于板卡IO口有限),把跳帽跳上段式LCD背光打开。
²段式LCD驱动编写步骤:首先要明白每个输出管脚何时输出和输出什么,这样才能得到我们想要的字形。
MSP430F6638自带有对多达160图块进行对比度控制的集成LCD驱动器,有LCD段码寄存器,就是说你只要把这些你要显示的字形(当然如果你只想显示数字的话,只用存0-9这几个字码就可以了),段码寄存器的地址是从091H开始------到0A4H每个地址里面可以放一个8位,每一位对应于液晶上面的一段,所以说一个地址对应于液晶上面就是一个字。
(一个字的段码也是8位的)这样的话,我们只要将要显示的一个数字的编码发到这个单片机的断码寄存器里面,就可以直接显示了,是通过COM口的脉冲波形同时将寄存器里面的段进行耦合,产生压差,LCD 只有产生压差才能点亮。
一直提供一个不变的高电平是要烧坏液晶的,这就是和数码管区别的地方。
不过这些脉冲430单片机已经帮我们做好了。
总体的步骤就是,我们将LCD的段码先整理好,然后放在一边备用,等到你想显示某个数据的时候,只要将这个8位的段码直接写入单片机留给你的LCD寄存器写入端口数组就可以了。
在MSP430F6638里面也就是LCDMEM[];[]中应该写的是要显示的位,这个位是数码管上面的位置,比如你想显示液晶上面的第2位数,先不说要显示的内容是什么,这里的位选应该是LCDMEM[1],因为是从0开始的,所以第二位应该是LCDMEM[1].(从091H开始------到0A4H每个地址都可以存一个8段)然后说显示的内容:显示的内容的段码很关键,这个要看你所拥有的LCD参数手册,一般都是这样的一张表:一共可以显示6个8字。
(1)至于里面的X2、X3、X1是三个电池符号,4P、5P和6P是三个小数点。
(2)本板卡段式LCD有四个COM和12个SEG,可满屏显示888.8.8.8(3)驱动电压3-5V 1/3偏压方式,可由MSP430直接驱动或者用HT1621芯片(4)外形尺寸长57.5mm*宽25mm*厚度2.7mm 可视区域14.4*50(5)屏位半透屏,最好配合背光使用,不要背光也可在屏后面贴白纸或者PCB 做白色丝印,否则屏会透光看到PCB,所以加上了背光板。
(6)该段式LCD是16脚封装,PIN1-PIN4对应COM1-COM4,PIN5-PIN16对应SEG1-SEG12下图是内部走线,仅供参考:因为LCD段码的等级脉冲方式是从COM1---COM4,所以我们将这些第5和第6列的段码也要按照这个方式编码。
假如我们想显示第一个8字上面的内容:即:第一次脉冲出来COM1 COM2 COM3 COM4,那么寄存器里面输出来的段选也应该按照COM1 COM2 COM3 COM4所对应的段码输出,这样才行显示出你想要的结果,那么我们在第一轮的COM1—COM4输出时匹配寄存器的段选应该1D---1E---1G---1F,第二轮的COM 1---COM4输出时,匹配寄存器的段选应该是X2---1C---1B---1A,这样第一个8字的显示才完全了,至于这个寄存器是怎样把这些段码读并且写出去呢?COM口在启动后总是从COM1—COM4,COM1—COM4,COM1—COM4,一直不停的这样脉冲着....排序方法应该根据COM1---COM4的连续输出方式排。
一个8字的段码排序从高到低排,因为我两轮COM1—COM4的输出所以得这样排第二轮COM4---COM3----COM2-----COM1 1A-------1B------1C--------X2(电池符号)第一轮COM4---COM3----COM2-----COM1 1F-------1G------1E---------1D然后可以理解为寄存器里的一个8位段码保存的段就是这样的1A-------1B------1C--------X2(电池符号)--------1F-------1G------1E---------1D 到此我们如果想显示一个数字2,我们该如何保存段码呢按照数码管的方法应该是显示a,b,d,e,g这五段。
那么对于寄存器里面的这8个段不是按照ABCDEFGH来排的,怎么整呢?显示哪一段就把哪一段置“1”,不显示的就置零。
那么2出来了,有高到低就是11000111这里的小数点暂时不显示。
其中的fcdp0不显示,所以写0就可以啦!所以2的最终段码就是C7H以此类推,你可以把任意个段码全部写出来,然后组成一个通用的数组// LCD segment definitions.#define d 0x01#define c 0x20#define b 0x40#define a 0x80#define dp 0x10#define g 0x04#define f 0x08#define e 0x02const char char_gen[] = { // As used in 430 Day Watch Demo boarda+b+c+d+e+f, // Displays "0"b+c, // Displays "1"a+b+d+e+g, // Displays "2"a+b+c+d+g, // Displays "3"b+c+f+g, // Displays "4"a+c+d+f+g, // Displays "5"a+c+d+e+f+g, // Displays "6"a+b+c, // Displays "7"a+b+c+d+e+f+g, // Displays "8"a+b+c+d+f+g, // Displays "9"a+b+c+e+f+g, // Displays "A"c+d+e+f+g, // Displays "b"a+d+e+f, // Displays "c"b+c+d+e+g, // Displays "d"a+d+e+f+g, // Displays "E"a+e+f+g, // Displays "f"a+b+c+d+f+g, // Displays "g"c+e+f+g, // Displays "h"b+c, // Displays "i"b+c+d, // Displays "j"b+c+e+f+g, // Displays "k"d+e+f, // Displays "L"a+b+c+e+f, // Displays "n"a+b+c+d+e+f+g+dp // Displays "full"};以上是段式LCD的基本原理,想显示还要先设置,就像定时器一样,要先设置好相关的寄存器,它才会按照你的思想来运行。
1. 先配置TS3A5017DR因为仔细查看电路图后,该段式LCD的引脚SEG12、SEG11、SEG10,中间经过了两片TS3A5017DR模拟开关切换(U22、U24),直接配置IN1和IN2引脚即可。
2. 初始化LCD//lcd初始化void Init_lcd(void){LCDBCTL0 =LCDDIV0 + LCDPRE0 + LCDMX1 + LCDSSEL + LCDMX1 + LCD4MUX ;LCDBPCTL0 = LCDS0 + LCDS1 + LCDS2 + LCDS3 + LCDS4 + LCDS5 + LCDS6+ LCDS7 + LCDS8 + LCDS9 + LCDS10 + LCDS11 ;P5SEL = 0xfc;//用作LCD驱动}3. 开启LCDvoid LcdGo(unsigned char doit){if(doit==1){//打开液晶显示LCDBCTL0 |= LCDON;}else if(doit==0){//关闭液晶显示LCDBCTL0 &= ~LCDON;}}4. LCD清屏LCDMEM[0] = 0; 这个就是在第0位不显示任何东西,清屏!当然清屏是在要改变显示数据前清的。