哈工大(威海)
图4.5.1
3. 系统板上硬件连线 把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路
发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,??,P1.7对应着L8。 4. 程序设计内容 在用表格进行程序设计的时候,要用以下的指令来完成
(1). 利用MOV DPTR,#DATA16的指令来使数据指针寄存器指到表的开头。 (2). 利用MOVC A,@A+DPTR的指令,根据累加器的值再加上DPTR的值,就可以
使程序计数器PC指到表格内所要取出的数据。 因此,只要把控制码建成一个表,而利用MOVC A,@A+DPTR做取码的操作,就可方便地处理一些复杂的控制动作,取表过程如下图所示: 5. 程序框图
11
哈工大(威海)
图4.5.2
7. C语言源程序
#include
unsigned char code table[]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f, 0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f, 0x7f,0xbf,0xdf,0xef, 0xf7,0xfb,0xfd,0xfe, 0x7f,0xbf,0xdf,0xef, 0xf7,0xfb,0xfd,0xfe, 0x00,0xff,0x00,0xff, 0x01};
unsigned char i; void delay(void)
{unsigned char m,n,s; for(m=20;m>0;m--) for(n=20;n>0;n--) for(s=248;s>0;s--); }
void main(void) {while(1)
12
哈工大(威海)
{if(table[i]!=0x01) {P1=table[i]; i++; delay(); } else { i=0; } } }
6. 报警产生器
1. 实验任务 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz
信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。 2. 电路原理图
图4.6.1
13
哈工大(威海)
3. 系统板上硬件连线
(1. 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的
SPK IN端口上; (2. 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧的或者是16欧的喇
叭; (3. 把“单片机系统”区域中的P1.7/RD端口用导线连接到“四路拨动开关”区域中
的K1端口上; 4. 程序设计内容
(1. 信号产生的方法
500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号电平每500us变反1次;
5. 程序框图
14
哈工大(威海)
图4.6.2
7. C语言源程序
#include #include
bit flag;
unsigned char count;
void dely500(void) {
unsigned char i; for(i=250;i>0;i--) {
_nop_(); } }
void main(void) {
while(1) {
if(P1_7==0) {
for(count=200;count>0;count--) {
P1_0=~P1_0; dely500(); }
for(count=200;count>0;count--) {
P1_0=~P1_0; dely500(); dely500(); } } }
7. I/O并行口直接驱动LED显示
1. 实验任务 如图13所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个共阴
数码管的a-h的笔段上,数码管的公共端接地。在数码管上循环显示0-9数字,时间间隔0.2秒。 2. 电路原理图
15
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库给初学单片机的40个实验0(3)在线全文阅读。
相关推荐: