1设计方案 2
11 设计务 2
12 设计方案 2
2系统硬件设计 3
21应系统 3
22 8155扩展电路 4
23 矩阵键盘接口电路 6
24 LCD1602接口电路 6
25 电路设计 8
3系统软件设计 8
31程序设计 9
32 延时程序设计 9
33 键盘扫描子程序设计 10
34 显示子程序设计 11
4 系统调试结果 13
41 调试容问题解决 13
42 运行结果分析 13
结 15
参考文献 16
附录 17
摘
计算机控制技术门电子技术动控制原理计算机应技术基础计算机控制技术核心综合编程控制技术单片机技术计算机网络技术实现生产技术精密化生产设备信息化生产程动化机电控制系统佳化专门学科企业具备较强计算机控制技术应力专门需求
文proteus75软件利8155芯片扩展8031单片机IO接口keil软件采C语言编程生成hex文件仿真实现6*6矩阵键盘键识消键抖动识键更性化lcd1602液晶显示方案设计硬件电路设计系统软件设计系统调试四部分组成
关键词:8031单片机 8155芯片 矩阵键盘 IO口扩展 1602液晶
非编码键盘扫描程序设计
1设计方案
11 设计务
通8155扩展8031微控制器IO口组成6×6行列式键盘行列式键盘设计非编码键盘扫描硬件系统画出电路图键盘键够正确识抖动键盘扫描撰写设计说明书
12 设计方案
首先8155芯片扩展8031单片机IO口然需检测6*6矩阵键盘12根导线分接8155PB0PB6PC口LCD16028根数线接8155PA0口控制线接单片机P20P238155编程芯片PAPBPC口次设输出输出输入通编写键盘扫描程序识键返回键值判断识键值形象显示LCD1602液晶电路结构框图图11示
8031
单片机
6*6矩阵键盘
8155芯片
复位电路
LCD1602
晶振
图11 系统结构图
2系统硬件设计
21应系统
80C31单片机8位高性单片机属标准MCS51HCMOS产品结合HMOS高速高密度技术CHMOS低功耗特征标准MCS51单片机体系结构指令系统 80C31置中央处理单元128字节部数存储器RAM32双输入输出(IO)口216位定时计数器5两级中断结构全双工串行通信口片时钟振荡电路80C31片程序存储器需外接ROM 外80C31工作低功耗模式通两种软件选择空闲掉电模式空闲模式冻结CPURAM定时器串行口中断系统维持功掉电模式保存RAM数时钟振荡停止时停止芯片功次设计采80C31PDIP(40pin)封装形式脚图图21示
图21 8031脚图
80c31单片机40根脚单片机正常工作必须满足:
1 电源线2根
Vcc:编程正常操作时电源电压接+5V
Vss:电
2 晶振:2根
XTAL1:振荡器反相放器输入外部震荡器必须接
XTAL2:振荡器反相放器输出部时钟发生器输入外部振荡器时输入外部振荡信号
单片机应系统图22示
图22 8031应系统
22 8155扩展电路
8155芯片介绍关Intel81558156:功编程外围接口芯片 40脚双列直插封装A口B口C口定时器计数器低8位定时器计数器高8位五端口外8155部命令状态寄存器8155部6端口需 实现编址表11示
表11 8155端口址编码
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
应端口
×
×
×
×
×
0
0
0
命令状态寄存器
×
×
×
×
×
0
0
1
A口
×
×
×
×
×
0
1
0
B口
×
×
×
×
×
0
1
1
C口
×
×
×
×
×
1
0
0
定时器计数器低8位
×
×
×
×
×
1
0
1
定时器计数器高8位
8155A口输入输出两种工作方式B口输入输出两种工作方式C口输入方式(ALT1)输出方式(ALT2)A口控制端口方式(ALT3)A口 B口控制端口方式(ALT4)四种工作方式端口工作方式8155部命令寄存器(命令字)控制命令字规定端口工作方式规定定时器计数器工作方式命令字进行写操作格式图23示
图23 8155命令字
结合80318155芯片结构特点设计出图24示扩展电路
图24 8155扩展电路
23 矩阵键盘接口电路
编码键盘单片机接口单片机系统键盘编码键盘非编码键盘两种
非编码键盘键排列成行列矩阵键作简单实现接点接通断开必须套相应程序配合产生出相应键码非编码键盘需附加什硬件电路目前微型计算机控制系统中较普遍次设计6行×6列非编码键盘行次136键盘行线接8155C口六条线PB5~PB0键盘列线接8155C口6条线C口接拉电阻图25示
图25 矩阵键盘接口电路
24 LCD1602接口电路
LCD1602字符型液晶显示模块种专门显示16列*2行显示字母数字符号等点阵式LCD 16*2等模块脚介绍:
第1脚:VSS电源
第2脚:VDD接5V正电源
第3脚:VL液晶显示器度调整端接正电源时度弱接时度高度高时会产生鬼影时通10K电位器调整度
第4脚:RS寄存器选择高电时选择数寄存器低电时选择指令寄存器
第5脚:RW读写信号线高电时进行读操作低电时进行写操作RSRW低电时写入指令者显示址RS低电RW高电时读忙信号RS高电RW低电时写入数
第6脚:E端端E端高电跳变成低电时液晶模块执行命令
第7~14脚:D0~D78位双数线
图26 LCD1602接口电路
第15脚:背光源正极
第16脚:背光源负极
综合设计液晶8031单片机8155芯片接口电路图26示
25 电路设计
综子模块电路设计设计出电路图图27示
图27 电路图
3系统软件设计
31程序设计
程序包括三部分:初始化程序调判断子程序调检测子程序中显示子程序调检测子程序中流程图图31示
开始
初始化
调判断子程序
键闭合?
Y N
Y
调检测子程序
结束
图31 程序流程图
32 延时程序设计
延时程序采双重for语句循环减方法i赋值tj赋值110运循环重复t遍110减0延时时间计算方法
振荡器频率12MHz振荡器周期112微秒机器周期12121微秒 计算机执行步需1微秒延时时间执行步数*1微秒子程序流程图图32示
开 始
i赋初值t
j赋初值110
j减否零
i 减否零
N
N
Y
结 束
图32 延时子程序流程图
33 键盘扫描子程序设计
设置8155PAPBPC口次设输出输出输入样没键时键盘行线成高电列线信号低电键识种方法系统 行扫描法:
(1)确定否键PB口输出111111键盘行线然检测键盘列线信号没键00000键某条列线0PB5~PB0000000时表示键
(2)通行扫描确定已键行列位置谓行扫描次条行线输入1信号余行输入0检测次扫描时应列信号检测次应C口输入某行键时行输入1列输出检测1信号输入1行没键收列信号然全0记列信号全0时B口输出C口输入确定键位置样通行扫描确定键行列坐标
(3)消键抖动般键时候抖动问题键簧片时会轻微弹跳需短暂时间会接触簧片抖动时进行扫描出正确结果程序中考虑防抖动问题简单办法检测键时等(延迟)段时间进行行扫描延迟时间10~20ms通调子程序消抖动扫描子程序流程图图33示
开 始
扫描键盘
否键?
消抖动
否键?
读键
结 束
图33 扫描子程序流程图
34 显示子程序设计
1602液晶模块读写操作屏幕光标操作通指令编程实现
指令1:清显示指令码01H光标复位址00H位置
指令2:光标复位光标返回址00H
指令3:光标显示位置设置ID光标移动方高电右移低电左移S:屏幕文字否左移右移高电表示效低电表示效
指令4:显示开关控制D:控制整体显示开关高电表示开显示低电表示关显示C控制光标开关高电表示光标低电表示光标 B:控制光标否闪烁高电闪烁低电闪烁
指令5:光标显示移位 SC :高电时显示移动文字低电时移动光标
指令6:功设置命令 DL:高电时4位总线低电时8位总线 N:低电时单行显示高电时双行显示F:低电时显示5X7点阵字符高电时显示5X10显示字符
指令7:字符发生器RAM址设置
指令8:DDRAM址设置
指令9:读忙信号光标址 BF:忙标志位高电表示忙时模块接收命令数果低电表示忙
读写操作时序图3435示
图34 读时序图
图35 读时序图
4 系统调试结果
41 调试容问题解决
软件硬件连接仿真运行时发现液晶光标移动显示初始化字符检查发现液晶控制线单片机接线出现错误改正显示初始化字符键时发现液晶显示键应正确显示键甚键没反应检查扫描子程序逻辑发生错误出现死循环修改正确运行
42 运行结果分析
仿真运行开始初始化液晶显示器出现预设字符串PLEASE ENTER图41示
图41 初始化界面
第行第二列键时液晶出现行列标号计算出2图42示
图42 键2显示
第4行第3列时液晶正确显示键位置计算出21图43示
图43 键21显示
次键检查液晶显示发现36键正确识显示设计合理正确
结
现代科学技术众领域中计算机控制技术起着越越重作做微型计算机控制技术门课程课程设计非常必中讲课中知识运实际运中深刻体会实践艰巨性挑战性周课程设计中断改进方法通查阅参书网资料知识足进行非常补充完善短短两星期门业课更切实理解更深掌握学会通努力挑战未知领域
通次课设知道潜远远超想象刚开始课设题目听说设计成百行程序点恐惧前写汇编程序十行C语言写单片机程序写百行通查阅资料步步发现程序越写越长写完发现编程水想象高离社会需求远
次课设程序差错调试新想法然编译器单步运行程序中添加延时程序输出*语句样知道程序运行致步骤否运行需语句事实调试查错时确起作
排版美观方面较强意识撰写实验报告时候格式求非常严格字体求段距行距统求开始时候没注意点发现需全部更改工作量改正着美观排版心中非常欣慰
参考文献
1李清单片机原理接口技术北京航天航空学出版社1994年
2立民单片机高级教程北京航天航空学出版社2000年
3杨光友朱宏辉等单片机微型计算机原理接口技术中国水利水电出版社2002年
4 海生 计算机控制技术 机械工业出版社2010
5 郑学坚周斌 微型计算机原理应 清华学出版社
6 立民 单片机应系统设计 北京航空航天学出版社
7 姚燕南薛钧义 微型计算机原理 西安电子科技学出版社
8 沙占友等 新编实数字化测量技术 国防工业出版社
9 宋春荣等 通集成电路手册 山东科技出版社
附录
#include
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define com XBYTE[0x7FF0] 8155命令状态寄存器址
#define pa XBYTE[0x7FF1] 8155A口址
#define pb XBYTE[0x7FF2] 8155B口址
#define pc XBYTE[0x7FF3] 8155C口址
sbit lcdrsP3^0
sbit lcdenP3^2
sbit lcdrwP3^1
uchar table1[]HANG
uchar table2[] LIE
uchar table3[]WE GET
uchar table4[]PLEASE ENTER
int xyzhanglie
void delay(uchar t)
void wcom(uint co)
void wdate(uchar date)
void wdate1(ulong date)
void panduan()
void jiance()
void xianshi()
void wcom(uint co){ 液晶写控制字子程序
lcdrs0
paco
delay(2)
lcden1
delay(2)
lcden0
}
void wdate(uchar date){ 液晶显示单字符子程序
lcdrs1
padate
delay(2)
lcden1
delay(2)
lcden0
}
void wdate1(ulong date){ 液晶显示字符子程序
uchar m
wcom(0x80+0x40+9)
wcom(0x04)
wcom(0x0C)
if(date){
while(date){
mdate10
wdate(0x30+m)
date10
}
}
}
void xianshi(){ 显示键子程序
uchar m
wcom(0x01)
wcom(0x80)
wcom(0x0c)
for(m0m<5m++){
wdate(table1[m])
delay(2)
}
wdate(0x30+x+1)
for(m0m<5m++){
wdate(table2[m])
delay(2)
}
wdate(0x30+y)
wcom(0x80+0X40)
for(m0m<8m++){
wdate(table3[m])
delay(2)
}
wdate1(z)
}
void panduan(){ 判断否键子程序
int flag1
hang0xff
pbhang
lie0
while(lie&&flag){
delay(10)
liepc
if(lie)flag0
}
}
void jiance(){ 检测键子程序
int aa
x1
y1
hang0x01
do{
x++
pbhang
liepc
hang*2
}while(lie)
aa0x01
hang0xff
pbhang
liepc
while((lie&aa)){
aa*2
y++
liepc
}
zx*6+y
xianshi()
while(pc)
delay(5)
while(pc)
}
void init(){ 初始化子程序
int m
pa0
pb0
pc0
lcdrslcdrw lcden0
com0x03
wcom(0x38)
wcom(0x0f)
wcom(0x06)
wcom(0x01)
wcom(0x80)
for(m0m<12m++){
wdate(table4[m])
delay(2)
}
}
void delay(uchar t){ 延时tms子程序
uint ij
for(jtj>0j)
for(i110i>0i)
}
void main(){ 程序
init()
while(1){
panduan()
jiance()
}
}
武 han 理 工学
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档