Skip to content

sheepfish5/microcomputer-principle-design

Repository files navigation

微机原理课程设计

XDU 2024秋 大三下 微机原理课程设计 点阵式LCD动态显示系统设计

演示

demo/video_20240316_090406.mp4

连线

12864液晶

A1区(液晶屏) - A3区(系统总线)
CS    -    CS2  使得12864的地址空间为0260H~026FH
RW    -    A0   1为读,0为写
RS    -    A1   1为读写数据,0为写指令
CS1/2  -   A2  1为控制左半屏,0为控制右半屏

对应的地址已在头文件中配置好宏了

8255可编程并行接口

只使用方式0,PB为输出,PC0为输入,PA和PC高四位用不上,初始化为输出。

初始化字为0x81

PC0 <- KL1
PB  -> 列信号A1~A8

D3区(8255)  -  A3区(系统总线)
CS    -    CS1   使得8255地址空间为0270H~027FH
A0    -    A0
A1    -    A1

D3区(8255)  -  F5区(4x4按键)
JP24-1(PC0)  -  JP31-1(KL1)
JP20(PB0~7)  -  JP37(列信号A0~A7)

对应地址值已在头文件中配置好宏了,注意PC地址就是行信号地址,PB地址就是列信号地址

4x4按键

只需要和8255连接,不需要连系统总线。


设计

默认公交车路线: (Deprecated) 神戸大橋->港口岛北公园->風見鶏の館->鱼鳞之家->山麓線&北野通り->Hotel Monterey Kobe->織田家長屋門->兵庫県立弓道場

0火车站->1文海酒店->2张家坊->3赣江大桥->4岭上村->5天际光电->6中国石化->7仁安医院

单独写好打印每个站出站和进站信息的函数。

按键:
0-上/下行
1-进一站
2-出站
4-广告
5-退一站
6-进站

初始:显示“欢迎使用报站器”

设置全局状态:station = 0~7,对应8个站

不停查询按键,当查询到有按键按下时,检测是哪个按键按下。

如果是"2",表示出站,根据station调用对应显示出站信息的函数

如果是"6",表示进站,根据station调用对应显示进站信息的函数,同时station++, station &= 0x7。当过完最后一站时会从第一站重新开始。

限制

程序假设一次只能按下一个按键

修正

  1. (已测试)延迟时间修改为0,只要显示图案后不清楚就不需要延迟
  2. (已测试)顺序出站时,当station为7就没字了。增加nextStation函数来处理下一站问题。 顺序,且station=6,再调用nextStation,不仅会让station+1,还会把方向改为逆序。逆序,且station=1,不仅会让station-1,还会把方向改为顺序。
  3. (已测试)按下改station或direction的按键时,需要故意做一段延迟,不然极易由于长按而导致连续改几次station或direction。
  4. (已测试)回退一站时,如果station是各自方向的起始站的话,就不回退。
  5. (已测试)逆转方向时,如果逆转的结果为station为0,逆向,就不逆转,保持顺序;如果逆转结果为station为7,顺向,也不逆转,保持逆向。

加入8259可编程中断控制器

需要用KL1取反来作为中断源IR0。实验箱上没有非门,使用138译码器来作为非门使用。

F7区(138译码器) - 
A - VCC
B - VCC
C - F5区(16x16键盘)KL1
G1 - VCC
G2A - GND
G2B - GND
Y8 - B3区的IR0

B3区8259: 
CS - A3区CS3 地址范围为0250H - 025FH
A0 - A3区A0 偶地址只用0250H,奇地址只用0251H
INT, INTA - A3区INTR,INTA

其他连线还是和往常一样,这里只加了KL1引发中断,但之后扫描键盘的时候还是得靠从PC0读KL1的值

8259初始化:

ICW1: 0001 0 0 1 0 0x12 上升沿 单片 不写ICW4
ICW2: 0x8 中断向量码为0x8
OCW1: 0xfe 除了IR0,其他都屏蔽
ICW4: 默认全0,一般嵌套,非缓冲方式,非自动EOI

OCW2: 0x20 一般EOI命令 

加入ISD1420语音模块

语音模块操作模式为MCU。

B1区(ISD1420)  -  D3区(8255)
JP5(地址端)  -  JP23(PA) PA为输出
REC, PLAYE, PLAYL  -  PC4, PC5, PC6(PC高4位为输出)

这样8255的初始化字为1 000 0 00 1 0x81

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages