77范文网 - 专业文章范例文档资料分享平台

AW60单片机课程设计(2)

来源:网络收集 时间:2021-05-26 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

 

升”为232电平,通过14脚(T1OUT)发送出去。接受过程:外部232电平经过MAX232的13脚(R1IN)进入到MAX232的内部,在内部232电平被“降低”为TTL电平,经过12脚(R1OUT送到MCU的RxD,进入MCU内部。

2.3.2 串行通信的电路原理

 

从基本原理的角度看,串行通信接口SCI的主要功能是:接收时,把外部的单线输入的数据变成一个字节的并行数据送入MCU内部;发送时,把需要发送的一个字节的并行数据转换为单线输入。为了设置波特率,SCI应具有波特率寄存器。为了能够设置通信格式、是否校验、是否允许中断等,SCI应具有控制寄存器。而要知道串口是否有数据可收、数据是否发送出去等,需要有SCI状态寄存器。当然,若一个寄存器不够用,控制与状态寄存器可能有多个。而SCI数据寄存器存放要发送的数据,也存放接受的数据,这并不冲突,因为发送与接收的实际工作是通过“发送移位寄存器”和“接收以为寄存器”完成的。编程时,程序员并不直接与“发送移位寄存器”和“接收移位寄存器”打交道,只与数据寄存器打交道,所以MCU中并没有设置“发送移位寄存器和“接收移位寄存器”的映像地址。发送时,程序员通过判定状态寄存器的相应位,了解是否可以发送一个新的数据。若可以发送,则将待发送的数据放入“SCI数据寄存器”中就可以了,剩下的工作由MCU自动完成:将数据从“SCI数据寄存器”送到“发送移位寄存

5

 

器”,硬件驱动将“发送移位寄存器”的数据一位一位地按照规定的波特率移到发送引脚TxD,供对方接收。接收时,数据一位一位地从接收引脚RxD进入“接收移位寄存器”,当收到一个完成字节时,MCU会自动将数据送入“SCI数据寄存器”,并将状态寄存器的相应位改变,供程序员判定并取出数据。

2.4 液晶显示模块

 

LCD(YM1602C)

16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 GND Core2 LCD_D7 LCD_D6 LCD_D5 LCD_D4 LCD_D3 LCD_D2 LCD_D1 LCD_D0 LCD_E LCD_RW LCD_RS AW60 PTA7 PTA6 PTA5 PTA4 PTA3 PTA2 PTA1 PTA0 PTF6 PTC6 PTC4 Vcc MCU控制液晶显示接口接线图

 

点阵字符型LCD是专门用于显示数字、字母、图形符号及少量自定义符号的液晶显示器。这类显示器把LCD控制器、点阵驱动器、字符存储器、显示体及少量的阻容元件等集成一个液晶显示模块。鉴于字符型液晶显示模块目前在国际上已经规范化,其电特性及接口特性是统一的,因此,只要设计出一种型号的接口电路,在指令上稍加修改即可使用各种规格的字符型液晶显示模块。

点阵字符型液晶显示模块的控制器大多数为日立公司生产的HD44780及其兼容的控制电路,如SED1278(SEIKO EPSON)、KS0066(SAMSUNG)、NJU6408(NER JAPANRADIO)等。字符型液晶显示模块的主要特点如下:

1.液晶显示屏是以若干5*8或5*11点阵块组成的显示字符群。每个点阵块为一个字符位,字符间距和行距都为一个点的宽度。

2.主控制电路为HD44780(HITACHI)及其他公司的兼容电路。从程序员的角度来说,LCD的显示接口与编程是面向HD44780的,只要了解HD44780

6

 

的编程结构即可进行LCD的显示编程。

3.内部具有字符发生器ROM,可显示192种字符(160个5*7点阵字符和32个5*10点阵字符)。

4.具有64字节的字符发生器RAM,可以定义8个5*8点阵字符或4个5*11点阵字符。

5.具有64字节的数据显示RAM,供显示编程时使用 6.标准接口特性,与MC9S08系列MCU容易接口。 7.模块结构紧凑、轻巧、装配容易。

8.单+5V电源供电(宽温型需要加-7V驱动电源)。 9.低功耗、高可靠性。

第三章 系统软件设计

3.1 MCU方(C)程序

Main.c:

#include #include #include #include #include //在此添加全局变量定义 uint8 g_time[8] ; uint8 g_DisplayInit[8] ; uint8 i; uint8 m;

#define GPIO_Run_PORT PORT_E void main(void) {

uint8 remember; uint32 mRuncount = 0; m=1;

7

 

//1 关总中断

DisableInterrupt(); //禁止总中断 //2 芯片初始化 MCUInit(); //3 指示灯初始化

Light_Init(Light_Run_PORT,Light_Run,Light_OFF); TPMinit(TPM_NUM_1); LCDinit();

SCIInit(SCI_NUM_1,SYSTEM_CLOCK,9600); g_time[0] = 0; g_time[1] = 0; g_time[2] = ':'; g_time[3] = 0; g_time[4] = 0; g_time[5] = ':'; g_time[6] = 0; g_time[7] = 0; remember = g_time[7];

m=GPIO_Get(Light_Run_PORT,0); EnableSCIReInt();

EnabletimerInt(TPM_NUM_1); EnableInterrupt();

SCISendN(SCI_NUM_1,8,g_time); // LCDshow(g_time); //4 主循环

while (1) { m=GPIO_Get(GPIO_Run_PORT,0); mRuncount++;

if(mRuncount>=40000) { mRuncount = 0;

8

 

Light_Change(Light_Run_PORT,Light_Run); }

/**/ if(g_time[7]!=remember) { // SecAdd1(g_time); for( i=0;i<8;i++){ if(i!=2&&i!=5)

g_DisplayInit[i] = g_time[i]+'0'; else

g_DisplayInit[i] = g_time[i]; }

SCISendN(SCI_NUM_1,8,g_DisplayInit); // SCISendN(SCI_NUM_1,8,g_SCIreceive_data); LCDshow(g_DisplayInit); // g_SCIFlag=0;

SCISendN(SCI_NUM_1,3,g_time); remember= g_time[7]; } }; }

Isr.c:

//头文件

#include //#include #include

//此处为用户新定义中断处理函数的存放处 interrupt void isrT1Out(void){ uint8 temp; DisableInterrupt(); if(m==0)SecAdd1(g_time);

9

 

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库AW60单片机课程设计(2)在线全文阅读。

AW60单片机课程设计(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/416948.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: