单片机大作业整理文档精要.doc
文本预览下载声明
单片机设计技术
课程实验作业
学 院
专 业
学生姓名 陆灏彦
学生学号 201230060189
指导教师
日 期
目录
程序功能描述………………………………………………………………………………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)
{ flag
显示全部