- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机大作业整理文档讲述
PAGE
PAGE 15
单片机设计技术
课程实验作业
学 院 机械与汽车工程学院
专 业 过程装备与控制工程(轻机)
学生姓名 曾嘉伟 陆灏彦
学生学号 201230060363 201230060189
指导教师 钟汉如
日 期 2014.12.4
目录
程序功能描述………………………………………………………………………………2
程序流程框图………………………………………………………………………………2
程序…………………………………………………………………………………………3
主程序…………………………………………………………………………………3
头文件…………………………………………………………………………………5
子程序…………………………………………………………………………………7
1、程序功能描述
硬件接口:(PTD0-3接灯泡)
程序开始执行后,4个灯泡按键盘按的数字来亮起。
按键盘数字时,灯按照数字对应的二进制亮起,二进制中0表示不亮,1表示亮起。例如,按下键盘“9”时,它对应的二进制为1001,所以第一个灯和第四个灯亮起。
键盘和LCD组成计算器,可以满足两个数间的加减乘除。同时在LCD上显示运算过程和结果。例如,在键盘上按下“2+3=”的操作,LCD上显示“2+3=5”。
在用数字进行加减乘除运算时,数字对应的灯也会同时亮起。
2、程序流程框图
液晶显示器上显示运算过程及结果
按下键盘数字时,灯按照数字对应的二进制亮起
按下键盘进行两个数的加减乘除操作
3、程序
3.1 主程序
/* 键盘中断输入运算语句控制指示灯亮和LCD显示*
*文 件 名:Keyboard.c *
*硬件连接:PTA.7-4接键盘4根列线,PTA.3-0接键盘4根行线 *
* PTD0-3连接4盏灯泡 *
*程序描述: 按下键盘数字时,得到相应的算式及结果 *
* 灯按照数字对应的二进制亮起,液晶显示器上显示运算过程及结果*
*目 的:键盘扫描,键盘中断,键值识别,键盘编码 *
* LCD显示,指示灯*
*注 意:如果键盘插在实验板上排插孔,无须连线,若插在下 *
* 排插孔,需手工接线 *
*《嵌入式应用技术基础教程》教学实例*/
/*[头文件]*/
#include GP32C.H
#include KB.h //键盘中断头文件
#define uchar unsigned char
#define uint unsigned int
const unsigned char DispalyInit[]=Wait Receiving.. Soochow 2005.08;
//void lcd_display_char(uchar ch);//在指定位置(x,y)显示指定的字符ch, x=0-15,y=0-1
void lcd_display_char(uchar ch); //当前光标位置显示指定的字符ch, x=0-15,y=0-1
void lcd_display_int(uchar x,uchar y,int val);//指定位置(x,y)显示指定的整数, x=0-15,y=0-1
extern uchar KB_value;
/*[主程序]*/
void main()
{ uchar val1=0,val2=0,op=0,flag=0;
int res;
DDRD=0x0f;//PTD的低4位设置为输出
asm(SEI); //关总中断
KB_Init();
LcdInit();
INTKBSCR= ~(1IntBit); //开放键盘中断(IMASKk=1)
asm(CLI); //开总中断
//主循环
while(1)
{
//*
if (KB_value0)//有新的按键按下
{ if((KB_value=0)(KB_value=9))
{ if(flag==2
文档评论(0)