期中考试大作业。
姓名:吴柏村。
学号:2011118180
班级:11电工。
1,题目:写一程序实现以下功能:按下原理图键盘某一按键,则按下的按键数就会同时显示在6个数码管上。要求如下:
a口地址:4000;工作方式:-输出。
b口地址:4001;工作方式:输出。
c口地址:4002;工作方式:高位输出、低位输入。
d口地址:4003;初始化**:0x81
2,电路图。
3,分析。a口是数码管的位选接口,其地址是4000h;b口是数码管的段选接口,其地址是4001h;c口是键盘扫描接口,地址是4002h;d口是数据双向接口总线,地址是4003h。
由题,a口工作方式是输出,b口工作方式是输出,c口工作方式是高位输出、低位输入,则8255的方式控制字应为(10000001b)=81h将其放入控制口中,且控制口地址为5fffh。
在确定按键数时,我们采用的是逐行扫描法,先检测第一列是否有键按下,若没有就检测第二列,直至找到按键的那一列,再用switch语句找按键的行数。
在显示led数码管时,我们根据按下的按键数来获得数字的断码,从而在led数码管上显示按下的数。
4,程序。# include<>
# include<>
# unchar unsigned char
# define pa8255[0x4000]
# define pb8255[0x4001]
# define pc8255[0x4002]
# define pd8255[0x4003]
void delay10ms( )
mov dptr,#5fffhdp作为地址指针,指向控制口。
mov a,81h;
movx @dptr,a;
void ini_8255( )
pd8255=0x81;
pa=0xff;
sbit jh4=pc^3;
sbit jh3=pc^2;
sbit jh2=pc^1;
sbit jh1=pc^0;
sbit jl4=pc^7;
sbit jl3=pc^6;
sbit jl2=pc^5;
sbit jl1=pc^4;
unchar keyscan(void)
unchar key,temp;
pc=0x7f对应jl4=0
if(pc!=0x7f第一列有按键按下。
pc=0xbf对应jl3=0
if(pc!=0xbf)
delay10ms( )
temp=pc;
if(temp!=0xbf)
switch(temp)
case 0xb7:key=1;break;
case 0xbb:key=5;break;
case 0xbd:key=9;bieak;
case 0xbe:key=13;break;
default:key=-1;
pc=0xdf对应jl2=0
if(pc!=0xdf)
delay10ms( )
temp=pc;
if(temp!=0xdf)
switch(temp)
case 0xd7:key=2;break;
case 0xdb:key=6;break;
case 0xdd:key=10;break;
case 0xde:key=14;break;
defaule:key=-1;
pc=0xef对应jl1=0
if(pc!=0xef
delay10ms( )
temp=pc;
if(temp!=0xef)
switch(temp)
case 0xe7:key=3;break;
case 0xeb:key=7;break;
case 0xed:key=11;break;
case 0xee:key=15;break;
default:key=-1;
unchar code table[ ]0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa10x86,0x8eled显示子模。
void main(void)
unchar i;
i=key;
pb=(~table[i]);
5,实验图。
6,心得。1, 注意pc口和jh1~jh4、jl1~jl4的对应关系,pb和a~g、p的对应关系。
2,在写键盘检测函数时,switch语句中case后记得要加break语句。
3,注意led数码管是共阴极还是共阳极,因为分别在共阴和共阳下的各数字的段选码是不同的。
4,按键在按下时会产生按键抖动现象,因此需加软件延迟10ms来消除抖动。
单片机期中作业
单片机技术期中考试。形式一 1 写一篇关于单片机在测控领域中的一个具体应用 2 写一个关于单片机小制作方案 要求要用到外部中断,另要从硬件和软件设计上进行阐述。请选择该方式的同学,将文章的电子版提交至单片机技术网络课程中 论坛 栏目中的单片机测控系统栏目中,同时将打印稿在规定的时间内交给学习委员。形...
单片机作业
单片机测试一。第一部分选择题。一 单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的,请将其 填写在题前的括号内。错选 多选或未选均无分。1.下列关于单片机说法错误的是。单片机的cpu能处理8位二进制数据或 以及布尔运算。b.8051总共有256个ram单元,内部数据存储器为前128单元。...
单片机作业
单片机原理及应用 作业。1 叫原码 反码和补码?答 正数的反码和补码都是和原码相同。负数。在计算机中,负数以其正值的补码形式表达。什么叫补码呢?这得从原码,反码说起。原码 一个整数,按照绝对值大小转换成的二进制数,称为原码。比如 是5的原码。反码 将二进制数按位取反,所得的新二进制数称为原二进制数的...